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

static const field core::int foo = 42.{core::num::*}(42){(core::num) → core::int};
static const field core::String bar = "hello ${const core::String::fromEnvironment("baz", defaultValue: "world")}!";
static const field core::String bar2 = "hello2 2".{core::String::+}(self::bar){(core::String) → core::String};
static const field core::bool baz = true && true && (false || true) && 42 =={core::num::==}{(core::Object) → core::bool} 21.{core::num::*}(4){(core::num) → core::int}.{core::num::/}(2){(core::num) → core::double};
static const field core::Symbol blaSymbol = #_x;
static method main() → dynamic
  ;
static method _x() → void
  ;


Extra constant evaluation status:
Evaluated: InstanceInvocation @ org-dartlang-testcase:///rudimentary_test_01.dart:5:20 -> IntConstant(1764)
Evaluated: StringConcatenation @ org-dartlang-testcase:///rudimentary_test_01.dart:6:18 -> StringConstant("hello 42!")
Evaluated: InstanceInvocation @ org-dartlang-testcase:///rudimentary_test_01.dart:8:35 -> StringConstant("hello2 2hello 42!")
Evaluated: LogicalExpression @ org-dartlang-testcase:///rudimentary_test_01.dart:9:50 -> BoolConstant(true)
Evaluated: SymbolLiteral @ org-dartlang-testcase:///rudimentary_test_01.dart:10:19 -> SymbolConstant(#_x)
Extra constant evaluation: evaluated: 5, effectively constant: 5
