mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-12 11:49:14 +02:00
fcl-passrc: resolver: TResExprEvaluator.OrdValue cna return UInt
git-svn-id: trunk@37579 -
This commit is contained in:
parent
2a57480fff
commit
c96f19339f
@ -566,7 +566,7 @@ type
|
||||
procedure EmitRangeCheckConst(id: int64; const aValue: String;
|
||||
MinVal, MaxVal: MaxPrecInt; PosEl: TPasElement; MsgType: TMessageType = mtWarning);
|
||||
function ChrValue(Value: TResEvalValue; ErrorEl: TPasElement): TResEvalValue; virtual;
|
||||
function OrdValue(Value: TResEvalValue; ErrorEl: TPasElement): TResEvalInt; virtual;
|
||||
function OrdValue(Value: TResEvalValue; ErrorEl: TPasElement): TResEvalValue; virtual;
|
||||
procedure PredValue(Value: TResEvalValue; ErrorEl: TPasElement); virtual;
|
||||
procedure SuccValue(Value: TResEvalValue; ErrorEl: TPasElement); virtual;
|
||||
function EvalStrFunc(Params: TParamsExpr; Flags: TResEvalFlags): TResEvalValue; virtual;
|
||||
@ -3829,7 +3829,7 @@ begin
|
||||
end;
|
||||
|
||||
function TResExprEvaluator.OrdValue(Value: TResEvalValue; ErrorEl: TPasElement
|
||||
): TResEvalInt;
|
||||
): TResEvalValue;
|
||||
begin
|
||||
case Value.Kind of
|
||||
revkBool:
|
||||
@ -3837,6 +3837,8 @@ begin
|
||||
Result:=TResEvalInt.CreateValue(1)
|
||||
else
|
||||
Result:=TResEvalInt.CreateValue(0);
|
||||
revkInt,revkUInt:
|
||||
Result:=Value;
|
||||
revkString:
|
||||
if length(TResEvalString(Value).S)<>1 then
|
||||
RaiseRangeCheck(20170624160128,ErrorEl)
|
||||
|
@ -158,9 +158,16 @@ Works:
|
||||
- enum: low(), high(), pred(), succ(), ord(), rg(int), int(rg), enum:=rg,
|
||||
rg:=rg, rg1:=rg2, rg:=enum, =, <>, in
|
||||
array[rg], low(array), high(array)
|
||||
- for..in..do :
|
||||
- boolean, char, byte, shortint, word, smallint, longword, longint
|
||||
- enum range, char range, integer range
|
||||
- set of enum, enum range, integer, integer range, char, char range
|
||||
|
||||
ToDo:
|
||||
- for..in..do
|
||||
- array
|
||||
- operator
|
||||
- class
|
||||
- range checking:
|
||||
- indexedprop[param]
|
||||
- case-of unique
|
||||
|
Loading…
Reference in New Issue
Block a user