A bit more information...

If I use ildasm and compare the result with that from a similar C# program, I see that, in F#, each property has its own block, where in C# they share one:

F#:

1
2
3
4
5
6
7
8
.property instance void X(int32)
{
    .set instance void Action/_A::set_X(int32)
} // end of property _A::X
.property instance int32 X()
{
    .get instance int32 Action/_A::get_X()
} // end of property _A::X

C#:

1
2
3
4
5
.property instance int32 x()
{
    .get instance int32 cslib._A::get_x()
    .set instance void cslib._A::set_x(int32)
} // end of property _A::x

If I modify the F# IL to make it look like the C# IL and compile that, then I get the type library that I'm hoping for.

By on 10/19/2007 11:36 AM ()

Hi Jason,

Yes, this is a discrepency in the exact metadata we generate for properties - this is the first time we've seen that this is significant. I've recorded it as bug 1061 in our internal database. At some point we hope to make this database accessible in some form so you'll be able to track our progress on this issue, but we haven't done that just yet.

Kind regards & thanks for the detailed bug report

Don

By on 10/21/2007 9:29 AM ()

Hi Jason,

Just to let you know that this bug has been fixd in our internal stabilization branch and that the fix will be in the next release from that branch (probably sometime in the next week or so)

Thanks for the excellent bug report.

Don

By on 10/28/2007 11:07 AM ()

Excellent. Thanks for the news.

By on 10/28/2007 8:36 PM ()
IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy
Built with WebSharper