bug fix #2572
This commit is contained in:
parent
b845735c07
commit
c95fa10824
|
|
@ -1,11 +1,12 @@
|
|||
var a : 1..4;
|
||||
var
|
||||
a: 1..4;
|
||||
|
||||
begin
|
||||
a := 2;
|
||||
a += 1;
|
||||
assert(a=3);
|
||||
a -= 1;
|
||||
assert(a=2);
|
||||
a *= 2;
|
||||
assert(a=4);
|
||||
a := 2;
|
||||
a += 1;
|
||||
assert(a = 3);
|
||||
a -= 1;
|
||||
assert(a = 2);
|
||||
a *= 2;
|
||||
assert(a = 4);
|
||||
end.
|
||||
6
TestSuite/diapasons4.pas
Normal file
6
TestSuite/diapasons4.pas
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
begin
|
||||
var r := 1..2;
|
||||
assert(r <> nil);
|
||||
r := nil;
|
||||
assert(r = nil);
|
||||
end.
|
||||
|
|
@ -637,7 +637,20 @@ type
|
|||
|
||||
static function operator in(x: integer; r: IntRange): boolean := (x >= r.l) and (x <= r.h);
|
||||
static function operator in(x: real; r: IntRange): boolean := (x >= r.l) and (x <= r.h);
|
||||
static function operator=(r1,r2: IntRange): boolean := (r1.l = r2.l) and (r1.h = r2.h);
|
||||
static function operator=(r1,r2: IntRange): boolean;
|
||||
begin
|
||||
var o1: object := r1;
|
||||
var o2: object := r2;
|
||||
if (o1 = nil) and (o2 = nil) then
|
||||
Result := true
|
||||
else if (o1 <> nil) and (o2 = nil) then
|
||||
Result := false
|
||||
else if (o1 = nil) and (o2 <> nil) then
|
||||
Result := false
|
||||
else
|
||||
Result := (r1.l = r2.l) and (r1.h = r2.h);
|
||||
end;
|
||||
|
||||
/// Возвращает True если диапазон пуст
|
||||
function IsEmpty: boolean := l>h;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue