mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-06 00:30:34 +02:00
* removed getprocvar, use only getprocvardef
This commit is contained in:
parent
72443eecda
commit
5cdb7cc52b
@ -39,8 +39,7 @@ interface
|
||||
{ true, if we are after an assignement }
|
||||
afterassignment : boolean = false;
|
||||
|
||||
{ sspecial for handling procedure vars }
|
||||
getprocvar : boolean = false;
|
||||
{ special for handling procedure vars }
|
||||
getprocvardef : tprocvardef = nil;
|
||||
|
||||
type
|
||||
@ -369,7 +368,10 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.13 2001-06-03 21:57:35 peter
|
||||
Revision 1.14 2002-01-06 21:47:32 peter
|
||||
* removed getprocvar, use only getprocvardef
|
||||
|
||||
Revision 1.13 2001/06/03 21:57:35 peter
|
||||
+ hint directive parsing support
|
||||
|
||||
Revision 1.12 2001/05/06 14:49:17 peter
|
||||
|
@ -206,7 +206,7 @@ implementation
|
||||
set_varstate(p,false);
|
||||
{ reset varstateset to maybe set used state later web bug769 PM }
|
||||
unset_varstate(p);
|
||||
if not(getprocvar) and (p.resulttype.def.deftype=procvardef) then
|
||||
if (getprocvardef=nil) and (p.resulttype.def.deftype=procvardef) then
|
||||
begin
|
||||
p1:=ccallnode.create(nil,nil,nil,nil);
|
||||
tcallnode(p1).set_procvar(p);
|
||||
@ -887,7 +887,7 @@ implementation
|
||||
|
||||
{ generate a methodcallnode or proccallnode }
|
||||
{ we shouldn't convert things like @tcollection.load }
|
||||
if getprocvar then
|
||||
if assigned(getprocvardef) then
|
||||
aprocdef:=get_proc_2_procvar_def(tprocsym(sym),getprocvardef)
|
||||
else
|
||||
aprocdef:=nil;
|
||||
@ -1005,13 +1005,14 @@ implementation
|
||||
paras:=nil;
|
||||
consume(_ASSIGNMENT);
|
||||
{ read the expression }
|
||||
getprocvar:=(tpropertysym(sym).proptype.def.deftype=procvardef);
|
||||
if tpropertysym(sym).proptype.def.deftype=procvardef then
|
||||
getprocvardef:=tprocvardef(tpropertysym(sym).proptype.def);
|
||||
p2:=comp_expr(true);
|
||||
if getprocvar then
|
||||
handle_procvar(tprocvardef(tpropertysym(sym).proptype.def),p2,getaddr);
|
||||
if assigned(getprocvardef) then
|
||||
handle_procvar(getprocvardef,p2,getaddr);
|
||||
tcallnode(p1).left:=ccallparanode.create(p2,tcallnode(p1).left);
|
||||
include(tcallnode(p1).flags,nf_isproperty);
|
||||
getprocvar:=false;
|
||||
getprocvardef:=nil;
|
||||
end;
|
||||
varsym :
|
||||
begin
|
||||
@ -1110,7 +1111,7 @@ implementation
|
||||
begin
|
||||
do_proc_call(sym,sym.owner,
|
||||
getaddr or
|
||||
(getprocvar and
|
||||
(assigned(getprocvardef) and
|
||||
((block_type=bt_const) or
|
||||
((m_tp_procvar in aktmodeswitches) and
|
||||
proc_to_procvar_equal(tprocsym(sym).defs^.def,getprocvardef,false)
|
||||
@ -1118,7 +1119,7 @@ implementation
|
||||
)
|
||||
),again,p1);
|
||||
if (block_type=bt_const) and
|
||||
getprocvar then
|
||||
assigned(getprocvardef) then
|
||||
handle_procvar(getprocvardef,p1,getaddr);
|
||||
{ we need to know which procedure is called }
|
||||
do_resulttypepass(p1);
|
||||
@ -1450,7 +1451,7 @@ implementation
|
||||
(po_classmethod in aktprocdef.procoptions);
|
||||
do_proc_call(srsym,srsymtable,
|
||||
getaddr or
|
||||
(getprocvar and
|
||||
(assigned(getprocvardef) and
|
||||
((block_type=bt_const) or
|
||||
((m_tp_procvar in aktmodeswitches) and
|
||||
proc_to_procvar_equal(tprocsym(srsym).defs^.def,getprocvardef,false)
|
||||
@ -1458,7 +1459,7 @@ implementation
|
||||
)
|
||||
),again,p1);
|
||||
if (block_type=bt_const) and
|
||||
getprocvar then
|
||||
assigned(getprocvardef) then
|
||||
handle_procvar(getprocvardef,p1,getaddr);
|
||||
{ we need to know which procedure is called }
|
||||
if possible_error then
|
||||
@ -1830,7 +1831,8 @@ implementation
|
||||
begin
|
||||
if (p1.resulttype.def.deftype=procvardef) then
|
||||
begin
|
||||
if getprocvar and is_equal(p1.resulttype.def,getprocvardef) then
|
||||
if assigned(getprocvardef) and
|
||||
is_equal(p1.resulttype.def,getprocvardef) then
|
||||
again:=false
|
||||
else
|
||||
if (token=_LKLAMMER) or
|
||||
@ -2152,7 +2154,7 @@ implementation
|
||||
p1:=factor(true);
|
||||
got_addrn:=false;
|
||||
p1:=caddrnode.create(p1);
|
||||
if getprocvar then
|
||||
if assigned(getprocvardef) then
|
||||
taddrnode(p1).getprocvardef:=getprocvardef;
|
||||
end;
|
||||
|
||||
@ -2394,14 +2396,11 @@ implementation
|
||||
begin
|
||||
consume(_ASSIGNMENT);
|
||||
if (p1.resulttype.def.deftype=procvardef) then
|
||||
begin
|
||||
getprocvar:=true;
|
||||
getprocvardef:=tprocvardef(p1.resulttype.def);
|
||||
end;
|
||||
getprocvardef:=tprocvardef(p1.resulttype.def);
|
||||
p2:=sub_expr(opcompare,true);
|
||||
if getprocvar then
|
||||
if assigned(getprocvardef) then
|
||||
handle_procvar(getprocvardef,p2,true);
|
||||
getprocvar:=false;
|
||||
getprocvardef:=nil;
|
||||
p1:=cassignmentnode.create(p1,p2);
|
||||
end;
|
||||
_PLUSASN :
|
||||
@ -2484,7 +2483,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.53 2001-12-31 16:59:42 peter
|
||||
Revision 1.54 2002-01-06 21:47:32 peter
|
||||
* removed getprocvar, use only getprocvardef
|
||||
|
||||
Revision 1.53 2001/12/31 16:59:42 peter
|
||||
* protected/private symbols parsing fixed
|
||||
|
||||
Revision 1.52 2001/12/06 17:57:36 florian
|
||||
|
@ -681,10 +681,9 @@ implementation
|
||||
if (po_methodpointer in tprocvardef(t.def).procoptions) then
|
||||
Message(parser_e_no_procvarobj_const);
|
||||
{ parse the rest too, so we can continue with error checking }
|
||||
getprocvar:=true;
|
||||
getprocvardef:=tprocvardef(t.def);
|
||||
p:=comp_expr(true);
|
||||
getprocvar:=false;
|
||||
getprocvardef:=nil;
|
||||
if codegenerror then
|
||||
begin
|
||||
p.free;
|
||||
@ -971,7 +970,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.39 2001-12-06 17:57:38 florian
|
||||
Revision 1.40 2002-01-06 21:47:32 peter
|
||||
* removed getprocvar, use only getprocvardef
|
||||
|
||||
Revision 1.39 2001/12/06 17:57:38 florian
|
||||
+ parasym to tparaitem added
|
||||
|
||||
Revision 1.38 2001/11/02 22:58:06 peter
|
||||
|
Loading…
Reference in New Issue
Block a user