https://bugzilla.novell.com/show_bug.cgi?id=412880
Summary: [PATCH] wrong Modifiers.GetDescription() causes compiler
crash
Product: Mono: Compilers
Version: SVN
Platform: Other
OS/Version: Other
Status: NEW
Severity: Minor
Priority: P5 - None
Component: C#
AssignedTo: [email protected]
ReportedBy: [EMAIL PROTECTED]
QAContact: [email protected]
Found By: ---
The following code causes compiler crash:
class Foo
{
protected internal virtual void X ()
{
}
}
class Bar : Foo
{
protected override void X ()
{
}
}
----
(The override should be protected internal.)
$ gmcs foa.cs
Unhandled Exception: Mono.CSharp.InternalErrorException: foa.cs(10,33): Bar.X()
---> System.NotImplementedException: FamORAssem
at Mono.CSharp.Modifiers.GetDescription (MethodAttributes ma) [0x00000]
at Mono.CSharp.InterfaceMemberBase.Error_CannotChangeAccessModifiers
(Location
loc, System.Reflection.MemberInfo base_method, MethodAttributes ma,
System.Stri
ng suffix) [0x00000]
at Mono.CSharp.InterfaceMemberBase.CheckMethodAgainstBase (System.Type
base_me
thod_type) [0x00000]
at Mono.CSharp.InterfaceMemberBase.CheckBase () [0x00000]
at Mono.CSharp.MethodCore.CheckBase () [0x00000]
at Mono.CSharp.MethodOrOperator.CheckBase () [0x00000]
at Mono.CSharp.MethodOrOperator.Define () [0x00000]
at Mono.CSharp.Method.Define () [0x00000]
at Mono.CSharp.TypeContainer+MemberCoreArrayList.DefineContainerMembers ()
[0x
00000]
--- End of inner exception stack trace ---
at Mono.CSharp.TypeContainer+MemberCoreArrayList.DefineContainerMembers ()
[0x
00000]
at Mono.CSharp.TypeContainer.DefineContainerMembers
(Mono.CSharp.MemberCoreArr
ayList mcal) [0x00000]
at Mono.CSharp.Class.DefineContainerMembers (Mono.CSharp.MemberCoreArrayList
l
ist) [0x00000]
at Mono.CSharp.TypeContainer.DoDefineMembers () [0x00000]
at Mono.CSharp.Class.DoDefineMembers () [0x00000]
at Mono.CSharp.TypeContainer.DefineMembers () [0x00000]
at Mono.CSharp.RootContext.PopulateTypes () [0x00000]
at Mono.CSharp.Driver.Compile () [0x00000]
at Mono.CSharp.Driver.Main (System.String[] args) [0x00000]
It is one liner fix in modifiers.cs:
[EMAIL PROTECTED] ~/svn/mcs/mcs
$ svn diff
Index: modifiers.cs
===================================================================
--- modifiers.cs (revision 109139)
+++ modifiers.cs (working copy)
@@ -95,7 +95,7 @@
if (ma == MethodAttributes.Public)
return "public";
- if (ma == MethodAttributes.FamANDAssem)
+ if (ma == MethodAttributes.FamORAssem)
return "protected internal";
if (ma == MethodAttributes.Private)
--
Configure bugmail: https://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.
_______________________________________________
mono-bugs maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs