library /*isNonNullableByDefault*/;
import self as self;

import "dart:test";

static method main() → dynamic {}

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

import "dart:_internal";

@#C1
class Class extends core::Object {
  field core::int? _#Class#foo = null /* from org-dartlang-testcase:///patch_lib.dart */;
  field core::bool _#Class#foo#isSet = false /* from org-dartlang-testcase:///patch_lib.dart */;
  constructor bar() → self2::Class
    : super core::Object::•()
    ;
  constructor baz(core::int foo) → self2::Class
    : self2::Class::_#Class#foo#isSet = true, self2::Class::_#Class#foo = foo, super core::Object::•()
    ;
  get /* from org-dartlang-testcase:///patch_lib.dart */ foo() → core::int
    return this.{self2::Class::_#Class#foo#isSet}{core::bool} ?{core::int} let final core::int? #t1 = this.{self2::Class::_#Class#foo}{core::int?} in #t1{core::int} : throw new _in::LateError::fieldNI("foo");
  set /* from org-dartlang-testcase:///patch_lib.dart */ foo(core::int #t2) → void {
    this.{self2::Class::_#Class#foo#isSet} = true;
    this.{self2::Class::_#Class#foo} = #t2;
  }
}

constants  {
  #C1 = _in::_Patch {}
}
