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";

@_in::patch
class Class extends core::Object {
  field core::int? _#Class#foo /* from org-dartlang-testcase:///patch_lib.dart */;
  field core::bool _#Class#foo#isSet /* from org-dartlang-testcase:///patch_lib.dart */;
  constructor bar() → self2::Class
    ;
  constructor baz(core::int foo) → self2::Class
    ;
  get /* from org-dartlang-testcase:///patch_lib.dart */ foo() → core::int;
  set /* from org-dartlang-testcase:///patch_lib.dart */ foo(core::int foo#param) → void;
}


Extra constant evaluation status:
Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{})
Extra constant evaluation: evaluated: 1, effectively constant: 1
