// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/*Debugger:stepOver*/

main() {
  /*bl*/
  /*sl:1*/ var i = 42.42;
  /*sl:2*/ var hex = 0x42;
  /*bc:3*/ if (/*bc:4*/ foo() is int) {
    /*bc:5*/ print("foo is int");
  }
  /*bc:6*/ if (i is int) {
    print("i is int");
  }
  /*bc:7*/ if (i is! int) {
    /*bc:8*/ print("i is not int");
  }
  /*bc:9*/ if (hex is int) {
    /*bc:10*/ print("hex is int");
    // ignore: unnecessary_cast
    int x = /*bc:11*/ hex as int;
    /*bc:12*/ if (x.isEven) {
      /*bc:13*/ print("it's even even!");
    } else {
      print("but it's not even even!");
    }
  }
  /*bc:14*/ if (hex is! int) {
    print("hex is not int");
  }
}

foo() => 42;
