> 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
>