[Mono-bugs] [Bug 41906][Cos] New - MCS fumbles array initializer

bugzilla-daemon@rocky.ximian.com bugzilla-daemon@rocky.ximian.com
Fri, 25 Apr 2003 08:13:25 -0400 (EDT)


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 r.h.lee@attbi.com.

http://bugzilla.ximian.com/show_bug.cgi?id=41906

--- shadow/41906	Fri Apr 25 08:13:25 2003
+++ shadow/41906.tmp.6251	Fri Apr 25 08:13:25 2003
@@ -0,0 +1,68 @@
+Bug#: 41906
+Product: Mono/MCS
+Version: unspecified
+OS: 
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Cosmetic
+Component: Misc
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: r.h.lee@attbi.com               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: MCS fumbles array initializer
+
+using System;
+
+public struct Test {
+	public char c;
+	public int d;
+}
+
+public class App {
+	public static void Main () {
+		Test[] test=new Test[2] {
+			{'c', 1},
+			{'b', 2},
+		};
+	}
+}
+
+Output: 
+Exception caught by the compiler while compiling:
+   Block that caused the problem begin at: Dialecti.cs: (9)
+                     Block being compiled: Dialecti.cs: (9),Dialecti.cs: (14)]
+ 
+Unhandled Exception: System.ArgumentOutOfRangeException: Argument is out of
+rangeParameter name: index out of range
+in <0x0008c> 00 System.Collections.ArrayList:get_Item (int)
+in <0x0003c> 00 Mono.CSharp.ArrayCreation:CheckIndices
+(Mono.CSharp.EmitContext,System.Collections.ArrayList,int,bool)
+in <0x00355> 00 Mono.CSharp.ArrayCreation:CheckIndices
+(Mono.CSharp.EmitContext,System.Collections.ArrayList,int,bool)
+in <0x000dc> 00 Mono.CSharp.ArrayCreation:ValidateInitializers
+(Mono.CSharp.EmitContext,System.Type)
+in <0x00058> 00 Mono.CSharp.ArrayCreation:DoResolve (Mono.CSharp.EmitContext)
+in <0x00114> 00 Mono.CSharp.Expression:Resolve
+(Mono.CSharp.EmitContext,Mono.CSharp.ResolveFlags)
+in <0x00144> 00 Mono.CSharp.Assign:DoResolve (Mono.CSharp.EmitContext)
+in <0x00114> 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 <0x0011a> 00 Mono.CSharp.EmitContext:EmitTopBlock
+(Mono.CSharp.Block,Mono.CSharp.InternalParameters,Mono.CSharp.Location)
+in <0x00374> 00 Mono.CSharp.EmitContext:EmitTopBlock
+(Mono.CSharp.Block,Mono.CSharp.InternalParameters,Mono.CSharp.Location)
+in <0x0053a> 00 Mono.CSharp.MethodData:Emit
+(Mono.CSharp.TypeContainer,Mono.CSharp.Block,object)
+in <0x00023> 00 Mono.CSharp.Method:Emit (Mono.CSharp.TypeContainer)
+in <0x00297> 00 Mono.CSharp.TypeContainer:Emit ()
+in <0x004c8> 00 Mono.CSharp.RootContext:EmitCode ()
+in <0x007c9> 00 Mono.CSharp.Driver:MainDriver (string[])
+in <0x0000f> 00 Mono.CSharp.Driver:Main (string[])