mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-28 04:48:32 +02:00
Codetools: Prevent node caching for results in generics.
This commit is contained in:
parent
b693b70363
commit
19d12f194d
@ -4302,6 +4302,8 @@ var
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
// identifier found
|
// identifier found
|
||||||
Params.SetResult(Self,Node);
|
Params.SetResult(Self,Node);
|
||||||
|
Include(Params.Flags, fdfDoNotCache);
|
||||||
|
Include(Params.NewFlags, fodDoNotCache);
|
||||||
Result:=CheckResult(true,true);
|
Result:=CheckResult(true,true);
|
||||||
if not (fdfCollect in Flags) then
|
if not (fdfCollect in Flags) then
|
||||||
exit;
|
exit;
|
||||||
@ -4872,6 +4874,12 @@ var
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
ctnGenericType:
|
||||||
|
begin
|
||||||
|
Include(Params.Flags, fdfDoNotCache);
|
||||||
|
Include(Params.NewFlags, fodDoNotCache);
|
||||||
|
end;
|
||||||
|
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
end;
|
end;
|
||||||
@ -5098,7 +5106,9 @@ begin
|
|||||||
end;}
|
end;}
|
||||||
// if we are here, the identifier was not found and there was no error
|
// if we are here, the identifier was not found and there was no error
|
||||||
if (FirstSearchedNode<>nil) and (Params.FoundProc=nil)
|
if (FirstSearchedNode<>nil) and (Params.FoundProc=nil)
|
||||||
and ([fdfCollect,fdfExtractOperand]*Flags=[]) then begin
|
and ([fdfCollect,fdfExtractOperand,fdfDoNotCache]*Flags=[])
|
||||||
|
and ([fdfDoNotCache]*Params.Flags=[])
|
||||||
|
and ([fodDoNotCache]*Params.NewFlags=[]) then begin
|
||||||
// add result to cache
|
// add result to cache
|
||||||
Params.NewNode:=nil;
|
Params.NewNode:=nil;
|
||||||
Params.NewCodeTool:=nil;
|
Params.NewCodeTool:=nil;
|
||||||
@ -12514,6 +12524,13 @@ var Node: TCodeTreeNode;
|
|||||||
begin
|
begin
|
||||||
{$IFDEF CheckNodeTool}CheckNodeTool(StartNode);{$ENDIF}
|
{$IFDEF CheckNodeTool}CheckNodeTool(StartNode);{$ENDIF}
|
||||||
if StartNode=nil then exit;
|
if StartNode=nil then exit;
|
||||||
|
//Node:=StartNode;
|
||||||
|
//while Node<>nil do begin
|
||||||
|
// if Node.Desc=ctnGenericType then
|
||||||
|
// exit;
|
||||||
|
// Node:=Node.Parent;
|
||||||
|
//end;
|
||||||
|
|
||||||
if EndNode=nil then EndNode:=StartNode;
|
if EndNode=nil then EndNode:=StartNode;
|
||||||
|
|
||||||
if Params.NewNode<>nil then begin
|
if Params.NewNode<>nil then begin
|
||||||
@ -14083,6 +14100,7 @@ var
|
|||||||
OldGenParam: TGenericParams;
|
OldGenParam: TGenericParams;
|
||||||
begin
|
begin
|
||||||
Include(Flags, fdfDoNotCache);
|
Include(Flags, fdfDoNotCache);
|
||||||
|
Include(NewFlags, fodDoNotCache);
|
||||||
// NewCodeTool, NewNode=GenericParamType
|
// NewCodeTool, NewNode=GenericParamType
|
||||||
if not Assigned(NewCodeTool) or not Assigned(NewNode) then exit(false);
|
if not Assigned(NewCodeTool) or not Assigned(NewNode) then exit(false);
|
||||||
if not Assigned(GenParams.ParamValuesTool)
|
if not Assigned(GenParams.ParamValuesTool)
|
||||||
|
@ -335,12 +335,12 @@ var
|
|||||||
a1: TFld1 {declaration:GEN_1.TFld1};
|
a1: TFld1 {declaration:GEN_1.TFld1};
|
||||||
a2: TFld2 {declaration:GEN_1.TFld2};
|
a2: TFld2 {declaration:GEN_1.TFld2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GEN_1.fv} := default(_REC { TODO: declaration:GEN_1._REC} );
|
fv{declaration:GEN_1.fv} := default(_REC {declaration:GEN_1._REC} );
|
||||||
|
|
||||||
fy{declaration:GEN_1.TFld0.fy} := default(_REC { TODO: declaration:GEN_1._REC} );
|
fy{declaration:GEN_1.TFld0.fy} := default(_REC {declaration:GEN_1._REC} );
|
||||||
FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GEN_1._REC} );
|
FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GEN_1._REC} );
|
||||||
|
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GEN_1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GEN_1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1} := default(TRec1 {declaration:TRec1} );
|
a1.FField1{declaration:GEN_Field.FField1} := default(TRec1 {declaration:TRec1} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
@ -350,17 +350,17 @@ end;
|
|||||||
|
|
||||||
procedure GEN_1.TFld1.Foo;
|
procedure GEN_1.TFld1.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG: declaration:GEN_1._REC}; // TODO: the test finds it and yet we can not jump there
|
a: _REC {declaration:GEN_1._REC}; //the test finds it and yet we can not jump there
|
||||||
a0: TFld0 {declaration:GEN_1.TFld0};
|
a0: TFld0 {declaration:GEN_1.TFld0};
|
||||||
a1: TFld1 {declaration:GEN_1.TFld1};
|
a1: TFld1 {declaration:GEN_1.TFld1};
|
||||||
a2: TFld2 {declaration:GEN_1.TFld2};
|
a2: TFld2 {declaration:GEN_1.TFld2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GEN_1.fv} := default(_REC { TODO: declaration:GEN_1._REC} );
|
fv{declaration:GEN_1.fv} := default(_REC {declaration:GEN_1._REC} );
|
||||||
|
|
||||||
fy{declaration:GEN_1.TFld1.fy}.r1a{ TODO: declaration:TRec1.r1a} := 1;
|
fy{declaration:GEN_1.TFld1.fy}.r1a{ TODO: declaration:TRec1.r1a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
|
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GEN_1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GEN_1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -369,17 +369,17 @@ end;
|
|||||||
|
|
||||||
procedure GEN_1.TFld2.Foo;
|
procedure GEN_1.TFld2.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG declaration:GEN_1._REC}; // TODO: the test finds something and yet we can not jump there
|
a: _REC {declaration:GEN_1._REC};
|
||||||
a0: TFld0 {declaration:GEN_1.TFld0};
|
a0: TFld0 {declaration:GEN_1.TFld0};
|
||||||
a1: TFld1 {declaration:GEN_1.TFld1};
|
a1: TFld1 {declaration:GEN_1.TFld1};
|
||||||
a2: TFld2 {declaration:GEN_1.TFld2};
|
a2: TFld2 {declaration:GEN_1.TFld2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GEN_1.fv} := default(_REC { TODO: declaration:GEN_1._REC} );
|
fv{declaration:GEN_1.fv} := default(_REC {declaration:GEN_1._REC} );
|
||||||
|
|
||||||
fy{declaration:GEN_1.TFld2.fy}.r2a{ TODO: declaration:TRec2.r2a} := 1;
|
fy{declaration:GEN_1.TFld2.fy}.r2a{ TODO: declaration:TRec2.r2a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
|
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GEN_1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GEN_1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -388,15 +388,15 @@ end;
|
|||||||
|
|
||||||
procedure GEN_1.Bar;
|
procedure GEN_1.Bar;
|
||||||
var
|
var
|
||||||
a: _REC { TODO: declaration:GEN_1._REC}; // TODO: cache??
|
a: _REC {declaration:GEN_1._REC};
|
||||||
a0: TFld0 {declaration:GEN_1.TFld0};
|
a0: TFld0 {declaration:GEN_1.TFld0};
|
||||||
a1: TFld1 {declaration:GEN_1.TFld1};
|
a1: TFld1 {declaration:GEN_1.TFld1};
|
||||||
a2: TFld2 {declaration:GEN_1.TFld2};
|
a2: TFld2 {declaration:GEN_1.TFld2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GEN_1.fv} := default(_REC { TODO: declaration:GEN_1._REC} );
|
fv{declaration:GEN_1.fv} := default(_REC {declaration:GEN_1._REC} );
|
||||||
fx{declaration:GEN_1.fx} := default(_REC { TODO: declaration:GEN_1._REC} );
|
fx{declaration:GEN_1.fx} := default(_REC {declaration:GEN_1._REC} );
|
||||||
|
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GEN_1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GEN_1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -405,17 +405,17 @@ end;
|
|||||||
|
|
||||||
procedure GENB_1.TFldB0.Foo;
|
procedure GENB_1.TFldB0.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO declaration:GENB_1._REC};
|
a: _REC {declaration:GENB_1._REC};
|
||||||
a0: TFldB0 {declaration:GENB_1.TFldB0};
|
a0: TFldB0 {declaration:GENB_1.TFldB0};
|
||||||
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_1.fv} := default(_REC { TODO: declaration:GENB_1._REC} );
|
fv{declaration:GENB_1.fv} := default(_REC {declaration:GENB_1._REC} );
|
||||||
|
|
||||||
fy{declaration:GENB_1.TFldB0.fy} := default(_REC { TODO: declaration:GENB_1._REC} );
|
fy{declaration:GENB_1.TFldB0.fy} := default(_REC {declaration:GENB_1._REC} );
|
||||||
FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENB_1._REC} );
|
FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENB_1._REC} );
|
||||||
|
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENB_1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENB_1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -424,17 +424,17 @@ end;
|
|||||||
|
|
||||||
procedure GENB_1.TFldB1.Foo;
|
procedure GENB_1.TFldB1.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG: declaration:GENB_1._REC}; // TODO: the test finds it and yet we can not jump there
|
a: _REC {declaration:GENB_1._REC};
|
||||||
a0: TFldB0 {declaration:GENB_1.TFldB0};
|
a0: TFldB0 {declaration:GENB_1.TFldB0};
|
||||||
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_1.fv} := default(_REC { TODO: declaration:GENB_1._REC} );
|
fv{declaration:GENB_1.fv} := default(_REC {declaration:GENB_1._REC} );
|
||||||
|
|
||||||
fy{declaration:GENB_1.TFldB1.fy}.r1a{ TODO: declaration:TRec1.r1a} := 1;
|
fy{declaration:GENB_1.TFldB1.fy}.r1a{ TODO: declaration:TRec1.r1a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
|
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENB_1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENB_1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -443,17 +443,17 @@ end;
|
|||||||
|
|
||||||
procedure GENB_1.TFldB2.Foo;
|
procedure GENB_1.TFldB2.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG declaration:GENB_1._REC}; // TODO: the test finds something and yet we can not jump there
|
a: _REC {declaration:GENB_1._REC};
|
||||||
a0: TFldB0 {declaration:GENB_1.TFldB0};
|
a0: TFldB0 {declaration:GENB_1.TFldB0};
|
||||||
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_1.fv} := default(_REC { TODO: declaration:GENB_1._REC} );
|
fv{declaration:GENB_1.fv} := default(_REC {declaration:GENB_1._REC} );
|
||||||
|
|
||||||
fy{declaration:GENB_1.TFldB2.fy}.r2a{ TODO: declaration:TRec2.r2a} := 1;
|
fy{declaration:GENB_1.TFldB2.fy}.r2a{ TODO: declaration:TRec2.r2a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
|
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENB_1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENB_1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -467,10 +467,10 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_1.fv} := default(_REC { TODO: declaration:GENB_1._REC} );
|
fv{declaration:GENB_1.fv} := default(_REC {declaration:GENB_1._REC} );
|
||||||
fx{declaration:GENB_1.fx} := default(_REC { TODO: declaration:GENB_1._REC} );
|
fx{declaration:GENB_1.fx} := default(_REC {declaration:GENB_1._REC} );
|
||||||
|
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENB_1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENB_1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -479,17 +479,17 @@ end;
|
|||||||
|
|
||||||
procedure GENB_2.TFldB0.Foo;
|
procedure GENB_2.TFldB0.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO declaration:GENB_2._REC};
|
a: _REC {declaration:GENB_2._REC};
|
||||||
a0: TFldB0 {declaration:GENB_2.TFldB0};
|
a0: TFldB0 {declaration:GENB_2.TFldB0};
|
||||||
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_2.fv} := default(_REC { TODO: declaration:GENB_2._REC} );
|
fv{declaration:GENB_2.fv} := default(_REC {declaration:GENB_2._REC} );
|
||||||
|
|
||||||
fy{declaration:GENB_2.TFldB0.fy} := default(_REC { TODO: declaration:GENB_1._REC} );
|
fy{declaration:GENB_2.TFldB0.fy} := default(_REC {declaration:GENB_2._REC} );
|
||||||
FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENB_2._REC} );
|
FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENB_2._REC} );
|
||||||
|
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENB_2._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENB_2._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -498,17 +498,17 @@ end;
|
|||||||
|
|
||||||
procedure GENB_2.TFldB1.Foo;
|
procedure GENB_2.TFldB1.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG: declaration:GENB_2._REC}; // TODO: the test finds it and yet we can not jump there
|
a: _REC {declaration:GENB_2._REC};
|
||||||
a0: TFldB0 {declaration:GENB_2.TFldB0};
|
a0: TFldB0 {declaration:GENB_2.TFldB0};
|
||||||
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_2.fv} := default(_REC { TODO: declaration:GENB_2._REC} );
|
fv{declaration:GENB_2.fv} := default(_REC {declaration:GENB_2._REC} );
|
||||||
|
|
||||||
fy{declaration:GENB_2.TFldB1.fy}.r1a{ TODO: declaration:TRec1.r1a} := 1;
|
fy{declaration:GENB_2.TFldB1.fy}.r1a{ TODO: declaration:TRec1.r1a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
|
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENB_2._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENB_2._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -517,17 +517,17 @@ end;
|
|||||||
|
|
||||||
procedure GENB_2.TFldB2.Foo;
|
procedure GENB_2.TFldB2.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG declaration:GENB_2._REC}; // TODO: the test finds something and yet we can not jump there
|
a: _REC {declaration:GENB_2._REC};
|
||||||
a0: TFldB0 {declaration:GENB_2.TFldB0};
|
a0: TFldB0 {declaration:GENB_2.TFldB0};
|
||||||
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_2.fv} := default(_REC { TODO: declaration:GENB_2._REC} );
|
fv{declaration:GENB_2.fv} := default(_REC {declaration:GENB_2._REC} );
|
||||||
|
|
||||||
fy{declaration:GENB_2.TFldB2.fy}.r2a{ TODO: declaration:TClass1.TRec2.r2a} := 1;
|
fy{declaration:GENB_2.TFldB2.fy}.r2a{ TODO: declaration:TClass1.TRec2.r2a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
|
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENB_2._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENB_2._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -536,17 +536,17 @@ end;
|
|||||||
|
|
||||||
procedure GENB_2.TFldB3.Foo;
|
procedure GENB_2.TFldB3.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG declaration:GENB_2._REC}; // TODO: the test finds something and yet we can not jump there
|
a: _REC {declaration:GENB_2._REC};
|
||||||
a0: TFldB0 {declaration:GENB_2.TFldB0};
|
a0: TFldB0 {declaration:GENB_2.TFldB0};
|
||||||
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_2.fv} := default(_REC { TODO: declaration:GENB_2._REC} );
|
fv{declaration:GENB_2.fv} := default(_REC {declaration:GENB_2._REC} );
|
||||||
|
|
||||||
fy{declaration:GENB_2.TFldB3.fy}.r3a{ TODO: declaration:TClass1.TRec3.r3a} := 1;
|
fy{declaration:GENB_2.TFldB3.fy}.r3a{ TODO: declaration:TClass1.TRec3.r3a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r3a{declaration:TClass1.TRec3.r3a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r3a{declaration:TClass1.TRec3.r3a} := 1;
|
||||||
|
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENB_2._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENB_2._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -560,10 +560,10 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_2.fv} := default(_REC { TODO: declaration:GENB_2._REC} );
|
fv{declaration:GENB_2.fv} := default(_REC {declaration:GENB_2._REC} );
|
||||||
fx{declaration:GENB_2.fx} := default(_REC { TODO: declaration:GENB_2._REC} );
|
fx{declaration:GENB_2.fx} := default(_REC {declaration:GENB_2._REC} );
|
||||||
|
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENB_2._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENB_2._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -572,7 +572,7 @@ end;
|
|||||||
|
|
||||||
procedure GENI_1.TFldI0.Foo;
|
procedure GENI_1.TFldI0.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO declaration:GENI_1._REC};
|
a: _REC {declaration:GENI_1._REC};
|
||||||
b0: TFldI0 {declaration:GENI_1.TFldI0};
|
b0: TFldI0 {declaration:GENI_1.TFldI0};
|
||||||
b1: TFldI1 {declaration:GENI_1.TFldI1};
|
b1: TFldI1 {declaration:GENI_1.TFldI1};
|
||||||
b2: TFldI2 {declaration:GENI_1.TFldI2};
|
b2: TFldI2 {declaration:GENI_1.TFldI2};
|
||||||
@ -580,16 +580,16 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_1.fv} := default(_REC { TODO: declaration:GENI_1._REC} );
|
fv{declaration:GENB_1.fv} := default(_REC {declaration:GENI_1._REC} );
|
||||||
fIv{declaration:GENI_1.fIv} := default(_REC { TODO: declaration:GENI_1._REC} );
|
fIv{declaration:GENI_1.fIv} := default(_REC {declaration:GENI_1._REC} );
|
||||||
|
|
||||||
fy{declaration:GENI_1.TFldI0.fy} := default(_REC { TODO: declaration:GENI_1._REC} );
|
fy{declaration:GENI_1.TFldI0.fy} := default(_REC {declaration:GENI_1._REC} );
|
||||||
FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_1._REC} );
|
FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_1._REC} );
|
||||||
|
|
||||||
b0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_1._REC} );
|
b0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_1._REC} );
|
||||||
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -598,7 +598,7 @@ end;
|
|||||||
|
|
||||||
procedure GENI_1.TFldI1.Foo;
|
procedure GENI_1.TFldI1.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG: declaration:GENI_1._REC}; // TODO: the test finds it and yet we can not jump there
|
a: _REC {declaration:GENI_1._REC};
|
||||||
b0: TFldI0 {declaration:GENI_1.TFldI0};
|
b0: TFldI0 {declaration:GENI_1.TFldI0};
|
||||||
b1: TFldI1 {declaration:GENI_1.TFldI1};
|
b1: TFldI1 {declaration:GENI_1.TFldI1};
|
||||||
b2: TFldI2 {declaration:GENI_1.TFldI2};
|
b2: TFldI2 {declaration:GENI_1.TFldI2};
|
||||||
@ -606,16 +606,16 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_1.fv} := default(_REC { TODO: declaration:GENI_1._REC} );
|
fv{declaration:GENB_1.fv} := default(_REC {declaration:GENI_1._REC} );
|
||||||
fIv{declaration:GENI_1.fIv} := default(_REC { TODO: declaration:GENI_1._REC} );
|
fIv{declaration:GENI_1.fIv} := default(_REC {declaration:GENI_1._REC} );
|
||||||
|
|
||||||
fy{declaration:GENI_1.TFldI1.fy}.r1a{ TODO: declaration:TRec1.r1a} := 1;
|
fy{declaration:GENI_1.TFldI1.fy}.r1a{ TODO: declaration:TRec1.r1a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
|
|
||||||
b0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_1._REC} );
|
b0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_1._REC} );
|
||||||
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -624,7 +624,7 @@ end;
|
|||||||
|
|
||||||
procedure GENI_1.TFldI2.Foo;
|
procedure GENI_1.TFldI2.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG declaration:GENI_1._REC}; // TODO: the test finds something and yet we can not jump there
|
a: _REC {declaration:GENI_1._REC};
|
||||||
b0: TFldI0 {declaration:GENI_1.TFldI0};
|
b0: TFldI0 {declaration:GENI_1.TFldI0};
|
||||||
b1: TFldI1 {declaration:GENI_1.TFldI1};
|
b1: TFldI1 {declaration:GENI_1.TFldI1};
|
||||||
b2: TFldI2 {declaration:GENI_1.TFldI2};
|
b2: TFldI2 {declaration:GENI_1.TFldI2};
|
||||||
@ -632,16 +632,16 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_1.fv} := default(_REC { TODO: declaration:GENI_1._REC} );
|
fv{declaration:GENB_1.fv} := default(_REC {declaration:GENI_1._REC} );
|
||||||
fIv{declaration:GENI_1.fIv} := default(_REC { TODO: declaration:GENI_1._REC} );
|
fIv{declaration:GENI_1.fIv} := default(_REC {declaration:GENI_1._REC} );
|
||||||
|
|
||||||
fy{declaration:GENI_1.TFldI2.fy}.r2a{ TODO: declaration:TRec2.r2a} := 1;
|
fy{declaration:GENI_1.TFldI2.fy}.r2a{ TODO: declaration:TRec2.r2a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
|
|
||||||
b0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_1._REC} );
|
b0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_1._REC} );
|
||||||
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -658,15 +658,15 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_1.fv} := default(_REC { TODO: declaration:GENI_1._REC} );
|
fv{declaration:GENB_1.fv} := default(_REC {declaration:GENI_1._REC} );
|
||||||
fIv{declaration:GENI_1.fIv} := default(_REC { TODO: declaration:GENI_1._REC} );
|
fIv{declaration:GENI_1.fIv} := default(_REC {declaration:GENI_1._REC} );
|
||||||
fx{declaration:GENB_1.fx} := default(_REC { TODO: declaration:GENI_1._REC} );
|
fx{declaration:GENB_1.fx} := default(_REC {declaration:GENI_1._REC} );
|
||||||
fIx{declaration:GENI_1.fIx} := default(_REC { TODO: declaration:GENI_1._REC} );
|
fIx{declaration:GENI_1.fIx} := default(_REC {declaration:GENI_1._REC} );
|
||||||
|
|
||||||
b0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_1._REC} );
|
b0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_1._REC} );
|
||||||
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -675,7 +675,7 @@ end;
|
|||||||
|
|
||||||
procedure GENI_2B1.TFldI0.Foo;
|
procedure GENI_2B1.TFldI0.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO declaration:GENI_2B1._REC};
|
a: _REC {declaration:GENI_2B1._REC};
|
||||||
b0: TFldI0 {declaration:GENI_2B1.TFldI0};
|
b0: TFldI0 {declaration:GENI_2B1.TFldI0};
|
||||||
b1: TFldI1 {declaration:GENI_2B1.TFldI1};
|
b1: TFldI1 {declaration:GENI_2B1.TFldI1};
|
||||||
b2: TFldI2 {declaration:GENI_2B1.TFldI2};
|
b2: TFldI2 {declaration:GENI_2B1.TFldI2};
|
||||||
@ -683,15 +683,15 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_1.fv} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
fv{declaration:GENB_1.fv} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
|
|
||||||
fy{declaration:GENI_2B1.TFldI0.fy} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
fy{declaration:GENI_2B1.TFldI0.fy} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
|
|
||||||
b0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
b0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
b2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO: declaration:TClass1.TRec2.r2a} := 1;
|
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO: declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO: declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -700,7 +700,7 @@ end;
|
|||||||
|
|
||||||
procedure GENI_2B1.TFldI1.Foo;
|
procedure GENI_2B1.TFldI1.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG: declaration:GENI_2B1._REC}; // TODO: the test finds it and yet we can not jump there
|
a: _REC {declaration:GENI_2B1._REC};
|
||||||
b0: TFldI0 {declaration:GENI_2B1.TFldI0};
|
b0: TFldI0 {declaration:GENI_2B1.TFldI0};
|
||||||
b1: TFldI1 {declaration:GENI_2B1.TFldI1};
|
b1: TFldI1 {declaration:GENI_2B1.TFldI1};
|
||||||
b2: TFldI2 {declaration:GENI_2B1.TFldI2};
|
b2: TFldI2 {declaration:GENI_2B1.TFldI2};
|
||||||
@ -708,16 +708,16 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_1.fv} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
fv{declaration:GENB_1.fv} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
fIv{declaration:GENI_2B1.fIv} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
fIv{declaration:GENI_2B1.fIv} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
|
|
||||||
fy{declaration:GENI_2B1.TFldI1.fy}.r1a{ TODO: declaration:TRec1.r1a} := 1;
|
fy{declaration:GENI_2B1.TFldI1.fy}.r1a{ TODO: declaration:TRec1.r1a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
|
|
||||||
b0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
b0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
b2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO: declaration:TClass1.TRec2.r2a} := 1;
|
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO: declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO: declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -726,7 +726,7 @@ end;
|
|||||||
|
|
||||||
procedure GENI_2B1.TFldI2.Foo;
|
procedure GENI_2B1.TFldI2.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG declaration:GENI_2B1._REC}; // TODO: the test finds something and yet we can not jump there
|
a: _REC {declaration:GENI_2B1._REC};
|
||||||
b0: TFldI0 {declaration:GENI_2B1.TFldI0};
|
b0: TFldI0 {declaration:GENI_2B1.TFldI0};
|
||||||
b1: TFldI1 {declaration:GENI_2B1.TFldI1};
|
b1: TFldI1 {declaration:GENI_2B1.TFldI1};
|
||||||
b2: TFldI2 {declaration:GENI_2B1.TFldI2};
|
b2: TFldI2 {declaration:GENI_2B1.TFldI2};
|
||||||
@ -734,15 +734,15 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_1.fv} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
fv{declaration:GENB_1.fv} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
|
|
||||||
fy{declaration:GENI_2B1.TFldI2.fy}.r2a{ TODO: declaration:TClass1.TRec2.r2a} := 1;
|
fy{declaration:GENI_2B1.TFldI2.fy}.r2a{ TODO: declaration:TClass1.TRec2.r2a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r2a{ TODO declaration:TClass1.TRec2.r2a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
|
|
||||||
b0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
b0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
b2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO declaration:TClass1.TRec2.r2a} := 1;
|
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -751,7 +751,7 @@ end;
|
|||||||
|
|
||||||
procedure GENI_2B1.TFldI3.Foo;
|
procedure GENI_2B1.TFldI3.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG declaration:GENI_2B1._REC}; // TODO: the test finds something and yet we can not jump there
|
a: _REC {declaration:GENI_2B1._REC};
|
||||||
b0: TFldI0 {declaration:GENI_2B1.TFldI0};
|
b0: TFldI0 {declaration:GENI_2B1.TFldI0};
|
||||||
b1: TFldI1 {declaration:GENI_2B1.TFldI1};
|
b1: TFldI1 {declaration:GENI_2B1.TFldI1};
|
||||||
b2: TFldI2 {declaration:GENI_2B1.TFldI2};
|
b2: TFldI2 {declaration:GENI_2B1.TFldI2};
|
||||||
@ -759,15 +759,15 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_1.fv} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
fv{declaration:GENB_1.fv} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
|
|
||||||
fy{declaration:GENI_2B1.TFldI3.fy}.r3a{ TODO: declaration:TClass1.TRec3.r3a} := 1;
|
fy{declaration:GENI_2B1.TFldI3.fy}.r3a{ TODO: declaration:TClass1.TRec3.r3a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r3a{declaration:TClass1.TRec3.r3a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r3a{declaration:TClass1.TRec3.r3a} := 1;
|
||||||
|
|
||||||
b0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
b0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
b2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO declaration:TClass1.TRec2.r2a} := 1;
|
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -784,15 +784,15 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
a1: TFldB1 {declaration:GENB_1.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
a2: TFldB2 {declaration:GENB_1.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_1.fv} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
fv{declaration:GENB_1.fv} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
fIv{declaration:GENI_2B1.fIv} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
fIv{declaration:GENI_2B1.fIv} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
fx{declaration:GENB_1.fx} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
fx{declaration:GENB_1.fx} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
fIx{declaration:GENI_2B1.fIx} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
fIx{declaration:GENI_2B1.fIx} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
|
|
||||||
b0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
b0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
b2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO declaration:TClass1.TRec2.r2a} := 1;
|
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2B1._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2B1._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{ TODO declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -801,7 +801,7 @@ end;
|
|||||||
|
|
||||||
procedure GENI_2.TFldI0.Foo;
|
procedure GENI_2.TFldI0.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO declaration:GENI_2._REC};
|
a: _REC {declaration:GENI_2._REC};
|
||||||
b0: TFldI0 {declaration:GENI_2.TFldI0};
|
b0: TFldI0 {declaration:GENI_2.TFldI0};
|
||||||
b1: TFldI1 {declaration:GENI_2.TFldI1};
|
b1: TFldI1 {declaration:GENI_2.TFldI1};
|
||||||
b2: TFldI2 {declaration:GENI_2.TFldI2};
|
b2: TFldI2 {declaration:GENI_2.TFldI2};
|
||||||
@ -809,16 +809,16 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_2.fv} := default(_REC { TODO: declaration:GENI_2._REC} );
|
fv{declaration:GENB_2.fv} := default(_REC {declaration:GENI_2._REC} );
|
||||||
fIv{declaration:GENI_2.fIv} := default(_REC { TODO: declaration:GENI_2._REC} );
|
fIv{declaration:GENI_2.fIv} := default(_REC {declaration:GENI_2._REC} );
|
||||||
|
|
||||||
fy{declaration:GENI_2.TFldI0.fy} := default(_REC { TODO: declaration:GENI_2._REC} );
|
fy{declaration:GENI_2.TFldI0.fy} := default(_REC {declaration:GENI_2._REC} );
|
||||||
FField1{ TODO declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2._REC} );
|
FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2._REC} );
|
||||||
|
|
||||||
b0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2._REC} );
|
b0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2._REC} );
|
||||||
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -827,7 +827,7 @@ end;
|
|||||||
|
|
||||||
procedure GENI_2.TFldI1.Foo;
|
procedure GENI_2.TFldI1.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG: declaration:GENI_2._REC}; // TODO: the test finds it and yet we can not jump there
|
a: _REC {declaration:GENI_2._REC};
|
||||||
b0: TFldI0 {declaration:GENI_2.TFldI0};
|
b0: TFldI0 {declaration:GENI_2.TFldI0};
|
||||||
b1: TFldI1 {declaration:GENI_2.TFldI1};
|
b1: TFldI1 {declaration:GENI_2.TFldI1};
|
||||||
b2: TFldI2 {declaration:GENI_2.TFldI2};
|
b2: TFldI2 {declaration:GENI_2.TFldI2};
|
||||||
@ -835,16 +835,16 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_2.fv} := default(_REC { TODO: declaration:GENI_2._REC} );
|
fv{declaration:GENB_2.fv} := default(_REC {declaration:GENI_2._REC} );
|
||||||
fIv{declaration:GENI_2.fIv} := default(_REC { TODO: declaration:GENI_2._REC} );
|
fIv{declaration:GENI_2.fIv} := default(_REC {declaration:GENI_2._REC} );
|
||||||
|
|
||||||
fy{declaration:GENI_2.TFldI1.fy}.r1a{ TODO: declaration:TRec1.r1a} := 1;
|
fy{declaration:GENI_2.TFldI1.fy}.r1a{ TODO: declaration:TRec1.r1a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
|
|
||||||
b0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2._REC} );
|
b0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2._REC} );
|
||||||
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -853,7 +853,7 @@ end;
|
|||||||
|
|
||||||
procedure GENI_2.TFldI2.Foo;
|
procedure GENI_2.TFldI2.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG declaration:GENI_2._REC}; // TODO: the test finds something and yet we can not jump there
|
a: _REC {declaration:GENI_2._REC};
|
||||||
b0: TFldI0 {declaration:GENI_2.TFldI0};
|
b0: TFldI0 {declaration:GENI_2.TFldI0};
|
||||||
b1: TFldI1 {declaration:GENI_2.TFldI1};
|
b1: TFldI1 {declaration:GENI_2.TFldI1};
|
||||||
b2: TFldI2 {declaration:GENI_2.TFldI2};
|
b2: TFldI2 {declaration:GENI_2.TFldI2};
|
||||||
@ -861,16 +861,16 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_2.fv} := default(_REC { TODO: declaration:GENI_2._REC} );
|
fv{declaration:GENB_2.fv} := default(_REC {declaration:GENI_2._REC} );
|
||||||
fIv{declaration:GENI_2.fIv} := default(_REC { TODO: declaration:GENI_2._REC} );
|
fIv{declaration:GENI_2.fIv} := default(_REC {declaration:GENI_2._REC} );
|
||||||
|
|
||||||
fy{declaration:GENI_2.TFldI2.fy}.r2a{ TODO: declaration:TClass1.TRec2.r2a} := 1;
|
fy{declaration:GENI_2.TFldI2.fy}.r2a{ TODO: declaration:TClass1.TRec2.r2a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
|
|
||||||
b0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2._REC} );
|
b0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2._REC} );
|
||||||
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -879,7 +879,7 @@ end;
|
|||||||
|
|
||||||
procedure GENI_2.TFldI3.Foo;
|
procedure GENI_2.TFldI3.Foo;
|
||||||
var
|
var
|
||||||
a: _REC { TODO,WRONG declaration:GENI_2._REC}; // TODO: the test finds something and yet we can not jump there
|
a: _REC {declaration:GENI_2._REC};
|
||||||
b0: TFldI0 {declaration:GENI_2.TFldI0};
|
b0: TFldI0 {declaration:GENI_2.TFldI0};
|
||||||
b1: TFldI1 {declaration:GENI_2.TFldI1};
|
b1: TFldI1 {declaration:GENI_2.TFldI1};
|
||||||
b2: TFldI2 {declaration:GENI_2.TFldI2};
|
b2: TFldI2 {declaration:GENI_2.TFldI2};
|
||||||
@ -887,15 +887,15 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_2.fv} := default(_REC { TODO: declaration:GENI_2._REC} );
|
fv{declaration:GENB_2.fv} := default(_REC {declaration:GENI_2._REC} );
|
||||||
|
|
||||||
fy{declaration:GENI_2.TFldI3.fy}.r3a{ TODO: declaration:TClass1.TRec3.r3a} := 1;
|
fy{declaration:GENI_2.TFldI3.fy}.r3a{ TODO: declaration:TClass1.TRec3.r3a} := 1;
|
||||||
FField1{declaration:GEN_Field.FField1}.r3a{declaration:TClass1.TRec3.r3a} := 1;
|
FField1{declaration:GEN_Field.FField1}.r3a{declaration:TClass1.TRec3.r3a} := 1;
|
||||||
|
|
||||||
b0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2._REC} );
|
b0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2._REC} );
|
||||||
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
@ -912,15 +912,15 @@ var
|
|||||||
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
a1: TFldB1 {declaration:GENB_2.TFldB1};
|
||||||
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
a2: TFldB2 {declaration:GENB_2.TFldB2};
|
||||||
begin
|
begin
|
||||||
fv{declaration:GENB_2.fv} := default(_REC { TODO: declaration:GENI_2._REC} );
|
fv{declaration:GENB_2.fv} := default(_REC {declaration:GENI_2._REC} );
|
||||||
fIv{declaration:GENI_2.fIv} := default(_REC { TODO: declaration:GENI_2._REC} );
|
fIv{declaration:GENI_2.fIv} := default(_REC {declaration:GENI_2._REC} );
|
||||||
fx{declaration:GENB_2.fx} := default(_REC { TODO: declaration:GENI_2._REC} );
|
fx{declaration:GENB_2.fx} := default(_REC {declaration:GENI_2._REC} );
|
||||||
fIx{declaration:GENI_2.fIx} := default(_REC { TODO: declaration:GENI_2._REC} );
|
fIx{declaration:GENI_2.fIx} := default(_REC {declaration:GENI_2._REC} );
|
||||||
|
|
||||||
b0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2._REC} );
|
b0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2._REC} );
|
||||||
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
b1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
b2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
a0.FField1{declaration:GEN_Field.FField1} := default(_REC { TODO: declaration:GENI_2._REC} );
|
a0.FField1{declaration:GEN_Field.FField1} := default(_REC {declaration:GENI_2._REC} );
|
||||||
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
a1.FField1{declaration:GEN_Field.FField1}.r1a{declaration:TRec1.r1a} := 1;
|
||||||
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
a2.FField1{declaration:GEN_Field.FField1}.r2a{declaration:TClass1.TRec2.r2a} := 1;
|
||||||
end;
|
end;
|
||||||
|
@ -209,6 +209,15 @@ begin
|
|||||||
FindDeclarations(aCode);
|
FindDeclarations(aCode);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
type
|
||||||
|
TFindDeclarationToolHelper = class helper for TFindDeclarationTool
|
||||||
|
procedure ClearNodeCaches;
|
||||||
|
end;
|
||||||
|
procedure TFindDeclarationToolHelper.ClearNodeCaches;
|
||||||
|
begin
|
||||||
|
inherited ClearNodeCaches;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCustomTestFindDeclaration.FindDeclarations(aCode: TCodeBuffer);
|
procedure TCustomTestFindDeclaration.FindDeclarations(aCode: TCodeBuffer);
|
||||||
|
|
||||||
procedure PrependPath(Prefix: string; var Path: string);
|
procedure PrependPath(Prefix: string; var Path: string);
|
||||||
@ -270,7 +279,7 @@ var
|
|||||||
FoundPath: String;
|
FoundPath: String;
|
||||||
Src: String;
|
Src: String;
|
||||||
NameStartPos, i, l, IdentifierStartPos, IdentifierEndPos,
|
NameStartPos, i, l, IdentifierStartPos, IdentifierEndPos,
|
||||||
BlockTopLine, BlockBottomLine, CommentEnd, StartOffs: Integer;
|
BlockTopLine, BlockBottomLine, CommentEnd, StartOffs, TestLoop: Integer;
|
||||||
Marker, ExpectedType, NewType, ExpexctedCompletion, ExpexctedTerm,
|
Marker, ExpectedType, NewType, ExpexctedCompletion, ExpexctedTerm,
|
||||||
ExpexctedCompletionPart, ExpexctedTermPart: String;
|
ExpexctedCompletionPart, ExpexctedTermPart: String;
|
||||||
IdentItem: TIdentifierListItem;
|
IdentItem: TIdentifierListItem;
|
||||||
@ -281,14 +290,21 @@ var
|
|||||||
begin
|
begin
|
||||||
FMainCode:=aCode;
|
FMainCode:=aCode;
|
||||||
DoParseModule(MainCode,FMainTool);
|
DoParseModule(MainCode,FMainTool);
|
||||||
CommentP:=1;
|
|
||||||
Src:=MainTool.Src;
|
Src:=MainTool.Src;
|
||||||
|
|
||||||
CodeToolBoss.IdentComplIncludeKeywords := False;
|
CodeToolBoss.IdentComplIncludeKeywords := False;
|
||||||
if pos('{%identcomplincludekeywords:on}', LowerCase(Src)) > 0 then
|
if pos('{%identcomplincludekeywords:on}', LowerCase(Src)) > 0 then
|
||||||
CodeToolBoss.IdentComplIncludeKeywords := True;
|
CodeToolBoss.IdentComplIncludeKeywords := True;
|
||||||
|
|
||||||
|
for TestLoop := 0 to 2 do begin
|
||||||
|
// Pass 1: Eval with cache from previous run
|
||||||
|
CommentP:=1;
|
||||||
while CommentP<length(Src) do begin
|
while CommentP<length(Src) do begin
|
||||||
|
if TestLoop = 2 then begin // Pass 2: Eval each test, with an empty cache
|
||||||
|
CodeToolBoss.CurCodeTool.ClearNodeCaches;
|
||||||
|
MainTool.ClearNodeCaches;
|
||||||
|
end;
|
||||||
|
|
||||||
CommentP:=FindNextComment(Src,CommentP);
|
CommentP:=FindNextComment(Src,CommentP);
|
||||||
if CommentP>length(Src) then break;
|
if CommentP>length(Src) then break;
|
||||||
p:=CommentP;
|
p:=CommentP;
|
||||||
@ -319,6 +335,7 @@ begin
|
|||||||
NameStartPos:=p;
|
NameStartPos:=p;
|
||||||
while IsIdentChar[Src[p]] do inc(p);
|
while IsIdentChar[Src[p]] do inc(p);
|
||||||
Marker:=copy(Src,NameStartPos,p-NameStartPos);
|
Marker:=copy(Src,NameStartPos,p-NameStartPos);
|
||||||
|
if TestLoop=0 then
|
||||||
AddMarker(Marker,Src[NameStartPos],CommentP,IdentifierStartPos,IdentifierEndPos);
|
AddMarker(Marker,Src[NameStartPos],CommentP,IdentifierStartPos,IdentifierEndPos);
|
||||||
continue;
|
continue;
|
||||||
end;
|
end;
|
||||||
@ -367,7 +384,7 @@ begin
|
|||||||
//if ErrorTool<>MainTool then
|
//if ErrorTool<>MainTool then
|
||||||
// WriteSource(,ErrorTool);
|
// WriteSource(,ErrorTool);
|
||||||
WriteSource(IdentifierStartPos,MainTool);
|
WriteSource(IdentifierStartPos,MainTool);
|
||||||
Fail('find declaration failed at '+MainTool.CleanPosToStr(IdentifierStartPos,true)+': '+CodeToolBoss.ErrorMessage);
|
Fail('find declaration (Loop: '+IntToStr(TestLoop)+') failed at '+MainTool.CleanPosToStr(IdentifierStartPos,true)+': '+CodeToolBoss.ErrorMessage);
|
||||||
end;
|
end;
|
||||||
continue;
|
continue;
|
||||||
end else begin
|
end else begin
|
||||||
@ -388,7 +405,7 @@ begin
|
|||||||
//debugln(['TTestFindDeclaration.FindDeclarations FoundPath=',FoundPath]);
|
//debugln(['TTestFindDeclaration.FindDeclarations FoundPath=',FoundPath]);
|
||||||
if LowerCase(ExpectedPath)<>LowerCase(FoundPath) then begin
|
if LowerCase(ExpectedPath)<>LowerCase(FoundPath) then begin
|
||||||
WriteSource(IdentifierStartPos,MainTool);
|
WriteSource(IdentifierStartPos,MainTool);
|
||||||
AssertEquals('find declaration wrong at '+MainTool.CleanPosToStr(IdentifierStartPos,true),LowerCase(ExpectedPath),LowerCase(FoundPath));
|
AssertEquals('find declaration (Loop: '+IntToStr(TestLoop)+') wrong at '+MainTool.CleanPosToStr(IdentifierStartPos,true),LowerCase(ExpectedPath),LowerCase(FoundPath));
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -414,7 +431,7 @@ begin
|
|||||||
then begin
|
then begin
|
||||||
if ExpexctedCompletion<>'' then begin
|
if ExpexctedCompletion<>'' then begin
|
||||||
WriteSource(StartOffs,MainTool);
|
WriteSource(StartOffs,MainTool);
|
||||||
AssertEquals('GatherIdentifiers failed at '+MainTool.CleanPosToStr(StartOffs,true)+': '+CodeToolBoss.ErrorMessage,false,true);
|
AssertEquals('GatherIdentifiers (Loop: '+IntToStr(TestLoop)+') failed at '+MainTool.CleanPosToStr(StartOffs,true)+': '+CodeToolBoss.ErrorMessage,false,true);
|
||||||
end;
|
end;
|
||||||
continue;
|
continue;
|
||||||
end else begin
|
end else begin
|
||||||
@ -461,13 +478,13 @@ begin
|
|||||||
NewExprType, NewType)
|
NewExprType, NewType)
|
||||||
then begin
|
then begin
|
||||||
if ExpectedType<>'' then
|
if ExpectedType<>'' then
|
||||||
AssertEquals('GuessTypeOfIdentifier failed at '+MainTool.CleanPosToStr(IdentifierStartPos,true)+': '+CodeToolBoss.ErrorMessage,false,true);
|
AssertEquals('GuessTypeOfIdentifier (Loop: '+IntToStr(TestLoop)+') failed at '+MainTool.CleanPosToStr(IdentifierStartPos,true)+': '+CodeToolBoss.ErrorMessage,false,true);
|
||||||
continue;
|
continue;
|
||||||
end else begin
|
end else begin
|
||||||
//debugln(['TTestFindDeclaration.FindDeclarations FoundPath=',FoundPath]);
|
//debugln(['TTestFindDeclaration.FindDeclarations FoundPath=',FoundPath]);
|
||||||
if LowerCase(ExpectedType)<>LowerCase(NewType) then begin
|
if LowerCase(ExpectedType)<>LowerCase(NewType) then begin
|
||||||
WriteSource(IdentifierStartPos,MainTool);
|
WriteSource(IdentifierStartPos,MainTool);
|
||||||
AssertEquals('GuessTypeOfIdentifier wrong at '+MainTool.CleanPosToStr(IdentifierStartPos,true),LowerCase(ExpectedType),LowerCase(NewType));
|
AssertEquals('GuessTypeOfIdentifier (Loop: '+IntToStr(TestLoop)+') wrong at '+MainTool.CleanPosToStr(IdentifierStartPos,true),LowerCase(ExpectedType),LowerCase(NewType));
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
@ -481,6 +498,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
until CommentP >= CommentEnd;
|
until CommentP >= CommentEnd;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
CheckReferenceMarkers;
|
CheckReferenceMarkers;
|
||||||
CodeToolBoss.IdentComplIncludeKeywords := False;
|
CodeToolBoss.IdentComplIncludeKeywords := False;
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user