[vm] Enable new kernel AST invocation nodes for the VM, take 2

This change was already reviewed at
https://dart-review.googlesource.com/c/sdk/+/197586.

Bugfix is in the separate change:
https://dart-review.googlesource.com/c/sdk/+/199365.

TEST=ci

Issue: https://github.com/dart-lang/sdk/issues/45340
Change-Id: I4311909e4893af53e88895512f03d3ef84c6bc5f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199366
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
This commit is contained in:
Alexander Markov 2021-05-20 18:53:45 +00:00 committed by commit-bot@chromium.org
parent dfcb88f4c9
commit 88021fd67a
2281 changed files with 24850 additions and 24599 deletions

View file

@ -7,8 +7,8 @@ import "org-dartlang-testcase:///main_lib.dart";
static method main() → dynamic {
core::List<dynamic> list = <dynamic>[];
if(list.{core::Iterable::isNotEmpty}) {
new mai::Class::•().{mai::Class::method}((null as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} mai::Enum);
if(list.{core::Iterable::isNotEmpty}{core::bool}) {
new mai::Class::•().{mai::Class::method}((null as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} mai::Enum){(mai::Enum) → core::int};
}
}
@ -25,14 +25,14 @@ class Enum extends core::Object /*isEnum*/ {
: mai::Enum::index = index, mai::Enum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{mai::Enum::_name};
return this.{mai::Enum::_name}{core::String};
}
class Class extends core::Object {
synthetic constructor •() → mai::Class
: super core::Object::•()
;
method method(mai::Enum e) → core::int
return e.{mai::Enum::index};
return e.{mai::Enum::index}{core::int};
}
constants {

View file

@ -8,7 +8,7 @@ import "org-dartlang-testcase:///main_lib.dart";
static method main() → dynamic {
core::List<dynamic> list = core::_GrowableList::•<dynamic>(0);
if(list.{core::Iterable::isNotEmpty}) {
if(list.{core::Iterable::isNotEmpty}{core::bool}) {
let dynamic #t1 = new mai::Class::•() in let dynamic #t2 = _in::unsafeCast<dynamic>(null) as{TypeError,ForDynamic,ForNonNullableByDefault} mai::Enum in throw "Attempt to execute code removed by Dart AOT compiler (TFA)";
}
}

View file

@ -7,8 +7,8 @@ import "org-dartlang-testcase:///main_lib.dart";
static method main() → dynamic {
core::List<dynamic> list = <dynamic>[];
if(list.{core::Iterable::isNotEmpty}) {
new mai::Class::•().{mai::Class::method}((null as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} mai::Enum);
if(list.{core::Iterable::isNotEmpty}{core::bool}) {
new mai::Class::•().{mai::Class::method}((null as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} mai::Enum){(mai::Enum) → core::int};
}
}
@ -25,14 +25,14 @@ class Enum extends core::Object /*isEnum*/ {
: mai::Enum::index = index, mai::Enum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{mai::Enum::_name};
return this.{mai::Enum::_name}{core::String};
}
class Class extends core::Object {
synthetic constructor •() → mai::Class
: super core::Object::•()
;
method method(mai::Enum e) → core::int
return e.{mai::Enum::index};
return e.{mai::Enum::index}{core::int};
}
constants {

View file

@ -19,7 +19,7 @@ class Enum extends core::Object /*isEnum*/ {
: self2::Enum::index = index, self2::Enum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{self2::Enum::_name};
return this.{self2::Enum::_name}{core::String};
}
class Class extends core::Object {
synthetic constructor •() → self2::Class

View file

@ -8,8 +8,8 @@ import "org-dartlang-testcase:///main_lib.dart";
static method main() → dynamic {
core::List<dynamic> list = core::_GrowableList::•<dynamic>(0);
if(list.{core::Iterable::isNotEmpty}) {
new mai::Class::•().{mai::Class::method}(_in::unsafeCast<mai::Enum>(_in::unsafeCast<dynamic>(null)));
if(list.{core::Iterable::isNotEmpty}{core::bool}) {
new mai::Class::•().{mai::Class::method}(_in::unsafeCast<mai::Enum>(_in::unsafeCast<dynamic>(null))){(mai::Enum) → core::int};
}
}
@ -25,7 +25,7 @@ class Class extends core::Object {
: super core::Object::•()
;
method method(mai::Enum e) → core::int
return e.{mai::Enum::index};
return e.{mai::Enum::index}{core::int};
}

View file

@ -15,7 +15,7 @@ class UnusedEnum extends core::Object /*isEnum*/ {
: self::UnusedEnum::index = index, self::UnusedEnum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{self::UnusedEnum::_name};
return this.{self::UnusedEnum::_name}{core::String};
}
class UsedEnum extends core::Object /*isEnum*/ {
final field core::int index;
@ -27,7 +27,7 @@ class UsedEnum extends core::Object /*isEnum*/ {
: self::UsedEnum::index = index, self::UsedEnum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{self::UsedEnum::_name};
return this.{self::UsedEnum::_name}{core::String};
}
class UnusedInterface extends core::Object {
field core::int? usedInterfaceField;
@ -49,17 +49,17 @@ class UnusedClass extends core::Object {
;
}
static method usedMethod(self::UnusedInterface c) → dynamic {
c.{self::UnusedInterface::usedInterfaceField} = c.{self::UnusedInterface::usedInterfaceField};
c.{self::UnusedInterface::usedInterfaceField} = c.{self::UnusedInterface::usedInterfaceField}{core::int?};
}
static method unusedMethod() → dynamic {}
static method main() → dynamic {
self::usedMethod(let final self::UsedClass #t1 = new self::UsedClass::•() in block {
#t1.{self::UsedClass::usedField};
#t1.{self::UsedClass::usedField}{core::int?};
} =>#t1);
#C11;
core::List<self::UnusedEnum> list = <self::UnusedEnum>[];
if(list.{core::Iterable::isNotEmpty}) {
new mai::ConstClass::•().{mai::ConstClass::method}((null as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} mai::ConstEnum);
if(list.{core::Iterable::isNotEmpty}{core::bool}) {
new mai::ConstClass::•().{mai::ConstClass::method}((null as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} mai::ConstEnum){(mai::ConstEnum) → core::int};
}
}
@ -76,14 +76,14 @@ class ConstEnum extends core::Object /*isEnum*/ {
: mai::ConstEnum::index = index, mai::ConstEnum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{mai::ConstEnum::_name};
return this.{mai::ConstEnum::_name}{core::String};
}
class ConstClass extends core::Object {
synthetic constructor •() → mai::ConstClass
: super core::Object::•()
;
method method(mai::ConstEnum e) → core::int
return e.{mai::ConstEnum::index};
return e.{mai::ConstEnum::index}{core::int};
}
constants {

View file

@ -12,7 +12,7 @@ class UsedEnum extends core::Object /*isEnum*/ {
final field core::int index;
final field core::String _name;
method toString() → core::String
return this.{self::UsedEnum::_name};
return this.{self::UsedEnum::_name}{core::String};
}
abstract class UnusedInterface extends core::Object {
abstract get /*isLegacy*/ usedInterfaceField() → core::int?;
@ -26,15 +26,15 @@ class UsedClass extends core::Object implements self::UnusedInterface {
;
}
static method usedMethod(self::UnusedInterface c) → dynamic {
c.{self::UnusedInterface::usedInterfaceField} = c.{self::UnusedInterface::usedInterfaceField};
c.{self::UnusedInterface::usedInterfaceField} = c.{self::UnusedInterface::usedInterfaceField}{core::int?};
}
static method main() → dynamic {
self::usedMethod(let final self::UsedClass #t1 = new self::UsedClass::•() in block {
#t1.{self::UsedClass::usedField};
#t1.{self::UsedClass::usedField}{core::int?};
} =>#t1);
#C3;
core::List<self::UnusedEnum> list = core::_GrowableList::•<self::UnusedEnum>(0);
if(list.{core::Iterable::isNotEmpty}) {
if(list.{core::Iterable::isNotEmpty}{core::bool}) {
let dynamic #t2 = new mai::ConstClass::•() in let dynamic #t3 = _in::unsafeCast<dynamic>(null) as{TypeError,ForDynamic,ForNonNullableByDefault} mai::ConstEnum in throw "Attempt to execute code removed by Dart AOT compiler (TFA)";
}
}

View file

@ -15,7 +15,7 @@ class UnusedEnum extends core::Object /*isEnum*/ {
: self::UnusedEnum::index = index, self::UnusedEnum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{self::UnusedEnum::_name};
return this.{self::UnusedEnum::_name}{core::String};
}
class UsedEnum extends core::Object /*isEnum*/ {
final field core::int index;
@ -27,7 +27,7 @@ class UsedEnum extends core::Object /*isEnum*/ {
: self::UsedEnum::index = index, self::UsedEnum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{self::UsedEnum::_name};
return this.{self::UsedEnum::_name}{core::String};
}
class UnusedInterface extends core::Object {
field core::int? usedInterfaceField;
@ -49,17 +49,17 @@ class UnusedClass extends core::Object {
;
}
static method usedMethod(self::UnusedInterface c) → dynamic {
c.{self::UnusedInterface::usedInterfaceField} = c.{self::UnusedInterface::usedInterfaceField};
c.{self::UnusedInterface::usedInterfaceField} = c.{self::UnusedInterface::usedInterfaceField}{core::int?};
}
static method unusedMethod() → dynamic {}
static method main() → dynamic {
self::usedMethod(let final self::UsedClass #t1 = new self::UsedClass::•() in block {
#t1.{self::UsedClass::usedField};
#t1.{self::UsedClass::usedField}{core::int?};
} =>#t1);
#C11;
core::List<self::UnusedEnum> list = <self::UnusedEnum>[];
if(list.{core::Iterable::isNotEmpty}) {
new mai::ConstClass::•().{mai::ConstClass::method}((null as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} mai::ConstEnum);
if(list.{core::Iterable::isNotEmpty}{core::bool}) {
new mai::ConstClass::•().{mai::ConstClass::method}((null as{ForNonNullableByDefault} dynamic) as{TypeError,ForDynamic,ForNonNullableByDefault} mai::ConstEnum){(mai::ConstEnum) → core::int};
}
}
@ -76,14 +76,14 @@ class ConstEnum extends core::Object /*isEnum*/ {
: mai::ConstEnum::index = index, mai::ConstEnum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{mai::ConstEnum::_name};
return this.{mai::ConstEnum::_name}{core::String};
}
class ConstClass extends core::Object {
synthetic constructor •() → mai::ConstClass
: super core::Object::•()
;
method method(mai::ConstEnum e) → core::int
return e.{mai::ConstEnum::index};
return e.{mai::ConstEnum::index}{core::int};
}
constants {

View file

@ -14,7 +14,7 @@ class UnusedEnum extends core::Object /*isEnum*/ {
: self::UnusedEnum::index = index, self::UnusedEnum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{self::UnusedEnum::_name};
return this.{self::UnusedEnum::_name}{core::String};
}
class UsedEnum extends core::Object /*isEnum*/ {
final field core::int index;
@ -26,7 +26,7 @@ class UsedEnum extends core::Object /*isEnum*/ {
: self::UsedEnum::index = index, self::UsedEnum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{self::UsedEnum::_name};
return this.{self::UsedEnum::_name}{core::String};
}
class UnusedInterface extends core::Object {
field core::int? usedInterfaceField;
@ -64,7 +64,7 @@ class ConstEnum extends core::Object /*isEnum*/ {
: self2::ConstEnum::index = index, self2::ConstEnum::_name = _name, super core::Object::•()
;
method toString() → core::String
return this.{self2::ConstEnum::_name};
return this.{self2::ConstEnum::_name}{core::String};
}
class ConstClass extends core::Object {
synthetic constructor •() → self2::ConstClass

View file

@ -12,7 +12,7 @@ class UsedEnum extends core::Object /*isEnum*/ {
final field core::int index;
final field core::String _name;
method toString() → core::String
return this.{self::UsedEnum::_name};
return this.{self::UsedEnum::_name}{core::String};
}
abstract class UnusedInterface extends core::Object {
abstract get /*isLegacy*/ usedInterfaceField() → core::int?;
@ -26,16 +26,16 @@ class UsedClass extends core::Object implements self::UnusedInterface {
;
}
static method usedMethod(self::UnusedInterface c) → dynamic {
c.{self::UnusedInterface::usedInterfaceField} = c.{self::UnusedInterface::usedInterfaceField};
c.{self::UnusedInterface::usedInterfaceField} = c.{self::UnusedInterface::usedInterfaceField}{core::int?};
}
static method main() → dynamic {
self::usedMethod(let final self::UsedClass #t1 = new self::UsedClass::•() in block {
#t1.{self::UsedClass::usedField};
#t1.{self::UsedClass::usedField}{core::int?};
} =>#t1);
#C3;
core::List<self::UnusedEnum> list = core::_GrowableList::•<self::UnusedEnum>(0);
if(list.{core::Iterable::isNotEmpty}) {
new mai::ConstClass::•().{mai::ConstClass::method}(_in::unsafeCast<mai::ConstEnum>(_in::unsafeCast<dynamic>(null)));
if(list.{core::Iterable::isNotEmpty}{core::bool}) {
new mai::ConstClass::•().{mai::ConstClass::method}(_in::unsafeCast<mai::ConstEnum>(_in::unsafeCast<dynamic>(null))){(mai::ConstEnum) → core::int};
}
}
@ -51,7 +51,7 @@ class ConstClass extends core::Object {
: super core::Object::•()
;
method method(mai::ConstEnum e) → core::int
return e.{mai::ConstEnum::index};
return e.{mai::ConstEnum::index}{core::int};
}
constants {

View file

@ -14,8 +14,8 @@ class Class extends core::Object implements mai::Interface {
;
}
static method method(mai::Interface i) → void {
i.{mai::Interface::field2} = i.{mai::Interface::field1};
i.{mai::Interface::field3} = i.{mai::Interface::field3};
i.{mai::Interface::field2} = i.{mai::Interface::field1}{core::int?};
i.{mai::Interface::field3} = i.{mai::Interface::field3}{core::int?};
}
static method main() → dynamic {
self::method(new self::Class::•());

View file

@ -14,8 +14,8 @@ class Class extends core::Object implements mai::Interface {
set /*isLegacy*/ field2(core::int? value) → void;
}
static method method(mai::Interface i) → void {
i.{mai::Interface::field2} = i.{mai::Interface::field1};
i.{mai::Interface::field3} = i.{mai::Interface::field3};
i.{mai::Interface::field2} = i.{mai::Interface::field1}{core::int?};
i.{mai::Interface::field3} = i.{mai::Interface::field3}{core::int?};
}
static method main() → dynamic {
self::method(new self::Class::•());

View file

@ -14,8 +14,8 @@ class Class extends core::Object implements mai::Interface {
;
}
static method method(mai::Interface i) → void {
i.{mai::Interface::field2} = i.{mai::Interface::field1};
i.{mai::Interface::field3} = i.{mai::Interface::field3};
i.{mai::Interface::field2} = i.{mai::Interface::field1}{core::int?};
i.{mai::Interface::field3} = i.{mai::Interface::field3}{core::int?};
}
static method main() → dynamic {
self::method(new self::Class::•());

View file

@ -14,8 +14,8 @@ class Class extends core::Object implements mai::Interface {
set /*isLegacy*/ field2(core::int? value) → void;
}
static method method(mai::Interface i) → void {
i.{mai::Interface::field2} = i.{mai::Interface::field1};
i.{mai::Interface::field3} = i.{mai::Interface::field3};
i.{mai::Interface::field2} = i.{mai::Interface::field1}{core::int?};
i.{mai::Interface::field3} = i.{mai::Interface::field3}{core::int?};
}
static method main() → dynamic {
self::method(new self::Class::•());

View file

@ -9,15 +9,15 @@ static const field core::int var1 = #C1;
static const field core::int var2 = #C1;
static method fn() → core::int {
core::int x = 0;
assert(x.{core::num::==}(0), "fail");
assert(x =={core::num::==}{(core::Object) → core::bool} 0, "fail");
return x;
}
static method fn2() → core::int {
core::int x = 0;
assert((() → core::bool {
core::int y = x.{core::num::+}(1);
return y.{core::num::==}(1);
}).call());
core::int y = x.{core::num::+}(1){(core::num) → core::int};
return y =={core::num::==}{(core::Object) → core::bool} 1;
})(){() → core::bool});
return x;
}
static method main() → void {

View file

@ -9,15 +9,15 @@ static const field core::int var1 = #C1;
static const field core::int var2 = #C1;
static method fn() → core::int {
core::int x = 0;
assert(x.{core::num::==}(0), "fail");
assert(x =={core::num::==}{(core::Object) → core::bool} 0, "fail");
return x;
}
static method fn2() → core::int {
core::int x = 0;
assert((() → core::bool {
core::int y = x.{core::num::+}(1);
return y.{core::num::==}(1);
}).call());
core::int y = x.{core::num::+}(1){(core::num) → core::int};
return y =={core::num::==}{(core::Object) → core::bool} 1;
})(){() → core::bool});
return x;
}
static method main() → void {

View file

@ -9,15 +9,15 @@ static const field core::int var1 = #C1;
static const field core::int var2 = #C1;
static method fn() → core::int {
core::int x = 0;
assert(x.{core::num::==}(0), "fail");
assert(x =={core::num::==}{(core::Object) → core::bool} 0, "fail");
return x;
}
static method fn2() → core::int {
core::int x = 0;
assert((() → core::bool {
core::int y = x.{core::num::+}(1);
return y.{core::num::==}(1);
}).call());
core::int y = x.{core::num::+}(1){(core::num) → core::int};
return y =={core::num::==}{(core::Object) → core::bool} 1;
})(){() → core::bool});
return x;
}
static method main() → void {

View file

@ -9,15 +9,15 @@ static const field core::int var1 = #C1;
static const field core::int var2 = #C1;
static method fn() → core::int {
core::int x = 0;
assert(x.{core::num::==}(0), "fail");
assert(x =={core::num::==}{(core::Object) → core::bool} 0, "fail");
return x;
}
static method fn2() → core::int {
core::int x = 0;
assert((() → core::bool {
core::int y = x.{core::num::+}(1);
return y.{core::num::==}(1);
}).call());
core::int y = x.{core::num::+}(1){(core::num) → core::int};
return y =={core::num::==}{(core::Object) → core::bool} 1;
})(){() → core::bool});
return x;
}
static method main() → void {

View file

@ -16,29 +16,29 @@ static method foo() → core::int {
() → () → core::int f = () → () → core::int {
core::int count = 0;
function baz() → core::int {
count = count.{core::num::+}(1);
count = count.{core::num::+}(1){(core::num) → core::int};
return count;
}
return baz;
};
() → core::int c1 = f.call();
() → core::int c2 = f.call();
core::int c1_val1 = c1.call();
assert(c1_val1.{core::num::==}(1));
core::int c1_val2 = c1.call();
assert(c1_val2.{core::num::==}(2));
core::int c1_val3 = c1.call();
assert(c1_val3.{core::num::==}(3));
core::int c2_val1 = c2.call();
assert(c1_val1.{core::num::==}(1));
core::int c2_val2 = c2.call();
assert(c1_val2.{core::num::==}(2));
core::int c2_val3 = c2.call();
assert(c1_val3.{core::num::==}(3));
() → core::int c1 = f(){() → () → core::int};
() → core::int c2 = f(){() → () → core::int};
core::int c1_val1 = c1(){() → core::int};
assert(c1_val1 =={core::num::==}{(core::Object) → core::bool} 1);
core::int c1_val2 = c1(){() → core::int};
assert(c1_val2 =={core::num::==}{(core::Object) → core::bool} 2);
core::int c1_val3 = c1(){() → core::int};
assert(c1_val3 =={core::num::==}{(core::Object) → core::bool} 3);
core::int c2_val1 = c2(){() → core::int};
assert(c1_val1 =={core::num::==}{(core::Object) → core::bool} 1);
core::int c2_val2 = c2(){() → core::int};
assert(c1_val2 =={core::num::==}{(core::Object) → core::bool} 2);
core::int c2_val3 = c2(){() → core::int};
assert(c1_val3 =={core::num::==}{(core::Object) → core::bool} 3);
return 0;
}
static method fn() → core::int {
return (() → core::int => 0).call();
return (() → core::int => 0)(){() → core::int};
}
static method fn3() → core::int {
core::int y = 2;
@ -49,25 +49,25 @@ static method fn4() → core::int {
function innerFn() → core::int {
return x;
}
return innerFn.call();
return innerFn(){() → core::int};
}
static method fn5(core::int a) → core::int {
function recurse(core::int b) → core::int {
if(b.{core::num::==}(1))
if(b =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
core::int result = recurse.call(b.{core::num::-}(1));
return b.{core::num::*}(result);
core::int result = recurse(b.{core::num::-}(1){(core::num) → core::int}){(core::int) → core::int};
return b.{core::num::*}(result){(core::num) → core::int};
}
return recurse.call(a);
return recurse(a){(core::int) → core::int};
}
static method fn6(core::int a) → core::int {
function recurse() → core::int {
a = a.{core::num::-}(1);
if(a.{core::num::==}(1))
a = a.{core::num::-}(1){(core::num) → core::int};
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
return a.{core::num::*}(recurse.call());
return a.{core::num::*}(recurse(){() → core::int}){(core::num) → core::int};
}
return recurse.call();
return recurse(){() → core::int};
}
static method main() → void {
exp::Expect::equals(#C1, 0);

View file

@ -16,29 +16,29 @@ static method foo() → core::int {
() → () → core::int f = () → () → core::int {
core::int count = 0;
function baz() → core::int {
count = count.{core::num::+}(1);
count = count.{core::num::+}(1){(core::num) → core::int};
return count;
}
return baz;
};
() → core::int c1 = f.call();
() → core::int c2 = f.call();
core::int c1_val1 = c1.call();
assert(c1_val1.{core::num::==}(1));
core::int c1_val2 = c1.call();
assert(c1_val2.{core::num::==}(2));
core::int c1_val3 = c1.call();
assert(c1_val3.{core::num::==}(3));
core::int c2_val1 = c2.call();
assert(c1_val1.{core::num::==}(1));
core::int c2_val2 = c2.call();
assert(c1_val2.{core::num::==}(2));
core::int c2_val3 = c2.call();
assert(c1_val3.{core::num::==}(3));
() → core::int c1 = f(){() → () → core::int};
() → core::int c2 = f(){() → () → core::int};
core::int c1_val1 = c1(){() → core::int};
assert(c1_val1 =={core::num::==}{(core::Object) → core::bool} 1);
core::int c1_val2 = c1(){() → core::int};
assert(c1_val2 =={core::num::==}{(core::Object) → core::bool} 2);
core::int c1_val3 = c1(){() → core::int};
assert(c1_val3 =={core::num::==}{(core::Object) → core::bool} 3);
core::int c2_val1 = c2(){() → core::int};
assert(c1_val1 =={core::num::==}{(core::Object) → core::bool} 1);
core::int c2_val2 = c2(){() → core::int};
assert(c1_val2 =={core::num::==}{(core::Object) → core::bool} 2);
core::int c2_val3 = c2(){() → core::int};
assert(c1_val3 =={core::num::==}{(core::Object) → core::bool} 3);
return 0;
}
static method fn() → core::int {
return (() → core::int => 0).call();
return (() → core::int => 0)(){() → core::int};
}
static method fn3() → core::int {
core::int y = 2;
@ -49,25 +49,25 @@ static method fn4() → core::int {
function innerFn() → core::int {
return x;
}
return innerFn.call();
return innerFn(){() → core::int};
}
static method fn5(core::int a) → core::int {
function recurse(core::int b) → core::int {
if(b.{core::num::==}(1))
if(b =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
core::int result = recurse.call(b.{core::num::-}(1));
return b.{core::num::*}(result);
core::int result = recurse(b.{core::num::-}(1){(core::num) → core::int}){(core::int) → core::int};
return b.{core::num::*}(result){(core::num) → core::int};
}
return recurse.call(a);
return recurse(a){(core::int) → core::int};
}
static method fn6(core::int a) → core::int {
function recurse() → core::int {
a = a.{core::num::-}(1);
if(a.{core::num::==}(1))
a = a.{core::num::-}(1){(core::num) → core::int};
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
return a.{core::num::*}(recurse.call());
return a.{core::num::*}(recurse(){() → core::int}){(core::num) → core::int};
}
return recurse.call();
return recurse(){() → core::int};
}
static method main() → void {
exp::Expect::equals(#C1, 0);

View file

@ -16,29 +16,29 @@ static method foo() → core::int {
() → () → core::int f = () → () → core::int {
core::int count = 0;
function baz() → core::int {
count = count.{core::num::+}(1);
count = count.{core::num::+}(1){(core::num) → core::int};
return count;
}
return baz;
};
() → core::int c1 = f.call();
() → core::int c2 = f.call();
core::int c1_val1 = c1.call();
assert(c1_val1.{core::num::==}(1));
core::int c1_val2 = c1.call();
assert(c1_val2.{core::num::==}(2));
core::int c1_val3 = c1.call();
assert(c1_val3.{core::num::==}(3));
core::int c2_val1 = c2.call();
assert(c1_val1.{core::num::==}(1));
core::int c2_val2 = c2.call();
assert(c1_val2.{core::num::==}(2));
core::int c2_val3 = c2.call();
assert(c1_val3.{core::num::==}(3));
() → core::int c1 = f(){() → () → core::int};
() → core::int c2 = f(){() → () → core::int};
core::int c1_val1 = c1(){() → core::int};
assert(c1_val1 =={core::num::==}{(core::Object) → core::bool} 1);
core::int c1_val2 = c1(){() → core::int};
assert(c1_val2 =={core::num::==}{(core::Object) → core::bool} 2);
core::int c1_val3 = c1(){() → core::int};
assert(c1_val3 =={core::num::==}{(core::Object) → core::bool} 3);
core::int c2_val1 = c2(){() → core::int};
assert(c1_val1 =={core::num::==}{(core::Object) → core::bool} 1);
core::int c2_val2 = c2(){() → core::int};
assert(c1_val2 =={core::num::==}{(core::Object) → core::bool} 2);
core::int c2_val3 = c2(){() → core::int};
assert(c1_val3 =={core::num::==}{(core::Object) → core::bool} 3);
return 0;
}
static method fn() → core::int {
return (() → core::int => 0).call();
return (() → core::int => 0)(){() → core::int};
}
static method fn3() → core::int {
core::int y = 2;
@ -49,25 +49,25 @@ static method fn4() → core::int {
function innerFn() → core::int {
return x;
}
return innerFn.call();
return innerFn(){() → core::int};
}
static method fn5(core::int a) → core::int {
function recurse(core::int b) → core::int {
if(b.{core::num::==}(1))
if(b =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
core::int result = recurse.call(b.{core::num::-}(1));
return b.{core::num::*}(result);
core::int result = recurse(b.{core::num::-}(1){(core::num) → core::int}){(core::int) → core::int};
return b.{core::num::*}(result){(core::num) → core::int};
}
return recurse.call(a);
return recurse(a){(core::int) → core::int};
}
static method fn6(core::int a) → core::int {
function recurse() → core::int {
a = a.{core::num::-}(1);
if(a.{core::num::==}(1))
a = a.{core::num::-}(1){(core::num) → core::int};
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
return a.{core::num::*}(recurse.call());
return a.{core::num::*}(recurse(){() → core::int}){(core::num) → core::int};
}
return recurse.call();
return recurse(){() → core::int};
}
static method main() → void {
exp::Expect::equals(#C1, 0);

View file

@ -16,29 +16,29 @@ static method foo() → core::int {
() → () → core::int f = () → () → core::int {
core::int count = 0;
function baz() → core::int {
count = count.{core::num::+}(1);
count = count.{core::num::+}(1){(core::num) → core::int};
return count;
}
return baz;
};
() → core::int c1 = f.call();
() → core::int c2 = f.call();
core::int c1_val1 = c1.call();
assert(c1_val1.{core::num::==}(1));
core::int c1_val2 = c1.call();
assert(c1_val2.{core::num::==}(2));
core::int c1_val3 = c1.call();
assert(c1_val3.{core::num::==}(3));
core::int c2_val1 = c2.call();
assert(c1_val1.{core::num::==}(1));
core::int c2_val2 = c2.call();
assert(c1_val2.{core::num::==}(2));
core::int c2_val3 = c2.call();
assert(c1_val3.{core::num::==}(3));
() → core::int c1 = f(){() → () → core::int};
() → core::int c2 = f(){() → () → core::int};
core::int c1_val1 = c1(){() → core::int};
assert(c1_val1 =={core::num::==}{(core::Object) → core::bool} 1);
core::int c1_val2 = c1(){() → core::int};
assert(c1_val2 =={core::num::==}{(core::Object) → core::bool} 2);
core::int c1_val3 = c1(){() → core::int};
assert(c1_val3 =={core::num::==}{(core::Object) → core::bool} 3);
core::int c2_val1 = c2(){() → core::int};
assert(c1_val1 =={core::num::==}{(core::Object) → core::bool} 1);
core::int c2_val2 = c2(){() → core::int};
assert(c1_val2 =={core::num::==}{(core::Object) → core::bool} 2);
core::int c2_val3 = c2(){() → core::int};
assert(c1_val3 =={core::num::==}{(core::Object) → core::bool} 3);
return 0;
}
static method fn() → core::int {
return (() → core::int => 0).call();
return (() → core::int => 0)(){() → core::int};
}
static method fn3() → core::int {
core::int y = 2;
@ -49,25 +49,25 @@ static method fn4() → core::int {
function innerFn() → core::int {
return x;
}
return innerFn.call();
return innerFn(){() → core::int};
}
static method fn5(core::int a) → core::int {
function recurse(core::int b) → core::int {
if(b.{core::num::==}(1))
if(b =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
core::int result = recurse.call(b.{core::num::-}(1));
return b.{core::num::*}(result);
core::int result = recurse(b.{core::num::-}(1){(core::num) → core::int}){(core::int) → core::int};
return b.{core::num::*}(result){(core::num) → core::int};
}
return recurse.call(a);
return recurse(a){(core::int) → core::int};
}
static method fn6(core::int a) → core::int {
function recurse() → core::int {
a = a.{core::num::-}(1);
if(a.{core::num::==}(1))
a = a.{core::num::-}(1){(core::num) → core::int};
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
return a.{core::num::*}(recurse.call());
return a.{core::num::*}(recurse(){() → core::int}){(core::num) → core::int};
}
return recurse.call();
return recurse(){() → core::int};
}
static method main() → void {
exp::Expect::equals(#C1, 0);

View file

@ -9,7 +9,7 @@ class Simple extends core::Object /*hasConstConstructor*/ {
final field core::String name;
const constructor •(core::String name) → self::Simple
: self::Simple::name = name, super core::Object::•() {
assert(this.{self::Simple::name}.{core::String::==}(#C1));
assert(this.{self::Simple::name}{core::String} =={core::String::==}{(core::Object) → core::bool} (#C1));
}
}
class A extends core::Object /*hasConstConstructor*/ {
@ -25,7 +25,7 @@ static const field self::A var3 = #C3;
static method fn() → self::A
return new self::A::•();
static method main() → void {
exp::Expect::equals((#C2).{self::Simple::name}, #C1);
exp::Expect::equals((#C2).{self::Simple::name}{core::String}, #C1);
}
constants {

View file

@ -9,7 +9,7 @@ class Simple extends core::Object /*hasConstConstructor*/ {
final field core::String name;
const constructor •(core::String name) → self::Simple
: self::Simple::name = name, super core::Object::•() {
assert(this.{self::Simple::name}.{core::String::==}(#C1));
assert(this.{self::Simple::name}{core::String} =={core::String::==}{(core::Object) → core::bool} (#C1));
}
}
class A extends core::Object /*hasConstConstructor*/ {
@ -25,7 +25,7 @@ static const field self::A var3 = #C3;
static method fn() → self::A
return new self::A::•();
static method main() → void {
exp::Expect::equals((#C2).{self::Simple::name}, #C1);
exp::Expect::equals((#C2).{self::Simple::name}{core::String}, #C1);
}
constants {

View file

@ -9,7 +9,7 @@ class Simple extends core::Object /*hasConstConstructor*/ {
final field core::String name;
const constructor •(core::String name) → self::Simple
: self::Simple::name = name, super core::Object::•() {
assert(this.{self::Simple::name}.{core::String::==}(#C1));
assert(this.{self::Simple::name}{core::String} =={core::String::==}{(core::Object) → core::bool} (#C1));
}
}
class A extends core::Object /*hasConstConstructor*/ {
@ -25,7 +25,7 @@ static const field self::A var3 = #C3;
static method fn() → self::A
return new self::A::•();
static method main() → void {
exp::Expect::equals((#C2).{self::Simple::name}, #C1);
exp::Expect::equals((#C2).{self::Simple::name}{core::String}, #C1);
}
constants {

View file

@ -9,7 +9,7 @@ class Simple extends core::Object /*hasConstConstructor*/ {
final field core::String name;
const constructor •(core::String name) → self::Simple
: self::Simple::name = name, super core::Object::•() {
assert(this.{self::Simple::name}.{core::String::==}(#C1));
assert(this.{self::Simple::name}{core::String} =={core::String::==}{(core::Object) → core::bool} (#C1));
}
}
class A extends core::Object /*hasConstConstructor*/ {
@ -25,7 +25,7 @@ static const field self::A var3 = #C3;
static method fn() → self::A
return new self::A::•();
static method main() → void {
exp::Expect::equals((#C2).{self::Simple::name}, #C1);
exp::Expect::equals((#C2).{self::Simple::name}{core::String}, #C1);
}
constants {

View file

@ -41,7 +41,7 @@ class Simple extends core::Object /*hasConstConstructor*/ {
final field core::String name;
const constructor •(core::String name) → self::Simple
: self::Simple::name = name, super core::Object::•() {
assert(!this.{self::Simple::name}.{core::String::==}(#C1));
assert(!(this.{self::Simple::name}{core::String} =={core::String::==}{(core::Object) → core::bool} (#C1)));
}
}
class Simple2 extends core::Object /*hasConstConstructor*/ {
@ -57,7 +57,7 @@ Try removing the return type.
class A extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::A
: super core::Object::•() {
assert(1.{core::num::==}(2));
assert(1 =={core::num::==}{(core::Object) → core::bool} 2);
}
}
class B extends self::A /*hasConstConstructor*/ {

View file

@ -41,7 +41,7 @@ class Simple extends core::Object /*hasConstConstructor*/ {
final field core::String name;
const constructor •(core::String name) → self::Simple
: self::Simple::name = name, super core::Object::•() {
assert(!this.{self::Simple::name}.{core::String::==}(#C1));
assert(!(this.{self::Simple::name}{core::String} =={core::String::==}{(core::Object) → core::bool} (#C1)));
}
}
class Simple2 extends core::Object /*hasConstConstructor*/ {
@ -57,7 +57,7 @@ Try removing the return type.
class A extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::A
: super core::Object::•() {
assert(1.{core::num::==}(2));
assert(1 =={core::num::==}{(core::Object) → core::bool} 2);
}
}
class B extends self::A /*hasConstConstructor*/ {
@ -89,7 +89,7 @@ constants {
}
Extra constant evaluation status:
Evaluated: MethodInvocation @ org-dartlang-testcase:///const_functions_const_ctor_error.dart:33:14 -> BoolConstant(false)
Evaluated: EqualsCall @ org-dartlang-testcase:///const_functions_const_ctor_error.dart:33:14 -> BoolConstant(false)
Extra constant evaluation: evaluated: 7, effectively constant: 1

View file

@ -41,7 +41,7 @@ class Simple extends core::Object /*hasConstConstructor*/ {
final field core::String name;
const constructor •(core::String name) → self::Simple
: self::Simple::name = name, super core::Object::•() {
assert(!this.{self::Simple::name}.{core::String::==}(#C1));
assert(!(this.{self::Simple::name}{core::String} =={core::String::==}{(core::Object) → core::bool} (#C1)));
}
}
class Simple2 extends core::Object /*hasConstConstructor*/ {
@ -57,7 +57,7 @@ Try removing the return type.
class A extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::A
: super core::Object::•() {
assert(1.{core::num::==}(2));
assert(1 =={core::num::==}{(core::Object) → core::bool} 2);
}
}
class B extends self::A /*hasConstConstructor*/ {

View file

@ -41,7 +41,7 @@ class Simple extends core::Object /*hasConstConstructor*/ {
final field core::String name;
const constructor •(core::String name) → self::Simple
: self::Simple::name = name, super core::Object::•() {
assert(!this.{self::Simple::name}.{core::String::==}(#C1));
assert(!(this.{self::Simple::name}{core::String} =={core::String::==}{(core::Object) → core::bool} (#C1)));
}
}
class Simple2 extends core::Object /*hasConstConstructor*/ {
@ -57,7 +57,7 @@ Try removing the return type.
class A extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::A
: super core::Object::•() {
assert(1.{core::num::==}(2));
assert(1 =={core::num::==}{(core::Object) → core::bool} 2);
}
}
class B extends self::A /*hasConstConstructor*/ {
@ -89,7 +89,7 @@ constants {
}
Extra constant evaluation status:
Evaluated: MethodInvocation @ org-dartlang-testcase:///const_functions_const_ctor_error.dart:33:14 -> BoolConstant(false)
Evaluated: EqualsCall @ org-dartlang-testcase:///const_functions_const_ctor_error.dart:33:14 -> BoolConstant(false)
Extra constant evaluation: evaluated: 7, effectively constant: 1

View file

@ -13,7 +13,7 @@ class MessageType extends core::Object /*hasConstConstructor*/ {
: self::MessageType::name = name, super core::Object::•()
;
static factory parse(core::String name) → self::MessageType {
if(name.{core::String::==}("print")) {
if(name =={core::String::==}{(core::Object) → core::bool} "print") {
return #C2;
}
return #C4;

View file

@ -13,7 +13,7 @@ class MessageType extends core::Object /*hasConstConstructor*/ {
: self::MessageType::name = name, super core::Object::•()
;
static factory parse(core::String name) → self::MessageType {
if(name.{core::String::==}("print")) {
if(name =={core::String::==}{(core::Object) → core::bool} "print") {
return #C2;
}
return #C4;

View file

@ -13,7 +13,7 @@ class MessageType extends core::Object /*hasConstConstructor*/ {
: self::MessageType::name = name, super core::Object::•()
;
static factory parse(core::String name) → self::MessageType {
if(name.{core::String::==}("print")) {
if(name =={core::String::==}{(core::Object) → core::bool} "print") {
return #C2;
}
return #C4;

View file

@ -13,7 +13,7 @@ class MessageType extends core::Object /*hasConstConstructor*/ {
: self::MessageType::name = name, super core::Object::•()
;
static factory parse(core::String name) → self::MessageType {
if(name.{core::String::==}("print")) {
if(name =={core::String::==}{(core::Object) → core::bool} "print") {
return #C2;
}
return #C4;

View file

@ -12,9 +12,9 @@ static const field core::int var4 = #C4;
static method fn() → core::int {
core::int x = 0;
do {
x = x.{core::num::+}(1);
x = x.{core::num::+}(1){(core::num) → core::int};
}
while (x.{core::num::<}(2))
while (x.{core::num::<}(2){(core::num) → core::bool})
return x;
}
static method fn2(core::int a) → core::int {
@ -22,12 +22,12 @@ static method fn2(core::int a) → core::int {
core::int b = 0;
#L1:
do {
if(x.{core::num::>}(5))
if(x.{core::num::>}(5){(core::num) → core::bool})
break #L1;
x = x.{core::num::+}(a);
b = b.{core::num::+}(1);
x = x.{core::num::+}(a){(core::num) → core::int};
b = b.{core::num::+}(1){(core::num) → core::int};
}
while (b.{core::num::<}(2))
while (b.{core::num::<}(2){(core::num) → core::bool})
return x;
}
static method fn3() → core::int {
@ -36,12 +36,12 @@ static method fn3() → core::int {
do
#L2:
{
x = x.{core::num::+}(1);
if(x.{core::num::%}(2).{core::num::==}(1))
x = x.{core::num::+}(1){(core::num) → core::int};
if(x.{core::num::%}(2){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 1)
break #L2;
b = b.{core::num::+}(x);
b = b.{core::num::+}(x){(core::num) → core::int};
}
while (x.{core::num::<}(5))
while (x.{core::num::<}(5){(core::num) → core::bool})
return b;
}
static method main() → void {

View file

@ -12,9 +12,9 @@ static const field core::int var4 = #C4;
static method fn() → core::int {
core::int x = 0;
do {
x = x.{core::num::+}(1);
x = x.{core::num::+}(1){(core::num) → core::int};
}
while (x.{core::num::<}(2))
while (x.{core::num::<}(2){(core::num) → core::bool})
return x;
}
static method fn2(core::int a) → core::int {
@ -22,12 +22,12 @@ static method fn2(core::int a) → core::int {
core::int b = 0;
#L1:
do {
if(x.{core::num::>}(5))
if(x.{core::num::>}(5){(core::num) → core::bool})
break #L1;
x = x.{core::num::+}(a);
b = b.{core::num::+}(1);
x = x.{core::num::+}(a){(core::num) → core::int};
b = b.{core::num::+}(1){(core::num) → core::int};
}
while (b.{core::num::<}(2))
while (b.{core::num::<}(2){(core::num) → core::bool})
return x;
}
static method fn3() → core::int {
@ -36,12 +36,12 @@ static method fn3() → core::int {
do
#L2:
{
x = x.{core::num::+}(1);
if(x.{core::num::%}(2).{core::num::==}(1))
x = x.{core::num::+}(1){(core::num) → core::int};
if(x.{core::num::%}(2){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 1)
break #L2;
b = b.{core::num::+}(x);
b = b.{core::num::+}(x){(core::num) → core::int};
}
while (x.{core::num::<}(5))
while (x.{core::num::<}(5){(core::num) → core::bool})
return b;
}
static method main() → void {

View file

@ -12,9 +12,9 @@ static const field core::int var4 = #C4;
static method fn() → core::int {
core::int x = 0;
do {
x = x.{core::num::+}(1);
x = x.{core::num::+}(1){(core::num) → core::int};
}
while (x.{core::num::<}(2))
while (x.{core::num::<}(2){(core::num) → core::bool})
return x;
}
static method fn2(core::int a) → core::int {
@ -22,12 +22,12 @@ static method fn2(core::int a) → core::int {
core::int b = 0;
#L1:
do {
if(x.{core::num::>}(5))
if(x.{core::num::>}(5){(core::num) → core::bool})
break #L1;
x = x.{core::num::+}(a);
b = b.{core::num::+}(1);
x = x.{core::num::+}(a){(core::num) → core::int};
b = b.{core::num::+}(1){(core::num) → core::int};
}
while (b.{core::num::<}(2))
while (b.{core::num::<}(2){(core::num) → core::bool})
return x;
}
static method fn3() → core::int {
@ -36,12 +36,12 @@ static method fn3() → core::int {
do
#L2:
{
x = x.{core::num::+}(1);
if(x.{core::num::%}(2).{core::num::==}(1))
x = x.{core::num::+}(1){(core::num) → core::int};
if(x.{core::num::%}(2){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 1)
break #L2;
b = b.{core::num::+}(x);
b = b.{core::num::+}(x){(core::num) → core::int};
}
while (x.{core::num::<}(5))
while (x.{core::num::<}(5){(core::num) → core::bool})
return b;
}
static method main() → void {

View file

@ -12,9 +12,9 @@ static const field core::int var4 = #C4;
static method fn() → core::int {
core::int x = 0;
do {
x = x.{core::num::+}(1);
x = x.{core::num::+}(1){(core::num) → core::int};
}
while (x.{core::num::<}(2))
while (x.{core::num::<}(2){(core::num) → core::bool})
return x;
}
static method fn2(core::int a) → core::int {
@ -22,12 +22,12 @@ static method fn2(core::int a) → core::int {
core::int b = 0;
#L1:
do {
if(x.{core::num::>}(5))
if(x.{core::num::>}(5){(core::num) → core::bool})
break #L1;
x = x.{core::num::+}(a);
b = b.{core::num::+}(1);
x = x.{core::num::+}(a){(core::num) → core::int};
b = b.{core::num::+}(1){(core::num) → core::int};
}
while (b.{core::num::<}(2))
while (b.{core::num::<}(2){(core::num) → core::bool})
return x;
}
static method fn3() → core::int {
@ -36,12 +36,12 @@ static method fn3() → core::int {
do
#L2:
{
x = x.{core::num::+}(1);
if(x.{core::num::%}(2).{core::num::==}(1))
x = x.{core::num::+}(1){(core::num) → core::int};
if(x.{core::num::%}(2){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 1)
break #L2;
b = b.{core::num::+}(x);
b = b.{core::num::+}(x){(core::num) → core::int};
}
while (x.{core::num::<}(5))
while (x.{core::num::<}(5){(core::num) → core::bool})
return b;
}
static method main() → void {

View file

@ -17,44 +17,44 @@ static const field core::int var9 = #C7;
static const field core::int var10 = #C8;
static method fn(core::int a) → core::int {
core::int b = a;
for (core::int i = 0; i.{core::num::<}(2); i = i.{core::num::+}(1)) {
b = b.{core::num::+}(a);
for (core::int i = 0; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
b = b.{core::num::+}(a){(core::num) → core::int};
}
return b;
}
static method fn1(core::int a) → core::int {
core::int b = a;
for (core::int i = 0; ; i = i.{core::num::+}(1)) {
b = b.{core::num::*}(3);
if(b.{core::num::>}(10))
for (core::int i = 0; ; i = i.{core::num::+}(1){(core::num) → core::int}) {
b = b.{core::num::*}(3){(core::num) → core::int};
if(b.{core::num::>}(10){(core::num) → core::bool})
return b;
}
}
static method fn2() → core::int {
for (core::int i = 0, core::int j = 2; ; i = i.{core::num::+}(2), j = j.{core::num::+}(1)) {
if(i.{core::num::+}(j).{core::num::>}(10)) {
return i.{core::num::+}(j);
for (core::int i = 0, core::int j = 2; ; i = i.{core::num::+}(2){(core::num) → core::int}, j = j.{core::num::+}(1){(core::num) → core::int}) {
if(i.{core::num::+}(j){(core::num) → core::int}.{core::num::>}(10){(core::num) → core::bool}) {
return i.{core::num::+}(j){(core::num) → core::int};
}
}
}
static method fnContinue() → core::int {
core::int a = 0;
for (core::int i = 0; i.{core::num::<}(5); i = i.{core::num::+}(1))
for (core::int i = 0; i.{core::num::<}(5){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
#L1:
{
if(i.{core::num::%}(2).{core::num::==}(1))
if(i.{core::num::%}(2){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 1)
break #L1;
a = a.{core::num::+}(i);
a = a.{core::num::+}(i){(core::num) → core::int};
}
return a;
}
static method fnBreak(core::int a) → core::int {
core::int b = a;
#L2:
for (core::int i = 0; i.{core::num::<}(2); i = i.{core::num::+}(1)) {
if(b.{core::num::==}(2))
for (core::int i = 0; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
if(b =={core::num::==}{(core::Object) → core::bool} 2)
break #L2;
b = b.{core::num::+}(a);
b = b.{core::num::+}(a){(core::num) → core::int};
}
return b;
}

View file

@ -17,44 +17,44 @@ static const field core::int var9 = #C7;
static const field core::int var10 = #C8;
static method fn(core::int a) → core::int {
core::int b = a;
for (core::int i = 0; i.{core::num::<}(2); i = i.{core::num::+}(1)) {
b = b.{core::num::+}(a);
for (core::int i = 0; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
b = b.{core::num::+}(a){(core::num) → core::int};
}
return b;
}
static method fn1(core::int a) → core::int {
core::int b = a;
for (core::int i = 0; ; i = i.{core::num::+}(1)) {
b = b.{core::num::*}(3);
if(b.{core::num::>}(10))
for (core::int i = 0; ; i = i.{core::num::+}(1){(core::num) → core::int}) {
b = b.{core::num::*}(3){(core::num) → core::int};
if(b.{core::num::>}(10){(core::num) → core::bool})
return b;
}
}
static method fn2() → core::int {
for (core::int i = 0, core::int j = 2; ; i = i.{core::num::+}(2), j = j.{core::num::+}(1)) {
if(i.{core::num::+}(j).{core::num::>}(10)) {
return i.{core::num::+}(j);
for (core::int i = 0, core::int j = 2; ; i = i.{core::num::+}(2){(core::num) → core::int}, j = j.{core::num::+}(1){(core::num) → core::int}) {
if(i.{core::num::+}(j){(core::num) → core::int}.{core::num::>}(10){(core::num) → core::bool}) {
return i.{core::num::+}(j){(core::num) → core::int};
}
}
}
static method fnContinue() → core::int {
core::int a = 0;
for (core::int i = 0; i.{core::num::<}(5); i = i.{core::num::+}(1))
for (core::int i = 0; i.{core::num::<}(5){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
#L1:
{
if(i.{core::num::%}(2).{core::num::==}(1))
if(i.{core::num::%}(2){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 1)
break #L1;
a = a.{core::num::+}(i);
a = a.{core::num::+}(i){(core::num) → core::int};
}
return a;
}
static method fnBreak(core::int a) → core::int {
core::int b = a;
#L2:
for (core::int i = 0; i.{core::num::<}(2); i = i.{core::num::+}(1)) {
if(b.{core::num::==}(2))
for (core::int i = 0; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
if(b =={core::num::==}{(core::Object) → core::bool} 2)
break #L2;
b = b.{core::num::+}(a);
b = b.{core::num::+}(a){(core::num) → core::int};
}
return b;
}

View file

@ -17,44 +17,44 @@ static const field core::int var9 = #C7;
static const field core::int var10 = #C8;
static method fn(core::int a) → core::int {
core::int b = a;
for (core::int i = 0; i.{core::num::<}(2); i = i.{core::num::+}(1)) {
b = b.{core::num::+}(a);
for (core::int i = 0; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
b = b.{core::num::+}(a){(core::num) → core::int};
}
return b;
}
static method fn1(core::int a) → core::int {
core::int b = a;
for (core::int i = 0; ; i = i.{core::num::+}(1)) {
b = b.{core::num::*}(3);
if(b.{core::num::>}(10))
for (core::int i = 0; ; i = i.{core::num::+}(1){(core::num) → core::int}) {
b = b.{core::num::*}(3){(core::num) → core::int};
if(b.{core::num::>}(10){(core::num) → core::bool})
return b;
}
}
static method fn2() → core::int {
for (core::int i = 0, core::int j = 2; ; i = i.{core::num::+}(2), j = j.{core::num::+}(1)) {
if(i.{core::num::+}(j).{core::num::>}(10)) {
return i.{core::num::+}(j);
for (core::int i = 0, core::int j = 2; ; i = i.{core::num::+}(2){(core::num) → core::int}, j = j.{core::num::+}(1){(core::num) → core::int}) {
if(i.{core::num::+}(j){(core::num) → core::int}.{core::num::>}(10){(core::num) → core::bool}) {
return i.{core::num::+}(j){(core::num) → core::int};
}
}
}
static method fnContinue() → core::int {
core::int a = 0;
for (core::int i = 0; i.{core::num::<}(5); i = i.{core::num::+}(1))
for (core::int i = 0; i.{core::num::<}(5){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
#L1:
{
if(i.{core::num::%}(2).{core::num::==}(1))
if(i.{core::num::%}(2){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 1)
break #L1;
a = a.{core::num::+}(i);
a = a.{core::num::+}(i){(core::num) → core::int};
}
return a;
}
static method fnBreak(core::int a) → core::int {
core::int b = a;
#L2:
for (core::int i = 0; i.{core::num::<}(2); i = i.{core::num::+}(1)) {
if(b.{core::num::==}(2))
for (core::int i = 0; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
if(b =={core::num::==}{(core::Object) → core::bool} 2)
break #L2;
b = b.{core::num::+}(a);
b = b.{core::num::+}(a){(core::num) → core::int};
}
return b;
}

View file

@ -17,44 +17,44 @@ static const field core::int var9 = #C7;
static const field core::int var10 = #C8;
static method fn(core::int a) → core::int {
core::int b = a;
for (core::int i = 0; i.{core::num::<}(2); i = i.{core::num::+}(1)) {
b = b.{core::num::+}(a);
for (core::int i = 0; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
b = b.{core::num::+}(a){(core::num) → core::int};
}
return b;
}
static method fn1(core::int a) → core::int {
core::int b = a;
for (core::int i = 0; ; i = i.{core::num::+}(1)) {
b = b.{core::num::*}(3);
if(b.{core::num::>}(10))
for (core::int i = 0; ; i = i.{core::num::+}(1){(core::num) → core::int}) {
b = b.{core::num::*}(3){(core::num) → core::int};
if(b.{core::num::>}(10){(core::num) → core::bool})
return b;
}
}
static method fn2() → core::int {
for (core::int i = 0, core::int j = 2; ; i = i.{core::num::+}(2), j = j.{core::num::+}(1)) {
if(i.{core::num::+}(j).{core::num::>}(10)) {
return i.{core::num::+}(j);
for (core::int i = 0, core::int j = 2; ; i = i.{core::num::+}(2){(core::num) → core::int}, j = j.{core::num::+}(1){(core::num) → core::int}) {
if(i.{core::num::+}(j){(core::num) → core::int}.{core::num::>}(10){(core::num) → core::bool}) {
return i.{core::num::+}(j){(core::num) → core::int};
}
}
}
static method fnContinue() → core::int {
core::int a = 0;
for (core::int i = 0; i.{core::num::<}(5); i = i.{core::num::+}(1))
for (core::int i = 0; i.{core::num::<}(5){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int})
#L1:
{
if(i.{core::num::%}(2).{core::num::==}(1))
if(i.{core::num::%}(2){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 1)
break #L1;
a = a.{core::num::+}(i);
a = a.{core::num::+}(i){(core::num) → core::int};
}
return a;
}
static method fnBreak(core::int a) → core::int {
core::int b = a;
#L2:
for (core::int i = 0; i.{core::num::<}(2); i = i.{core::num::+}(1)) {
if(b.{core::num::==}(2))
for (core::int i = 0; i.{core::num::<}(2){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
if(b =={core::num::==}{(core::Object) → core::bool} 2)
break #L2;
b = b.{core::num::+}(a);
b = b.{core::num::+}(a){(core::num) → core::int};
}
return b;
}

View file

@ -17,11 +17,11 @@ static const field core::int var6_2 = #C3;
static const field core::int var7 = #C5;
static const field core::int var8 = #C6;
static method ifTest(core::int a) → core::int {
if(a.{core::num::==}(1)) {
if(a =={core::num::==}{(core::Object) → core::bool} 1) {
return 100;
}
else
if(a.{core::num::==}(2)) {
if(a =={core::num::==}{(core::Object) → core::bool} 2) {
return 200;
}
else {
@ -29,7 +29,7 @@ static method ifTest(core::int a) → core::int {
}
}
static method ifTest2(core::int a) → core::int {
if(a.{core::num::==}(#C4)) {
if(a =={core::num::==}{(core::Object) → core::bool} (#C4)) {
return 100;
}
else {
@ -37,8 +37,8 @@ static method ifTest2(core::int a) → core::int {
}
}
static method ifTest3(core::int a) → core::int {
if(a.{core::num::>}(0)) {
if(a.{core::num::==}(1))
if(a.{core::num::>}(0){(core::num) → core::bool}) {
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 100;
return 200;
}
@ -46,15 +46,15 @@ static method ifTest3(core::int a) → core::int {
}
static method ifTest4(core::int a) → core::int {
core::int b = a;
if(a.{core::num::==}(1)) {
b = b.{core::num::+}(a);
if(a.{core::num::%}(2).{core::num::==}(1)) {
b = b.{core::num::+}(a);
if(a =={core::num::==}{(core::Object) → core::bool} 1) {
b = b.{core::num::+}(a){(core::num) → core::int};
if(a.{core::num::%}(2){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 1) {
b = b.{core::num::+}(a){(core::num) → core::int};
}
}
else
if(a.{core::num::==}(2)) {
b = b.{core::num::-}(a);
if(a =={core::num::==}{(core::Object) → core::bool} 2) {
b = b.{core::num::-}(a){(core::num) → core::int};
}
return b;
}

View file

@ -17,11 +17,11 @@ static const field core::int var6_2 = #C3;
static const field core::int var7 = #C5;
static const field core::int var8 = #C6;
static method ifTest(core::int a) → core::int {
if(a.{core::num::==}(1)) {
if(a =={core::num::==}{(core::Object) → core::bool} 1) {
return 100;
}
else
if(a.{core::num::==}(2)) {
if(a =={core::num::==}{(core::Object) → core::bool} 2) {
return 200;
}
else {
@ -29,7 +29,7 @@ static method ifTest(core::int a) → core::int {
}
}
static method ifTest2(core::int a) → core::int {
if(a.{core::num::==}(#C4)) {
if(a =={core::num::==}{(core::Object) → core::bool} (#C4)) {
return 100;
}
else {
@ -37,8 +37,8 @@ static method ifTest2(core::int a) → core::int {
}
}
static method ifTest3(core::int a) → core::int {
if(a.{core::num::>}(0)) {
if(a.{core::num::==}(1))
if(a.{core::num::>}(0){(core::num) → core::bool}) {
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 100;
return 200;
}
@ -46,15 +46,15 @@ static method ifTest3(core::int a) → core::int {
}
static method ifTest4(core::int a) → core::int {
core::int b = a;
if(a.{core::num::==}(1)) {
b = b.{core::num::+}(a);
if(a.{core::num::%}(2).{core::num::==}(1)) {
b = b.{core::num::+}(a);
if(a =={core::num::==}{(core::Object) → core::bool} 1) {
b = b.{core::num::+}(a){(core::num) → core::int};
if(a.{core::num::%}(2){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 1) {
b = b.{core::num::+}(a){(core::num) → core::int};
}
}
else
if(a.{core::num::==}(2)) {
b = b.{core::num::-}(a);
if(a =={core::num::==}{(core::Object) → core::bool} 2) {
b = b.{core::num::-}(a){(core::num) → core::int};
}
return b;
}

View file

@ -17,11 +17,11 @@ static const field core::int var6_2 = #C3;
static const field core::int var7 = #C5;
static const field core::int var8 = #C6;
static method ifTest(core::int a) → core::int {
if(a.{core::num::==}(1)) {
if(a =={core::num::==}{(core::Object) → core::bool} 1) {
return 100;
}
else
if(a.{core::num::==}(2)) {
if(a =={core::num::==}{(core::Object) → core::bool} 2) {
return 200;
}
else {
@ -29,7 +29,7 @@ static method ifTest(core::int a) → core::int {
}
}
static method ifTest2(core::int a) → core::int {
if(a.{core::num::==}(#C4)) {
if(a =={core::num::==}{(core::Object) → core::bool} (#C4)) {
return 100;
}
else {
@ -37,8 +37,8 @@ static method ifTest2(core::int a) → core::int {
}
}
static method ifTest3(core::int a) → core::int {
if(a.{core::num::>}(0)) {
if(a.{core::num::==}(1))
if(a.{core::num::>}(0){(core::num) → core::bool}) {
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 100;
return 200;
}
@ -46,15 +46,15 @@ static method ifTest3(core::int a) → core::int {
}
static method ifTest4(core::int a) → core::int {
core::int b = a;
if(a.{core::num::==}(1)) {
b = b.{core::num::+}(a);
if(a.{core::num::%}(2).{core::num::==}(1)) {
b = b.{core::num::+}(a);
if(a =={core::num::==}{(core::Object) → core::bool} 1) {
b = b.{core::num::+}(a){(core::num) → core::int};
if(a.{core::num::%}(2){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 1) {
b = b.{core::num::+}(a){(core::num) → core::int};
}
}
else
if(a.{core::num::==}(2)) {
b = b.{core::num::-}(a);
if(a =={core::num::==}{(core::Object) → core::bool} 2) {
b = b.{core::num::-}(a){(core::num) → core::int};
}
return b;
}

View file

@ -17,11 +17,11 @@ static const field core::int var6_2 = #C3;
static const field core::int var7 = #C5;
static const field core::int var8 = #C6;
static method ifTest(core::int a) → core::int {
if(a.{core::num::==}(1)) {
if(a =={core::num::==}{(core::Object) → core::bool} 1) {
return 100;
}
else
if(a.{core::num::==}(2)) {
if(a =={core::num::==}{(core::Object) → core::bool} 2) {
return 200;
}
else {
@ -29,7 +29,7 @@ static method ifTest(core::int a) → core::int {
}
}
static method ifTest2(core::int a) → core::int {
if(a.{core::num::==}(#C4)) {
if(a =={core::num::==}{(core::Object) → core::bool} (#C4)) {
return 100;
}
else {
@ -37,8 +37,8 @@ static method ifTest2(core::int a) → core::int {
}
}
static method ifTest3(core::int a) → core::int {
if(a.{core::num::>}(0)) {
if(a.{core::num::==}(1))
if(a.{core::num::>}(0){(core::num) → core::bool}) {
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 100;
return 200;
}
@ -46,15 +46,15 @@ static method ifTest3(core::int a) → core::int {
}
static method ifTest4(core::int a) → core::int {
core::int b = a;
if(a.{core::num::==}(1)) {
b = b.{core::num::+}(a);
if(a.{core::num::%}(2).{core::num::==}(1)) {
b = b.{core::num::+}(a);
if(a =={core::num::==}{(core::Object) → core::bool} 1) {
b = b.{core::num::+}(a){(core::num) → core::int};
if(a.{core::num::%}(2){(core::num) → core::int} =={core::num::==}{(core::Object) → core::bool} 1) {
b = b.{core::num::+}(a){(core::num) → core::int};
}
}
else
if(a.{core::num::==}(2)) {
b = b.{core::num::-}(a);
if(a =={core::num::==}{(core::Object) → core::bool} 2) {
b = b.{core::num::-}(a){(core::num) → core::int};
}
return b;
}

View file

@ -29,15 +29,15 @@ static const field core::int var3 = #C2;
static const field core::int var4 = #C2;
static const field core::int var5 = #C3;
static method fn() → core::int
return (#C4).{self::A::y};
return (#C4).{self::A::y}{core::int};
static method fn2() → core::int {
self::A x = #C4;
return x.{self::A::y};
return x.{self::A::y}{core::int};
}
static method fn4() → core::int
return (#C5).{self::A::y};
return (#C5).{self::A::y}{core::int};
static method fn5() → core::int
return (#C7).{self::C::y};
return (#C7).{self::C::y}{core::int};
static method main() → void {
exp::Expect::equals(#C2, 1);
exp::Expect::equals(#C2, 1);

View file

@ -29,15 +29,15 @@ static const field core::int var3 = #C2;
static const field core::int var4 = #C2;
static const field core::int var5 = #C3;
static method fn() → core::int
return (#C4).{self::A::y};
return (#C4).{self::A::y}{core::int};
static method fn2() → core::int {
self::A x = #C4;
return x.{self::A::y};
return x.{self::A::y}{core::int};
}
static method fn4() → core::int
return (#C5).{self::A::y};
return (#C5).{self::A::y}{core::int};
static method fn5() → core::int
return (#C7).{self::C::y};
return (#C7).{self::C::y}{core::int};
static method main() → void {
exp::Expect::equals(#C2, 1);
exp::Expect::equals(#C2, 1);

View file

@ -29,15 +29,15 @@ static const field core::int var3 = #C2;
static const field core::int var4 = #C2;
static const field core::int var5 = #C3;
static method fn() → core::int
return (#C4).{self::A::y};
return (#C4).{self::A::y}{core::int};
static method fn2() → core::int {
self::A x = #C4;
return x.{self::A::y};
return x.{self::A::y}{core::int};
}
static method fn4() → core::int
return (#C5).{self::A::y};
return (#C5).{self::A::y}{core::int};
static method fn5() → core::int
return (#C7).{self::C::y};
return (#C7).{self::C::y}{core::int};
static method main() → void {
exp::Expect::equals(#C2, 1);
exp::Expect::equals(#C2, 1);

View file

@ -24,7 +24,7 @@ class C extends self::A /*hasConstConstructor*/ {
}
static const field core::int var1 = self::fn();
static const field core::int var2 = self::fn2();
static const field core::int var3 = const self::A::•(1).{self::A::y};
static const field core::int var3 = const self::A::•(1).{self::A::y}{core::int};
static const field core::int var4 = self::fn4();
static const field core::int var5 = self::fn5();
static method fn() → core::int

View file

@ -29,15 +29,15 @@ static const field core::int var3 = #C2;
static const field core::int var4 = #C2;
static const field core::int var5 = #C3;
static method fn() → core::int
return (#C4).{self::A::y};
return (#C4).{self::A::y}{core::int};
static method fn2() → core::int {
self::A x = #C4;
return x.{self::A::y};
return x.{self::A::y}{core::int};
}
static method fn4() → core::int
return (#C5).{self::A::y};
return (#C5).{self::A::y}{core::int};
static method fn5() → core::int
return (#C7).{self::C::y};
return (#C7).{self::C::y}{core::int};
static method main() → void {
exp::Expect::equals(#C2, 1);
exp::Expect::equals(#C2, 1);

View file

@ -24,7 +24,7 @@ class C extends core::Object /*hasConstConstructor*/ {
: self::C::y = y, super core::Object::•()
;
method fn() → core::int {
if(this.{self::C::y}.{core::num::==}(1))
if(this.{self::C::y}{core::int} =={core::num::==}{(core::Object) → core::bool} 1)
return 100;
return 200;
}
@ -71,26 +71,26 @@ static const field core::String fnVal5 = #C7;
static const field core::String var8 = #C7;
static const field core::String fnVal6 = #C7;
static method fn() → core::String
return (#C8).{core::Object::toString}();
return (#C8).{core::Object::toString}(){() → core::String};
static method fn2() → core::String
return (#C9).{self::B::toString}();
return (#C9).{self::B::toString}(){() → core::String};
static method fn3() → core::int
return (#C11).{self::C::fn}();
return (#C11).{self::C::fn}(){() → core::int};
static method fn4() → core::int
return (#C13).{self::C::fn}();
return (#C13).{self::C::fn}(){() → core::int};
static method fn5() → core::int
return (#C14).{self::D::fn}();
return (#C14).{self::D::fn}(){() → core::int};
static method fn6() → core::int
return (#C15).{self::C::fn}();
return (#C15).{self::C::fn}(){() → core::int};
static method fn7() → core::String
return (#C16).{self::F::fn}("string");
return (#C16).{self::F::fn}("string"){(core::String) → core::String};
static method fn8() → core::String
return (#C17).{self::F::fn}("string");
return (#C17).{self::F::fn}("string"){(core::String) → core::String};
static method main() → void {
exp::Expect::equals(#C2, (#C8).{core::Object::toString}());
exp::Expect::equals(#C2, (#C8).{core::Object::toString}());
exp::Expect::equals(#C3, (#C9).{self::B::toString}());
exp::Expect::equals(#C3, (#C9).{self::B::toString}());
exp::Expect::equals(#C2, (#C8).{core::Object::toString}(){() → core::String});
exp::Expect::equals(#C2, (#C8).{core::Object::toString}(){() → core::String});
exp::Expect::equals(#C3, (#C9).{self::B::toString}(){() → core::String});
exp::Expect::equals(#C3, (#C9).{self::B::toString}(){() → core::String});
exp::Expect::equals(#C4, 200);
exp::Expect::equals(#C5, 100);
exp::Expect::equals(#C4, 200);

View file

@ -24,7 +24,7 @@ class C extends core::Object /*hasConstConstructor*/ {
: self::C::y = y, super core::Object::•()
;
method fn() → core::int {
if(this.{self::C::y}.{core::num::==}(1))
if(this.{self::C::y}{core::int} =={core::num::==}{(core::Object) → core::bool} 1)
return 100;
return 200;
}
@ -71,26 +71,26 @@ static const field core::String fnVal5 = #C7;
static const field core::String var8 = #C7;
static const field core::String fnVal6 = #C7;
static method fn() → core::String
return (#C8).{core::Object::toString}();
return (#C8).{core::Object::toString}(){() → core::String};
static method fn2() → core::String
return (#C9).{self::B::toString}();
return (#C9).{self::B::toString}(){() → core::String};
static method fn3() → core::int
return (#C11).{self::C::fn}();
return (#C11).{self::C::fn}(){() → core::int};
static method fn4() → core::int
return (#C13).{self::C::fn}();
return (#C13).{self::C::fn}(){() → core::int};
static method fn5() → core::int
return (#C14).{self::D::fn}();
return (#C14).{self::D::fn}(){() → core::int};
static method fn6() → core::int
return (#C15).{self::C::fn}();
return (#C15).{self::C::fn}(){() → core::int};
static method fn7() → core::String
return (#C16).{self::F::fn}("string");
return (#C16).{self::F::fn}("string"){(core::String) → core::String};
static method fn8() → core::String
return (#C17).{self::F::fn}("string");
return (#C17).{self::F::fn}("string"){(core::String) → core::String};
static method main() → void {
exp::Expect::equals(#C2, (#C8).{core::Object::toString}());
exp::Expect::equals(#C2, (#C8).{core::Object::toString}());
exp::Expect::equals(#C3, (#C9).{self::B::toString}());
exp::Expect::equals(#C3, (#C9).{self::B::toString}());
exp::Expect::equals(#C2, (#C8).{core::Object::toString}(){() → core::String});
exp::Expect::equals(#C2, (#C8).{core::Object::toString}(){() → core::String});
exp::Expect::equals(#C3, (#C9).{self::B::toString}(){() → core::String});
exp::Expect::equals(#C3, (#C9).{self::B::toString}(){() → core::String});
exp::Expect::equals(#C4, 200);
exp::Expect::equals(#C5, 100);
exp::Expect::equals(#C4, 200);

View file

@ -24,7 +24,7 @@ class C extends core::Object /*hasConstConstructor*/ {
: self::C::y = y, super core::Object::•()
;
method fn() → core::int {
if(this.{self::C::y}.{core::num::==}(1))
if(this.{self::C::y}{core::int} =={core::num::==}{(core::Object) → core::bool} 1)
return 100;
return 200;
}
@ -71,26 +71,26 @@ static const field core::String fnVal5 = #C7;
static const field core::String var8 = #C7;
static const field core::String fnVal6 = #C7;
static method fn() → core::String
return (#C8).{core::Object::toString}();
return (#C8).{core::Object::toString}(){() → core::String};
static method fn2() → core::String
return (#C9).{self::B::toString}();
return (#C9).{self::B::toString}(){() → core::String};
static method fn3() → core::int
return (#C11).{self::C::fn}();
return (#C11).{self::C::fn}(){() → core::int};
static method fn4() → core::int
return (#C13).{self::C::fn}();
return (#C13).{self::C::fn}(){() → core::int};
static method fn5() → core::int
return (#C14).{self::D::fn}();
return (#C14).{self::D::fn}(){() → core::int};
static method fn6() → core::int
return (#C15).{self::C::fn}();
return (#C15).{self::C::fn}(){() → core::int};
static method fn7() → core::String
return (#C16).{self::F::fn}("string");
return (#C16).{self::F::fn}("string"){(core::String) → core::String};
static method fn8() → core::String
return (#C17).{self::F::fn}("string");
return (#C17).{self::F::fn}("string"){(core::String) → core::String};
static method main() → void {
exp::Expect::equals(#C2, (#C8).{core::Object::toString}());
exp::Expect::equals(#C2, (#C8).{core::Object::toString}());
exp::Expect::equals(#C3, (#C9).{self::B::toString}());
exp::Expect::equals(#C3, (#C9).{self::B::toString}());
exp::Expect::equals(#C2, (#C8).{core::Object::toString}(){() → core::String});
exp::Expect::equals(#C2, (#C8).{core::Object::toString}(){() → core::String});
exp::Expect::equals(#C3, (#C9).{self::B::toString}(){() → core::String});
exp::Expect::equals(#C3, (#C9).{self::B::toString}(){() → core::String});
exp::Expect::equals(#C4, 200);
exp::Expect::equals(#C5, 100);
exp::Expect::equals(#C4, 200);

View file

@ -51,21 +51,21 @@ class G<T extends core::Object? = dynamic> extends self::F<self::G::T%, core::St
;
}
static const field core::String var1 = self::fn();
static const field core::String toString1 = const self::A::•().{core::Object::toString}();
static const field core::String toString1 = const self::A::•().{core::Object::toString}(){() → core::String};
static const field core::String var2 = self::fn2();
static const field core::String toString2 = const self::B::•().{self::B::toString}();
static const field core::String toString2 = const self::B::•().{self::B::toString}(){() → core::String};
static const field core::int var3 = self::fn3();
static const field core::int var4 = self::fn4();
static const field core::int fnVal1 = const self::C::•(0).{self::C::fn}();
static const field core::int fnVal2 = const self::C::•(1).{self::C::fn}();
static const field core::int fnVal1 = const self::C::•(0).{self::C::fn}(){() → core::int};
static const field core::int fnVal2 = const self::C::•(1).{self::C::fn}(){() → core::int};
static const field core::int var5 = self::fn5();
static const field core::int fnVal3 = const self::D::•(1).{self::D::fn}();
static const field core::int fnVal3 = const self::D::•(1).{self::D::fn}(){() → core::int};
static const field core::int var6 = self::fn6();
static const field core::int fnVal4 = const self::E::•(0).{self::C::fn}();
static const field core::int fnVal4 = const self::E::•(0).{self::C::fn}(){() → core::int};
static const field core::String var7 = self::fn7();
static const field core::String fnVal5 = const self::F::•<core::int, core::String, core::num>().{self::F::fn}("string");
static const field core::String fnVal5 = const self::F::•<core::int, core::String, core::num>().{self::F::fn}("string"){(core::String) → core::String};
static const field core::String var8 = self::fn8();
static const field core::String fnVal6 = const self::G::•<core::int>().{self::F::fn}("string");
static const field core::String fnVal6 = const self::G::•<core::int>().{self::F::fn}("string"){(core::String) → core::String};
static method fn() → core::String
;
static method fn2() → core::String

View file

@ -24,7 +24,7 @@ class C extends core::Object /*hasConstConstructor*/ {
: self::C::y = y, super core::Object::•()
;
method fn() → core::int {
if(this.{self::C::y}.{core::num::==}(1))
if(this.{self::C::y}{core::int} =={core::num::==}{(core::Object) → core::bool} 1)
return 100;
return 200;
}
@ -71,26 +71,26 @@ static const field core::String fnVal5 = #C7;
static const field core::String var8 = #C7;
static const field core::String fnVal6 = #C7;
static method fn() → core::String
return (#C8).{core::Object::toString}();
return (#C8).{core::Object::toString}(){() → core::String};
static method fn2() → core::String
return (#C9).{self::B::toString}();
return (#C9).{self::B::toString}(){() → core::String};
static method fn3() → core::int
return (#C11).{self::C::fn}();
return (#C11).{self::C::fn}(){() → core::int};
static method fn4() → core::int
return (#C13).{self::C::fn}();
return (#C13).{self::C::fn}(){() → core::int};
static method fn5() → core::int
return (#C14).{self::D::fn}();
return (#C14).{self::D::fn}(){() → core::int};
static method fn6() → core::int
return (#C15).{self::C::fn}();
return (#C15).{self::C::fn}(){() → core::int};
static method fn7() → core::String
return (#C16).{self::F::fn}("string");
return (#C16).{self::F::fn}("string"){(core::String) → core::String};
static method fn8() → core::String
return (#C17).{self::F::fn}("string");
return (#C17).{self::F::fn}("string"){(core::String) → core::String};
static method main() → void {
exp::Expect::equals(#C2, (#C8).{core::Object::toString}());
exp::Expect::equals(#C2, (#C8).{core::Object::toString}());
exp::Expect::equals(#C3, (#C9).{self::B::toString}());
exp::Expect::equals(#C3, (#C9).{self::B::toString}());
exp::Expect::equals(#C2, (#C8).{core::Object::toString}(){() → core::String});
exp::Expect::equals(#C2, (#C8).{core::Object::toString}(){() → core::String});
exp::Expect::equals(#C3, (#C9).{self::B::toString}(){() → core::String});
exp::Expect::equals(#C3, (#C9).{self::B::toString}(){() → core::String});
exp::Expect::equals(#C4, 200);
exp::Expect::equals(#C5, 100);
exp::Expect::equals(#C4, 200);

View file

@ -20,11 +20,11 @@ static const field core::int rangeErrorCatchVar = #C2;
static const field core::List<core::int> mutableListVar = #C6;
static const field core::List<core::int> mutableListAddVar = #C8;
static method firstFn() → core::int {
return (#C6).{core::Iterable::first};
return (#C6).{core::Iterable::first}{core::int};
}
static method firstCatchFn() → core::int {
try {
core::int v = (#C9).{core::Iterable::first};
core::int v = (#C9).{core::Iterable::first}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -32,17 +32,17 @@ static method firstCatchFn() → core::int {
return 1;
}
static method isEmptyFn() → core::bool {
return (#C6).{core::Iterable::isEmpty};
return (#C6).{core::Iterable::isEmpty}{core::bool};
}
static method isNotEmptyFn() → core::bool {
return (#C6).{core::Iterable::isNotEmpty};
return (#C6).{core::Iterable::isNotEmpty}{core::bool};
}
static method lastFn() → core::int {
return (#C6).{core::Iterable::last};
return (#C6).{core::Iterable::last}{core::int};
}
static method lastCatchFn() → core::int {
try {
core::int v = (#C9).{core::Iterable::last};
core::int v = (#C9).{core::Iterable::last}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -50,14 +50,14 @@ static method lastCatchFn() → core::int {
return 1;
}
static method lengthFn() → core::int {
return (#C6).{core::List::length};
return (#C6).{core::List::length}{core::int};
}
static method singleFn() → core::int {
return (#C10).{core::Iterable::single};
return (#C10).{core::Iterable::single}{core::int};
}
static method singleCatchFn() → core::int {
try {
core::int v = (#C9).{core::Iterable::single};
core::int v = (#C9).{core::Iterable::single}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -66,7 +66,7 @@ static method singleCatchFn() → core::int {
}
static method singleCatchFn2() → core::int {
try {
core::int v = (#C6).{core::Iterable::single};
core::int v = (#C6).{core::Iterable::single}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -74,11 +74,11 @@ static method singleCatchFn2() → core::int {
return 1;
}
static method getWithIndexFn() → core::int {
return (#C10).{core::List::[]}(0);
return (#C10).{core::List::[]}(0){(core::int) → core::int};
}
static method rangeErrorCatchFn() → core::int {
try {
core::int v = (#C10).{core::List::[]}(1);
core::int v = (#C10).{core::List::[]}(1){(core::int) → core::int};
}
on core::RangeError catch(no-exception-var) {
return 0;
@ -91,7 +91,7 @@ static method mutableList() → core::List<core::int> {
}
static method mutableListAdd() → core::List<core::int> {
core::List<core::int> x = <core::int>[1, 2];
x.{core::List::add}(3);
x.{core::List::add}(3){(core::int) → void};
return x;
}
static method main() → void {

View file

@ -20,11 +20,11 @@ static const field core::int rangeErrorCatchVar = #C2;
static const field core::List<core::int> mutableListVar = #C6;
static const field core::List<core::int> mutableListAddVar = #C8;
static method firstFn() → core::int {
return (#C6).{core::Iterable::first};
return (#C6).{core::Iterable::first}{core::int};
}
static method firstCatchFn() → core::int {
try {
core::int v = (#C9).{core::Iterable::first};
core::int v = (#C9).{core::Iterable::first}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -32,17 +32,17 @@ static method firstCatchFn() → core::int {
return 1;
}
static method isEmptyFn() → core::bool {
return (#C6).{core::Iterable::isEmpty};
return (#C6).{core::Iterable::isEmpty}{core::bool};
}
static method isNotEmptyFn() → core::bool {
return (#C6).{core::Iterable::isNotEmpty};
return (#C6).{core::Iterable::isNotEmpty}{core::bool};
}
static method lastFn() → core::int {
return (#C6).{core::Iterable::last};
return (#C6).{core::Iterable::last}{core::int};
}
static method lastCatchFn() → core::int {
try {
core::int v = (#C9).{core::Iterable::last};
core::int v = (#C9).{core::Iterable::last}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -50,14 +50,14 @@ static method lastCatchFn() → core::int {
return 1;
}
static method lengthFn() → core::int {
return (#C6).{core::List::length};
return (#C6).{core::List::length}{core::int};
}
static method singleFn() → core::int {
return (#C10).{core::Iterable::single};
return (#C10).{core::Iterable::single}{core::int};
}
static method singleCatchFn() → core::int {
try {
core::int v = (#C9).{core::Iterable::single};
core::int v = (#C9).{core::Iterable::single}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -66,7 +66,7 @@ static method singleCatchFn() → core::int {
}
static method singleCatchFn2() → core::int {
try {
core::int v = (#C6).{core::Iterable::single};
core::int v = (#C6).{core::Iterable::single}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -74,11 +74,11 @@ static method singleCatchFn2() → core::int {
return 1;
}
static method getWithIndexFn() → core::int {
return (#C10).{core::List::[]}(0);
return (#C10).{core::List::[]}(0){(core::int) → core::int};
}
static method rangeErrorCatchFn() → core::int {
try {
core::int v = (#C10).{core::List::[]}(1);
core::int v = (#C10).{core::List::[]}(1){(core::int) → core::int};
}
on core::RangeError catch(no-exception-var) {
return 0;
@ -91,7 +91,7 @@ static method mutableList() → core::List<core::int> {
}
static method mutableListAdd() → core::List<core::int> {
core::List<core::int> x = core::_GrowableList::_literal2<core::int>(1, 2);
x.{core::List::add}(3);
x.{core::List::add}(3){(core::int) → void};
return x;
}
static method main() → void {

View file

@ -20,11 +20,11 @@ static const field core::int rangeErrorCatchVar = #C2;
static const field core::List<core::int> mutableListVar = #C6;
static const field core::List<core::int> mutableListAddVar = #C8;
static method firstFn() → core::int {
return (#C6).{core::Iterable::first};
return (#C6).{core::Iterable::first}{core::int};
}
static method firstCatchFn() → core::int {
try {
core::int v = (#C9).{core::Iterable::first};
core::int v = (#C9).{core::Iterable::first}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -32,17 +32,17 @@ static method firstCatchFn() → core::int {
return 1;
}
static method isEmptyFn() → core::bool {
return (#C6).{core::Iterable::isEmpty};
return (#C6).{core::Iterable::isEmpty}{core::bool};
}
static method isNotEmptyFn() → core::bool {
return (#C6).{core::Iterable::isNotEmpty};
return (#C6).{core::Iterable::isNotEmpty}{core::bool};
}
static method lastFn() → core::int {
return (#C6).{core::Iterable::last};
return (#C6).{core::Iterable::last}{core::int};
}
static method lastCatchFn() → core::int {
try {
core::int v = (#C9).{core::Iterable::last};
core::int v = (#C9).{core::Iterable::last}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -50,14 +50,14 @@ static method lastCatchFn() → core::int {
return 1;
}
static method lengthFn() → core::int {
return (#C6).{core::List::length};
return (#C6).{core::List::length}{core::int};
}
static method singleFn() → core::int {
return (#C10).{core::Iterable::single};
return (#C10).{core::Iterable::single}{core::int};
}
static method singleCatchFn() → core::int {
try {
core::int v = (#C9).{core::Iterable::single};
core::int v = (#C9).{core::Iterable::single}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -66,7 +66,7 @@ static method singleCatchFn() → core::int {
}
static method singleCatchFn2() → core::int {
try {
core::int v = (#C6).{core::Iterable::single};
core::int v = (#C6).{core::Iterable::single}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -74,11 +74,11 @@ static method singleCatchFn2() → core::int {
return 1;
}
static method getWithIndexFn() → core::int {
return (#C10).{core::List::[]}(0);
return (#C10).{core::List::[]}(0){(core::int) → core::int};
}
static method rangeErrorCatchFn() → core::int {
try {
core::int v = (#C10).{core::List::[]}(1);
core::int v = (#C10).{core::List::[]}(1){(core::int) → core::int};
}
on core::RangeError catch(no-exception-var) {
return 0;
@ -91,7 +91,7 @@ static method mutableList() → core::List<core::int> {
}
static method mutableListAdd() → core::List<core::int> {
core::List<core::int> x = <core::int>[1, 2];
x.{core::List::add}(3);
x.{core::List::add}(3){(core::int) → void};
return x;
}
static method main() → void {

View file

@ -20,11 +20,11 @@ static const field core::int rangeErrorCatchVar = #C2;
static const field core::List<core::int> mutableListVar = #C6;
static const field core::List<core::int> mutableListAddVar = #C8;
static method firstFn() → core::int {
return (#C6).{core::Iterable::first};
return (#C6).{core::Iterable::first}{core::int};
}
static method firstCatchFn() → core::int {
try {
core::int v = (#C9).{core::Iterable::first};
core::int v = (#C9).{core::Iterable::first}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -32,17 +32,17 @@ static method firstCatchFn() → core::int {
return 1;
}
static method isEmptyFn() → core::bool {
return (#C6).{core::Iterable::isEmpty};
return (#C6).{core::Iterable::isEmpty}{core::bool};
}
static method isNotEmptyFn() → core::bool {
return (#C6).{core::Iterable::isNotEmpty};
return (#C6).{core::Iterable::isNotEmpty}{core::bool};
}
static method lastFn() → core::int {
return (#C6).{core::Iterable::last};
return (#C6).{core::Iterable::last}{core::int};
}
static method lastCatchFn() → core::int {
try {
core::int v = (#C9).{core::Iterable::last};
core::int v = (#C9).{core::Iterable::last}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -50,14 +50,14 @@ static method lastCatchFn() → core::int {
return 1;
}
static method lengthFn() → core::int {
return (#C6).{core::List::length};
return (#C6).{core::List::length}{core::int};
}
static method singleFn() → core::int {
return (#C10).{core::Iterable::single};
return (#C10).{core::Iterable::single}{core::int};
}
static method singleCatchFn() → core::int {
try {
core::int v = (#C9).{core::Iterable::single};
core::int v = (#C9).{core::Iterable::single}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -66,7 +66,7 @@ static method singleCatchFn() → core::int {
}
static method singleCatchFn2() → core::int {
try {
core::int v = (#C6).{core::Iterable::single};
core::int v = (#C6).{core::Iterable::single}{core::int};
}
on core::StateError catch(no-exception-var) {
return 0;
@ -74,11 +74,11 @@ static method singleCatchFn2() → core::int {
return 1;
}
static method getWithIndexFn() → core::int {
return (#C10).{core::List::[]}(0);
return (#C10).{core::List::[]}(0){(core::int) → core::int};
}
static method rangeErrorCatchFn() → core::int {
try {
core::int v = (#C10).{core::List::[]}(1);
core::int v = (#C10).{core::List::[]}(1){(core::int) → core::int};
}
on core::RangeError catch(no-exception-var) {
return 0;
@ -91,7 +91,7 @@ static method mutableList() → core::List<core::int> {
}
static method mutableListAdd() → core::List<core::int> {
core::List<core::int> x = core::_GrowableList::_literal2<core::int>(1, 2);
x.{core::List::add}(3);
x.{core::List::add}(3){(core::int) → void};
return x;
}
static method main() → void {

View file

@ -82,16 +82,16 @@ static const field core::int getWithIndexException3 = invalid-expression "pkg/fr
^";
static const field core::List<core::int> constListAddException = invalid-expression "Unhandled core exception: Unsupported operation: add";
static method firstExceptionFn() → core::int {
return (#C1).{core::Iterable::first};
return (#C1).{core::Iterable::first}{core::int};
}
static method lastExceptionFn() → core::int {
return (#C1).{core::Iterable::last};
return (#C1).{core::Iterable::last}{core::int};
}
static method singleExceptionFn() → core::int {
return (#C1).{core::Iterable::single};
return (#C1).{core::Iterable::single}{core::int};
}
static method singleExceptionMultiFn() → core::int {
return (#C4).{core::Iterable::single};
return (#C4).{core::Iterable::single}{core::int};
}
static method invalidPropertyFn() → core::int {
return invalid-expression "pkg/front_end/testcases/const_functions/const_functions_list_error.dart:36:12: Error: The getter 'invalidProperty' isn't defined for the class 'List<int>'.
@ -101,18 +101,18 @@ Try correcting the name to the name of an existing getter, or defining a getter
^^^^^^^^^^^^^^^" as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
static method getWithIndexExceptionFn() → core::int {
return (#C5).{core::List::[]}(1);
return (#C5).{core::List::[]}(1){(core::int) → core::int};
}
static method getWithIndexExceptionFn2() → core::int {
return (#C5).{core::List::[]}(1.{core::int::unary-}());
return (#C5).{core::List::[]}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::int};
}
static method getWithIndexExceptionFn3() → core::int {
return (#C5).{core::List::[]}(let final Never #t1 = invalid-expression "pkg/front_end/testcases/const_functions/const_functions_list_error.dart:54:12: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
return x[0.1];
^" in 0.1 as{TypeError,ForNonNullableByDefault} core::int);
^" in 0.1 as{TypeError,ForNonNullableByDefault} core::int){(core::int) → core::int};
}
static method constListAddExceptionFn() → core::List<core::int> {
(#C4).{core::List::add}(3);
(#C4).{core::List::add}(3){(core::int) → void};
return #C4;
}
static method main() → void {}

View file

@ -82,16 +82,16 @@ static const field core::int getWithIndexException3 = invalid-expression "pkg/fr
^";
static const field core::List<core::int> constListAddException = invalid-expression "Unhandled core exception: Unsupported operation: add";
static method firstExceptionFn() → core::int {
return (#C1).{core::Iterable::first};
return (#C1).{core::Iterable::first}{core::int};
}
static method lastExceptionFn() → core::int {
return (#C1).{core::Iterable::last};
return (#C1).{core::Iterable::last}{core::int};
}
static method singleExceptionFn() → core::int {
return (#C1).{core::Iterable::single};
return (#C1).{core::Iterable::single}{core::int};
}
static method singleExceptionMultiFn() → core::int {
return (#C4).{core::Iterable::single};
return (#C4).{core::Iterable::single}{core::int};
}
static method invalidPropertyFn() → core::int {
return invalid-expression "pkg/front_end/testcases/const_functions/const_functions_list_error.dart:36:12: Error: The getter 'invalidProperty' isn't defined for the class 'List<int>'.
@ -101,18 +101,18 @@ Try correcting the name to the name of an existing getter, or defining a getter
^^^^^^^^^^^^^^^";
}
static method getWithIndexExceptionFn() → core::int {
return (#C5).{core::List::[]}(1);
return (#C5).{core::List::[]}(1){(core::int) → core::int};
}
static method getWithIndexExceptionFn2() → core::int {
return (#C5).{core::List::[]}(1.{core::int::unary-}());
return (#C5).{core::List::[]}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::int};
}
static method getWithIndexExceptionFn3() → core::int {
return (#C5).{core::List::[]}(let final Never #t1 = invalid-expression "pkg/front_end/testcases/const_functions/const_functions_list_error.dart:54:12: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
return x[0.1];
^" in 0.1 as{TypeError,ForNonNullableByDefault} core::int);
^" in 0.1 as{TypeError,ForNonNullableByDefault} core::int){(core::int) → core::int};
}
static method constListAddExceptionFn() → core::List<core::int> {
(#C4).{core::List::add}(3);
(#C4).{core::List::add}(3){(core::int) → void};
return #C4;
}
static method main() → void {}
@ -126,5 +126,5 @@ constants {
}
Extra constant evaluation status:
Evaluated: MethodInvocation @ org-dartlang-testcase:///const_functions_list_error.dart:48:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///const_functions_list_error.dart:48:12 -> IntConstant(-1)
Extra constant evaluation: evaluated: 11, effectively constant: 1

View file

@ -82,16 +82,16 @@ static const field core::int getWithIndexException3 = invalid-expression "pkg/fr
^";
static const field core::List<core::int> constListAddException = invalid-expression "Unhandled core exception: Unsupported operation: add";
static method firstExceptionFn() → core::int {
return (#C1).{core::Iterable::first};
return (#C1).{core::Iterable::first}{core::int};
}
static method lastExceptionFn() → core::int {
return (#C1).{core::Iterable::last};
return (#C1).{core::Iterable::last}{core::int};
}
static method singleExceptionFn() → core::int {
return (#C1).{core::Iterable::single};
return (#C1).{core::Iterable::single}{core::int};
}
static method singleExceptionMultiFn() → core::int {
return (#C4).{core::Iterable::single};
return (#C4).{core::Iterable::single}{core::int};
}
static method invalidPropertyFn() → core::int {
return invalid-expression "pkg/front_end/testcases/const_functions/const_functions_list_error.dart:36:12: Error: The getter 'invalidProperty' isn't defined for the class 'List<int>'.
@ -101,18 +101,18 @@ Try correcting the name to the name of an existing getter, or defining a getter
^^^^^^^^^^^^^^^" as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
static method getWithIndexExceptionFn() → core::int {
return (#C5).{core::List::[]}(1);
return (#C5).{core::List::[]}(1){(core::int) → core::int};
}
static method getWithIndexExceptionFn2() → core::int {
return (#C5).{core::List::[]}(1.{core::int::unary-}());
return (#C5).{core::List::[]}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::int};
}
static method getWithIndexExceptionFn3() → core::int {
return (#C5).{core::List::[]}(let final Never #t1 = invalid-expression "pkg/front_end/testcases/const_functions/const_functions_list_error.dart:54:12: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
return x[0.1];
^" in 0.1 as{TypeError,ForNonNullableByDefault} core::int);
^" in 0.1 as{TypeError,ForNonNullableByDefault} core::int){(core::int) → core::int};
}
static method constListAddExceptionFn() → core::List<core::int> {
(#C4).{core::List::add}(3);
(#C4).{core::List::add}(3){(core::int) → void};
return #C4;
}
static method main() → void {}

View file

@ -82,16 +82,16 @@ static const field core::int getWithIndexException3 = invalid-expression "pkg/fr
^";
static const field core::List<core::int> constListAddException = invalid-expression "Unhandled core exception: Unsupported operation: add";
static method firstExceptionFn() → core::int {
return (#C1).{core::Iterable::first};
return (#C1).{core::Iterable::first}{core::int};
}
static method lastExceptionFn() → core::int {
return (#C1).{core::Iterable::last};
return (#C1).{core::Iterable::last}{core::int};
}
static method singleExceptionFn() → core::int {
return (#C1).{core::Iterable::single};
return (#C1).{core::Iterable::single}{core::int};
}
static method singleExceptionMultiFn() → core::int {
return (#C4).{core::Iterable::single};
return (#C4).{core::Iterable::single}{core::int};
}
static method invalidPropertyFn() → core::int {
return invalid-expression "pkg/front_end/testcases/const_functions/const_functions_list_error.dart:36:12: Error: The getter 'invalidProperty' isn't defined for the class 'List<int>'.
@ -101,18 +101,18 @@ Try correcting the name to the name of an existing getter, or defining a getter
^^^^^^^^^^^^^^^";
}
static method getWithIndexExceptionFn() → core::int {
return (#C5).{core::List::[]}(1);
return (#C5).{core::List::[]}(1){(core::int) → core::int};
}
static method getWithIndexExceptionFn2() → core::int {
return (#C5).{core::List::[]}(1.{core::int::unary-}());
return (#C5).{core::List::[]}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::int};
}
static method getWithIndexExceptionFn3() → core::int {
return (#C5).{core::List::[]}(let final Never #t1 = invalid-expression "pkg/front_end/testcases/const_functions/const_functions_list_error.dart:54:12: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
return x[0.1];
^" in 0.1 as{TypeError,ForNonNullableByDefault} core::int);
^" in 0.1 as{TypeError,ForNonNullableByDefault} core::int){(core::int) → core::int};
}
static method constListAddExceptionFn() → core::List<core::int> {
(#C4).{core::List::add}(3);
(#C4).{core::List::add}(3){(core::int) → void};
return #C4;
}
static method main() → void {}
@ -126,5 +126,5 @@ constants {
}
Extra constant evaluation status:
Evaluated: MethodInvocation @ org-dartlang-testcase:///const_functions_list_error.dart:48:12 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///const_functions_list_error.dart:48:12 -> IntConstant(-1)
Extra constant evaluation: evaluated: 11, effectively constant: 1

View file

@ -8,24 +8,24 @@ import "package:expect/expect.dart";
static const field core::int constTwo = #C1;
static method function1() → core::int {
function add(core::int a, core::int b) → core::int
return a.{core::num::+}(b);
return a.{core::num::+}(b){(core::num) → core::int};
return #C2;
}
static method function2() → core::int {
function addTwo(core::int a) → core::int {
core::int b = a.{core::num::+}(#C1);
core::int b = a.{core::num::+}(#C1){(core::num) → core::int};
return b;
}
return #C3;
}
static method function3() → core::int {
function addTwoReturn(core::int a) → core::int
return a.{core::num::+}(#C1);
return a.{core::num::+}(#C1){(core::num) → core::int};
return #C4;
}
static method function4() → core::int {
function addTwo(core::int a) → core::int
return a.{core::num::+}(#C1);
return a.{core::num::+}(#C1){(core::num) → core::int};
return #C5;
}
static method function5() → core::int {
@ -45,8 +45,8 @@ static method function7() → core::int {
}
static method function8() → core::int {
function add(core::int a, core::int b) → core::int
return a.{core::num::+}(b);
return (#C1).{core::num::+}(#C4);
return a.{core::num::+}(b){(core::num) → core::int};
return (#C1).{core::num::+}(#C4){(core::num) → core::int};
}
static method main() → void {
exp::Expect::equals(self::function1(), 12);

View file

@ -8,24 +8,24 @@ import "package:expect/expect.dart";
static const field core::int constTwo = #C1;
static method function1() → core::int {
function add(core::int a, core::int b) → core::int
return a.{core::num::+}(b);
return a.{core::num::+}(b){(core::num) → core::int};
return #C2;
}
static method function2() → core::int {
function addTwo(core::int a) → core::int {
core::int b = a.{core::num::+}(#C1);
core::int b = a.{core::num::+}(#C1){(core::num) → core::int};
return b;
}
return #C3;
}
static method function3() → core::int {
function addTwoReturn(core::int a) → core::int
return a.{core::num::+}(#C1);
return a.{core::num::+}(#C1){(core::num) → core::int};
return #C4;
}
static method function4() → core::int {
function addTwo(core::int a) → core::int
return a.{core::num::+}(#C1);
return a.{core::num::+}(#C1){(core::num) → core::int};
return #C5;
}
static method function5() → core::int {
@ -45,8 +45,8 @@ static method function7() → core::int {
}
static method function8() → core::int {
function add(core::int a, core::int b) → core::int
return a.{core::num::+}(b);
return (#C1).{core::num::+}(#C4);
return a.{core::num::+}(b){(core::num) → core::int};
return (#C1).{core::num::+}(#C4){(core::num) → core::int};
}
static method main() → void {
exp::Expect::equals(self::function1(), 12);
@ -71,5 +71,5 @@ constants {
}
Extra constant evaluation status:
Evaluated: MethodInvocation @ org-dartlang-testcase:///const_functions_local_functions.dart:61:16 -> IntConstant(7)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///const_functions_local_functions.dart:61:16 -> IntConstant(7)
Extra constant evaluation: evaluated: 33, effectively constant: 1

View file

@ -8,24 +8,24 @@ import "package:expect/expect.dart";
static const field core::int constTwo = #C1;
static method function1() → core::int {
function add(core::int a, core::int b) → core::int
return a.{core::num::+}(b);
return a.{core::num::+}(b){(core::num) → core::int};
return #C2;
}
static method function2() → core::int {
function addTwo(core::int a) → core::int {
core::int b = a.{core::num::+}(#C1);
core::int b = a.{core::num::+}(#C1){(core::num) → core::int};
return b;
}
return #C3;
}
static method function3() → core::int {
function addTwoReturn(core::int a) → core::int
return a.{core::num::+}(#C1);
return a.{core::num::+}(#C1){(core::num) → core::int};
return #C4;
}
static method function4() → core::int {
function addTwo(core::int a) → core::int
return a.{core::num::+}(#C1);
return a.{core::num::+}(#C1){(core::num) → core::int};
return #C5;
}
static method function5() → core::int {
@ -45,8 +45,8 @@ static method function7() → core::int {
}
static method function8() → core::int {
function add(core::int a, core::int b) → core::int
return a.{core::num::+}(b);
return (#C1).{core::num::+}(#C4);
return a.{core::num::+}(b){(core::num) → core::int};
return (#C1).{core::num::+}(#C4){(core::num) → core::int};
}
static method main() → void {
exp::Expect::equals(self::function1(), 12);

View file

@ -8,24 +8,24 @@ import "package:expect/expect.dart";
static const field core::int constTwo = #C1;
static method function1() → core::int {
function add(core::int a, core::int b) → core::int
return a.{core::num::+}(b);
return a.{core::num::+}(b){(core::num) → core::int};
return #C2;
}
static method function2() → core::int {
function addTwo(core::int a) → core::int {
core::int b = a.{core::num::+}(#C1);
core::int b = a.{core::num::+}(#C1){(core::num) → core::int};
return b;
}
return #C3;
}
static method function3() → core::int {
function addTwoReturn(core::int a) → core::int
return a.{core::num::+}(#C1);
return a.{core::num::+}(#C1){(core::num) → core::int};
return #C4;
}
static method function4() → core::int {
function addTwo(core::int a) → core::int
return a.{core::num::+}(#C1);
return a.{core::num::+}(#C1){(core::num) → core::int};
return #C5;
}
static method function5() → core::int {
@ -45,8 +45,8 @@ static method function7() → core::int {
}
static method function8() → core::int {
function add(core::int a, core::int b) → core::int
return a.{core::num::+}(b);
return (#C1).{core::num::+}(#C4);
return a.{core::num::+}(b){(core::num) → core::int};
return (#C1).{core::num::+}(#C4){(core::num) → core::int};
}
static method main() → void {
exp::Expect::equals(self::function1(), 12);
@ -71,5 +71,5 @@ constants {
}
Extra constant evaluation status:
Evaluated: MethodInvocation @ org-dartlang-testcase:///const_functions_local_functions.dart:61:16 -> IntConstant(7)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///const_functions_local_functions.dart:61:16 -> IntConstant(7)
Extra constant evaluation: evaluated: 33, effectively constant: 1

View file

@ -14,10 +14,10 @@ static const field core::Object? var5 = #C6;
static const field core::Object? var6 = #C8;
static const field core::int? var7 = #C2;
static method fn(core::Map<core::Object, core::Object> map, core::Object key) → core::Object? {
return map.{core::Map::[]}(key);
return map.{core::Map::[]}(key){(core::Object?) → core::Object?};
}
static method fn2() → core::int? {
return (#C13).{core::Map::[]}("key");
return (#C13).{core::Map::[]}("key"){(core::Object?) → core::int?};
}
static method main() → void {
exp::Expect::equals(#C1, "val");

View file

@ -14,10 +14,10 @@ static const field core::Object? var5 = #C6;
static const field core::Object? var6 = #C8;
static const field core::int? var7 = #C2;
static method fn(core::Map<core::Object, core::Object> map, core::Object key) → core::Object? {
return map.{core::Map::[]}(key);
return map.{core::Map::[]}(key){(core::Object?) → core::Object?};
}
static method fn2() → core::int? {
return (#C13).{core::Map::[]}("key");
return (#C13).{core::Map::[]}("key"){(core::Object?) → core::int?};
}
static method main() → void {
exp::Expect::equals(#C1, "val");

View file

@ -14,10 +14,10 @@ static const field core::Object? var5 = #C6;
static const field core::Object? var6 = #C8;
static const field core::int? var7 = #C2;
static method fn(core::Map<core::Object, core::Object> map, core::Object key) → core::Object? {
return map.{core::Map::[]}(key);
return map.{core::Map::[]}(key){(core::Object?) → core::Object?};
}
static method fn2() → core::int? {
return (#C13).{core::Map::[]}("key");
return (#C13).{core::Map::[]}("key"){(core::Object?) → core::int?};
}
static method main() → void {
exp::Expect::equals(#C1, "val");

View file

@ -14,10 +14,10 @@ static const field core::Object? var5 = #C6;
static const field core::Object? var6 = #C8;
static const field core::int? var7 = #C2;
static method fn(core::Map<core::Object, core::Object> map, core::Object key) → core::Object? {
return map.{core::Map::[]}(key);
return map.{core::Map::[]}(key){(core::Object?) → core::Object?};
}
static method fn2() → core::int? {
return (#C13).{core::Map::[]}("key");
return (#C13).{core::Map::[]}("key"){(core::Object?) → core::int?};
}
static method main() → void {
exp::Expect::equals(#C1, "val");

View file

@ -7,15 +7,15 @@ import "package:expect/expect.dart";
static const field core::int b = #C1;
static method fn(core::int a) → core::int {
if(a.{core::num::==}(1))
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
return a.{core::num::*}(self::fn(a.{core::num::-}(1)));
return a.{core::num::*}(self::fn(a.{core::num::-}(1){(core::num) → core::int})){(core::num) → core::int};
}
static method localTest() → core::int {
function fnLocal(core::int a) → core::int {
if(a.{core::num::==}(1))
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
return a.{core::num::*}(fnLocal.call(a.{core::num::-}(1)));
return a.{core::num::*}(fnLocal(a.{core::num::-}(1){(core::num) → core::int}){(core::int) → core::int}){(core::num) → core::int};
}
return #C1;
}

View file

@ -7,15 +7,15 @@ import "package:expect/expect.dart";
static const field core::int b = #C1;
static method fn(core::int a) → core::int {
if(a.{core::num::==}(1))
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
return a.{core::num::*}(self::fn(a.{core::num::-}(1)));
return a.{core::num::*}(self::fn(a.{core::num::-}(1){(core::num) → core::int})){(core::num) → core::int};
}
static method localTest() → core::int {
function fnLocal(core::int a) → core::int {
if(a.{core::num::==}(1))
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
return a.{core::num::*}(fnLocal.call(a.{core::num::-}(1)));
return a.{core::num::*}(fnLocal(a.{core::num::-}(1){(core::num) → core::int}){(core::int) → core::int}){(core::num) → core::int};
}
return #C1;
}

View file

@ -7,15 +7,15 @@ import "package:expect/expect.dart";
static const field core::int b = #C1;
static method fn(core::int a) → core::int {
if(a.{core::num::==}(1))
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
return a.{core::num::*}(self::fn(a.{core::num::-}(1)));
return a.{core::num::*}(self::fn(a.{core::num::-}(1){(core::num) → core::int})){(core::num) → core::int};
}
static method localTest() → core::int {
function fnLocal(core::int a) → core::int {
if(a.{core::num::==}(1))
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
return a.{core::num::*}(fnLocal.call(a.{core::num::-}(1)));
return a.{core::num::*}(fnLocal(a.{core::num::-}(1){(core::num) → core::int}){(core::int) → core::int}){(core::num) → core::int};
}
return #C1;
}

View file

@ -7,15 +7,15 @@ import "package:expect/expect.dart";
static const field core::int b = #C1;
static method fn(core::int a) → core::int {
if(a.{core::num::==}(1))
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
return a.{core::num::*}(self::fn(a.{core::num::-}(1)));
return a.{core::num::*}(self::fn(a.{core::num::-}(1){(core::num) → core::int})){(core::num) → core::int};
}
static method localTest() → core::int {
function fnLocal(core::int a) → core::int {
if(a.{core::num::==}(1))
if(a =={core::num::==}{(core::Object) → core::bool} 1)
return 1;
return a.{core::num::*}(fnLocal.call(a.{core::num::-}(1)));
return a.{core::num::*}(fnLocal(a.{core::num::-}(1){(core::num) → core::int}){(core::int) → core::int}){(core::num) → core::int};
}
return #C1;
}

View file

@ -19,25 +19,25 @@ static const field core::double doubleResult = #C10;
static const field core::int multi = #C2;
static const field core::int multi2 = #C3;
static method binaryFn(core::int a, core::int b) → core::int
return a.{core::num::-}(b);
return a.{core::num::-}(b){(core::num) → core::int};
static method optionalFn(core::int c, [core::int d = #C11]) → core::int
return c.{core::num::+}(d);
return c.{core::num::+}(d){(core::num) → core::int};
static method namedFn(core::int e, {core::int f = #C3}) → core::int
return e.{core::num::+}(f);
return e.{core::num::+}(f){(core::num) → core::int};
static method typeFn<T extends core::Object? = dynamic>(self::typeFn::T% x) → self::typeFn::T%
return x;
static method stringFn(core::String s) → core::String
return s.{core::String::+}("ing");
return s.{core::String::+}("ing"){(core::String) → core::String};
static method equalFn(core::int a, core::int b) → core::bool
return a.{core::num::==}(b);
return a =={core::num::==}{(core::Object) → core::bool} b;
static method unary(core::int a) → core::int
return a.{core::int::unary-}();
return a.{core::int::unary-}(){() → core::int};
static method boolFn(core::bool a, core::bool b) → core::bool
return a || b;
static method doubleFn(core::double a, core::double b) → core::double
return a.{core::double::*}(b);
return a.{core::double::*}(b){(core::num) → core::double};
static method multiFn(core::int a) → core::int
return a.{core::num::+}(1);
return a.{core::num::+}(1){(core::num) → core::int};
static method main() → void {
exp::Expect::equals(#C1, 1);
exp::Expect::equals(#C2, 2);
@ -47,7 +47,7 @@ static method main() → void {
exp::Expect::equals(#C6, 6);
exp::Expect::equals(#C7, "string");
exp::Expect::equals(#C8, true);
exp::Expect::equals(#C9, 2.{core::int::unary-}());
exp::Expect::equals(#C9, 2.{core::int::unary-}(){() → core::int});
exp::Expect::equals(#C8, true);
exp::Expect::equals(#C10, 4.4);
exp::Expect::equals(#C2, 2);

View file

@ -19,25 +19,25 @@ static const field core::double doubleResult = #C10;
static const field core::int multi = #C2;
static const field core::int multi2 = #C3;
static method binaryFn(core::int a, core::int b) → core::int
return a.{core::num::-}(b);
return a.{core::num::-}(b){(core::num) → core::int};
static method optionalFn(core::int c, [core::int d = #C11]) → core::int
return c.{core::num::+}(d);
return c.{core::num::+}(d){(core::num) → core::int};
static method namedFn(core::int e, {core::int f = #C3}) → core::int
return e.{core::num::+}(f);
return e.{core::num::+}(f){(core::num) → core::int};
static method typeFn<T extends core::Object? = dynamic>(self::typeFn::T% x) → self::typeFn::T%
return x;
static method stringFn(core::String s) → core::String
return s.{core::String::+}("ing");
return s.{core::String::+}("ing"){(core::String) → core::String};
static method equalFn(core::int a, core::int b) → core::bool
return a.{core::num::==}(b);
return a =={core::num::==}{(core::Object) → core::bool} b;
static method unary(core::int a) → core::int
return a.{core::int::unary-}();
return a.{core::int::unary-}(){() → core::int};
static method boolFn(core::bool a, core::bool b) → core::bool
return a || b;
static method doubleFn(core::double a, core::double b) → core::double
return a.{core::double::*}(b);
return a.{core::double::*}(b){(core::num) → core::double};
static method multiFn(core::int a) → core::int
return a.{core::num::+}(1);
return a.{core::num::+}(1){(core::num) → core::int};
static method main() → void {
exp::Expect::equals(#C1, 1);
exp::Expect::equals(#C2, 2);
@ -47,7 +47,7 @@ static method main() → void {
exp::Expect::equals(#C6, 6);
exp::Expect::equals(#C7, "string");
exp::Expect::equals(#C8, true);
exp::Expect::equals(#C9, 2.{core::int::unary-}());
exp::Expect::equals(#C9, 2.{core::int::unary-}(){() → core::int});
exp::Expect::equals(#C8, true);
exp::Expect::equals(#C10, 4.4);
exp::Expect::equals(#C2, 2);
@ -69,5 +69,5 @@ constants {
}
Extra constant evaluation status:
Evaluated: MethodInvocation @ org-dartlang-testcase:///const_functions_simple_invocations.dart:51:27 -> IntConstant(-2)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///const_functions_simple_invocations.dart:51:27 -> IntConstant(-2)
Extra constant evaluation: evaluated: 39, effectively constant: 1

View file

@ -19,25 +19,25 @@ static const field core::double doubleResult = #C10;
static const field core::int multi = #C2;
static const field core::int multi2 = #C3;
static method binaryFn(core::int a, core::int b) → core::int
return a.{core::num::-}(b);
return a.{core::num::-}(b){(core::num) → core::int};
static method optionalFn(core::int c, [core::int d = #C11]) → core::int
return c.{core::num::+}(d);
return c.{core::num::+}(d){(core::num) → core::int};
static method namedFn(core::int e, {core::int f = #C3}) → core::int
return e.{core::num::+}(f);
return e.{core::num::+}(f){(core::num) → core::int};
static method typeFn<T extends core::Object? = dynamic>(self::typeFn::T% x) → self::typeFn::T%
return x;
static method stringFn(core::String s) → core::String
return s.{core::String::+}("ing");
return s.{core::String::+}("ing"){(core::String) → core::String};
static method equalFn(core::int a, core::int b) → core::bool
return a.{core::num::==}(b);
return a =={core::num::==}{(core::Object) → core::bool} b;
static method unary(core::int a) → core::int
return a.{core::int::unary-}();
return a.{core::int::unary-}(){() → core::int};
static method boolFn(core::bool a, core::bool b) → core::bool
return a || b;
static method doubleFn(core::double a, core::double b) → core::double
return a.{core::double::*}(b);
return a.{core::double::*}(b){(core::num) → core::double};
static method multiFn(core::int a) → core::int
return a.{core::num::+}(1);
return a.{core::num::+}(1){(core::num) → core::int};
static method main() → void {
exp::Expect::equals(#C1, 1);
exp::Expect::equals(#C2, 2);
@ -47,7 +47,7 @@ static method main() → void {
exp::Expect::equals(#C6, 6);
exp::Expect::equals(#C7, "string");
exp::Expect::equals(#C8, true);
exp::Expect::equals(#C9, 2.{core::int::unary-}());
exp::Expect::equals(#C9, 2.{core::int::unary-}(){() → core::int});
exp::Expect::equals(#C8, true);
exp::Expect::equals(#C10, 4.4);
exp::Expect::equals(#C2, 2);

View file

@ -19,25 +19,25 @@ static const field core::double doubleResult = #C10;
static const field core::int multi = #C2;
static const field core::int multi2 = #C3;
static method binaryFn(core::int a, core::int b) → core::int
return a.{core::num::-}(b);
return a.{core::num::-}(b){(core::num) → core::int};
static method optionalFn(core::int c, [core::int d = #C11]) → core::int
return c.{core::num::+}(d);
return c.{core::num::+}(d){(core::num) → core::int};
static method namedFn(core::int e, {core::int f = #C3}) → core::int
return e.{core::num::+}(f);
return e.{core::num::+}(f){(core::num) → core::int};
static method typeFn<T extends core::Object? = dynamic>(self::typeFn::T% x) → self::typeFn::T%
return x;
static method stringFn(core::String s) → core::String
return s.{core::String::+}("ing");
return s.{core::String::+}("ing"){(core::String) → core::String};
static method equalFn(core::int a, core::int b) → core::bool
return a.{core::num::==}(b);
return a =={core::num::==}{(core::Object) → core::bool} b;
static method unary(core::int a) → core::int
return a.{core::int::unary-}();
return a.{core::int::unary-}(){() → core::int};
static method boolFn(core::bool a, core::bool b) → core::bool
return a || b;
static method doubleFn(core::double a, core::double b) → core::double
return a.{core::double::*}(b);
return a.{core::double::*}(b){(core::num) → core::double};
static method multiFn(core::int a) → core::int
return a.{core::num::+}(1);
return a.{core::num::+}(1){(core::num) → core::int};
static method main() → void {
exp::Expect::equals(#C1, 1);
exp::Expect::equals(#C2, 2);
@ -47,7 +47,7 @@ static method main() → void {
exp::Expect::equals(#C6, 6);
exp::Expect::equals(#C7, "string");
exp::Expect::equals(#C8, true);
exp::Expect::equals(#C9, 2.{core::int::unary-}());
exp::Expect::equals(#C9, 2.{core::int::unary-}(){() → core::int});
exp::Expect::equals(#C8, true);
exp::Expect::equals(#C10, 4.4);
exp::Expect::equals(#C2, 2);
@ -69,5 +69,5 @@ constants {
}
Extra constant evaluation status:
Evaluated: MethodInvocation @ org-dartlang-testcase:///const_functions_simple_invocations.dart:51:27 -> IntConstant(-2)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///const_functions_simple_invocations.dart:51:27 -> IntConstant(-2)
Extra constant evaluation: evaluated: 39, effectively constant: 1

View file

@ -12,11 +12,11 @@ static const field core::String var3 = #C3;
static const field dynamic var4 = #C4;
static method fn() → dynamic {
core::String local = "str";
return local.{core::String::[]}(0);
return local.{core::String::[]}(0){(core::int) → core::String};
}
static method fn2() → dynamic {
try {
core::String x = (#C1).{core::String::[]}(1.{core::int::unary-}());
core::String x = (#C1).{core::String::[]}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::String};
}
on core::RangeError catch(no-exception-var) {
return 2;

View file

@ -12,11 +12,11 @@ static const field core::String var3 = #C3;
static const field dynamic var4 = #C4;
static method fn() → dynamic {
core::String local = "str";
return local.{core::String::[]}(0);
return local.{core::String::[]}(0){(core::int) → core::String};
}
static method fn2() → dynamic {
try {
core::String x = (#C1).{core::String::[]}(1.{core::int::unary-}());
core::String x = (#C1).{core::String::[]}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::String};
}
on core::RangeError catch(no-exception-var) {
return 2;
@ -37,5 +37,5 @@ constants {
}
Extra constant evaluation status:
Evaluated: MethodInvocation @ org-dartlang-testcase:///const_functions_string.dart:23:17 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///const_functions_string.dart:23:17 -> IntConstant(-1)
Extra constant evaluation: evaluated: 8, effectively constant: 1

View file

@ -12,11 +12,11 @@ static const field core::String var3 = #C3;
static const field dynamic var4 = #C4;
static method fn() → dynamic {
core::String local = "str";
return local.{core::String::[]}(0);
return local.{core::String::[]}(0){(core::int) → core::String};
}
static method fn2() → dynamic {
try {
core::String x = (#C1).{core::String::[]}(1.{core::int::unary-}());
core::String x = (#C1).{core::String::[]}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::String};
}
on core::RangeError catch(no-exception-var) {
return 2;

View file

@ -5,9 +5,9 @@ import "dart:core" as core;
import "package:expect/expect.dart";
static const field core::String str = "str";
static const field core::String var1 = self::str.{core::String::[]}(2);
static const field core::String var1 = self::str.{core::String::[]}(2){(core::int) → core::String};
static const field dynamic var2 = self::fn();
static const field core::String var3 = "str".{core::String::[]}(0);
static const field core::String var3 = "str".{core::String::[]}(0){(core::int) → core::String};
static const field dynamic var4 = self::fn2();
static method fn() → dynamic
;

View file

@ -12,11 +12,11 @@ static const field core::String var3 = #C3;
static const field dynamic var4 = #C4;
static method fn() → dynamic {
core::String local = "str";
return local.{core::String::[]}(0);
return local.{core::String::[]}(0){(core::int) → core::String};
}
static method fn2() → dynamic {
try {
core::String x = (#C1).{core::String::[]}(1.{core::int::unary-}());
core::String x = (#C1).{core::String::[]}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::String};
}
on core::RangeError catch(no-exception-var) {
return 2;
@ -37,5 +37,5 @@ constants {
}
Extra constant evaluation status:
Evaluated: MethodInvocation @ org-dartlang-testcase:///const_functions_string.dart:23:17 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///const_functions_string.dart:23:17 -> IntConstant(-1)
Extra constant evaluation: evaluated: 8, effectively constant: 1

View file

@ -49,17 +49,17 @@ static const field dynamic var5 = invalid-expression "pkg/front_end/testcases/co
^";
static method fn() → dynamic {
core::String s = "str";
return (#C1).{core::String::[]}(1.{core::int::unary-}());
return (#C1).{core::String::[]}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::String};
}
static method fn2() → dynamic {
core::String s = "str";
return (#C1).{core::String::[]}(3);
return (#C1).{core::String::[]}(3){(core::int) → core::String};
}
static method fn3() → dynamic {
core::String s = "str";
return (#C1).{core::String::[]}(let final Never #t1 = invalid-expression "pkg/front_end/testcases/const_functions/const_functions_string_error.dart:28:14: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
return str[1.1];
^" in 1.1 as{TypeError,ForNonNullableByDefault} core::int);
^" in 1.1 as{TypeError,ForNonNullableByDefault} core::int){(core::int) → core::String};
}
static method main() → void {}

View file

@ -49,17 +49,17 @@ static const field dynamic var5 = invalid-expression "pkg/front_end/testcases/co
^";
static method fn() → dynamic {
core::String s = "str";
return (#C1).{core::String::[]}(1.{core::int::unary-}());
return (#C1).{core::String::[]}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::String};
}
static method fn2() → dynamic {
core::String s = "str";
return (#C1).{core::String::[]}(3);
return (#C1).{core::String::[]}(3){(core::int) → core::String};
}
static method fn3() → dynamic {
core::String s = "str";
return (#C1).{core::String::[]}(let final Never #t1 = invalid-expression "pkg/front_end/testcases/const_functions/const_functions_string_error.dart:28:14: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
return str[1.1];
^" in 1.1 as{TypeError,ForNonNullableByDefault} core::int);
^" in 1.1 as{TypeError,ForNonNullableByDefault} core::int){(core::int) → core::String};
}
static method main() → void {}
@ -68,5 +68,5 @@ constants {
}
Extra constant evaluation status:
Evaluated: MethodInvocation @ org-dartlang-testcase:///const_functions_string_error.dart:16:14 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///const_functions_string_error.dart:16:14 -> IntConstant(-1)
Extra constant evaluation: evaluated: 6, effectively constant: 1

View file

@ -49,17 +49,17 @@ static const field dynamic var5 = invalid-expression "pkg/front_end/testcases/co
^";
static method fn() → dynamic {
core::String s = "str";
return (#C1).{core::String::[]}(1.{core::int::unary-}());
return (#C1).{core::String::[]}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::String};
}
static method fn2() → dynamic {
core::String s = "str";
return (#C1).{core::String::[]}(3);
return (#C1).{core::String::[]}(3){(core::int) → core::String};
}
static method fn3() → dynamic {
core::String s = "str";
return (#C1).{core::String::[]}(let final Never #t1 = invalid-expression "pkg/front_end/testcases/const_functions/const_functions_string_error.dart:28:14: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
return str[1.1];
^" in 1.1 as{TypeError,ForNonNullableByDefault} core::int);
^" in 1.1 as{TypeError,ForNonNullableByDefault} core::int){(core::int) → core::String};
}
static method main() → void {}

View file

@ -5,8 +5,8 @@ import "dart:core" as core;
import "package:expect/expect.dart";
static const field core::String str = "str";
static const field core::String var1 = self::str.{core::String::[]}(1.{core::int::unary-}());
static const field core::String var2 = self::str.{core::String::[]}(3);
static const field core::String var1 = self::str.{core::String::[]}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::String};
static const field core::String var2 = self::str.{core::String::[]}(3){(core::int) → core::String};
static const field dynamic var3 = self::fn();
static const field dynamic var4 = self::fn2();
static const field dynamic var5 = self::fn3();
@ -22,6 +22,6 @@ static method main() → void
Extra constant evaluation status:
Evaluated: StaticGet @ org-dartlang-testcase:///const_functions_string_error.dart:10:14 -> StringConstant("str")
Evaluated: MethodInvocation @ org-dartlang-testcase:///const_functions_string_error.dart:10:18 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///const_functions_string_error.dart:10:18 -> IntConstant(-1)
Evaluated: StaticGet @ org-dartlang-testcase:///const_functions_string_error.dart:11:14 -> StringConstant("str")
Extra constant evaluation: evaluated: 8, effectively constant: 3

View file

@ -49,17 +49,17 @@ static const field dynamic var5 = invalid-expression "pkg/front_end/testcases/co
^";
static method fn() → dynamic {
core::String s = "str";
return (#C1).{core::String::[]}(1.{core::int::unary-}());
return (#C1).{core::String::[]}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::String};
}
static method fn2() → dynamic {
core::String s = "str";
return (#C1).{core::String::[]}(3);
return (#C1).{core::String::[]}(3){(core::int) → core::String};
}
static method fn3() → dynamic {
core::String s = "str";
return (#C1).{core::String::[]}(let final Never #t1 = invalid-expression "pkg/front_end/testcases/const_functions/const_functions_string_error.dart:28:14: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
return str[1.1];
^" in 1.1 as{TypeError,ForNonNullableByDefault} core::int);
^" in 1.1 as{TypeError,ForNonNullableByDefault} core::int){(core::int) → core::String};
}
static method main() → void {}
@ -68,5 +68,5 @@ constants {
}
Extra constant evaluation status:
Evaluated: MethodInvocation @ org-dartlang-testcase:///const_functions_string_error.dart:16:14 -> IntConstant(-1)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///const_functions_string_error.dart:16:14 -> IntConstant(-1)
Extra constant evaluation: evaluated: 6, effectively constant: 1

View file

@ -25,7 +25,7 @@ static method basicSwitch(core::int x) → core::int {
#L3:
default:
{
x = x.{core::num::+}(1);
x = x.{core::num::+}(1){(core::num) → core::int};
break #L1;
}
}
@ -53,7 +53,7 @@ static method continueLabelSwitch(core::int x) → core::int {
#L7:
case #C7:
{
x = x.{core::num::+}(100);
x = x.{core::num::+}(100){(core::num) → core::int};
continue #L8;
}
#L9:
@ -64,7 +64,7 @@ static method continueLabelSwitch(core::int x) → core::int {
#L8:
case #C2:
{
return x.{core::num::+}(3);
return x.{core::num::+}(3){(core::num) → core::int};
}
}
return 0;

View file

@ -25,7 +25,7 @@ static method basicSwitch(core::int x) → core::int {
#L3:
default:
{
x = x.{core::num::+}(1);
x = x.{core::num::+}(1){(core::num) → core::int};
break #L1;
}
}
@ -53,7 +53,7 @@ static method continueLabelSwitch(core::int x) → core::int {
#L7:
case #C7:
{
x = x.{core::num::+}(100);
x = x.{core::num::+}(100){(core::num) → core::int};
continue #L8;
}
#L9:
@ -64,7 +64,7 @@ static method continueLabelSwitch(core::int x) → core::int {
#L8:
case #C2:
{
return x.{core::num::+}(3);
return x.{core::num::+}(3){(core::num) → core::int};
}
}
return 0;

View file

@ -25,7 +25,7 @@ static method basicSwitch(core::int x) → core::int {
#L3:
default:
{
x = x.{core::num::+}(1);
x = x.{core::num::+}(1){(core::num) → core::int};
break #L1;
}
}
@ -53,7 +53,7 @@ static method continueLabelSwitch(core::int x) → core::int {
#L7:
case #C7:
{
x = x.{core::num::+}(100);
x = x.{core::num::+}(100){(core::num) → core::int};
continue #L8;
}
#L9:
@ -64,7 +64,7 @@ static method continueLabelSwitch(core::int x) → core::int {
#L8:
case #C2:
{
return x.{core::num::+}(3);
return x.{core::num::+}(3){(core::num) → core::int};
}
}
return 0;

View file

@ -25,7 +25,7 @@ static method basicSwitch(core::int x) → core::int {
#L3:
default:
{
x = x.{core::num::+}(1);
x = x.{core::num::+}(1){(core::num) → core::int};
break #L1;
}
}
@ -53,7 +53,7 @@ static method continueLabelSwitch(core::int x) → core::int {
#L7:
case #C7:
{
x = x.{core::num::+}(100);
x = x.{core::num::+}(100){(core::num) → core::int};
continue #L8;
}
#L9:
@ -64,7 +64,7 @@ static method continueLabelSwitch(core::int x) → core::int {
#L8:
case #C2:
{
return x.{core::num::+}(3);
return x.{core::num::+}(3){(core::num) → core::int};
}
}
return 0;

View file

@ -43,7 +43,7 @@ static method fn1(dynamic error) → core::int {
static method finallyReturn(dynamic error) → core::int {
try
try {
if(!error.{core::Object::==}(1))
if(!(error =={core::Object::==}{(core::Object) → core::bool} 1))
throw error;
}
on core::int catch(final core::int e) {
@ -58,7 +58,7 @@ static method finallyReturn(dynamic error) → core::int {
}
static method finallyReturn1(core::int x) → core::int {
try {
if(x.{core::num::==}(1)) {
if(x =={core::num::==}{(core::Object) → core::bool} 1) {
throw x;
}
else {
@ -75,7 +75,7 @@ static method finallyMutate() → core::int {
return x;
}
finally {
x = x.{core::num::+}(1);
x = x.{core::num::+}(1){(core::num) → core::int};
}
}
static method subtypeFn() → core::int {
@ -90,21 +90,21 @@ static method orderFn() → core::String {
core::String x = "st";
try
try {
x = x.{core::String::+}("ri");
x = x.{core::String::+}("ri"){(core::String) → core::String};
throw 2;
}
on core::Object catch(final core::Object e) {
x = x.{core::String::+}("n");
x = x.{core::String::+}("n"){(core::String) → core::String};
}
finally {
return x.{core::String::+}("g");
return x.{core::String::+}("g"){(core::String) → core::String};
}
}
static method notThrowStatement() → core::int {
core::int count = 0;
try {
for (core::int i = 0; i.{core::num::<}(1); throw "a") {
count = count.{core::num::+}(i);
for (core::int i = 0; i.{core::num::<}(1){(core::num) → core::bool}; throw "a") {
count = count.{core::num::+}(i){(core::num) → core::int};
}
}
on core::Object catch(final core::Object e) {

View file

@ -43,7 +43,7 @@ static method fn1(dynamic error) → core::int {
static method finallyReturn(dynamic error) → core::int {
try
try {
if(!error.{core::Object::==}(1))
if(!(error =={core::Object::==}{(core::Object) → core::bool} 1))
throw error;
}
on core::int catch(final core::int e) {
@ -58,7 +58,7 @@ static method finallyReturn(dynamic error) → core::int {
}
static method finallyReturn1(core::int x) → core::int {
try {
if(x.{core::num::==}(1)) {
if(x =={core::num::==}{(core::Object) → core::bool} 1) {
throw x;
}
else {
@ -75,7 +75,7 @@ static method finallyMutate() → core::int {
return x;
}
finally {
x = x.{core::num::+}(1);
x = x.{core::num::+}(1){(core::num) → core::int};
}
}
static method subtypeFn() → core::int {
@ -90,21 +90,21 @@ static method orderFn() → core::String {
core::String x = "st";
try
try {
x = x.{core::String::+}("ri");
x = x.{core::String::+}("ri"){(core::String) → core::String};
throw 2;
}
on core::Object catch(final core::Object e) {
x = x.{core::String::+}("n");
x = x.{core::String::+}("n"){(core::String) → core::String};
}
finally {
return x.{core::String::+}("g");
return x.{core::String::+}("g"){(core::String) → core::String};
}
}
static method notThrowStatement() → core::int {
core::int count = 0;
try {
for (core::int i = 0; i.{core::num::<}(1); throw "a") {
count = count.{core::num::+}(i);
for (core::int i = 0; i.{core::num::<}(1){(core::num) → core::bool}; throw "a") {
count = count.{core::num::+}(i){(core::num) → core::int};
}
}
on core::Object catch(final core::Object e) {

View file

@ -43,7 +43,7 @@ static method fn1(dynamic error) → core::int {
static method finallyReturn(dynamic error) → core::int {
try
try {
if(!error.{core::Object::==}(1))
if(!(error =={core::Object::==}{(core::Object) → core::bool} 1))
throw error;
}
on core::int catch(final core::int e) {
@ -58,7 +58,7 @@ static method finallyReturn(dynamic error) → core::int {
}
static method finallyReturn1(core::int x) → core::int {
try {
if(x.{core::num::==}(1)) {
if(x =={core::num::==}{(core::Object) → core::bool} 1) {
throw x;
}
else {
@ -75,7 +75,7 @@ static method finallyMutate() → core::int {
return x;
}
finally {
x = x.{core::num::+}(1);
x = x.{core::num::+}(1){(core::num) → core::int};
}
}
static method subtypeFn() → core::int {
@ -90,21 +90,21 @@ static method orderFn() → core::String {
core::String x = "st";
try
try {
x = x.{core::String::+}("ri");
x = x.{core::String::+}("ri"){(core::String) → core::String};
throw 2;
}
on core::Object catch(final core::Object e) {
x = x.{core::String::+}("n");
x = x.{core::String::+}("n"){(core::String) → core::String};
}
finally {
return x.{core::String::+}("g");
return x.{core::String::+}("g"){(core::String) → core::String};
}
}
static method notThrowStatement() → core::int {
core::int count = 0;
try {
for (core::int i = 0; i.{core::num::<}(1); throw "a") {
count = count.{core::num::+}(i);
for (core::int i = 0; i.{core::num::<}(1){(core::num) → core::bool}; throw "a") {
count = count.{core::num::+}(i){(core::num) → core::int};
}
}
on core::Object catch(final core::Object e) {

View file

@ -43,7 +43,7 @@ static method fn1(dynamic error) → core::int {
static method finallyReturn(dynamic error) → core::int {
try
try {
if(!error.{core::Object::==}(1))
if(!(error =={core::Object::==}{(core::Object) → core::bool} 1))
throw error;
}
on core::int catch(final core::int e) {
@ -58,7 +58,7 @@ static method finallyReturn(dynamic error) → core::int {
}
static method finallyReturn1(core::int x) → core::int {
try {
if(x.{core::num::==}(1)) {
if(x =={core::num::==}{(core::Object) → core::bool} 1) {
throw x;
}
else {
@ -75,7 +75,7 @@ static method finallyMutate() → core::int {
return x;
}
finally {
x = x.{core::num::+}(1);
x = x.{core::num::+}(1){(core::num) → core::int};
}
}
static method subtypeFn() → core::int {
@ -90,21 +90,21 @@ static method orderFn() → core::String {
core::String x = "st";
try
try {
x = x.{core::String::+}("ri");
x = x.{core::String::+}("ri"){(core::String) → core::String};
throw 2;
}
on core::Object catch(final core::Object e) {
x = x.{core::String::+}("n");
x = x.{core::String::+}("n"){(core::String) → core::String};
}
finally {
return x.{core::String::+}("g");
return x.{core::String::+}("g"){(core::String) → core::String};
}
}
static method notThrowStatement() → core::int {
core::int count = 0;
try {
for (core::int i = 0; i.{core::num::<}(1); throw "a") {
count = count.{core::num::+}(i);
for (core::int i = 0; i.{core::num::<}(1){(core::num) → core::bool}; throw "a") {
count = count.{core::num::+}(i){(core::num) → core::int};
}
}
on core::Object catch(final core::Object e) {

View file

@ -49,7 +49,7 @@ static const field core::int var4 = invalid-expression "Unhandled exception: \"s
static const field core::int var5 = invalid-expression "Unhandled exception: \"a\"";
static method finallyThrow(core::int x) → core::int {
try {
if(x.{core::num::==}(1)) {
if(x =={core::num::==}{(core::Object) → core::bool} 1) {
throw x;
}
else {
@ -70,8 +70,8 @@ static method unhandledThrow(dynamic x) → core::int {
}
static method unhandledThrow2() → core::int {
core::int count = 0;
for (core::int i = 0; i.{core::num::<}(1); throw "a") {
count = count.{core::num::+}(i);
for (core::int i = 0; i.{core::num::<}(1){(core::num) → core::bool}; throw "a") {
count = count.{core::num::+}(i){(core::num) → core::int};
}
return 0;
}

View file

@ -49,7 +49,7 @@ static const field core::int var4 = invalid-expression "Unhandled exception: \"s
static const field core::int var5 = invalid-expression "Unhandled exception: \"a\"";
static method finallyThrow(core::int x) → core::int {
try {
if(x.{core::num::==}(1)) {
if(x =={core::num::==}{(core::Object) → core::bool} 1) {
throw x;
}
else {
@ -70,8 +70,8 @@ static method unhandledThrow(dynamic x) → core::int {
}
static method unhandledThrow2() → core::int {
core::int count = 0;
for (core::int i = 0; i.{core::num::<}(1); throw "a") {
count = count.{core::num::+}(i);
for (core::int i = 0; i.{core::num::<}(1){(core::num) → core::bool}; throw "a") {
count = count.{core::num::+}(i){(core::num) → core::int};
}
return 0;
}

Some files were not shown because too many files have changed in this diff Show more