diff --git a/NETGenerator/Helpers.cs b/NETGenerator/Helpers.cs index 230b52d63..95bb169cd 100644 --- a/NETGenerator/Helpers.cs +++ b/NETGenerator/Helpers.cs @@ -829,6 +829,8 @@ namespace PascalABCCompiler.NETGenerator { foreach (Type gt in t.GetGenericArguments()) if (IsConstructedGenericType(gt)) return true; + if (t.IsArray) + return IsConstructedGenericType(t.GetElementType()); return false; } diff --git a/TestSuite/foreachmultiarray1.pas b/TestSuite/foreachmultiarray1.pas new file mode 100644 index 000000000..8c9f86b63 --- /dev/null +++ b/TestSuite/foreachmultiarray1.pas @@ -0,0 +1,24 @@ +type + T = class + end; + +var o: T; + +procedure p(a: array of array of T); +begin + foreach var x in a do + foreach var y in x do + begin + o := y; + end; +end; + +begin + var a: array of array of T; + SetLength(a, 2); + SetLength(a[0], 2); + SetLength(a[1], 2); + a[1][1] := new T; + p(a); + assert(a[1][1] = o); +end. \ No newline at end of file