mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-28 21:40:34 +02:00
* fixed function returning record type and assigning to the result
This commit is contained in:
parent
8932d13ffa
commit
f449b4beaa
@ -975,6 +975,7 @@ implementation
|
||||
function valid_for_assign(p:ptree;allowprop:boolean):boolean;
|
||||
var
|
||||
hp : ptree;
|
||||
gotwith,
|
||||
gotsubscript,
|
||||
gotpointer,
|
||||
gotclass,
|
||||
@ -985,6 +986,7 @@ implementation
|
||||
gotderef:=false;
|
||||
gotclass:=false;
|
||||
gotpointer:=false;
|
||||
gotwith:=false;
|
||||
hp:=p;
|
||||
while assigned(hp) do
|
||||
begin
|
||||
@ -1062,14 +1064,15 @@ implementation
|
||||
gotpointer:=true;
|
||||
objectdef :
|
||||
gotclass:=pobjectdef(hp^.resulttype)^.is_class;
|
||||
recorddef, { handle record like class it needs a subscription }
|
||||
classrefdef :
|
||||
gotclass:=true;
|
||||
end;
|
||||
{ 1. if it returns a pointer and we've found a deref,
|
||||
2. if it returns a class and a subscription is found,
|
||||
2. if it returns a class or record and a subscription or with is found,
|
||||
3. property is allowed }
|
||||
if (gotpointer and gotderef) or
|
||||
(gotclass and gotsubscript) or
|
||||
(gotclass and (gotsubscript or gotwith)) or
|
||||
(hp^.isproperty and allowprop) then
|
||||
valid_for_assign:=true
|
||||
else
|
||||
@ -1097,6 +1100,7 @@ implementation
|
||||
begin
|
||||
{ continue with processing the withref node }
|
||||
hp:=ptree(pwithsymtable(hp^.symtable)^.withrefnode);
|
||||
gotwith:=true;
|
||||
end
|
||||
else
|
||||
begin
|
||||
@ -1127,7 +1131,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.70 2000-06-18 19:41:19 peter
|
||||
Revision 1.71 2000-07-06 18:56:58 peter
|
||||
* fixed function returning record type and assigning to the result
|
||||
|
||||
Revision 1.70 2000/06/18 19:41:19 peter
|
||||
* fixed pchar<->[string,chararray] operations
|
||||
|
||||
Revision 1.69 2000/06/11 07:00:21 peter
|
||||
|
Loading…
Reference in New Issue
Block a user