fix #2173
This commit is contained in:
parent
53ea696be7
commit
57e14c8ccc
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
|||
public const string Major = "3";
|
||||
public const string Minor = "6";
|
||||
public const string Build = "3";
|
||||
public const string Revision = "2545";
|
||||
public const string Revision = "2547";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%MINOR%=6
|
||||
%REVISION%=2545
|
||||
%REVISION%=2547
|
||||
%COREVERSION%=3
|
||||
%MAJOR%=3
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
3.6.3.2545
|
||||
3.6.3.2547
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
!define VERSION '3.6.3.2545'
|
||||
!define VERSION '3.6.3.2547'
|
||||
|
|
|
|||
20
TestSuite/LamIntSelf.pas
Normal file
20
TestSuite/LamIntSelf.pas
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// #2173
|
||||
type
|
||||
I1 = interface
|
||||
function f1(b: byte): ()->byte;
|
||||
end;
|
||||
|
||||
t1<T> = class(I1)
|
||||
public
|
||||
function I1.f1(b: byte): ()->byte := ()->b;
|
||||
function f2 := self; //Ошибка: Неизвестное имя 'self'
|
||||
function f3 := default(T); //Ошибка: Неизвестное имя 'T'
|
||||
end;
|
||||
|
||||
begin
|
||||
var v := new t1<integer>;
|
||||
Assert(v = v.f2);
|
||||
Assert(v.f3 = 0);
|
||||
var ii: I1 := v;
|
||||
Assert(ii.f1(2)=2);
|
||||
end.
|
||||
|
|
@ -12851,8 +12851,8 @@ namespace PascalABCCompiler.TreeConverter
|
|||
{
|
||||
if (_procedure_definition.proc_header.name != null)
|
||||
{
|
||||
if (_procedure_definition.proc_header.name.class_name == null)
|
||||
{
|
||||
if (_procedure_definition.proc_header.name.class_name == null || _procedure_definition.Parent is class_members) // SSM #2173 01/07/20 - добавка после || - озн, что это явное расширение интерфейса
|
||||
{
|
||||
must_visit_body = false;
|
||||
context.is_order_independed_method_description = true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue