library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/null_aware.dart:7:14: Error: Field 'staticField' should be initialized because its type 'int' doesn't allow null.
//   static int staticField;
//              ^^^^^^^^^^^
//
// pkg/front_end/testcases/general/null_aware.dart:6:7: Error: Field 'field' should be initialized because its type 'int' doesn't allow null.
//   int field;
//       ^^^^^
//
import self as self;
import "dart:core" as core;

class Foo extends core::Object {
  field core::int field = null;
  static field core::int staticField = null;
  synthetic constructor •() → self::Foo
    : super core::Object::•()
    ;
}
static method test() → dynamic {
  self::Foo foo = new self::Foo::•();
  let final self::Foo #t1 = foo in #t1 == null ?{core::int?} null : #t1.{self::Foo::field} = 5;
  self::Foo::staticField = 5;
  let final self::Foo #t2 = foo in #t2.{self::Foo::field}{core::int} == null ?{core::int?} #t2.{self::Foo::field} = 5 : null;
  self::Foo::staticField == null ?{core::int?} self::Foo::staticField = 5 : null;
  let final self::Foo #t3 = foo in #t3 == null ?{core::int?} null : #t3.{self::Foo::field}{core::int} == null ?{core::int?} #t3.{self::Foo::field} = 5 : null;
  self::Foo::staticField == null ?{core::int?} self::Foo::staticField = 5 : null;
  core::int intValue = let final core::int #t4 = foo.{self::Foo::field}{core::int} in #t4 == null ?{core::int} 6 : #t4;
  core::num numValue = let final core::int #t5 = foo.{self::Foo::field}{core::int} in #t5 == null ?{core::num} 4.5 : #t5;
}
static method main() → dynamic {}
