anchor.diff:  // BSD-style license that can be found in the LICENSE file.
   
   import "package:expect/expect.dart";
  -
  +@NoInline() @AssumeDynamic()
  +confuse(x) => x;
  +
  +@NoInline()
  +asNum(x) {
  +  var result = confuse(x);
  +  if (result is num) return result;
  +  throw new ArgumentError.value(x);
  +}
  +
  +@NoInline()
  +uint31(x) {
  +  var result = confuse(x);
  +  if (x is int) {
  +    var masked = 0x7fffffff & x;  // inferred uint31 type.
  +    if (masked == x) return masked;
  +  }
  +  throw new ArgumentError('Not uint31: $x');
  +}
  +
  +@NoInline()
  +uint32(x) {
  +  var result = confuse(x);
  +  if (x is int) {
  +    var masked = 0xffffffff & x;  // inferred uint32 type.
  +    if (masked == x) return masked;
  +  }
  +  throw new ArgumentError('Not uint32: $x');
  +}
  +
  +@NoInline()
   int zero() { return 0; }
  +
  +@NoInline()
   int one() { return 1; }
  +
  +@NoInline()
   int minus1() { return 0 - 1; }
  +
  +@NoInline()
  +int minus2() { return 0 - 2; }
  +
  +@NoInline()
   int two() { return 2; }
  +
  +@NoInline()
   int three() { return 3; }
  +
  +@NoInline()
   int five() { return 5; }
  +
  +@NoInline()
   int minus5() { return 0 - 5; }
  +
  +@NoInline()
   int ninetyNine() { return 99; }
  +
  +@NoInline()
   int four99() { return 499; }
  +
  +@NoInline()
   int four99times99() { return 499 * 99; }
  +
  +@NoInline()
   int four99times99plus1() { return 499 * 99 + 1; }
   
  +@NoInline()
   void addTest() {
     var m1 = 0 - 1;
     Expect.equals(0, 0 + 0);
  +  Expect.equals(0, confuse(0) + 0);
  +  Expect.equals(0, asNum(0) + 0);
  +  Expect.equals(0, uint31(0) + 0);
  +
     Expect.equals(m1, m1 + 0);
     Expect.equals(0, m1 + 1);
     Expect.equals(499, 400 + 99);
  
positive.code: 
    Expect.equals(10, five() << 1);
    Expect.equals(24, 3 << three());
  }
  
  void shrTest() {
    Expect.equals(1, 2 >> 1);
    Expect.equals(1, 8 >> 3);
    Expect.equals(3, 6 >> 1);
  
    var x = 0 - ninetyNine();
    Expect.equals(6, ninetyNine() >> 4);
  }
  
  void andTest() {
    Expect.equals(2, 10 & 3);
    Expect.equals(7, 15 & 7);
  
negative.code: 
    Expect.equals(99, ninetyNine() | ninetyNine());
    Expect.equals(507, four99() | 42);
  
    Expect.equals(11, asNum(10) | 3);
    Expect.equals(15, asNum(15) | 7);
    Expect.equals(10, asNum(10) | 10);
  }
  
  @NoInline()
  void xorTest() {
    Expect.equals(9, 10 ^ 3);
    Expect.equals(8, 15 ^ 7);
  