logo       
Google Custom Search
    AddThis Social Bookmark Button

Nice/testsuite/compiler/expressions/operators equality-primitive-optional.t: msg#00012

Subject: Nice/testsuite/compiler/expressions/operators equality-primitive-optional.testsuite,NONE,1.1
Update of /cvsroot/nice/Nice/testsuite/compiler/expressions/operators
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26705/testsuite/compiler/expressions/operators

Added Files:
        equality-primitive-optional.testsuite 
Log Message:
Correctly compare possibly null values with primitive values by unwrapping
the possibly null value and performing a native comparison. Wrapping the
primitive value and performing reference comparison could return false even
with identical values. (fixes #1090679)


--- NEW FILE: equality-primitive-optional.testsuite ---
/// COMMENT Boolean jumps, non-primitive first
/// PASS
  // bug #1090679
  var ?int charcode = 64+1;
  assert charcode == 65;
  assert !(charcode == 0);
  assert !(charcode == null);

/// PASS
  var ?int charcode = 64+1;
  assert !(charcode != 65);
  assert charcode != 0;
  assert charcode != null;



/// COMMENT Boolean jumps, primitive first
/// PASS
  var ?int charcode = 64+1;
  assert 65 == charcode;
  assert !(0 == charcode);
  assert !(null == charcode);

/// PASS
  var ?int charcode = 64+1;
  assert !(65 != charcode);
  assert 0 != charcode;
  assert null != charcode;



/// COMMENT Boolean assignments, non-primitive first
/// PASS
  var ?int charcode = 64+1;
  var res = charcode == 65;
  assert res;

  res = charcode == 0;
  assert !res;

  res = charcode == null;
  assert !res;

/// PASS
  var ?int charcode = 64+1;
  var res = charcode != 65;
  assert !res;

  res = charcode != 0;
  assert res;

  res = charcode != null;
  assert res;



/// COMMENT Boolean assignments, primitive first
/// PASS
  var ?int charcode = 64+1;
  var res = 65 == charcode;
  assert res;

  res = 0 == charcode;
  assert !res;

  res = null == charcode;
  assert !res;

/// PASS
  var ?int charcode = 64+1;
  var res = 65 != charcode;
  assert !res;

  res = 0 != charcode;
  assert res;

  res = null != charcode;
  assert res;



/// PASS
  // check evaluation order
  var ?int charcode = 0;
  // If the left hand side is evaluated before the right, the result is true.
  assert (()=> charcode = 1)() == charcode;


/// PASS
  var ?boolean b = ! false;
  var res = b == true;
  assert res;
  res = true == b;
  assert res;

  assert b == true;
  assert true == b;



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click



Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>