diff --git a/NETGenerator/Helpers.cs b/NETGenerator/Helpers.cs index f7d62924a..0ad5c0fdc 100644 --- a/NETGenerator/Helpers.cs +++ b/NETGenerator/Helpers.cs @@ -838,7 +838,7 @@ namespace PascalABCCompiler.NETGenerator { public bool IsConstructedGenericType(Type t) { - if (t is TypeBuilder || t is GenericTypeParameterBuilder || t is EnumBuilder) + if (t is TypeBuilder || t is GenericTypeParameterBuilder || t is EnumBuilder || t.GetType().FullName == "System.Reflection.Emit.TypeBuilderInstantiation") return true; if (t.IsGenericType) foreach (Type gt in t.GetGenericArguments()) diff --git a/TestSuite/foreach10.pas b/TestSuite/foreach10.pas new file mode 100644 index 000000000..13bca3c12 --- /dev/null +++ b/TestSuite/foreach10.pas @@ -0,0 +1,15 @@ +type + // Обязательно пользовательский шаблонный тип + t1 = class end; + +begin + // Обязательно массив + // foreach по "a.AsEnumerable" не падает + var a: array of t1 := Arr(new t1); + var i := 0; + foreach var x in a do + begin + Inc(i); + end; + assert(i = 1); +end. \ No newline at end of file