mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-22 16:19:36 +02:00
CodeTools: fix guesstype (type for declaration) with generics.
This commit is contained in:
parent
0b3e17d77b
commit
84e5a5ba02
@ -182,8 +182,8 @@ type
|
||||
public
|
||||
BaseNode: TCodeTreeNode; // final base type
|
||||
BaseTool: TPascalParserTool;
|
||||
NextNode: TCodeTreeNode; // next node on path to the BaseNode
|
||||
NextTool: TPascalParserTool;
|
||||
AliasNode: TCodeTreeNode; // alias "type T1 = T2;"
|
||||
AliasTool: TPascalParserTool;
|
||||
NextCache: TBaseTypeCache; // used for mem manager
|
||||
Owner: TCodeTreeNode;
|
||||
procedure BindToOwner(NewOwner: TCodeTreeNode);
|
||||
@ -274,6 +274,8 @@ type
|
||||
TCodeTreeNodeStackEntry = record
|
||||
Tool: TPascalParserTool;
|
||||
Node: TCodeTreeNode;
|
||||
AliasTool: TPascalParserTool;
|
||||
AliasNode: TCodeTreeNode;
|
||||
end;
|
||||
PCodeTreeNodeStackEntry = ^TCodeTreeNodeStackEntry;
|
||||
|
||||
@ -1223,6 +1225,8 @@ begin
|
||||
end;
|
||||
Entry^.Tool:=NewTool;
|
||||
Entry^.Node:=NewNode;
|
||||
Entry^.AliasTool:=nil;
|
||||
Entry^.AliasNode:=nil;
|
||||
end;
|
||||
|
||||
function NodeExistsInStack(NodeStack: PCodeTreeNodeStack;
|
||||
|
@ -5362,6 +5362,8 @@ var
|
||||
end;
|
||||
end;
|
||||
|
||||
var NewAliasNode: TCodeTreeNode;
|
||||
|
||||
procedure CheckResult(var Context: TFindContext);
|
||||
var
|
||||
ResultNode: TCodeTreeNode;
|
||||
@ -5369,28 +5371,29 @@ var
|
||||
AliasContext: TFindContext;
|
||||
Cache: TBaseTypeCache;
|
||||
begin
|
||||
if (NodeStack<>nil) and (NodeStack<>@MyNodeStack) then exit; // will be handled by caller
|
||||
|
||||
if (Context.Node<>nil) and (Context.Node.Desc in [ctnProcedure,ctnProcedureHead])
|
||||
and (fdfFunctionResult in Params.Flags) then begin
|
||||
// Note: do not resolve a constructor here
|
||||
// because TMyClass.Create should return TMyClass
|
||||
// and not TObject, where the Create is defined
|
||||
// a proc -> if this is a function then return the Context type
|
||||
//debugln(['TFindDeclarationTool.FindBaseTypeOfNode checking function Context: ',Context.Tool.ExtractNode(Context.Node,[])]);
|
||||
Context.Tool.BuildSubTreeForProcHead(Context.Node,ResultNode);
|
||||
if (ResultNode<>nil) then begin
|
||||
// a function or an overloaded operator
|
||||
// search further for the base type of the function Context type
|
||||
OldFlags:=Params.Flags;
|
||||
Exclude(Params.Flags,fdfFunctionResult);
|
||||
//debugln(['TFindDeclarationTool.FindBaseTypeOfNode searching for function Context type: ',Context.Tool.ExtractNode(DummyNode,[])]);
|
||||
Context:=Context.Tool.FindBaseTypeOfNode(Params,ResultNode,AliasType);
|
||||
AliasType:=nil; // aliasing has been done
|
||||
Params.Flags:=OldFlags;
|
||||
exit;
|
||||
if not( (NodeStack<>nil) and (NodeStack<>@MyNodeStack) )then begin // will be handled by caller
|
||||
if (Context.Node<>nil) and (Context.Node.Desc in [ctnProcedure,ctnProcedureHead])
|
||||
and (fdfFunctionResult in Params.Flags) then begin
|
||||
// Note: do not resolve a constructor here
|
||||
// because TMyClass.Create should return TMyClass
|
||||
// and not TObject, where the Create is defined
|
||||
// a proc -> if this is a function then return the Context type
|
||||
//debugln(['TFindDeclarationTool.FindBaseTypeOfNode checking function Context: ',Context.Tool.ExtractNode(Context.Node,[])]);
|
||||
Context.Tool.BuildSubTreeForProcHead(Context.Node,ResultNode);
|
||||
if (ResultNode<>nil) then begin
|
||||
// a function or an overloaded operator
|
||||
// search further for the base type of the function Context type
|
||||
OldFlags:=Params.Flags;
|
||||
Exclude(Params.Flags,fdfFunctionResult);
|
||||
//debugln(['TFindDeclarationTool.FindBaseTypeOfNode searching for function Context type: ',Context.Tool.ExtractNode(DummyNode,[])]);
|
||||
Context:=Context.Tool.FindBaseTypeOfNode(Params,ResultNode,AliasType);
|
||||
AliasType:=nil; // aliasing has been done
|
||||
Params.Flags:=OldFlags;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
if (Context.Node=nil) and (fdfExceptionOnNotFound in Params.Flags) then begin
|
||||
if (Context.Tool<>nil) and (Params.Identifier<>nil) then begin
|
||||
|
||||
@ -5402,27 +5405,11 @@ var
|
||||
end;
|
||||
RaiseBaseTypeOfNotFound;
|
||||
end;
|
||||
if AliasType<>nil then begin
|
||||
// follow the base type chain to the first type
|
||||
// for example: var d: TDateTime; use TDateTime, instead of Double.
|
||||
AliasContext.Node:=Node;
|
||||
|
||||
if (AliasType<>nil) and (NewAliasNode <> nil) then begin
|
||||
AliasContext.Node:=NewAliasNode;
|
||||
AliasContext.Tool:=Self;
|
||||
while AliasContext.Node<>nil do begin
|
||||
if AliasContext.Node.Desc in [ctnTypeDefinition,ctnGenericType] then begin
|
||||
{$IF defined(ShowExprEval) or defined(ShowTriedBaseContexts)}
|
||||
debugln(['TFindDeclarationTool.FindBaseTypeOfNode.CheckResult using alias ',AliasContext.Tool.ExtractDefinitionName(AliasContext.Node),' instead of base type ',Context.Node.DescAsString]);
|
||||
{$ENDIF}
|
||||
AliasType^:=AliasContext;
|
||||
exit;
|
||||
end;
|
||||
if AliasContext.Node.Cache is TBaseTypeCache then begin
|
||||
Cache:=TBaseTypeCache(AliasContext.Node.Cache);
|
||||
if AliasContext.Node=Cache.NextNode then break;
|
||||
AliasContext.Node:=Cache.NextNode;
|
||||
AliasContext.Tool:=TFindDeclarationTool(Cache.NextTool);
|
||||
end else
|
||||
break;
|
||||
end;
|
||||
AliasType^ := AliasContext;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -5430,17 +5417,23 @@ var
|
||||
OldInput: TFindDeclarationInput;
|
||||
ClassIdentNode: TCodeTreeNode;
|
||||
TestContext: TFindContext;
|
||||
OldPos: integer;
|
||||
OldPos, i: integer;
|
||||
SpecializeNode: TCodeTreeNode;
|
||||
NameNode: TCodeTreeNode;
|
||||
IsPredefined: boolean;
|
||||
OldStartFlags: TFindDeclarationFlags;
|
||||
NodeStackEntry: PCodeTreeNodeStackEntry;
|
||||
begin
|
||||
NewAliasNode := nil;
|
||||
{$IFDEF CheckNodeTool}CheckNodeTool(Node);{$ENDIF}
|
||||
//debugln(['TFindDeclarationTool.FindBaseTypeOfNode Flags=[',dbgs(Params.Flags),'] CacheValid=',Node.Cache is TBaseTypeCache]);
|
||||
if (Node<>nil) and (Node.Cache is TBaseTypeCache) then begin
|
||||
// base type already cached
|
||||
Result:=CreateFindContext(TBaseTypeCache(Node.Cache));
|
||||
if AliasType <> nil then begin
|
||||
AliasType^.Tool := TFindDeclarationTool(TBaseTypeCache(Node.Cache).AliasTool);
|
||||
AliasType^.Node := TBaseTypeCache(Node.Cache).AliasNode;
|
||||
end;
|
||||
CheckResult(Result);
|
||||
exit;
|
||||
end;
|
||||
@ -5460,6 +5453,11 @@ begin
|
||||
if NodeStack^.StackPtr>=0 then
|
||||
AddNodeToStack(NodeStack,Result.Tool,Result.Node);
|
||||
Result:=CreateFindContext(TBaseTypeCache(Result.Node.Cache));
|
||||
// May be replaced with NewAliasNode
|
||||
if AliasType <> nil then begin
|
||||
AliasType^.Tool := TFindDeclarationTool(TBaseTypeCache(Result.Node.Cache).AliasTool);
|
||||
AliasType^.Node := TBaseTypeCache(Result.Node.Cache).AliasNode;
|
||||
end;
|
||||
break;
|
||||
end;
|
||||
{$IFDEF ShowTriedBaseContexts}
|
||||
@ -5482,6 +5480,21 @@ begin
|
||||
|
||||
AddNodeToStack(NodeStack,Result.Tool,Result.Node);
|
||||
|
||||
if Result.Node.Desc in [ctnTypeDefinition,ctnGenericType] then begin
|
||||
if NewAliasNode = nil then NewAliasNode := Result.Node;
|
||||
|
||||
i := NodeStack^.StackPtr-1;
|
||||
while i >= 0 do begin
|
||||
NodeStackEntry := GetNodeStackEntry(NodeStack, i);
|
||||
if (NodeStackEntry^.AliasTool <> nil)
|
||||
or (NodeStackEntry^.Node.Desc in [ctnTypeDefinition,ctnGenericType]) then
|
||||
break;
|
||||
NodeStackEntry^.AliasTool := Self;
|
||||
NodeStackEntry^.AliasNode := Result.Node;
|
||||
dec(i);
|
||||
end;
|
||||
end;
|
||||
|
||||
if (Result.Node.Desc in (AllSimpleIdentifierDefinitions+[ctnGenericType]))
|
||||
then begin
|
||||
// instead of variable/const/type definition, return the type
|
||||
@ -5666,7 +5679,10 @@ begin
|
||||
if NodeStack=@MyNodeStack then begin
|
||||
// cache the result in all nodes
|
||||
// do not cache the result of generic type
|
||||
if not Assigned(Params.GenParams.ParamValuesTool) then
|
||||
if (not Assigned(Params.GenParams.ParamValuesTool))
|
||||
and (not (fdfDoNotCache in Params.Flags))
|
||||
and (not (fodDoNotCache in Params.NewFlags))
|
||||
then
|
||||
CreateBaseTypeCaches(NodeStack,Result);
|
||||
// free node stack
|
||||
FinalizeNodeStack(NodeStack);
|
||||
@ -12701,19 +12717,14 @@ begin
|
||||
{$IFDEF ShowBaseTypeCache}
|
||||
DebugLn(' i=',DbgS(i),' Node=',Entry^.Node.DescAsString,' "',copy(Entry^.Tool.Src,Entry^.Node.StartPos,15),'"');
|
||||
{$ENDIF}
|
||||
if Entry^.AliasNode = nil then continue;
|
||||
BaseTypeCache:=
|
||||
CreateNewBaseTypeCache(TFindDeclarationTool(Entry^.Tool),Entry^.Node);
|
||||
if BaseTypeCache<>nil then begin
|
||||
BaseTypeCache.BaseNode:=Result.Node;
|
||||
BaseTypeCache.BaseTool:=Result.Tool;
|
||||
if i<NodeStack^.StackPtr then begin
|
||||
NextEntry:=GetNodeStackEntry(NodeStack,i+1);
|
||||
BaseTypeCache.NextNode:=NextEntry^.Node;
|
||||
BaseTypeCache.NextTool:=NextEntry^.Tool;
|
||||
end else begin
|
||||
BaseTypeCache.NextNode:=Result.Node;
|
||||
BaseTypeCache.NextTool:=Result.Tool;
|
||||
end;
|
||||
BaseTypeCache.AliasNode:=Entry^.AliasNode;
|
||||
BaseTypeCache.AliasTool:=Entry^.AliasTool;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
@ -122,17 +122,16 @@ procedure TCodyNodeInfoDialog.ReportBaseTypeCache(Report: TStringList;
|
||||
var
|
||||
Cache: TBaseTypeCache;
|
||||
BaseContext: TFindContext;
|
||||
LastBaseContext: TFindContext;
|
||||
LastBaseContext, AliasContext, LastAliasContext: TFindContext;
|
||||
i: Integer;
|
||||
Visited: TFPList;
|
||||
NextTool: TFindDeclarationTool;
|
||||
NextNode: TCodeTreeNode;
|
||||
begin
|
||||
LastBaseContext:=CleanFindContext;
|
||||
LastAliasContext:=CleanFindContext;
|
||||
i:=0;
|
||||
Visited:=TFPList.Create;
|
||||
try
|
||||
while Node<>nil do begin
|
||||
if Node<>nil then begin
|
||||
inc(i);
|
||||
ReportNode(dbgs(i)+': ',Tool,Node);
|
||||
if not (Node.Cache is TBaseTypeCache) then begin
|
||||
@ -150,19 +149,11 @@ begin
|
||||
ReportNode(' Base: ',BaseContext.Tool,BaseContext.Node);
|
||||
LastBaseContext:=BaseContext;
|
||||
end;
|
||||
|
||||
NextTool:=TFindDeclarationTool(Cache.NextTool);
|
||||
NextNode:=Cache.NextNode;
|
||||
if (NextNode<>nil) and (NextTool=nil) then begin
|
||||
Report.Add('Error: node without tool: Cache.NextTool=nil, Cache.NextNode='+NextNode.DescAsString);
|
||||
exit;
|
||||
AliasContext:=CreateFindContext(TFindDeclarationTool(Cache.AliasTool),Cache.AliasNode);
|
||||
if CompareFindContexts(@LastAliasContext,@AliasContext)<>0 then begin
|
||||
ReportNode(' Alias: ',AliasContext.Tool,AliasContext.Node);
|
||||
LastAliasContext:=AliasContext;
|
||||
end;
|
||||
if NextNode=Node then begin
|
||||
// base node reached
|
||||
exit;
|
||||
end;
|
||||
Node:=NextNode;
|
||||
Tool:=NextTool;
|
||||
end;
|
||||
finally
|
||||
Visited.Free;
|
||||
|
@ -579,8 +579,8 @@ end;
|
||||
|
||||
procedure GEN_TField1.FieldGenProc;
|
||||
begin
|
||||
FField1.MyBaseOnlyProc{ TODO declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField1.MyBaseAndMyClassProc1{ TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField1.MyBaseOnlyProc{declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField1.MyBaseAndMyClassProc1{declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
{$IFDEF WRONG}
|
||||
FField1.MyClassSubProc{declaration:};
|
||||
{$ENDIF}
|
||||
@ -682,11 +682,11 @@ begin
|
||||
FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField1.FField1.FMySub {declaration:TMyClassSub.FMySub} := 1;
|
||||
|
||||
FField3.FField1.MyBaseOnlyProc { TODO declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField3.FField1.MyClassSubProc { TODO declaration:TMyClassSub.MyClassSubProc};
|
||||
FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField3.FField1.FMySub { TODO declaration:TMyClassSub.FMySub} := 1;
|
||||
FField3.FField1.MyBaseOnlyProc {declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField3.FField1.MyClassSubProc {declaration:TMyClassSub.MyClassSubProc};
|
||||
FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField3.FField1.FMySub {declaration:TMyClassSub.FMySub} := 1;
|
||||
|
||||
FField5.FField1.MyBaseOnlyProc {declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
@ -706,11 +706,11 @@ begin
|
||||
FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField1.FField1.FMySub {declaration:TMyClassSub.FMySub} := 1;
|
||||
|
||||
FField3.FField1.MyBaseOnlyProc { TODO declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField3.FField1.MyClassSubProc { TODO declaration:TMyClassSub.MyClassSubProc};
|
||||
FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField3.FField1.FMySub { TODO declaration:TMyClassSub.FMySub} := 1;
|
||||
FField3.FField1.MyBaseOnlyProc {declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField3.FField1.MyClassSubProc {declaration:TMyClassSub.MyClassSubProc};
|
||||
FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField3.FField1.FMySub {declaration:TMyClassSub.FMySub} := 1;
|
||||
|
||||
FField5.FField1.MyBaseOnlyProc {declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
@ -743,9 +743,9 @@ begin
|
||||
FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField1.FField1.FMySub {declaration:TMyClassSub.FMySub} := 1;
|
||||
|
||||
FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField3.FField1.FMySub { TODO declaration:TMyClassSub.FMySub} := 1;
|
||||
FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField3.FField1.FMySub {declaration:TMyClassSub.FMySub} := 1;
|
||||
|
||||
FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField5.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
@ -758,9 +758,9 @@ begin
|
||||
FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField1.FField1.FMySub {declaration:TMyClassSub.FMySub} := 1;
|
||||
|
||||
FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField3.FField1.FMySub { TODO declaration:TMyClassSub.FMySub} := 1;
|
||||
FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField3.FField1.FMySub {declaration:TMyClassSub.FMySub} := 1;
|
||||
|
||||
FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField5.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
@ -783,17 +783,17 @@ begin
|
||||
FField2.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField2.FField1.FMySub {declaration:TMyClassSub.FMySub} := 1;
|
||||
|
||||
FField3.FField1.MyBaseOnlyProc { TODO declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField3.FField1.MyClassSubProc { TODO declaration:TMyClassSub.MyClassSubProc};
|
||||
FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField3.FField1.FMySub { TODO declaration:TMyClassSub.FMySub} := 1;
|
||||
FField3.FField1.MyBaseOnlyProc {declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField3.FField1.MyClassSubProc {declaration:TMyClassSub.MyClassSubProc};
|
||||
FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField3.FField1.FMySub {declaration:TMyClassSub.FMySub} := 1;
|
||||
|
||||
FField4.FField1.MyBaseOnlyProc { TODO declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField4.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField4.FField1.MyClassSubProc { TODO declaration:TMyClassSub.MyClassSubProc};
|
||||
FField4.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField4.FField1.FMySub { TODO declaration:TMyClassSub.FMySub} := 1;
|
||||
FField4.FField1.MyBaseOnlyProc {declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField4.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField4.FField1.MyClassSubProc {declaration:TMyClassSub.MyClassSubProc};
|
||||
FField4.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField4.FField1.FMySub {declaration:TMyClassSub.FMySub} := 1;
|
||||
|
||||
FField5.FField1.MyBaseOnlyProc {declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
@ -825,17 +825,17 @@ begin
|
||||
FField2.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField2.FField1.FMySub {declaration:TMyClassSub.FMySub} := 1;
|
||||
|
||||
FField3.FField1.MyBaseOnlyProc { TODO declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField3.FField1.MyClassSubProc { TODO declaration:TMyClassSub.MyClassSubProc};
|
||||
FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField3.FField1.FMySub { TODO declaration:TMyClassSub.FMySub} := 1;
|
||||
FField3.FField1.MyBaseOnlyProc {declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField3.FField1.MyClassSubProc {declaration:TMyClassSub.MyClassSubProc};
|
||||
FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField3.FField1.FMySub {declaration:TMyClassSub.FMySub} := 1;
|
||||
|
||||
FField4.FField1.MyBaseOnlyProc { TODO declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField4.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField4.FField1.MyClassSubProc { TODO declaration:TMyClassSub.MyClassSubProc};
|
||||
FField4.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField4.FField1.FMySub { TODO declaration:TMyClassSub.FMySub} := 1;
|
||||
FField4.FField1.MyBaseOnlyProc {declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField4.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
FField4.FField1.MyClassSubProc {declaration:TMyClassSub.MyClassSubProc};
|
||||
FField4.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
FField4.FField1.FMySub {declaration:TMyClassSub.FMySub} := 1;
|
||||
|
||||
FField5.FField1.MyBaseOnlyProc {declaration:TMyClassBase.MyBaseOnlyProc};
|
||||
FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
@ -925,10 +925,10 @@ begin
|
||||
Var1Test_Forw_Field1.FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var1Test_Forw_Field1.FField2.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
//Var1Test_Forw_Field1.FField2.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1Test_Forw_Field1.FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1Test_Forw_Field1.FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var1Test_Forw_Field1.FField4.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
//Var1Test_Forw_Field1.FField4.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1Test_Forw_Field1.FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1Test_Forw_Field1.FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var1Test_Forw_Field1.FField4.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
//Var1Test_Forw_Field1.FField4.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1Test_Forw_Field1.FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1Test_Forw_Field1.FField5.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var1Test_Forw_Field1.FField6.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
@ -938,10 +938,10 @@ begin
|
||||
Var1TestInherit_Forw_Field1.FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var1TestInherit_Forw_Field1.FField2.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
//Var1TestInherit_Forw_Field1.FField2.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInherit_Forw_Field1.FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInherit_Forw_Field1.FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var1TestInherit_Forw_Field1.FField4.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
//Var1TestInherit_Forw_Field1.FField4.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInherit_Forw_Field1.FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInherit_Forw_Field1.FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var1TestInherit_Forw_Field1.FField4.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
//Var1TestInherit_Forw_Field1.FField4.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInherit_Forw_Field1.FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInherit_Forw_Field1.FField5.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var1TestInherit_Forw_Field1.FField6.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
@ -951,10 +951,10 @@ begin
|
||||
Var1TestInline_Forw_Field1.FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var1TestInline_Forw_Field1.FField2.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
//Var1TestInline_Forw_Field1.FField2.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInline_Forw_Field1.FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInline_Forw_Field1.FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var1TestInline_Forw_Field1.FField4.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
//Var1TestInline_Forw_Field1.FField4.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInline_Forw_Field1.FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInline_Forw_Field1.FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var1TestInline_Forw_Field1.FField4.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
//Var1TestInline_Forw_Field1.FField4.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInline_Forw_Field1.FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInline_Forw_Field1.FField5.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var1TestInline_Forw_Field1.FField6.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
@ -971,22 +971,22 @@ begin
|
||||
|
||||
Var1Test_Forw_Field3.FField1.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1Test_Forw_Field3.FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1Test_Forw_Field3.FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1Test_Forw_Field3.FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1Test_Forw_Field3.FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1Test_Forw_Field3.FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1Test_Forw_Field3.FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1Test_Forw_Field3.FField5.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
|
||||
Var1TestInherit_Forw_Field3.FField1.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInherit_Forw_Field3.FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInherit_Forw_Field3.FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInherit_Forw_Field3.FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInherit_Forw_Field3.FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInherit_Forw_Field3.FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInherit_Forw_Field3.FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInherit_Forw_Field3.FField5.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
|
||||
Var1TestInline_Forw_Field3.FField1.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInline_Forw_Field3.FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInline_Forw_Field3.FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInline_Forw_Field3.FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInline_Forw_Field3.FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInline_Forw_Field3.FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInline_Forw_Field3.FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInline_Forw_Field3.FField5.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
|
||||
@ -994,10 +994,10 @@ begin
|
||||
Var1Test_Forw_TField1.FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1Test_Forw_TField1.FField2.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1Test_Forw_TField1.FField2.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1Test_Forw_TField1.FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1Test_Forw_TField1.FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1Test_Forw_TField1.FField4.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1Test_Forw_TField1.FField4.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1Test_Forw_TField1.FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1Test_Forw_TField1.FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1Test_Forw_TField1.FField4.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1Test_Forw_TField1.FField4.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1Test_Forw_TField1.FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1Test_Forw_TField1.FField5.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1Test_Forw_TField1.FField6.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
@ -1007,10 +1007,10 @@ begin
|
||||
Var1TestInherit_Forw_TField1.FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInherit_Forw_TField1.FField2.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInherit_Forw_TField1.FField2.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInherit_Forw_TField1.FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInherit_Forw_TField1.FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInherit_Forw_TField1.FField4.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInherit_Forw_TField1.FField4.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInherit_Forw_TField1.FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInherit_Forw_TField1.FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInherit_Forw_TField1.FField4.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInherit_Forw_TField1.FField4.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInherit_Forw_TField1.FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInherit_Forw_TField1.FField5.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInherit_Forw_TField1.FField6.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
@ -1020,10 +1020,10 @@ begin
|
||||
Var1TestInline_Forw_TField1.FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInline_Forw_TField1.FField2.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInline_Forw_TField1.FField2.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInline_Forw_TField1.FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInline_Forw_TField1.FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInline_Forw_TField1.FField4.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInline_Forw_TField1.FField4.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInline_Forw_TField1.FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInline_Forw_TField1.FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInline_Forw_TField1.FField4.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInline_Forw_TField1.FField4.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInline_Forw_TField1.FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var1TestInline_Forw_TField1.FField5.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var1TestInline_Forw_TField1.FField6.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
@ -1083,10 +1083,10 @@ begin
|
||||
Var2Test_Forw_Field1.FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var2Test_Forw_Field1.FField2.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
//Var2Test_Forw_Field1.FField2.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var2Test_Forw_Field1.FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var2Test_Forw_Field1.FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var2Test_Forw_Field1.FField4.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
//Var2Test_Forw_Field1.FField4.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var2Test_Forw_Field1.FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var2Test_Forw_Field1.FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var2Test_Forw_Field1.FField4.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
//Var2Test_Forw_Field1.FField4.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var2Test_Forw_Field1.FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var2Test_Forw_Field1.FField5.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
//Var2Test_Forw_Field1.FField6.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
@ -1096,10 +1096,10 @@ begin
|
||||
Var2Test_Forw_TField1.FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var2Test_Forw_TField1.FField2.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var2Test_Forw_TField1.FField2.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var2Test_Forw_TField1.FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var2Test_Forw_TField1.FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var2Test_Forw_TField1.FField4.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var2Test_Forw_TField1.FField4.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var2Test_Forw_TField1.FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var2Test_Forw_TField1.FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var2Test_Forw_TField1.FField4.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var2Test_Forw_TField1.FField4.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var2Test_Forw_TField1.FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var2Test_Forw_TField1.FField5.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var2Test_Forw_TField1.FField6.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
@ -1116,8 +1116,8 @@ begin
|
||||
|
||||
Var2Test_Forw_Field3.FField1.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var2Test_Forw_Field3.FField1.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var2Test_Forw_Field3.FField3.FField1.MyBaseAndMyClassProc1 { TODO declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var2Test_Forw_Field3.FField3.FField1.MyBaseAndMySubProc1 { TODO declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var2Test_Forw_Field3.FField3.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var2Test_Forw_Field3.FField3.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
Var2Test_Forw_Field3.FField5.FField1.MyBaseAndMyClassProc1 {declaration:TMyClass.MyBaseAndMyClassProc1};
|
||||
Var2Test_Forw_Field3.FField5.FField1.MyBaseAndMySubProc1 {declaration:TMyClassSub.MyBaseAndMySubProc1};
|
||||
|
||||
|
@ -38,8 +38,8 @@ begin
|
||||
MyData.Foo.{completion:Name,Address,!Helping} ;
|
||||
MyString.Foo.{completion:Helping,!Name,!Address} ;
|
||||
|
||||
d1 := MyData.Foo;
|
||||
s1 := MyString.Foo;
|
||||
d1{guesstype:TDataItem} := MyData.Foo;
|
||||
s1{guesstype:string} := MyString.Foo;
|
||||
|
||||
MyData.bar(x);
|
||||
MyString.bar(y);
|
||||
|
Loading…
Reference in New Issue
Block a user