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 /*hasConstConstructor*/  {
  final field core::bool defaultValue /* from org-dartlang-testcase:///patch_lib.dart */;
  @_in::patch
  external constructor generative({core::bool defaultValue}) → self2::Class
    ;
  @_in::patch
  const constructor constGenerative({core::bool defaultValue = true}) → self2::Class
    : self2::Class::defaultValue = defaultValue, super core::Object::•()
    ;
}


Extra constant evaluation status:
Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:6:49 -> InstanceConstant(const _Patch{})
Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:7:44 -> InstanceConstant(const _Patch{})
Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:16:9 -> InstanceConstant(const _Patch{})
Extra constant evaluation: evaluated: 4, effectively constant: 3
