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);
|
||||
if (cmn.overrided_method == null)
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue