blob: 8a18319ceaabf89c6ba1d8d3bffbacbe28a7c564 [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/constants/various.dart:162:3: Error: A const constructor can't have a body.
// Try removing either the 'const' keyword or the body.
// const ClassWithNonEmptyConstConstructor() {
// ^^^^^
//
// pkg/front_end/testcases/general/constants/various.dart:76:14: Error: Not a constant expression.
// const x1 = --x;
// ^
//
// pkg/front_end/testcases/general/constants/various.dart:77:14: Error: Not a constant expression.
// const x2 = ++x;
// ^
//
// pkg/front_end/testcases/general/constants/various.dart:78:12: Error: Not a constant expression.
// const x3 = x--;
// ^
//
// pkg/front_end/testcases/general/constants/various.dart:79:12: Error: Not a constant expression.
// const x4 = x++;
// ^
//
// pkg/front_end/testcases/general/constants/various.dart:82:14: Error: Setter not found: 'y'.
// const y1 = --y;
// ^
//
// pkg/front_end/testcases/general/constants/various.dart:83:14: Error: Setter not found: 'y'.
// const y2 = ++y;
// ^
//
// pkg/front_end/testcases/general/constants/various.dart:84:12: Error: Setter not found: 'y'.
// const y3 = y--;
// ^
//
// pkg/front_end/testcases/general/constants/various.dart:85:12: Error: Setter not found: 'y'.
// const y4 = y++;
// ^
//
// pkg/front_end/testcases/general/constants/various.dart:140:24: Error: Not a constant expression.
// const function_const = () {};
// ^^
//
// pkg/front_end/testcases/general/constants/various.dart:180:14: Error: Can't access 'this' in a field initializer to read 'y'.
// final z1 = y;
// ^
//
// pkg/front_end/testcases/general/constants/various.dart:99:4: Error: The class 'AbstractClass' is abstract and can't be instantiated.
// @AbstractClass()
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/general/constants/various.dart:99:4: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
// Try using a constructor or factory that is 'const'.
// @AbstractClass()
// ^
//
// pkg/front_end/testcases/general/constants/various.dart:102:4: Error: The class 'AbstractClassWithConstructor' is abstract and can't be instantiated.
// @AbstractClassWithConstructor()
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//
// pkg/front_end/testcases/general/constants/various.dart:102:4: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
// Try using a constructor or factory that is 'const'.
// @AbstractClassWithConstructor()
// ^
//
// pkg/front_end/testcases/general/constants/various.dart:118:39: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
// Try using a constructor or factory that is 'const'.
// const ExtendsFoo1 extendsFoo1 = const ExtendsFoo1();
// ^^^^^^^^^^^
//
// pkg/front_end/testcases/general/constants/various.dart:121:9: Error: The superclass, 'Foo', has no unnamed constructor that takes no arguments.
// const ExtendsFoo2();
// ^^^^^^^^^^^
//
// pkg/front_end/testcases/general/constants/various.dart:180:14: Error: Not a constant expression.
// final z1 = y;
// ^
//
// pkg/front_end/testcases/general/constants/various.dart:181:14: Error: Not a constant expression.
// final z2 = x;
// ^
//
import self as self;
import "dart:core" as core;
import "dart:_internal" as _in;
abstract class AbstractClass extends core::Object {
synthetic constructor •() → self::AbstractClass*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class AbstractClassWithConstructor extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::AbstractClassWithConstructor*
: super core::Object::•()
;
abstract method foo() → core::int*;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class NotAbstractClass extends core::Object {
@throw invalid-expression "pkg/front_end/testcases/general/constants/various.dart:99:4: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
Try using a constructor or factory that is 'const'.
@AbstractClass()
^"
field core::Object* foo;
@throw invalid-expression "pkg/front_end/testcases/general/constants/various.dart:102:4: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
Try using a constructor or factory that is 'const'.
@AbstractClassWithConstructor()
^"
field core::Object* bar;
synthetic constructor •() → self::NotAbstractClass*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Foo extends core::Object /*hasConstConstructor*/ {
final field core::int* x;
final field core::int* y;
const constructor •(core::int* x) → self::Foo*
: self::Foo::x = x, self::Foo::y = "hello".{core::String::length}, super core::Object::•()
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class ExtendsFoo1 extends self::Foo {
synthetic constructor •() → self::ExtendsFoo1*
;
}
class ExtendsFoo2 extends self::Foo /*hasConstConstructor*/ {
const constructor •() → self::ExtendsFoo2*
: final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/constants/various.dart:121:9: Error: The superclass, 'Foo', has no unnamed constructor that takes no arguments.
const ExtendsFoo2();
^^^^^^^^^^^"
;
}
class ConstClassWithFailingAssertWithEmptyMessage extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::ConstClassWithFailingAssertWithEmptyMessage*
: assert(false, ""), super core::Object::•()
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class ClassWithTypeArguments<E extends core::Object* = dynamic, F extends core::Object* = dynamic, G extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
const constructor •(self::ClassWithTypeArguments::E* e, self::ClassWithTypeArguments::F* f, self::ClassWithTypeArguments::G* g) → self::ClassWithTypeArguments<self::ClassWithTypeArguments::E*, self::ClassWithTypeArguments::F*, self::ClassWithTypeArguments::G*>*
: super core::Object::•()
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class ClassWithNonEmptyConstConstructor extends core::Object {
constructor •() → self::ClassWithNonEmptyConstConstructor*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class ConstClassWithFinalFields1 extends core::Object /*hasConstConstructor*/ {
final field core::int* x = 1;
const constructor •() → self::ConstClassWithFinalFields1*
: super core::Object::•()
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class ConstClassWithFinalFields2 extends core::Object /*hasConstConstructor*/ {
final field core::int* y = 1;
final field dynamic z1 = this.{self::ConstClassWithFinalFields2::y};
final field core::int* z2 = self::x;
const constructor •() → self::ConstClassWithFinalFields2*
: super core::Object::•()
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
abstract member-signature method toString() → core::String*; -> core::Object::toString
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static const field core::bool* barFromEnv = const core::bool::fromEnvironment("bar");
static const field core::bool* hasBarEnv = const core::bool::hasEnvironment("bar");
static const field core::bool* barFromEnvOrNull = const core::bool::fromEnvironment("bar", defaultValue: null);
static const field core::bool* notBarFromEnvOrNull = !self::barFromEnvOrNull;
static const field core::bool* conditionalOnNull = self::barFromEnvOrNull ?{core::bool*} true : false;
static const field core::bool* nullAwareOnNullTrue = let final core::bool* #t2 = self::barFromEnvOrNull in #t2.{core::Object::==}(null) ?{core::bool*} true : #t2;
static const field core::bool* nullAwareOnNullFalse = let final core::bool* #t3 = self::barFromEnvOrNull in #t3.{core::Object::==}(null) ?{core::bool*} false : #t3;
static const field core::bool* andOnFalse = self::nullAwareOnNullFalse && self::nullAwareOnNullTrue;
static const field core::bool* andOnFalse2 = self::nullAwareOnNullTrue && self::nullAwareOnNullFalse;
static const field core::bool* andOnNull = self::barFromEnvOrNull && true;
static const field core::bool* andOnNull2 = true && self::barFromEnvOrNull;
static const field core::bool* orOnNull = self::barFromEnvOrNull || true;
static const field core::bool* orOnNull2 = self::barFromEnvOrNull || false;
static const field core::bool* orOnNull3 = true || self::barFromEnvOrNull;
static const field core::bool* orOnNull4 = false || self::barFromEnvOrNull;
static const field core::String* barFromEnvString = const core::String::fromEnvironment("bar");
static const field core::String* barFromEnvOrNullString = const core::String::fromEnvironment("bar", defaultValue: null);
static const field core::String* barFromEnvOrActualString = const core::String::fromEnvironment("bar", defaultValue: "hello");
static const field core::String* nullFromEnvString = const core::String::fromEnvironment(self::barFromEnvOrNullString);
static const field core::bool* barFromEnvBool = const core::bool::fromEnvironment("bar");
static const field core::bool* barFromEnvOrNullBool = const core::bool::fromEnvironment("bar", defaultValue: null);
static const field core::bool* barFromEnvOrActualBool = const core::bool::fromEnvironment("bar", defaultValue: true);
static const field core::bool* nullFromEnvBool = const core::bool::fromEnvironment(self::barFromEnvOrNullString);
static const field core::int* barFromEnvInt = const core::int::fromEnvironment("bar");
static const field core::int* barFromEnvOrNullInt = const core::int::fromEnvironment("bar", defaultValue: null);
static const field core::int* barFromEnvOrActualInt = const core::int::fromEnvironment("bar", defaultValue: 42);
static const field core::int* nullFromEnvInt = const core::int::fromEnvironment(self::barFromEnvOrNullString);
static const field core::bool* bazFromEnv = const core::bool::fromEnvironment("baz");
static const field core::bool* hasBazEnv = const core::bool::hasEnvironment("baz");
static const field core::int* bazFromEnvAsInt = const core::int::fromEnvironment("baz");
static const field core::String* bazFromEnvAsString = const core::String::fromEnvironment("baz");
static const field core::bool* bazTrueFromEnv = const core::bool::fromEnvironment("bazTrue");
static const field core::bool* bazFalseFromEnv = const core::bool::fromEnvironment("bazFalse");
static const field core::bool* trueBool = true;
static const field core::bool* falseBool = false;
static const field core::bool* binaryOnBoolCaret = self::trueBool.{core::bool::^}(self::falseBool);
static const field core::bool* binaryOnBoolAmpersand = self::trueBool.{core::bool::&}(self::falseBool);
static const field core::bool* binaryOnBoolBar = self::trueBool.{core::bool::|}(self::falseBool);
static const field core::bool* binaryOnBoolBar2 = self::falseBool.{core::bool::|}(self::trueBool);
static const field dynamic willBeDouble = const core::bool::fromEnvironment("foo") ?{core::num*} 42 : 42.42;
static const field dynamic binaryOnDouble = self::willBeDouble.<<(2);
static const field dynamic willBeInt = const core::bool::fromEnvironment("foo") ?{core::num*} 42.42 : 42;
static const field dynamic binaryOnIntWithDoubleBad = self::willBeInt.<<(self::willBeDouble);
static const field dynamic binaryOnIntWithDoubleOK = self::willBeInt.+(self::willBeDouble);
static const field dynamic binaryOnIntWithString = self::willBeInt.<<("hello");
static const field dynamic willBeString = const core::bool::fromEnvironment("foo") ?{core::Object*} 42.42 : "hello";
static const field dynamic binaryOnStringWithStringOK = self::willBeString.+(" world");
static const field dynamic binaryOnStringWithInt = self::willBeString.+(self::willBeInt);
static const field dynamic binaryOnStringWithStringBad = self::willBeString.-(" world");
static field core::int* x;
static const field core::int* x1 = self::x = self::x.{core::num::-}(1);
static const field core::int* x2 = self::x = self::x.{core::num::+}(1);
static const field core::int* x3 = let final core::int* #t4 = self::x in let final core::int* #t5 = self::x = #t4.{core::num::-}(1) in #t4;
static const field core::int* x4 = let final core::int* #t6 = self::x in let final core::int* #t7 = self::x = #t6.{core::num::+}(1) in #t6;
static const field core::int* y = 1;
static const field dynamic y1 = invalid-expression "pkg/front_end/testcases/general/constants/various.dart:82:14: Error: Setter not found: 'y'.
const y1 = --y;
^";
static const field dynamic y2 = invalid-expression "pkg/front_end/testcases/general/constants/various.dart:83:14: Error: Setter not found: 'y'.
const y2 = ++y;
^";
static const field core::int* y3 = let final core::int* #t8 = self::y in let final dynamic #t9 = invalid-expression "pkg/front_end/testcases/general/constants/various.dart:84:12: Error: Setter not found: 'y'.
const y3 = y--;
^" in #t8;
static const field core::int* y4 = let final core::int* #t10 = self::y in let final dynamic #t11 = invalid-expression "pkg/front_end/testcases/general/constants/various.dart:85:12: Error: Setter not found: 'y'.
const y4 = y++;
^" in #t10;
static field self::AbstractClassWithConstructor* abstractClassWithConstructor;
static const field self::ExtendsFoo1* extendsFoo1 = invalid-expression "pkg/front_end/testcases/general/constants/various.dart:118:39: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
Try using a constructor or factory that is 'const'.
const ExtendsFoo1 extendsFoo1 = const ExtendsFoo1();
^^^^^^^^^^^" as{TypeError,ForDynamic} self::ExtendsFoo1*;
static const field self::ExtendsFoo2* extendsFoo2 = const self::ExtendsFoo2::•();
static const field self::Foo* foo1 = const self::Foo::•(42);
static const field self::Foo* foo2 = const self::Foo::•(42);
static const field core::bool* foosIdentical = core::identical(self::foo1, self::foo2);
static const field core::bool* foosEqual = self::foo1.{self::Foo::==}(self::foo2);
static const field core::Symbol* barFoo = const _in::Symbol::•("Foo");
static const field core::Symbol* barFooEqual = const _in::Symbol::•("Foo=");
static const field core::Symbol* tripleShiftSymbol = const _in::Symbol::•(">>>");
static const field core::Symbol* symbolWithDots = const _in::Symbol::•("I.Have.Dots");
static const field core::int* circularity1 = self::circularity2;
static const field core::int* circularity2 = self::circularity3;
static const field core::int* circularity3 = self::circularity4;
static const field core::int* circularity4 = self::circularity1;
static const field dynamic function_const = invalid-expression "pkg/front_end/testcases/general/constants/various.dart:140:24: Error: Not a constant expression.
const function_const = () {};
^^";
static field () →* core::Null? function_var;
static field self::ConstClassWithFailingAssertWithEmptyMessage* failedAssertEmptyMessage;
static const field self::ClassWithTypeArguments<dynamic, dynamic, dynamic>* classWithTypeArguments1 = const self::ClassWithTypeArguments::•<core::int*, core::int*, core::int*>(42, 42, 42);
static const field self::ClassWithTypeArguments<dynamic, dynamic, dynamic>* classWithTypeArguments2 = const self::ClassWithTypeArguments::•<dynamic, dynamic, dynamic>(42, 42, 42);
static const field core::bool* classWithTypeArgumentsIdentical = core::identical(self::classWithTypeArguments1, self::classWithTypeArguments2);
static field self::ClassWithNonEmptyConstConstructor* classWithNonEmptyConstConstructor;
static field self::ConstClassWithFinalFields2* constClassWithFinalFields;
static const field core::bool* zeroPointZeroIdentical = core::identical(0.0, 0.0);
static const field core::bool* zeroPointZeroIdenticalToZero = core::identical(0.0, 0);
static const field core::bool* zeroIdenticalToZeroPointZero = core::identical(0, 0.0);
static const field core::bool* nanIdentical = core::identical(0.{core::num::/}(0), 0.{core::num::/}(0));
static const field core::bool* zeroPointZeroEqual = 0.0.{core::num::==}(0.0);
static const field core::bool* zeroPointZeroEqualToZero = 0.0.{core::num::==}(0);
static const field core::bool* zeroEqualToZeroPointZero = 0.{core::num::==}(0.0);
static const field core::bool* nanEqual = 0.{core::num::/}(0).{core::num::==}(0.{core::num::/}(0));
static const field dynamic willBecomeNull = const core::bool::fromEnvironment("foo") ?{<T extends core::Object* = dynamic>(T*) →* T*} self::id1 : null;
static const field (core::int*) →* core::int* willBecomeNullToo = (const core::bool::fromEnvironment("foo") ?{dynamic} self::id1<core::int*> : self::willBecomeNull) as{TypeError,ForDynamic} (core::int*) →* core::int*;
static const field (core::int*) →* core::int* partialInstantiation = (const core::bool::fromEnvironment("foo") ?{dynamic} self::willBecomeNull : self::id1<core::int*>) as{TypeError,ForDynamic} (core::int*) →* core::int*;
static const field core::bool* yBool = true;
static const field core::bool* zBool = !self::yBool;
static const field core::Object* maybeInt = const core::bool::fromEnvironment("foo") ?{core::Object*} 42 : true;
static const field core::bool* isItInt = self::maybeInt is core::int* ?{core::bool*} true : false;
static const field core::Object* maybeInt2 = self::zBool ?{core::Object*} 42 : true;
static const field core::bool* isItInt2 = self::maybeInt2 is core::int* ?{core::bool*} true : false;
static const field core::int* maybeInt3 = self::zBool ?{core::int*} 42 : null;
static const field core::bool* isItInt3 = self::maybeInt3 is core::int* ?{core::bool*} true : false;
static method id1<T extends core::Object* = dynamic>(self::id1::T* t) → self::id1::T*
;
static method id2<T extends core::Object* = dynamic>(self::id2::T* t) → self::id2::T*
;
static method main() → dynamic
;