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

class Foo extends core::Object /*hasConstConstructor*/  {
  final field (core::String) → core::int _foo;
  const constructor •((core::String) →? core::int a1, (core::String) →? core::int a2, (core::String) →? core::int a3, (core::String) →? core::int a4, (core::String) →? core::int a5, (core::String) →? core::int a6, (core::String) →? core::int a7, (core::String) →? core::int a8, (core::String) →? core::int a9, (core::String) →? core::int a10, (core::String) →? core::int a11, (core::String) →? core::int a12, (core::String) →? core::int a13, (core::String) →? core::int a14, (core::String) →? core::int a15, (core::String) →? core::int a16, (core::String) →? core::int a17, (core::String) →? core::int a18, (core::String) →? core::int a19, (core::String) →? core::int a20, (core::String) →? core::int a21, (core::String) →? core::int a22, (core::String) →? core::int a23, (core::String) →? core::int a24) → self::Foo
    : self::Foo::_foo = let final (core::String) →? core::int #t1 = let final (core::String) →? core::int #t2 = let final (core::String) →? core::int #t3 = let final (core::String) →? core::int #t4 = let final (core::String) →? core::int #t5 = let final (core::String) →? core::int #t6 = let final (core::String) →? core::int #t7 = let final (core::String) →? core::int #t8 = let final (core::String) →? core::int #t9 = let final (core::String) →? core::int #t10 = let final (core::String) →? core::int #t11 = let final (core::String) →? core::int #t12 = let final (core::String) →? core::int #t13 = let final (core::String) →? core::int #t14 = let final (core::String) →? core::int #t15 = let final (core::String) →? core::int #t16 = let final (core::String) →? core::int #t17 = let final (core::String) →? core::int #t18 = let final (core::String) →? core::int #t19 = let final (core::String) →? core::int #t20 = let final (core::String) →? core::int #t21 = let final (core::String) →? core::int #t22 = let final (core::String) →? core::int #t23 = let final (core::String) →? core::int #t24 = a1 in #t24 == null ?{(core::String) →? core::int} a2 : #t24{(core::String) → core::int} in #t23 == null ?{(core::String) →? core::int} a3 : #t23{(core::String) → core::int} in #t22 == null ?{(core::String) →? core::int} a4 : #t22{(core::String) → core::int} in #t21 == null ?{(core::String) →? core::int} a5 : #t21{(core::String) → core::int} in #t20 == null ?{(core::String) →? core::int} a6 : #t20{(core::String) → core::int} in #t19 == null ?{(core::String) →? core::int} a7 : #t19{(core::String) → core::int} in #t18 == null ?{(core::String) →? core::int} a8 : #t18{(core::String) → core::int} in #t17 == null ?{(core::String) →? core::int} a9 : #t17{(core::String) → core::int} in #t16 == null ?{(core::String) →? core::int} a10 : #t16{(core::String) → core::int} in #t15 == null ?{(core::String) →? core::int} a11 : #t15{(core::String) → core::int} in #t14 == null ?{(core::String) →? core::int} a12 : #t14{(core::String) → core::int} in #t13 == null ?{(core::String) →? core::int} a13 : #t13{(core::String) → core::int} in #t12 == null ?{(core::String) →? core::int} a14 : #t12{(core::String) → core::int} in #t11 == null ?{(core::String) →? core::int} a15 : #t11{(core::String) → core::int} in #t10 == null ?{(core::String) →? core::int} a16 : #t10{(core::String) → core::int} in #t9 == null ?{(core::String) →? core::int} a17 : #t9{(core::String) → core::int} in #t8 == null ?{(core::String) →? core::int} a18 : #t8{(core::String) → core::int} in #t7 == null ?{(core::String) →? core::int} a19 : #t7{(core::String) → core::int} in #t6 == null ?{(core::String) →? core::int} a20 : #t6{(core::String) → core::int} in #t5 == null ?{(core::String) →? core::int} a21 : #t5{(core::String) → core::int} in #t4 == null ?{(core::String) →? core::int} a22 : #t4{(core::String) → core::int} in #t3 == null ?{(core::String) →? core::int} a23 : #t3{(core::String) → core::int} in #t2 == null ?{(core::String) →? core::int} a24 : #t2{(core::String) → core::int} in #t1 == null ?{(core::String) → core::int} #C1 : #t1{(core::String) → core::int}, super core::Object::•()
    ;
}
static method bar(core::String o) → core::int
  return core::int::parse(o);
static method main() → void {
  const self::Foo myValue = #C101;
  core::print(#C101);
  core::print(#C101);
  core::print(#C101);
  core::print(#C101);
}

constants  {
  #C1 = static-tearoff self::bar
  #C2 = "baz"
  #C3 = eval const core::bool::fromEnvironment(#C2)
  #C4 = static-tearoff core::int::parse
  #C5 = null
  #C6 = eval #C3 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C7 = eval #C6 == null
  #C8 = eval const core::bool::fromEnvironment(#C2)
  #C9 = eval #C8 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C10 = eval #C7 ?{(core::String) →? core::int} #C9 : #C6
  #C11 = eval #C10 == null
  #C12 = eval const core::bool::fromEnvironment(#C2)
  #C13 = eval #C12 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C14 = eval #C11 ?{(core::String) →? core::int} #C13 : #C10
  #C15 = eval #C14 == null
  #C16 = eval const core::bool::fromEnvironment(#C2)
  #C17 = eval #C16 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C18 = eval #C15 ?{(core::String) →? core::int} #C17 : #C14
  #C19 = eval #C18 == null
  #C20 = eval const core::bool::fromEnvironment(#C2)
  #C21 = eval #C20 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C22 = eval #C19 ?{(core::String) →? core::int} #C21 : #C18
  #C23 = eval #C22 == null
  #C24 = eval const core::bool::fromEnvironment(#C2)
  #C25 = eval #C24 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C26 = eval #C23 ?{(core::String) →? core::int} #C25 : #C22
  #C27 = eval #C26 == null
  #C28 = eval const core::bool::fromEnvironment(#C2)
  #C29 = eval #C28 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C30 = eval #C27 ?{(core::String) →? core::int} #C29 : #C26
  #C31 = eval #C30 == null
  #C32 = eval const core::bool::fromEnvironment(#C2)
  #C33 = eval #C32 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C34 = eval #C31 ?{(core::String) →? core::int} #C33 : #C30
  #C35 = eval #C34 == null
  #C36 = eval const core::bool::fromEnvironment(#C2)
  #C37 = eval #C36 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C38 = eval #C35 ?{(core::String) →? core::int} #C37 : #C34
  #C39 = eval #C38 == null
  #C40 = eval const core::bool::fromEnvironment(#C2)
  #C41 = eval #C40 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C42 = eval #C39 ?{(core::String) →? core::int} #C41 : #C38
  #C43 = eval #C42 == null
  #C44 = eval const core::bool::fromEnvironment(#C2)
  #C45 = eval #C44 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C46 = eval #C43 ?{(core::String) →? core::int} #C45 : #C42
  #C47 = eval #C46 == null
  #C48 = eval const core::bool::fromEnvironment(#C2)
  #C49 = eval #C48 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C50 = eval #C47 ?{(core::String) →? core::int} #C49 : #C46
  #C51 = eval #C50 == null
  #C52 = eval const core::bool::fromEnvironment(#C2)
  #C53 = eval #C52 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C54 = eval #C51 ?{(core::String) →? core::int} #C53 : #C50
  #C55 = eval #C54 == null
  #C56 = eval const core::bool::fromEnvironment(#C2)
  #C57 = eval #C56 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C58 = eval #C55 ?{(core::String) →? core::int} #C57 : #C54
  #C59 = eval #C58 == null
  #C60 = eval const core::bool::fromEnvironment(#C2)
  #C61 = eval #C60 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C62 = eval #C59 ?{(core::String) →? core::int} #C61 : #C58
  #C63 = eval #C62 == null
  #C64 = eval const core::bool::fromEnvironment(#C2)
  #C65 = eval #C64 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C66 = eval #C63 ?{(core::String) →? core::int} #C65 : #C62
  #C67 = eval #C66 == null
  #C68 = eval const core::bool::fromEnvironment(#C2)
  #C69 = eval #C68 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C70 = eval #C67 ?{(core::String) →? core::int} #C69 : #C66
  #C71 = eval #C70 == null
  #C72 = eval const core::bool::fromEnvironment(#C2)
  #C73 = eval #C72 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C74 = eval #C71 ?{(core::String) →? core::int} #C73 : #C70
  #C75 = eval #C74 == null
  #C76 = eval const core::bool::fromEnvironment(#C2)
  #C77 = eval #C76 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C78 = eval #C75 ?{(core::String) →? core::int} #C77 : #C74
  #C79 = eval #C78 == null
  #C80 = eval const core::bool::fromEnvironment(#C2)
  #C81 = eval #C80 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C82 = eval #C79 ?{(core::String) →? core::int} #C81 : #C78
  #C83 = eval #C82 == null
  #C84 = eval const core::bool::fromEnvironment(#C2)
  #C85 = eval #C84 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C86 = eval #C83 ?{(core::String) →? core::int} #C85 : #C82
  #C87 = eval #C86 == null
  #C88 = eval const core::bool::fromEnvironment(#C2)
  #C89 = eval #C88 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C90 = eval #C87 ?{(core::String) →? core::int} #C89 : #C86
  #C91 = eval #C90 == null
  #C92 = eval const core::bool::fromEnvironment(#C2)
  #C93 = eval #C92 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C94 = eval #C91 ?{(core::String) →? core::int} #C93 : #C90
  #C95 = eval #C94 == null
  #C96 = eval const core::bool::fromEnvironment(#C2)
  #C97 = eval #C96 ?{(core::String, {onError: (core::String) →? core::int, radix: core::int?}) →? core::int} #C4 : #C5
  #C98 = eval #C95 ?{(core::String) →? core::int} #C97 : #C94
  #C99 = eval #C98 == null
  #C100 = eval #C99 ?{(core::String) → core::int} #C1 : #C98
  #C101 = eval self::Foo{_foo:#C100}
}

Extra constant evaluation status:
Evaluated with empty environment: ConstantExpression @ org-dartlang-testcase:///issue_49245_variation_potential_exponential_blowup.dart:62:23 -> InstanceConstant(const Foo{Foo._foo: bar})
Evaluated with empty environment: ConstantExpression @ org-dartlang-testcase:///issue_49245_variation_potential_exponential_blowup.dart:89:9 -> InstanceConstant(const Foo{Foo._foo: bar})
Evaluated with empty environment: ConstantExpression @ org-dartlang-testcase:///issue_49245_variation_potential_exponential_blowup.dart:90:9 -> InstanceConstant(const Foo{Foo._foo: bar})
Evaluated with empty environment: ConstantExpression @ org-dartlang-testcase:///issue_49245_variation_potential_exponential_blowup.dart:91:9 -> InstanceConstant(const Foo{Foo._foo: bar})
Evaluated with empty environment: ConstantExpression @ org-dartlang-testcase:///issue_49245_variation_potential_exponential_blowup.dart:92:9 -> InstanceConstant(const Foo{Foo._foo: bar})
Extra constant evaluation: evaluated: 155, effectively constant: 5


Constructor coverage from constants:
org-dartlang-testcase:///issue_49245_variation_potential_exponential_blowup.dart:
- Foo. (from org-dartlang-testcase:///issue_49245_variation_potential_exponential_blowup.dart:6:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
