[Mono-bugs] [Bug 36505][Nor] New - mcs generates exception while compiling code with properties
bugzilla-daemon@rocky.ximian.com
bugzilla-daemon@rocky.ximian.com
Thu, 9 Jan 2003 04:45:19 -0500 (EST)
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by mathpup@mylinuxisp.com.
http://bugzilla.ximian.com/show_bug.cgi?id=36505
--- shadow/36505 Thu Jan 9 04:45:19 2003
+++ shadow/36505.tmp.16567 Thu Jan 9 04:45:19 2003
@@ -0,0 +1,91 @@
+Bug#: 36505
+Product: Mono/MCS
+Version: unspecified
+OS:
+OS Details: SuSE Linux 8.0
+Status: NEW
+Resolution:
+Severity:
+Priority: Normal
+Component: Misc
+AssignedTo: mono-bugs@ximian.com
+ReportedBy: mathpup@mylinuxisp.com
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+Summary: mcs generates exception while compiling code with properties
+
+Description of Problem:
+
+mcs aborts compilation of the attached case that involves properties,
+indexers, and overloaded operators. It appears to be related to the
+combination of these entities. I do not know how else to explain it. The
+test case very contrived, but it is a much-simplified version of a program
+we're working on adding to Qt#. The program does compile successfully with
+csc.
+
+Steps to reproduce the problem:
+1. mcs container.cs
+
+
+Actual Results:
+
+Exception caught by the compiler while compiling:
+ Block that caused the problem begin at: container.cs: (27)
+ Block being compiled: [container.cs: (30),Internal:
+(1)]
+
+Unhandled Exception: System.NullReferenceException: A null value was found
+where an object instance was required
+in <0x000d5> 00 Mono.CSharp.Expression:ImplicitReferenceConversionExists
+(Mono.CSharp.Expression,System.Type)
+in <0x004b9> 00 Mono.CSharp.Expression:StandardConversionExists
+(Mono.CSharp.Expression,System.Type)
+in <0x00019> 00 Mono.CSharp.Expression:ImplicitConversionExists
+(Mono.CSharp.EmitContext,Mono.CSharp.Expression,System.Type)
+in <0x001ad> 00 Mono.CSharp.Invocation:IsApplicable
+(Mono.CSharp.EmitContext,System.Collections.ArrayList,System.Reflection.MethodBase)
+in <0x000f8> 00 Mono.CSharp.Invocation:OverloadResolve
+(Mono.CSharp.EmitContext,Mono.CSharp.MethodGroupExpr,System.Collections.ArrayList,Mono.CSharp.Location)
+in <0x00210> 00 Mono.CSharp.IndexerAccess:DoResolveLValue
+(Mono.CSharp.EmitContext,Mono.CSharp.Expression)
+in <0x0002a> 00 Mono.CSharp.Expression:ResolveLValue
+(Mono.CSharp.EmitContext,Mono.CSharp.Expression)
+in <0x00142> 00 Mono.CSharp.ElementAccess:DoResolveLValue
+(Mono.CSharp.EmitContext,Mono.CSharp.Expression)
+in <0x0002a> 00 Mono.CSharp.Expression:ResolveLValue
+(Mono.CSharp.EmitContext,Mono.CSharp.Expression)
+in <0x0001e> 00 Mono.CSharp.CompoundAssign:DoResolve
+(Mono.CSharp.EmitContext)
+in <0x00151> 00 Mono.CSharp.Expression:Resolve
+(Mono.CSharp.EmitContext,Mono.CSharp.ResolveFlags)
+in <0x0001d> 00 Mono.CSharp.StatementExpression:Resolve
+(Mono.CSharp.EmitContext)
+in <0x0025e> 00 Mono.CSharp.Block:Resolve (Mono.CSharp.EmitContext)
+in <0x0025e> 00 Mono.CSharp.Block:Resolve (Mono.CSharp.EmitContext)
+in <0x0010b> 00 Mono.CSharp.EmitContext:EmitTopBlock
+(Mono.CSharp.Block,Mono.CSharp.InternalParameters,Mono.CSharp.Location)
+in <0x00357> 00 Mono.CSharp.EmitContext:EmitTopBlock
+(Mono.CSharp.Block,Mono.CSharp.InternalParameters,Mono.CSharp.Location)
+in <0x005ac> 00 Mono.CSharp.MethodData:Emit
+(Mono.CSharp.TypeContainer,Mono.CSharp.Block,object)
+in <0x00023> 00 Mono.CSharp.Method:Emit (Mono.CSharp.TypeContainer)
+in <0x00291> 00 Mono.CSharp.TypeContainer:Emit ()
+in <0x004c8> 00 Mono.CSharp.RootContext:EmitCode ()
+in <0x0079c> 00 Mono.CSharp.Driver:MainDriver (string[])
+in <0x0000f> 00 Mono.CSharp.Driver:Main (string[])
+
+
+
+Expected Results:
+
+Successful compilation
+
+
+How often does this happen?
+
+Always
+
+
+Additional Information: