|
@@ -350,6 +350,7 @@ implementation
|
|
t : tnode;
|
|
t : tnode;
|
|
begin
|
|
begin
|
|
result:=nil;
|
|
result:=nil;
|
|
|
|
+
|
|
{ constant evaluation }
|
|
{ constant evaluation }
|
|
if (left.nodetype=ordconstn) then
|
|
if (left.nodetype=ordconstn) then
|
|
begin
|
|
begin
|
|
@@ -400,6 +401,15 @@ implementation
|
|
typecheckpass(t);
|
|
typecheckpass(t);
|
|
result:=t;
|
|
result:=t;
|
|
exit;
|
|
exit;
|
|
|
|
+ end
|
|
|
|
+ { ... in [] is always false }
|
|
|
|
+ else if is_emptyset(right) and
|
|
|
|
+ not(might_have_sideeffects(left,[mhs_exceptions])) then
|
|
|
|
+ begin
|
|
|
|
+ t:=cordconstnode.create(1, pasbool1type, false);
|
|
|
|
+ typecheckpass(t);
|
|
|
|
+ result:=t;
|
|
|
|
+ exit;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|