Sfoglia il codice sorgente

* allow set type to be a generic parameter, resolves #40453

florian 1 anno fa
parent
commit
a3f221e189
2 ha cambiato i file con 22 aggiunte e 0 eliminazioni
  1. 3 0
      compiler/ptype.pas
  2. 19 0
      tests/webtbs/tw40453.pp

+ 3 - 0
compiler/ptype.pas

@@ -1339,6 +1339,9 @@ implementation
                    else
                      Message(sym_e_ill_type_decl_set);
                  end;
+               { generic parameter? }
+               undefineddef:
+                ;
                else
                  Message(sym_e_ill_type_decl_set);
              end;

+ 19 - 0
tests/webtbs/tw40453.pp

@@ -0,0 +1,19 @@
+program Project1;
+
+  {$mode delphi}
+
+type
+  TEnum = (A, B, C);
+
+  procedure Test<T>(E: T);
+  type
+    S1 = set of TEnum;
+    S2 = set of Low(T)..High(T);
+    S3 = set of T; //Error
+  begin
+  end;
+
+begin
+  Test<TEnum>(B);
+  ReadLn;
+end.