mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-26 20:51:38 +02:00
* fixed previous operator change
This commit is contained in:
parent
50862948e5
commit
6a53a30525
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user