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