blob: 5426f092ec36b0dd951b415b5e909168540342a6 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
static method f_1_1_no_default(dynamic a, [dynamic b = null]) dynamic {
return a.+(b);
}
static method f_1_1_default(dynamic a, [dynamic b = 2]) dynamic {
return a.+(b);
}
static method f_1_b_no_default(dynamic a, {dynamic b = null}) dynamic {
return a.+(b);
}
static method f_1_b_default(dynamic a, {dynamic b = 2}) dynamic {
return a.+(b);
}
static method test_1_1(core::Function f, core::bool hasDefault) dynamic {
dynamic result = f.call(40, 2);
if(!42.==(result))
throw "Unexpected result: ${result}";
self::test_1(f, hasDefault);
}
static method test_1_b(core::Function f, core::bool hasDefault) dynamic {
dynamic result = f.call(40, b: 2);
if(!42.==(result))
throw "Unexpected result: ${result}";
self::test_1(f, hasDefault);
}
static method test_1(core::Function f, core::bool hasDefault) dynamic {
dynamic result = 0;
core::bool threw = true;
try {
result = f.call(40);
threw = false;
}
on dynamic catch(final dynamic _) {
}
if(hasDefault) {
if(threw)
throw "Unexpected exception.";
if(!42.==(result))
throw "Unexpected result: ${result}.";
}
else {
if(!threw)
throw "Expected exception missing.";
if(!0.==(result))
throw "Unexpected result: ${result}.";
}
}
static method main(dynamic arguments) dynamic {
self::test_1_1(MakeClosure<(dynamic, [dynamic]) dynamic>(self::closure#f_1_1_no_default, null), false);
self::test_1_1(MakeClosure<(dynamic, [dynamic]) dynamic>(self::closure#f_1_1_default, null), true);
self::test_1_b(MakeClosure<(dynamic, {b: dynamic}) dynamic>(self::closure#f_1_b_no_default, null), false);
self::test_1_b(MakeClosure<(dynamic, {b: dynamic}) dynamic>(self::closure#f_1_b_default, null), true);
}
static method closure#f_1_1_no_default(Vector #contextParameter, dynamic a, [dynamic b = null]) → dynamic
return self::f_1_1_no_default(a, b);
static method closure#f_1_1_default(Vector #contextParameter, dynamic a, [dynamic b = 2]) → dynamic
return self::f_1_1_default(a, b);
static method closure#f_1_b_no_default(Vector #contextParameter, dynamic a, {dynamic b = null}) → dynamic
return self::f_1_b_no_default(a, b: b);
static method closure#f_1_b_default(Vector #contextParameter, dynamic a, {dynamic b = 2}) → dynamic
return self::f_1_b_default(a, b: b);