* fixed previous operator change

This commit is contained in:
peter 2003-01-02 22:21:19 +00:00
parent 50862948e5
commit 6a53a30525

View File

@ -136,8 +136,9 @@ implementation
function isbinaryoperatoroverloadable(treetyp:tnodetype;ld:tdef;lt:tnodetype;rd:tdef;rt:tnodetype) : boolean; function isbinaryoperatoroverloadable(treetyp:tnodetype;ld:tdef;lt:tnodetype;rd:tdef;rt:tnodetype) : boolean;
procedure internal_check(treetyp:tnodetype;ld:tdef;lt:tnodetype;rd:tdef;rt:tnodetype;var allowed:boolean); function internal_check(treetyp:tnodetype;ld:tdef;lt:tnodetype;rd:tdef;rt:tnodetype;var allowed:boolean):boolean;
begin begin
internal_check:=true;
case ld.deftype of case ld.deftype of
recorddef, recorddef,
variantdef : variantdef :
@ -199,7 +200,8 @@ implementation
is_pchar(rd) or is_pchar(rd) or
is_integer(rd) or is_integer(rd) or
(rd.deftype=stringdef) or (rd.deftype=stringdef) or
is_chararray(rd)) then is_chararray(rd) or
(rt=niln)) then
begin begin
allowed:=false; allowed:=false;
exit; exit;
@ -238,13 +240,14 @@ implementation
end; end;
allowed:=true; allowed:=true;
end; end;
else
internal_check:=false;
end; end;
end; end;
var var
allowed : boolean; allowed : boolean;
begin begin
isbinaryoperatoroverloadable:=false;
{ power ** is always possible } { power ** is always possible }
if (treetyp=starstarn) then if (treetyp=starstarn) then
begin begin
@ -254,7 +257,7 @@ implementation
{ order of arguments does not matter so we have to check also { order of arguments does not matter so we have to check also
the reversed order } the reversed order }
allowed:=false; allowed:=false;
internal_check(treetyp,ld,lt,rd,rt,allowed); if not internal_check(treetyp,ld,lt,rd,rt,allowed) then
internal_check(treetyp,rd,rt,ld,lt,allowed); internal_check(treetyp,rd,rt,ld,lt,allowed);
isbinaryoperatoroverloadable:=allowed; isbinaryoperatoroverloadable:=allowed;
end; end;
@ -1037,7 +1040,10 @@ implementation
end. end.
{ {
$Log$ $Log$
Revision 1.56 2003-01-02 19:50:21 peter Revision 1.57 2003-01-02 22:21:19 peter
* fixed previous operator change
Revision 1.56 2003/01/02 19:50:21 peter
* fixed operator checking for objects * fixed operator checking for objects
* made binary operator checking simpeler * made binary operator checking simpeler