Bugfix return type for some set operators
This commit is contained in:
parent
32bfe1c803
commit
19f7d2a0eb
2 changed files with 15 additions and 0 deletions
|
|
@ -3517,6 +3517,9 @@ begin
|
||||||
GtEqToken: begin emitSwap; emitSetIsSubset; end;
|
GtEqToken: begin emitSwap; emitSetIsSubset; end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
if tok in [ EqToken, NotEqToken, LtEqToken, GtEqToken ] then
|
||||||
|
setBaseType(typeA, BooleanType);
|
||||||
|
|
||||||
tok := curToken.tokenKind;
|
tok := curToken.tokenKind;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
@ -5076,6 +5079,7 @@ end;
|
||||||
Otherwise, you should pass a MemLocation instance where
|
Otherwise, you should pass a MemLocation instance where
|
||||||
the memLoc field is set to NoMem. A temporary is then created
|
the memLoc field is set to NoMem. A temporary is then created
|
||||||
and its MemLocation passed back in optionalDest.
|
and its MemLocation passed back in optionalDest.
|
||||||
|
FIXME: this is not implemented? A temporary is always created.
|
||||||
|
|
||||||
Argument passing: Args are passed on the eval stack.
|
Argument passing: Args are passed on the eval stack.
|
||||||
|
|
||||||
|
|
|
||||||
11
tests/settest.pas
Normal file
11
tests/settest.pas
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
program settest;
|
||||||
|
type myset = set of (alpha, beta, gamma, delta);
|
||||||
|
var a,b:myset;
|
||||||
|
begin
|
||||||
|
a := [alpha, gamma];
|
||||||
|
b := [alpha, gamma, delta];
|
||||||
|
writeln (a <= b);
|
||||||
|
writeln (a >= b);
|
||||||
|
writeln (b >= a);
|
||||||
|
writeln ((b - [alpha, gamma]) >= a);
|
||||||
|
end.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue