blob: e90c3708d4c3aa6dcd1afce63fbc94865f694985 [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:58:8: Error: Too many positional arguments: 1 allowed, but 2 found.
// Try removing the extra positional arguments.
// f1b(42, 87); // error
// ^
//
// pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:66:8: Error: Too many positional arguments: 0 allowed, but 1 found.
// Try removing the extra positional arguments.
// f1c(42); // error
// ^
//
// pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:67:8: Error: Too many positional arguments: 0 allowed, but 2 found.
// Try removing the extra positional arguments.
// f1c(42, 87); // error
// ^
//
// pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:112:21: Error: No named parameter with the name 'field2'.
// f2c(field1: 42, field2: 87); // error
// ^^^^^^
//
// pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:123:9: Error: No named parameter with the name 'field1'.
// f2d(field1: 42, field2: 87); // error
// ^^^^^^
//
// pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:131:9: Error: No named parameter with the name 'field1'.
// f2e(field1: 42); // error
// ^^^^^^
//
// pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:132:9: Error: No named parameter with the name 'field2'.
// f2e(field2: 87); // error
// ^^^^^^
//
// pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:133:9: Error: No named parameter with the name 'field1'.
// f2e(field1: 42, field2: 87); // error
// ^^^^^^
//
import self as self;
import "dart:core" as core;
class Class1 extends core::Object {
final field core::int field1;
final field core::int field2;
static final field dynamic _redirecting# = <dynamic>[self::Class1::redirectPositionalSame, self::Class1::redirectPositionalFewer1, self::Class1::redirectPositionalFewer2, self::Class1::redirectNamedSame, self::Class1::redirectNamedReorder, self::Class1::redirectNamedFewer1, self::Class1::redirectNamedFewer2, self::Class1::redirectNamedFewer3]/*isLegacy*/;
constructor positional([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1
: self::Class1::field1 = field1, self::Class1::field2 = field2, super core::Object::•()
;
constructor named({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1
: self::Class1::field1 = field1, self::Class1::field2 = field2, super core::Object::•()
;
static method _#positional#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1
return new self::Class1::positional(field1, field2);
static factory redirectPositionalSame([core::int field1 = #C3, core::int field2 = #C3]) → self::Class1
let Never #redirecting_factory = self::Class1::positional in invalid-expression;
static method _#redirectPositionalSame#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1
return new self::Class1::positional(field1, field2);
static factory redirectPositionalFewer1([core::int field1 = #C3]) → self::Class1
let Never #redirecting_factory = self::Class1::positional in invalid-expression;
static method _#redirectPositionalFewer1#tearOff([core::int field1 = #C1]) → self::Class1
return new self::Class1::positional(field1);
static factory redirectPositionalFewer2() self::Class1
let Never #redirecting_factory = self::Class1::positional in invalid-expression;
static method _#redirectPositionalFewer2#tearOff() → self::Class1
return new self::Class1::positional();
static method _#named#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field1: field1, field2: field2);
static factory redirectNamedSame({core::int field1 = #C3, core::int field2 = #C3}) → self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
static method _#redirectNamedSame#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field1: field1, field2: field2);
static factory redirectNamedReorder({core::int field2 = #C3, core::int field1 = #C3}) → self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
static method _#redirectNamedReorder#tearOff({core::int field2 = #C2, core::int field1 = #C1}) → self::Class1
return new self::Class1::named(field2: field2, field1: field1);
static factory redirectNamedFewer1({core::int field1 = #C3}) → self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
static method _#redirectNamedFewer1#tearOff({core::int field1 = #C1}) → self::Class1
return new self::Class1::named(field1: field1);
static factory redirectNamedFewer2({core::int field2 = #C3}) → self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
static method _#redirectNamedFewer2#tearOff({core::int field2 = #C2}) → self::Class1
return new self::Class1::named(field2: field2);
static factory redirectNamedFewer3() self::Class1
let Never #redirecting_factory = self::Class1::named in invalid-expression;
static method _#redirectNamedFewer3#tearOff() → self::Class1
return new self::Class1::named();
}
static final field core::bool inSoundMode = !(core::_GrowableList::•<core::int?>(0) is{ForNonNullableByDefault} core::List<core::int>);
static method main() dynamic {
core::print("inSoundMode: ${self::inSoundMode}");
self::testDefaultValues();
}
static method testDefaultValues() dynamic {
([core::int, core::int]) self::Class1 f1a = #C4;
self::Class1 c1a = f1a(){([core::int, core::int]) self::Class1};
self::expect(1, c1a.{self::Class1::field1}{core::int});
self::expect(2, c1a.{self::Class1::field2}{core::int});
self::Class1 c1b = f1a(42){([core::int, core::int]) self::Class1};
self::expect(42, c1b.{self::Class1::field1}{core::int});
self::expect(2, c1b.{self::Class1::field2}{core::int});
self::Class1 c1c = f1a(42, 87){([core::int, core::int]) self::Class1};
self::expect(42, c1c.{self::Class1::field1}{core::int});
self::expect(87, c1c.{self::Class1::field2}{core::int});
([core::int]) self::Class1 f1b = #C5;
self::Class1 c1d = f1b(){([core::int]) self::Class1};
self::expect(1, c1d.{self::Class1::field1}{core::int});
self::expect(2, c1d.{self::Class1::field2}{core::int});
self::Class1 c1e = f1b(42){([core::int]) self::Class1};
self::expect(42, c1e.{self::Class1::field1}{core::int});
self::expect(2, c1e.{self::Class1::field2}{core::int});
() Null {
invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:58:8: Error: Too many positional arguments: 1 allowed, but 2 found.
Try removing the extra positional arguments.
f1b(42, 87); // error
^" in f1b{<inapplicable>}.(42, 87);
};
() self::Class1 f1c = #C6;
self::Class1 c1f = f1c(){() self::Class1};
self::expect(1, c1f.{self::Class1::field1}{core::int});
self::expect(2, c1f.{self::Class1::field2}{core::int});
() Null {
invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:66:8: Error: Too many positional arguments: 0 allowed, but 1 found.
Try removing the extra positional arguments.
f1c(42); // error
^" in f1c{<inapplicable>}.(42);
invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:67:8: Error: Too many positional arguments: 0 allowed, but 2 found.
Try removing the extra positional arguments.
f1c(42, 87); // error
^" in f1c{<inapplicable>}.(42, 87);
};
({field1: core::int, field2: core::int}) self::Class1 f2a = #C7;
self::Class1 c2a = f2a(){({field1: core::int, field2: core::int}) self::Class1};
self::expect(1, c2a.{self::Class1::field1}{core::int});
self::expect(2, c2a.{self::Class1::field2}{core::int});
self::Class1 c2b = f2a(field1: 42){({field1: core::int, field2: core::int}) self::Class1};
self::expect(42, c2b.{self::Class1::field1}{core::int});
self::expect(2, c2b.{self::Class1::field2}{core::int});
self::Class1 c2c = f2a(field1: 42, field2: 87){({field1: core::int, field2: core::int}) self::Class1};
self::expect(42, c2c.{self::Class1::field1}{core::int});
self::expect(87, c2c.{self::Class1::field2}{core::int});
self::Class1 c2d = f2a(field2: 87){({field1: core::int, field2: core::int}) self::Class1};
self::expect(1, c2d.{self::Class1::field1}{core::int});
self::expect(87, c2d.{self::Class1::field2}{core::int});
self::Class1 c2e = f2a(field2: 87, field1: 42){({field1: core::int, field2: core::int}) self::Class1};
self::expect(42, c2e.{self::Class1::field1}{core::int});
self::expect(87, c2e.{self::Class1::field2}{core::int});
({field1: core::int, field2: core::int}) self::Class1 f2b = #C8;
self::Class1 c3a = f2b(){({field1: core::int, field2: core::int}) self::Class1};
self::expect(1, c3a.{self::Class1::field1}{core::int});
self::expect(2, c3a.{self::Class1::field2}{core::int});
self::Class1 c3b = f2b(field1: 42){({field1: core::int, field2: core::int}) self::Class1};
self::expect(42, c3b.{self::Class1::field1}{core::int});
self::expect(2, c3b.{self::Class1::field2}{core::int});
self::Class1 c3c = f2b(field1: 42, field2: 87){({field1: core::int, field2: core::int}) self::Class1};
self::expect(42, c3c.{self::Class1::field1}{core::int});
self::expect(87, c3c.{self::Class1::field2}{core::int});
self::Class1 c3d = f2b(field2: 87){({field1: core::int, field2: core::int}) self::Class1};
self::expect(1, c3d.{self::Class1::field1}{core::int});
self::expect(87, c3d.{self::Class1::field2}{core::int});
self::Class1 c3e = f2b(field2: 87, field1: 42){({field1: core::int, field2: core::int}) self::Class1};
self::expect(42, c3e.{self::Class1::field1}{core::int});
self::expect(87, c3e.{self::Class1::field2}{core::int});
({field1: core::int}) self::Class1 f2c = #C9;
self::Class1 c4a = f2c(){({field1: core::int}) self::Class1};
self::expect(1, c4a.{self::Class1::field1}{core::int});
self::expect(2, c4a.{self::Class1::field2}{core::int});
self::Class1 c4b = f2c(field1: 42){({field1: core::int}) self::Class1};
self::expect(42, c4b.{self::Class1::field1}{core::int});
self::expect(2, c4b.{self::Class1::field2}{core::int});
() Null {
invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:112:21: Error: No named parameter with the name 'field2'.
f2c(field1: 42, field2: 87); // error
^^^^^^" in f2c{<inapplicable>}.(field1: 42, field2: 87);
};
({field2: core::int}) self::Class1 f2d = #C10;
self::Class1 c5a = f2d(){({field2: core::int}) self::Class1};
self::expect(1, c5a.{self::Class1::field1}{core::int});
self::expect(2, c5a.{self::Class1::field2}{core::int});
self::Class1 c5b = f2d(field2: 87){({field2: core::int}) self::Class1};
self::expect(1, c5b.{self::Class1::field1}{core::int});
self::expect(87, c5b.{self::Class1::field2}{core::int});
() Null {
invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:123:9: Error: No named parameter with the name 'field1'.
f2d(field1: 42, field2: 87); // error
^^^^^^" in f2d{<inapplicable>}.(field1: 42, field2: 87);
};
() self::Class1 f2e = #C11;
self::Class1 c6a = f2e(){() self::Class1};
self::expect(1, c6a.{self::Class1::field1}{core::int});
self::expect(2, c6a.{self::Class1::field2}{core::int});
() Null {
invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:131:9: Error: No named parameter with the name 'field1'.
f2e(field1: 42); // error
^^^^^^" in f2e{<inapplicable>}.(field1: 42);
invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:132:9: Error: No named parameter with the name 'field2'.
f2e(field2: 87); // error
^^^^^^" in f2e{<inapplicable>}.(field2: 87);
invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart:133:9: Error: No named parameter with the name 'field1'.
f2e(field1: 42, field2: 87); // error
^^^^^^" in f2e{<inapplicable>}.(field1: 42, field2: 87);
};
}
static method expect(dynamic expected, dynamic actual) dynamic {
if(!(expected =={core::Object::==}{(core::Object) core::bool} actual))
throw "Expected ${expected}, actual ${actual}";
}
static method throws(() dynamic f, {core::bool inSoundModeOnly = #C12}) → dynamic {
try {
f(){() dynamic};
}
on core::Object catch(final core::Object e) {
core::print("Thrown: ${e}");
return;
}
if(!self::inSoundMode && inSoundModeOnly) {
return;
}
throw "Expected exception";
}
constants {
#C1 = 1
#C2 = 2
#C3 = null
#C4 = static-tearoff self::Class1::_#redirectPositionalSame#tearOff
#C5 = static-tearoff self::Class1::_#redirectPositionalFewer1#tearOff
#C6 = static-tearoff self::Class1::_#redirectPositionalFewer2#tearOff
#C7 = static-tearoff self::Class1::_#redirectNamedSame#tearOff
#C8 = static-tearoff self::Class1::_#redirectNamedReorder#tearOff
#C9 = static-tearoff self::Class1::_#redirectNamedFewer1#tearOff
#C10 = static-tearoff self::Class1::_#redirectNamedFewer2#tearOff
#C11 = static-tearoff self::Class1::_#redirectNamedFewer3#tearOff
#C12 = false
}