> It's hardcoded in the compiler. If you've got the Rotor 
> sources installed, the check is done in TYPESYM::isSpecialByRefType().
> http://dotnet.di.unipi.it/Content/sscli/docs/doxygen/csharp/sy
mmgr_8cpp-
source.html#l02546

        Hmmm. I really wonder why they didn't simply add an attribute to
the method. Hardcoding this kind of stuff is dangerous, it can be a
source for bugs or other nasties in the future while it is completely
unnecessary.

        FB


Regards,
Jeroen

> 
> -----Original Message-----
> From: Frans Bouma [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, June 17, 2003 10:20
> To: [EMAIL PROTECTED]
> 
> > I wrote:
> > 
> > > I would guess that it has not so much to do with
> ArgIterator being a
> > > special type, but that in this instance, iterator itself is stack 
> > > allocated.  Frankly, I don't think this requires
> documentation.  We
> > > all know that you can't return a stack allocated struct from a
> > > function.
> > > Fortunately, we now have a compiler that won't let us do this
> > > accidentally.
> > 
> > This was a foolish thing to post.  I hit send before thinking
> > too deeply about it. Of course the boxing operation should 
> > copy the struct to the heap. Sorry.
> 
>         Well, the assumption was not that weird. If you check out the 
> MSIL of ArgIterator, there is no special attribute attached to it. 
> Which makes me wonder, why does the compiler generate an error on
> this object?
> Is that object hardcoded in the compiler or is there a 
> special attribute
> attached to it that isn't visible in the MSIL? (so you can use that
> yourself in your code too)
> 
>         FB
> 

Reply via email to