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

static const field core::List<core::String> listWithUnevaluatedUnevaluatedFirst = const <core::String>[const core::String::fromEnvironment("foo"), const core::String::fromEnvironment("bar"), "hello", "world"];
static const field core::List<core::String> listWithUnevaluatedUnevaluatedMiddle = const <core::String>["A", "few", "strings", const core::String::fromEnvironment("foo"), const core::String::fromEnvironment("bar"), "hello", "world", "and", "more"];
static const field core::Set<core::String> setWithUnevaluatedUnevaluatedFirst = const <core::String>{const core::String::fromEnvironment("foo"), "hello", "world"};
static const field core::Set<core::String> setWithUnevaluatedUnevaluatedMiddle = const <core::String>{"A", "few", "strings", const core::String::fromEnvironment("foo"), "hello", "world", "and", "more"};
static const field core::Map<core::String, core::int> mapWithUnevaluatedUnevaluatedFirst = const <core::String, core::int>{const core::String::fromEnvironment("foo"): 42, "hello": 42, "world": 42};
static const field core::Map<core::String, core::int> mapWithUnevaluatedUnevaluatedMiddle = const <core::String, core::int>{"A": 42, "few": 42, "strings": 42, const core::String::fromEnvironment("foo"): 42, "hello": 42, "world": 42, "and": 42, "more": 42};


Extra constant evaluation status:
Evaluated with empty environment: ListLiteral @ org-dartlang-testcase:///const_collections_2.dart:5:58 -> ListConstant(const <String*>["", "", "hello", "world"])
Evaluated with empty environment: FactoryConstructorInvocation @ org-dartlang-testcase:///const_collections_2.dart:6:10 -> StringConstant("")
Evaluated with empty environment: FactoryConstructorInvocation @ org-dartlang-testcase:///const_collections_2.dart:7:10 -> StringConstant("")
Evaluated with empty environment: ListLiteral @ org-dartlang-testcase:///const_collections_2.dart:12:59 -> ListConstant(const <String*>["A", "few", "strings", "", "", "hello", "world", "and", "more"])
Evaluated with empty environment: FactoryConstructorInvocation @ org-dartlang-testcase:///const_collections_2.dart:16:10 -> StringConstant("")
Evaluated with empty environment: FactoryConstructorInvocation @ org-dartlang-testcase:///const_collections_2.dart:17:10 -> StringConstant("")
Evaluated with empty environment: SetLiteral @ org-dartlang-testcase:///const_collections_2.dart:24:56 -> SetConstant(const <String*>{"", "hello", "world"})
Evaluated with empty environment: FactoryConstructorInvocation @ org-dartlang-testcase:///const_collections_2.dart:27:10 -> StringConstant("")
Evaluated with empty environment: SetLiteral @ org-dartlang-testcase:///const_collections_2.dart:32:57 -> SetConstant(const <String*>{"A", "few", "strings", "", "hello", "world", "and", "more"})
Evaluated with empty environment: FactoryConstructorInvocation @ org-dartlang-testcase:///const_collections_2.dart:38:10 -> StringConstant("")
Evaluated with empty environment: MapLiteral @ org-dartlang-testcase:///const_collections_2.dart:45:61 -> MapConstant(const <String*, int*>{"": 42, "hello": 42, "world": 42})
Evaluated with empty environment: FactoryConstructorInvocation @ org-dartlang-testcase:///const_collections_2.dart:48:10 -> StringConstant("")
Evaluated with empty environment: MapLiteral @ org-dartlang-testcase:///const_collections_2.dart:53:62 -> MapConstant(const <String*, int*>{"A": 42, "few": 42, "strings": 42, "": 42, "hello": 42, "world": 42, "and": 42, "more": 42})
Evaluated with empty environment: FactoryConstructorInvocation @ org-dartlang-testcase:///const_collections_2.dart:59:10 -> StringConstant("")
Extra constant evaluation: evaluated: 14, effectively constant: 14
