library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

class Class extends core::Object /*hasConstConstructor*/  {
  final field core::int y;
  const constructor •(core::int? x) → self::Class
    : self::Class::y = x!, super core::Object::•()
    ;
}
static const field core::int? a = 42;
static const field core::int b = self::a!;
static const field core::int? c = null;
static const field core::int? d = self::c!;
static const field self::Class e = const self::Class::•(self::a);
static const field self::Class f = const self::Class::•(self::c);
static method main() → dynamic
  ;
static method expect(dynamic expected, dynamic actual) → dynamic
  ;


Extra constant evaluation status:
Evaluated: NullCheck @ org-dartlang-testcase:///constant_null_check.dart:6:16 -> IntConstant(42)
Evaluated: StaticGet @ org-dartlang-testcase:///constant_null_check.dart:9:16 -> NullConstant(null)
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///constant_null_check.dart:16:23 -> InstanceConstant(const Class{Class.y: 42})
Evaluated: StaticGet @ org-dartlang-testcase:///constant_null_check.dart:17:29 -> NullConstant(null)
Extra constant evaluation: evaluated: 8, effectively constant: 4
