= для Tuple и nil

This commit is contained in:
miks1965 2017-10-09 00:46:30 +03:00
parent 305dcdc034
commit c22e32b299
4 changed files with 28 additions and 10 deletions

View file

@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3";
public const string Minor = "3";
public const string Build = "0";
public const string Revision = "1546";
public const string Revision = "1547";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

View file

@ -1,4 +1,4 @@
%MINOR%=3
%REVISION%=1546
%COREVERSION%=0
%REVISION%=1547
%MINOR%=3
%MAJOR%=3

View file

@ -1 +1 @@
!define VERSION '3.3.0.1546'
!define VERSION '3.3.0.1547'

View file

@ -3458,9 +3458,18 @@ begin
Result := Self;
end;
function operator=<T>(x,y: HashSet<T>); extensionmethod := x.SetEquals(y);
function operator=<T>(x,y: HashSet<T>): boolean; extensionmethod;
begin
var xn := Object.ReferenceEquals(x,nil);
var yn := Object.ReferenceEquals(y,nil);
if xn then
Result := yn
else if yn then
Result := xn
else Result := x.SetEquals(y);
end;
function operator<><T>(x,y: HashSet<T>); extensionmethod := not x.SetEquals(y);
function operator<><T>(x,y: HashSet<T>); extensionmethod := not (x=y);
function operator-<T>(x,y: HashSet<T>): HashSet<T>; extensionmethod;
begin
@ -3534,7 +3543,16 @@ begin
Result := Self;
end;
function operator=<T>(x,y: SortedSet<T>); extensionmethod := x.SetEquals(y);
function operator=<T>(x,y: SortedSet<T>): boolean; extensionmethod;
begin
var xn := Object.ReferenceEquals(x,nil);
var yn := Object.ReferenceEquals(y,nil);
if xn then
Result := yn
else if yn then
Result := xn
else Result := x.SetEquals(y);
end;
function operator<><T>(x,y: SortedSet<T>); extensionmethod := not x.SetEquals(y);
@ -10200,7 +10218,7 @@ begin
end;
///--
function operator=<T1, T2> (Self: (T1,T2); v: (T1,T2)); extensionmethod := Object.ReferenceEquals(Self,v) ? True: Self.Equals( v ) ;
function operator=<T1, T2> (Self: (T1,T2); v: (T1,T2)); extensionmethod := Object.ReferenceEquals(Self,nil) ? Object.ReferenceEquals(v,nil): Self.Equals(v);
///--
function operator<><T1, T2> (Self: (T1,T2); v: (T1,T2)); extensionmethod := not (Self = v);
///--
@ -10215,7 +10233,7 @@ function operator><T1, T2> (Self: (T1,T2); v: (T1,T2)); extensionmethod := Compa
function operator>=<T1, T2> (Self: (T1,T2); v: (T1,T2)); extensionmethod := CompareToTup2(Self,v) >= 0;
///--
function operator=<T1, T2, T3> (Self: (T1,T2,T3); v: (T1,T2,T3)); extensionmethod := Object.ReferenceEquals(Self,v) ? True: Self.Equals( v ) ;
function operator=<T1, T2, T3> (Self: (T1,T2,T3); v: (T1,T2,T3)); extensionmethod := Object.ReferenceEquals(Self,nil) ? Object.ReferenceEquals(v,nil): Self.Equals(v);
///--
function operator<><T1, T2, T3> (Self: (T1,T2,T3); v: (T1,T2,T3)); extensionmethod := not (Self = v);
///--
@ -10230,7 +10248,7 @@ function operator><T1,T2,T3> (Self: (T1,T2,T3); v: (T1,T2,T3)); extensionmethod
function operator>=<T1,T2,T3> (Self: (T1,T2,T3); v: (T1,T2,T3)); extensionmethod := CompareToTup3(Self,v) >= 0;
///--
function operator=<T1, T2, T3, T4> (Self: (T1,T2,T3,T4); v: (T1,T2,T3,T4)); extensionmethod := Object.ReferenceEquals(Self,v) ? True: Self.Equals( v ) ;
function operator=<T1, T2, T3, T4> (Self: (T1,T2,T3,T4); v: (T1,T2,T3,T4)); extensionmethod := Object.ReferenceEquals(Self,nil) ? Object.ReferenceEquals(v,nil): Self.Equals(v);
///--
function operator<><T1, T2, T3, T4> (Self: (T1,T2,T3,T4); v: (T1,T2,T3,T4)); extensionmethod := not (Self = v);
///--