[Mono-bugs] [Bug 624870] gmcs looks at private members instead of public propertes in annotation attribute matching

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Jul 27 10:12:41 EDT 2010


http://bugzilla.novell.com/show_bug.cgi?id=624870

http://bugzilla.novell.com/show_bug.cgi?id=624870#c3


Dawid Weiss <dawid.weiss at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |NEW
       InfoProvider|dawid.weiss at gmail.com       |

--- Comment #3 from Dawid Weiss <dawid.weiss at gmail.com> 2010-07-27 14:12:40 UTC ---
I admit I am a bit confused, but it still looks like gmcs bug to me... anyway,
here is the minimal example I could produce, along with IKVM and another
required assembly:

http://ophelia.cs.put.poznan.pl/~dweiss/download/mono-624870.zip

The content of this ZIP file is:

Bindable.java           - Java annotation class
Bindable.class          - the above, compiled
Bindable.dll            - the above, IKVM-compiled to .NET

Org.Carrot2.Core.dll    - an larger assembly containing Bindable annotation
(exactly the same code as above),

IKVM.OpenJDK.Core.dll   - IKVM core, for reference
IKVM.Runtime.dll        - IKVM runtime, for reference

TypeAdaptersTest.cs     - Minimal non-compiling example of using Bindable.

Now, TypeAdaptersTest.cs compiles fine with csc, both when referencing
Org.Carrot2.Core.dll and when referencing Bindable.dll, log:

c:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /target:library
/reference:Org.Carrot2.Core.dll /reference:IKVM.OpenJDK.Core.dll
TypeAdaptersTest.cs
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1
Copyright (C) Microsoft Corporation. All rights reserved.

c:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /target:library
/reference:Bindable.dll /reference:IKVM.OpenJDK.Core.dll TypeAdaptersTest.cs
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1
Copyright (C) Microsoft Corporation. All rights reserved.

The same command using gmcs compiles fine when referencing Bindable:

"c:\Program Files (x86)\Mono-2.6.7\bin\gmcs" /target:library
/reference:Bindable.dll /reference:IKVM.OpenJDK.Core.dll TypeAdaptersTest.cs

but fails (!) when referencing Org.Carrot2.Core.dll:

"c:\Program Files (x86)\Mono-2.6.7\bin\gmcs" /target:library
/reference:Org.Carrot2.Core.dll /reference:IKVM.OpenJDK.Core.dll
TypeAdaptersTest.cs
TypeAdaptersTest.cs(6,33): error CS0122:
`org.carrot2.util.attribute.BindableAttribute.prefix()' is inaccessible due to
its protection level
C:\PROGRA~2\MONO-2~1.7\lib\mono\2.0\gmcs.exe (Location of the symbol related to
previous error)
Compilation failed: 1 error(s), 0 warnings

Decompiling the above assemblies using reflector shows Bindable and
BindableAttribute are identical (the only difference is the order of declared
attributes). I admit I have no clue, but it looks like something with gmcs.
Hope this helps.

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list