|
@@ -98,6 +98,7 @@ type
|
|
procedure TestGen_Class_List;
|
|
procedure TestGen_Class_List;
|
|
procedure TestGen_Class_Typecast;
|
|
procedure TestGen_Class_Typecast;
|
|
// ToDo: different modeswitches at parse time and specialize time
|
|
// ToDo: different modeswitches at parse time and specialize time
|
|
|
|
+ procedure TestGen_Class_TypeAliasAssignFail; // todo
|
|
|
|
|
|
// generic external class
|
|
// generic external class
|
|
procedure TestGen_ExtClass_Array;
|
|
procedure TestGen_ExtClass_Array;
|
|
@@ -1683,6 +1684,28 @@ begin
|
|
// Delphi: no warning
|
|
// Delphi: no warning
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TTestResolveGenerics.TestGen_Class_TypeAliasAssignFail;
|
|
|
|
+begin
|
|
|
|
+ exit;
|
|
|
|
+
|
|
|
|
+ StartProgram(false);
|
|
|
|
+ Add([
|
|
|
|
+ '{$mode objfpc}',
|
|
|
|
+ 'type',
|
|
|
|
+ ' TDate = type double;',
|
|
|
|
+ ' TObject = class end;',
|
|
|
|
+ ' generic TBird<T> = class',
|
|
|
|
+ ' end;',
|
|
|
|
+ 'var',
|
|
|
|
+ ' a: specialize TBird<double>;',
|
|
|
|
+ ' b: specialize TBird<TDate>;',
|
|
|
|
+ 'begin',
|
|
|
|
+ ' a:=b;',
|
|
|
|
+ '']);
|
|
|
|
+ CheckResolverException('Incompatible types: got expected',
|
|
|
|
+ nGenericsWithoutSpecializationAsType);
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TTestResolveGenerics.TestGen_ExtClass_Array;
|
|
procedure TTestResolveGenerics.TestGen_ExtClass_Array;
|
|
begin
|
|
begin
|
|
StartProgram(false);
|
|
StartProgram(false);
|