This commit is contained in:
parent
5356d2913c
commit
1aecc81874
21
TestSuite/abstract4.pas
Normal file
21
TestSuite/abstract4.pas
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
type
|
||||||
|
t1 = abstract class
|
||||||
|
|
||||||
|
procedure p1(p: procedure); abstract;
|
||||||
|
|
||||||
|
end;
|
||||||
|
t2 = class(t1)
|
||||||
|
|
||||||
|
procedure p1(p: procedure); override;
|
||||||
|
begin
|
||||||
|
p;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
var o := new t2;
|
||||||
|
var i := 0;
|
||||||
|
o.p1(()->begin i:=1 end);
|
||||||
|
assert(i = 1);
|
||||||
|
end.
|
||||||
2
TestSuite/intellisense_tests/shortprog2.pas
Normal file
2
TestSuite/intellisense_tests/shortprog2.pas
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
##
|
||||||
|
Println{(procedure Println(a,b,...);)}
|
||||||
|
|
@ -3943,6 +3943,14 @@ namespace PascalABCCompiler.TreeConverter
|
||||||
cmn.overrided_method = FindMethodToOverride(cmn);
|
cmn.overrided_method = FindMethodToOverride(cmn);
|
||||||
if (cmn.overrided_method == null)
|
if (cmn.overrided_method == null)
|
||||||
AddError(cmn.loc, "NO_METHOD_TO_OVERRIDE");
|
AddError(cmn.loc, "NO_METHOD_TO_OVERRIDE");
|
||||||
|
for (int i = 0; i < cmn.parameters.Count; i++)
|
||||||
|
{
|
||||||
|
var cp = cmn.parameters[i];
|
||||||
|
if (cp.type.IsDelegate && cp.type is common_type_node && (cp.type as common_type_node).name.IndexOf("$") != -1)
|
||||||
|
{
|
||||||
|
cp.type = cmn.overrided_method.parameters[i].type;
|
||||||
|
}
|
||||||
|
}
|
||||||
cmn.SetName(cmn.overrided_method.name);
|
cmn.SetName(cmn.overrided_method.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue