[cfe] Add isImplicitCall to DynamicInvocation

This adds an ìsImplicitCall to DynamicInvocation which is set on
expression like `d()` where `d` has type dynamic, to distinguish
the for `d.call()`.

TEST=pkg/front_end/testcases/general/dynamic_call.dart

Change-Id: I73beb911bdb315a510c862e6d4876cf7673ec3c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/346240
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
This commit is contained in:
Johnni Winther 2024-01-19 08:39:30 +00:00 committed by Commit Queue
parent 6c897ba077
commit 8a2f6495b3
434 changed files with 2065 additions and 1964 deletions

View file

@ -3798,7 +3798,8 @@ class ConstantEvaluator implements ExpressionVisitor<Constant> {
node.name,
unevaluatedArguments(
positionalArguments, {}, node.arguments.types))
..fileOffset = node.fileOffset);
..fileOffset = node.fileOffset
..flags = node.flags);
}
return _handleInvocation(node, node.name, receiver, positionalArguments,

View file

@ -2391,6 +2391,7 @@ abstract class InferenceVisitorBase implements InferenceVisitor {
assert(name != equalsName);
Expression expression = new DynamicInvocation(
DynamicAccessKind.Dynamic, receiver, name, arguments)
..isImplicitCall = isImplicitCall
..fileOffset = fileOffset;
return createNullAwareExpressionInferenceResult(
result.inferredType, result.applyResult(expression), nullAwareGuards);
@ -2741,6 +2742,7 @@ abstract class InferenceVisitorBase implements InferenceVisitor {
// the parameters.
expression = new DynamicInvocation(
DynamicAccessKind.Dynamic, receiver, methodName, arguments)
..isImplicitCall = isImplicitCall
..fileOffset = fileOffset;
} else if (result.isInapplicable) {
// This was a method invocation whose arguments didn't match

View file

@ -241,6 +241,9 @@ exprGenericInvocation2b(Class variable) =>
/*member: exprDynamicInvocation:variable.method1()*/
exprDynamicInvocation(variable) => variable.method1();
/*member: exprDynamicInvocationImplicitCall:variable()*/
exprDynamicInvocationImplicitCall(variable) => variable();
/*normal|limited.member: exprObjectInvocation:variable.{Object.toString}()*/
/*verbose.member: exprObjectInvocation:variable.{dart.core::Object.toString}()*/
exprObjectInvocation(variable) => variable.toString();

View file

@ -2,7 +2,7 @@ library;
import self as self;
static const field dynamic a = null;
static const field dynamic b = self::a{dynamic}.call();
static const field dynamic b = self::a{dynamic}();
static method main() → dynamic
;

View file

@ -50,9 +50,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class1};
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call(0);
dynamic c1b = f1b{dynamic}(0);
self::expect(true, c1b is self::Class1);
self::throws(() → dynamic => f1b{dynamic}.call(""));
self::throws(() → dynamic => f1b{dynamic}(""));
(core::int) → self::Class2 f2a = #C2;
self::expect(true, f2a is (core::int) → self::Class2);
self::expect(false, f2a is (core::String) → self::Class2);
@ -64,9 +64,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class2};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call(0);
dynamic c2b = f2b{dynamic}(0);
self::expect(true, c2b is self::Class2);
self::throws(() → dynamic => f2b{dynamic}.call(""));
self::throws(() → dynamic => f2b{dynamic}(""));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -50,9 +50,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class1};
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call(0);
dynamic c1b = f1b{dynamic}(0);
self::expect(true, c1b is self::Class1);
self::throws(() → dynamic => f1b{dynamic}.call(""));
self::throws(() → dynamic => f1b{dynamic}(""));
(core::int) → self::Class2 f2a = #C2;
self::expect(true, f2a is (core::int) → self::Class2);
self::expect(false, f2a is (core::String) → self::Class2);
@ -64,9 +64,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class2};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call(0);
dynamic c2b = f2b{dynamic}(0);
self::expect(true, c2b is self::Class2);
self::throws(() → dynamic => f2b{dynamic}.call(""));
self::throws(() → dynamic => f2b{dynamic}(""));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -50,9 +50,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class1};
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call(0);
dynamic c1b = f1b{dynamic}(0);
self::expect(true, c1b is self::Class1);
self::throws(() → dynamic => f1b{dynamic}.call(""));
self::throws(() → dynamic => f1b{dynamic}(""));
(core::int) → self::Class2 f2a = #C2;
self::expect(true, f2a is (core::int) → self::Class2);
self::expect(false, f2a is (core::String) → self::Class2);
@ -64,9 +64,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class2};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call(0);
dynamic c2b = f2b{dynamic}(0);
self::expect(true, c2b is self::Class2);
self::throws(() → dynamic => f2b{dynamic}.call(""));
self::throws(() → dynamic => f2b{dynamic}(""));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -50,9 +50,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class1};
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call(0);
dynamic c1b = f1b{dynamic}(0);
self::expect(true, c1b is self::Class1);
self::throws(() → dynamic => f1b{dynamic}.call(""));
self::throws(() → dynamic => f1b{dynamic}(""));
(core::int) → self::Class2 f2a = #C2;
self::expect(true, f2a is (core::int) → self::Class2);
self::expect(false, f2a is (core::String) → self::Class2);
@ -64,9 +64,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class2};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call(0);
dynamic c2b = f2b{dynamic}(0);
self::expect(true, c2b is self::Class2);
self::throws(() → dynamic => f2b{dynamic}.call(""));
self::throws(() → dynamic => f2b{dynamic}(""));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -50,9 +50,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class1};
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call(0);
dynamic c1b = f1b{dynamic}(0);
self::expect(true, c1b is self::Class1);
self::throws(() → dynamic => f1b{dynamic}.call(""));
self::throws(() → dynamic => f1b{dynamic}(""));
(core::int) → self::Class2 f2a = #C2;
self::expect(true, f2a is (core::int) → self::Class2);
self::expect(false, f2a is (core::String) → self::Class2);
@ -64,9 +64,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class2};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call(0);
dynamic c2b = f2b{dynamic}(0);
self::expect(true, c2b is self::Class2);
self::throws(() → dynamic => f2b{dynamic}.call(""));
self::throws(() → dynamic => f2b{dynamic}(""));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -105,14 +105,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -130,10 +130,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -146,7 +146,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -164,8 +164,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -195,10 +195,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -105,14 +105,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -130,10 +130,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -146,7 +146,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -164,8 +164,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -195,10 +195,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -105,14 +105,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -130,10 +130,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -146,7 +146,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -164,8 +164,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -195,10 +195,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -105,14 +105,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -130,10 +130,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -146,7 +146,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -164,8 +164,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -195,10 +195,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -105,14 +105,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -130,10 +130,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -146,7 +146,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -164,8 +164,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -195,10 +195,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -49,11 +49,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -66,11 +66,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -49,11 +49,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -66,11 +66,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -49,11 +49,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -66,11 +66,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -49,11 +49,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -66,11 +66,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -49,11 +49,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -66,11 +66,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -129,14 +129,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -154,10 +154,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -170,7 +170,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -188,8 +188,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -219,10 +219,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -129,14 +129,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -154,10 +154,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -170,7 +170,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -188,8 +188,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -219,10 +219,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -129,14 +129,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -154,10 +154,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -170,7 +170,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -188,8 +188,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -219,10 +219,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -129,14 +129,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -154,10 +154,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -170,7 +170,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -188,8 +188,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -219,10 +219,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -129,14 +129,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -154,10 +154,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -170,7 +170,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -188,8 +188,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -219,10 +219,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -57,11 +57,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -74,11 +74,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -57,11 +57,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -74,11 +74,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -57,11 +57,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -74,11 +74,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -57,11 +57,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -74,11 +74,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -57,11 +57,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -74,11 +74,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -48,21 +48,21 @@ static method main() → dynamic {
mai::Class1 c1a = f1a(){() → mai::Class1};
self::expect(true, c1a is mai::Class1);
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is mai::Class1);
self::expect(true, core::identical(f1a, f1b));
() → mai::Class2 f2a = #C2;
mai::Class2 c2a = f2a(){() → mai::Class2};
self::expect(true, c2a is mai::Class2);
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is mai::Class2);
self::expect(true, core::identical(f2a, f2b));
() → mai::Class2 f2c = #C3;
mai::Class2 c2c = f2c(){() → mai::Class2};
self::expect(true, c2c is mai::Class2);
dynamic f2d = #C3;
dynamic c2d = f2d{dynamic}.call();
dynamic c2d = f2d{dynamic}();
self::expect(true, c2d is mai::Class2);
self::expect(true, core::identical(f2c, f2d));
(core::int) → mai::Class3 f3a = #C4;
@ -78,10 +78,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
<T extends core::Object? = dynamic>() → mai::Class4<T%> f4a = #C5;
mai::Class4<dynamic> c4a = f4a<dynamic>(){() → mai::Class4<dynamic>};
self::expect(true, c4a is mai::Class4<dynamic>);
@ -104,10 +104,10 @@ Try removing the extra positional arguments.
^" in f4b{<inapplicable>}.<core::int>();
};
dynamic f4c = #C5;
dynamic c4d = f4c{dynamic}.call();
dynamic c4d = f4c{dynamic}();
self::expect(true, c4d is mai::Class4<dynamic>);
self::expect(false, c4d is mai::Class4<core::int>);
self::throws(() → dynamic => f4c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f4c{dynamic}<core::int, core::String>());
<T extends core::Object? = dynamic>() → mai::Class4<T%> f4d = #C6;
mai::Class4<dynamic> c4e = f4d<dynamic>(){() → mai::Class4<dynamic>};
self::expect(true, c4e is mai::Class4<dynamic>);
@ -130,10 +130,10 @@ Try removing the extra positional arguments.
^" in f4e{<inapplicable>}.<core::int>();
};
dynamic f4f = #C6;
dynamic c4h = f4f{dynamic}.call();
dynamic c4h = f4f{dynamic}();
self::expect(true, c4h is mai::Class4<dynamic>);
self::expect(false, c4h is mai::Class4<core::int>);
self::throws(() → dynamic => f4f{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f4f{dynamic}<core::int, core::String>());
<T extends core::num>() → mai::Class5<T> f5a = #C7;
mai::Class5<core::num> c5a = f5a<core::num>(){() → mai::Class5<core::num>};
self::expect(true, c5a is mai::Class5<core::num>);
@ -148,14 +148,14 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.<core::int, core::String>();
};
dynamic f5b = #C7;
dynamic c5c = f5b{dynamic}.call();
dynamic c5c = f5b{dynamic}();
self::expect(true, c5c is mai::Class5<core::num>);
self::expect(false, c5c is mai::Class5<core::int>);
dynamic c5d = f5b{dynamic}.call<core::int>();
dynamic c5d = f5b{dynamic}<core::int>();
self::expect(true, c5d is mai::Class5<core::int>);
self::expect(false, c5d is mai::Class5<core::double>);
self::throws(() → dynamic => f5b{dynamic}.call<core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::int, core::String>());
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -48,21 +48,21 @@ static method main() → dynamic {
mai::Class1 c1a = f1a(){() → mai::Class1};
self::expect(true, c1a is mai::Class1);
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is mai::Class1);
self::expect(true, core::identical(f1a, f1b));
() → mai::Class2 f2a = #C2;
mai::Class2 c2a = f2a(){() → mai::Class2};
self::expect(true, c2a is mai::Class2);
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is mai::Class2);
self::expect(true, core::identical(f2a, f2b));
() → mai::Class2 f2c = #C3;
mai::Class2 c2c = f2c(){() → mai::Class2};
self::expect(true, c2c is mai::Class2);
dynamic f2d = #C3;
dynamic c2d = f2d{dynamic}.call();
dynamic c2d = f2d{dynamic}();
self::expect(true, c2d is mai::Class2);
self::expect(true, core::identical(f2c, f2d));
(core::int) → mai::Class3 f3a = #C4;
@ -78,10 +78,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
<T extends core::Object? = dynamic>() → mai::Class4<T%> f4a = #C5;
mai::Class4<dynamic> c4a = f4a<dynamic>(){() → mai::Class4<dynamic>};
self::expect(true, c4a is mai::Class4<dynamic>);
@ -104,10 +104,10 @@ Try removing the extra positional arguments.
^" in f4b{<inapplicable>}.<core::int>();
};
dynamic f4c = #C5;
dynamic c4d = f4c{dynamic}.call();
dynamic c4d = f4c{dynamic}();
self::expect(true, c4d is mai::Class4<dynamic>);
self::expect(false, c4d is mai::Class4<core::int>);
self::throws(() → dynamic => f4c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f4c{dynamic}<core::int, core::String>());
<T extends core::Object? = dynamic>() → mai::Class4<T%> f4d = #C6;
mai::Class4<dynamic> c4e = f4d<dynamic>(){() → mai::Class4<dynamic>};
self::expect(true, c4e is mai::Class4<dynamic>);
@ -130,10 +130,10 @@ Try removing the extra positional arguments.
^" in f4e{<inapplicable>}.<core::int>();
};
dynamic f4f = #C6;
dynamic c4h = f4f{dynamic}.call();
dynamic c4h = f4f{dynamic}();
self::expect(true, c4h is mai::Class4<dynamic>);
self::expect(false, c4h is mai::Class4<core::int>);
self::throws(() → dynamic => f4f{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f4f{dynamic}<core::int, core::String>());
<T extends core::num>() → mai::Class5<T> f5a = #C7;
mai::Class5<core::num> c5a = f5a<core::num>(){() → mai::Class5<core::num>};
self::expect(true, c5a is mai::Class5<core::num>);
@ -148,14 +148,14 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.<core::int, core::String>();
};
dynamic f5b = #C7;
dynamic c5c = f5b{dynamic}.call();
dynamic c5c = f5b{dynamic}();
self::expect(true, c5c is mai::Class5<core::num>);
self::expect(false, c5c is mai::Class5<core::int>);
dynamic c5d = f5b{dynamic}.call<core::int>();
dynamic c5d = f5b{dynamic}<core::int>();
self::expect(true, c5d is mai::Class5<core::int>);
self::expect(false, c5d is mai::Class5<core::double>);
self::throws(() → dynamic => f5b{dynamic}.call<core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::int, core::String>());
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -48,21 +48,21 @@ static method main() → dynamic {
mai::Class1 c1a = f1a(){() → mai::Class1};
self::expect(true, c1a is mai::Class1);
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is mai::Class1);
self::expect(true, core::identical(f1a, f1b));
() → mai::Class2 f2a = #C2;
mai::Class2 c2a = f2a(){() → mai::Class2};
self::expect(true, c2a is mai::Class2);
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is mai::Class2);
self::expect(true, core::identical(f2a, f2b));
() → mai::Class2 f2c = #C3;
mai::Class2 c2c = f2c(){() → mai::Class2};
self::expect(true, c2c is mai::Class2);
dynamic f2d = #C3;
dynamic c2d = f2d{dynamic}.call();
dynamic c2d = f2d{dynamic}();
self::expect(true, c2d is mai::Class2);
self::expect(true, core::identical(f2c, f2d));
(core::int) → mai::Class3 f3a = #C4;
@ -78,10 +78,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
<T extends core::Object? = dynamic>() → mai::Class4<T%> f4a = #C5;
mai::Class4<dynamic> c4a = f4a<dynamic>(){() → mai::Class4<dynamic>};
self::expect(true, c4a is mai::Class4<dynamic>);
@ -104,10 +104,10 @@ Try removing the extra positional arguments.
^" in f4b{<inapplicable>}.<core::int>();
};
dynamic f4c = #C5;
dynamic c4d = f4c{dynamic}.call();
dynamic c4d = f4c{dynamic}();
self::expect(true, c4d is mai::Class4<dynamic>);
self::expect(false, c4d is mai::Class4<core::int>);
self::throws(() → dynamic => f4c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f4c{dynamic}<core::int, core::String>());
<T extends core::Object? = dynamic>() → mai::Class4<T%> f4d = #C6;
mai::Class4<dynamic> c4e = f4d<dynamic>(){() → mai::Class4<dynamic>};
self::expect(true, c4e is mai::Class4<dynamic>);
@ -130,10 +130,10 @@ Try removing the extra positional arguments.
^" in f4e{<inapplicable>}.<core::int>();
};
dynamic f4f = #C6;
dynamic c4h = f4f{dynamic}.call();
dynamic c4h = f4f{dynamic}();
self::expect(true, c4h is mai::Class4<dynamic>);
self::expect(false, c4h is mai::Class4<core::int>);
self::throws(() → dynamic => f4f{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f4f{dynamic}<core::int, core::String>());
<T extends core::num>() → mai::Class5<T> f5a = #C7;
mai::Class5<core::num> c5a = f5a<core::num>(){() → mai::Class5<core::num>};
self::expect(true, c5a is mai::Class5<core::num>);
@ -148,14 +148,14 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.<core::int, core::String>();
};
dynamic f5b = #C7;
dynamic c5c = f5b{dynamic}.call();
dynamic c5c = f5b{dynamic}();
self::expect(true, c5c is mai::Class5<core::num>);
self::expect(false, c5c is mai::Class5<core::int>);
dynamic c5d = f5b{dynamic}.call<core::int>();
dynamic c5d = f5b{dynamic}<core::int>();
self::expect(true, c5d is mai::Class5<core::int>);
self::expect(false, c5d is mai::Class5<core::double>);
self::throws(() → dynamic => f5b{dynamic}.call<core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::int, core::String>());
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -48,21 +48,21 @@ static method main() → dynamic {
mai::Class1 c1a = f1a(){() → mai::Class1};
self::expect(true, c1a is mai::Class1);
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is mai::Class1);
self::expect(true, core::identical(f1a, f1b));
() → mai::Class2 f2a = #C2;
mai::Class2 c2a = f2a(){() → mai::Class2};
self::expect(true, c2a is mai::Class2);
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is mai::Class2);
self::expect(true, core::identical(f2a, f2b));
() → mai::Class2 f2c = #C3;
mai::Class2 c2c = f2c(){() → mai::Class2};
self::expect(true, c2c is mai::Class2);
dynamic f2d = #C3;
dynamic c2d = f2d{dynamic}.call();
dynamic c2d = f2d{dynamic}();
self::expect(true, c2d is mai::Class2);
self::expect(true, core::identical(f2c, f2d));
(core::int) → mai::Class3 f3a = #C4;
@ -78,10 +78,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
<T extends core::Object? = dynamic>() → mai::Class4<T%> f4a = #C5;
mai::Class4<dynamic> c4a = f4a<dynamic>(){() → mai::Class4<dynamic>};
self::expect(true, c4a is mai::Class4<dynamic>);
@ -104,10 +104,10 @@ Try removing the extra positional arguments.
^" in f4b{<inapplicable>}.<core::int>();
};
dynamic f4c = #C5;
dynamic c4d = f4c{dynamic}.call();
dynamic c4d = f4c{dynamic}();
self::expect(true, c4d is mai::Class4<dynamic>);
self::expect(false, c4d is mai::Class4<core::int>);
self::throws(() → dynamic => f4c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f4c{dynamic}<core::int, core::String>());
<T extends core::Object? = dynamic>() → mai::Class4<T%> f4d = #C6;
mai::Class4<dynamic> c4e = f4d<dynamic>(){() → mai::Class4<dynamic>};
self::expect(true, c4e is mai::Class4<dynamic>);
@ -130,10 +130,10 @@ Try removing the extra positional arguments.
^" in f4e{<inapplicable>}.<core::int>();
};
dynamic f4f = #C6;
dynamic c4h = f4f{dynamic}.call();
dynamic c4h = f4f{dynamic}();
self::expect(true, c4h is mai::Class4<dynamic>);
self::expect(false, c4h is mai::Class4<core::int>);
self::throws(() → dynamic => f4f{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f4f{dynamic}<core::int, core::String>());
<T extends core::num>() → mai::Class5<T> f5a = #C7;
mai::Class5<core::num> c5a = f5a<core::num>(){() → mai::Class5<core::num>};
self::expect(true, c5a is mai::Class5<core::num>);
@ -148,14 +148,14 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.<core::int, core::String>();
};
dynamic f5b = #C7;
dynamic c5c = f5b{dynamic}.call();
dynamic c5c = f5b{dynamic}();
self::expect(true, c5c is mai::Class5<core::num>);
self::expect(false, c5c is mai::Class5<core::int>);
dynamic c5d = f5b{dynamic}.call<core::int>();
dynamic c5d = f5b{dynamic}<core::int>();
self::expect(true, c5d is mai::Class5<core::int>);
self::expect(false, c5d is mai::Class5<core::double>);
self::throws(() → dynamic => f5b{dynamic}.call<core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::int, core::String>());
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -48,21 +48,21 @@ static method main() → dynamic {
mai::Class1 c1a = f1a(){() → mai::Class1};
self::expect(true, c1a is mai::Class1);
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is mai::Class1);
self::expect(true, core::identical(f1a, f1b));
() → mai::Class2 f2a = #C2;
mai::Class2 c2a = f2a(){() → mai::Class2};
self::expect(true, c2a is mai::Class2);
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is mai::Class2);
self::expect(true, core::identical(f2a, f2b));
() → mai::Class2 f2c = #C3;
mai::Class2 c2c = f2c(){() → mai::Class2};
self::expect(true, c2c is mai::Class2);
dynamic f2d = #C3;
dynamic c2d = f2d{dynamic}.call();
dynamic c2d = f2d{dynamic}();
self::expect(true, c2d is mai::Class2);
self::expect(true, core::identical(f2c, f2d));
(core::int) → mai::Class3 f3a = #C4;
@ -78,10 +78,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
<T extends core::Object? = dynamic>() → mai::Class4<T%> f4a = #C5;
mai::Class4<dynamic> c4a = f4a<dynamic>(){() → mai::Class4<dynamic>};
self::expect(true, c4a is mai::Class4<dynamic>);
@ -104,10 +104,10 @@ Try removing the extra positional arguments.
^" in f4b{<inapplicable>}.<core::int>();
};
dynamic f4c = #C5;
dynamic c4d = f4c{dynamic}.call();
dynamic c4d = f4c{dynamic}();
self::expect(true, c4d is mai::Class4<dynamic>);
self::expect(false, c4d is mai::Class4<core::int>);
self::throws(() → dynamic => f4c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f4c{dynamic}<core::int, core::String>());
<T extends core::Object? = dynamic>() → mai::Class4<T%> f4d = #C6;
mai::Class4<dynamic> c4e = f4d<dynamic>(){() → mai::Class4<dynamic>};
self::expect(true, c4e is mai::Class4<dynamic>);
@ -130,10 +130,10 @@ Try removing the extra positional arguments.
^" in f4e{<inapplicable>}.<core::int>();
};
dynamic f4f = #C6;
dynamic c4h = f4f{dynamic}.call();
dynamic c4h = f4f{dynamic}();
self::expect(true, c4h is mai::Class4<dynamic>);
self::expect(false, c4h is mai::Class4<core::int>);
self::throws(() → dynamic => f4f{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f4f{dynamic}<core::int, core::String>());
<T extends core::num>() → mai::Class5<T> f5a = #C7;
mai::Class5<core::num> c5a = f5a<core::num>(){() → mai::Class5<core::num>};
self::expect(true, c5a is mai::Class5<core::num>);
@ -148,14 +148,14 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.<core::int, core::String>();
};
dynamic f5b = #C7;
dynamic c5c = f5b{dynamic}.call();
dynamic c5c = f5b{dynamic}();
self::expect(true, c5c is mai::Class5<core::num>);
self::expect(false, c5c is mai::Class5<core::int>);
dynamic c5d = f5b{dynamic}.call<core::int>();
dynamic c5d = f5b{dynamic}<core::int>();
self::expect(true, c5d is mai::Class5<core::int>);
self::expect(false, c5d is mai::Class5<core::double>);
self::throws(() → dynamic => f5b{dynamic}.call<core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::int, core::String>());
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -98,10 +98,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -118,14 +118,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -137,20 +137,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -98,10 +98,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -118,14 +118,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -137,20 +137,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -98,10 +98,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -118,14 +118,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -137,20 +137,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -98,10 +98,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -118,14 +118,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -137,20 +137,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -98,10 +98,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -118,14 +118,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -137,20 +137,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -118,10 +118,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -138,14 +138,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -157,20 +157,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -118,10 +118,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -138,14 +138,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -157,20 +157,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -118,10 +118,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -138,14 +138,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -157,20 +157,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -118,10 +118,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -138,14 +138,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -157,20 +157,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -118,10 +118,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -138,14 +138,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -157,20 +157,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -118,10 +118,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -138,14 +138,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -157,20 +157,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -118,10 +118,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -138,14 +138,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -157,20 +157,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -118,10 +118,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -138,14 +138,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -157,20 +157,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -118,10 +118,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -138,14 +138,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -157,20 +157,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -118,10 +118,10 @@ static method testGeneric() → dynamic {
^" in f1b{<inapplicable>}.<core::int>();
};
dynamic f1c = #C1;
dynamic c1d = f1c{dynamic}.call();
dynamic c1d = f1c{dynamic}();
self::expect(true, c1a is self::Class1<dynamic>);
self::expect(false, c1a is self::Class1<core::int>);
self::throws(() → dynamic => f1c{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f1c{dynamic}<core::int, core::String>());
}
static method testBounded() → dynamic {
<T extends core::num>() → self::Class2<T> f2a = #C2;
@ -138,14 +138,14 @@ static method testBounded() → dynamic {
^" in f2a{<inapplicable>}.<core::int, core::String>();
};
dynamic f2b = #C2;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(true, c2c is self::Class2<core::num>);
self::expect(false, c2c is self::Class2<core::int>);
dynamic c2d = f2b{dynamic}.call<core::int>();
dynamic c2d = f2b{dynamic}<core::int>();
self::expect(true, c2d is self::Class2<core::int>);
self::expect(false, c2d is self::Class2<core::double>);
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}.call<core::int, core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::String>());
self::throws(() → dynamic => f2b{dynamic}<core::int, core::String>());
<T extends S% = dynamic, S extends core::Object? = dynamic>() → self::Class3<T%, S%> f3a = #C3;
self::Class3<dynamic, dynamic> c3a = f3a<dynamic, dynamic>(){() → self::Class3<dynamic, dynamic>};
self::expect(true, c3a is self::Class3<dynamic, dynamic>);
@ -157,20 +157,20 @@ static method testBounded() → dynamic {
f3a<core::num, core::int>(){() → self::Class3<core::num, core::int>};
};
dynamic f3b = #C3;
dynamic c3c = f3b{dynamic}.call();
dynamic c3c = f3b{dynamic}();
self::expect(true, c3c is self::Class3<dynamic, dynamic>);
self::expect(false, c3c is self::Class3<core::int, core::num>);
dynamic c3d = f3b{dynamic}.call<core::int, core::num>();
dynamic c3d = f3b{dynamic}<core::int, core::num>();
self::expect(true, c3d is self::Class3<core::int, core::num>);
self::expect(false, c3d is self::Class3<core::double, core::num>);
self::throws(() → dynamic => f3b{dynamic}.call<core::num, core::int>());
self::throws(() → dynamic => f3b{dynamic}<core::num, core::int>());
<T extends self::Class4<T> = self::Class4<dynamic>>() → self::Class4<T> f4a = #C4;
() → Null {
self::Class4<self::Class4<core::Object?>> c4a = f4a<self::Class4<core::Object?>>(){() → self::Class4<self::Class4<core::Object?>>};
};
dynamic f4b = #C4;
self::throws(() → dynamic => f4b{dynamic}.call());
dynamic c4b = f4b{dynamic}.call<self::Class4int>();
self::throws(() → dynamic => f4b{dynamic}());
dynamic c4b = f4b{dynamic}<self::Class4int>();
self::expect(true, c4b is self::Class4<self::Class4int>);
}
static method expect(dynamic expected, dynamic actual) → dynamic {

View file

@ -54,9 +54,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class1};
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call(0);
dynamic c1b = f1b{dynamic}(0);
self::expect(true, c1b is self::Class1);
self::throws(() → dynamic => f1b{dynamic}.call(""));
self::throws(() → dynamic => f1b{dynamic}(""));
(core::int) → self::Class2 f2a = #C2;
self::expect(true, f2a is (core::int) → self::Class2);
self::expect(false, f2a is (core::String) → self::Class2);
@ -68,9 +68,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class2};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call(0);
dynamic c2b = f2b{dynamic}(0);
self::expect(true, c2b is self::Class2);
self::throws(() → dynamic => f2b{dynamic}.call(""));
self::throws(() → dynamic => f2b{dynamic}(""));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -54,9 +54,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class1};
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call(0);
dynamic c1b = f1b{dynamic}(0);
self::expect(true, c1b is self::Class1);
self::throws(() → dynamic => f1b{dynamic}.call(""));
self::throws(() → dynamic => f1b{dynamic}(""));
(core::int) → self::Class2 f2a = #C2;
self::expect(true, f2a is (core::int) → self::Class2);
self::expect(false, f2a is (core::String) → self::Class2);
@ -68,9 +68,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class2};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call(0);
dynamic c2b = f2b{dynamic}(0);
self::expect(true, c2b is self::Class2);
self::throws(() → dynamic => f2b{dynamic}.call(""));
self::throws(() → dynamic => f2b{dynamic}(""));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -54,9 +54,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class1};
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call(0);
dynamic c1b = f1b{dynamic}(0);
self::expect(true, c1b is self::Class1);
self::throws(() → dynamic => f1b{dynamic}.call(""));
self::throws(() → dynamic => f1b{dynamic}(""));
(core::int) → self::Class2 f2a = #C2;
self::expect(true, f2a is (core::int) → self::Class2);
self::expect(false, f2a is (core::String) → self::Class2);
@ -68,9 +68,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class2};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call(0);
dynamic c2b = f2b{dynamic}(0);
self::expect(true, c2b is self::Class2);
self::throws(() → dynamic => f2b{dynamic}.call(""));
self::throws(() → dynamic => f2b{dynamic}(""));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -54,9 +54,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class1};
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call(0);
dynamic c1b = f1b{dynamic}(0);
self::expect(true, c1b is self::Class1);
self::throws(() → dynamic => f1b{dynamic}.call(""));
self::throws(() → dynamic => f1b{dynamic}(""));
(core::int) → self::Class2 f2a = #C2;
self::expect(true, f2a is (core::int) → self::Class2);
self::expect(false, f2a is (core::String) → self::Class2);
@ -68,9 +68,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class2};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call(0);
dynamic c2b = f2b{dynamic}(0);
self::expect(true, c2b is self::Class2);
self::throws(() → dynamic => f2b{dynamic}.call(""));
self::throws(() → dynamic => f2b{dynamic}(""));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -54,9 +54,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class1};
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call(0);
dynamic c1b = f1b{dynamic}(0);
self::expect(true, c1b is self::Class1);
self::throws(() → dynamic => f1b{dynamic}.call(""));
self::throws(() → dynamic => f1b{dynamic}(""));
(core::int) → self::Class2 f2a = #C2;
self::expect(true, f2a is (core::int) → self::Class2);
self::expect(false, f2a is (core::String) → self::Class2);
@ -68,9 +68,9 @@ static method testInferred() → dynamic {
^" in "" as{TypeError} core::int){(core::int) → self::Class2};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call(0);
dynamic c2b = f2b{dynamic}(0);
self::expect(true, c2b is self::Class2);
self::throws(() → dynamic => f2b{dynamic}.call(""));
self::throws(() → dynamic => f2b{dynamic}(""));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -167,14 +167,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -192,10 +192,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -208,7 +208,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -226,8 +226,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -257,10 +257,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
() → self::Class7b f7a = #C8;
self::Class7b c7a = f7a(){() → self::Class7b};
self::expect(true, c7a is self::Class7a);

View file

@ -167,14 +167,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -192,10 +192,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -208,7 +208,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -226,8 +226,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -257,10 +257,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
() → self::Class7b f7a = #C8;
self::Class7b c7a = f7a(){() → self::Class7b};
self::expect(true, c7a is self::Class7a);

View file

@ -167,14 +167,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -192,10 +192,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -208,7 +208,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -226,8 +226,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -257,10 +257,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
() → self::Class7b f7a = #C8;
self::Class7b c7a = f7a(){() → self::Class7b};
self::expect(true, c7a is self::Class7a);

View file

@ -167,14 +167,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -192,10 +192,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -208,7 +208,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -226,8 +226,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -257,10 +257,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
() → self::Class7b f7a = #C8;
self::Class7b c7a = f7a(){() → self::Class7b};
self::expect(true, c7a is self::Class7a);

View file

@ -167,14 +167,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -192,10 +192,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -208,7 +208,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -226,8 +226,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -257,10 +257,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
() → self::Class7b f7a = #C8;
self::Class7b c7a = f7a(){() → self::Class7b};
self::expect(true, c7a is self::Class7a);

View file

@ -57,11 +57,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -74,11 +74,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -57,11 +57,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -74,11 +74,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -57,11 +57,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -74,11 +74,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -57,11 +57,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -74,11 +74,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -57,11 +57,11 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(42, 87);
};
dynamic f1b = #C2;
dynamic c1c = f1b{dynamic}.call();
dynamic c1c = f1b{dynamic}();
self::expect(42, c1c{dynamic}.field);
dynamic c1d = f1b{dynamic}.call(87);
dynamic c1d = f1b{dynamic}(87);
self::expect(87, c1d{dynamic}.field);
self::throws(() → dynamic => f1b{dynamic}.call(42, 87));
self::throws(() → dynamic => f1b{dynamic}(42, 87));
({field: core::int}) → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){({field: core::int}) → self::Class2};
self::expect(42, c2a.{self::Class2::field}{core::int});
@ -74,11 +74,11 @@ Try removing the extra positional arguments.
^" in f2a{<inapplicable>}.(87);
};
dynamic f2b = #C3;
dynamic c2c = f2b{dynamic}.call();
dynamic c2c = f2b{dynamic}();
self::expect(42, c2c{dynamic}.field);
dynamic c2d = f2b{dynamic}.call(field: 87);
dynamic c2d = f2b{dynamic}(field: 87);
self::expect(87, c2d{dynamic}.field);
self::throws(() → dynamic => f2b{dynamic}.call(87));
self::throws(() → dynamic => f2b{dynamic}(87));
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -130,9 +130,9 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(0);
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::A);
self::throws(() → dynamic => f1b{dynamic}.call(0));
self::throws(() → dynamic => f1b{dynamic}(0));
<unrelated X extends core::num>() → self::A f2a = #C2;
self::A c2a = f2a<core::num>(){() → self::A};
self::expect(true, c2a is self::A);
@ -144,12 +144,12 @@ Try removing the extra positional arguments.
f2a<core::String>(){() → self::A};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::A);
dynamic c2c = f2b{dynamic}.call<core::int>();
dynamic c2c = f2b{dynamic}<core::int>();
self::expect(true, c2c is self::A);
self::throws(() → dynamic => f2b{dynamic}.call(0));
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}(0));
self::throws(() → dynamic => f2b{dynamic}<core::String>());
() → self::B<core::String> f3a = #C4;
self::B<core::String> c3a = f3a(){() → self::B<core::String>};
self::expect(true, c3a is self::B<core::String>);
@ -166,13 +166,13 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.<core::String>();
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call();
dynamic c3b = f3b{dynamic}();
self::expect(true, c3b is self::B<core::String>);
self::expect(false, c3b is self::B<core::int>);
self::expect(0, c3a.{self::B::field1}{core::int});
self::expect("", c3a.{self::B::field2}{core::String});
self::throws(() → dynamic => f3b{dynamic}.call(0));
self::throws(() → dynamic => f3b{dynamic}.call<core::String>());
self::throws(() → dynamic => f3b{dynamic}(0));
self::throws(() → dynamic => f3b{dynamic}<core::String>());
(core::int) → self::B<core::String> f3c = #C6;
self::B<core::String> c3c = f3c(42){(core::int) → self::B<core::String>};
self::expect(true, c3c is self::B<core::String>);
@ -192,14 +192,14 @@ Try removing the extra positional arguments.
^" in f3c{<inapplicable>}.<core::String>(0);
};
dynamic f3d = #C6;
dynamic c3d = f3d{dynamic}.call(42);
dynamic c3d = f3d{dynamic}(42);
self::expect(true, c3d is self::B<core::String>);
self::expect(false, c3d is self::B<core::int>);
self::expect(42, c3d{dynamic}.field1);
self::expect("", c3d{dynamic}.field2);
self::throws(() → dynamic => f3d{dynamic}.call());
self::throws(() → dynamic => f3d{dynamic}.call(0, 0));
self::throws(() → dynamic => f3d{dynamic}.call<core::String>(0));
self::throws(() → dynamic => f3d{dynamic}());
self::throws(() → dynamic => f3d{dynamic}(0, 0));
self::throws(() → dynamic => f3d{dynamic}<core::String>(0));
(core::int, core::String) → self::B<core::String> f3e = #C8;
self::B<core::String> c3e = f3e(42, "foo"){(core::int, core::String) → self::B<core::String>};
self::expect(true, c3e is self::B<core::String>);
@ -218,14 +218,14 @@ Try removing the extra positional arguments.
^" in f3e{<inapplicable>}.<core::String>(0, "");
};
dynamic f3f = #C8;
dynamic c3f = f3f{dynamic}.call(42, "foo");
dynamic c3f = f3f{dynamic}(42, "foo");
self::expect(true, c3f is self::B<core::String>);
self::expect(false, c3f is self::B<core::int>);
self::expect(42, c3f{dynamic}.field1);
self::expect("foo", c3f{dynamic}.field2);
self::throws(() → dynamic => c3f{dynamic}.call());
self::throws(() → dynamic => c3f{dynamic}.call(0));
self::throws(() → dynamic => c3f{dynamic}.call<core::String>(0));
self::throws(() → dynamic => c3f{dynamic}());
self::throws(() → dynamic => c3f{dynamic}(0));
self::throws(() → dynamic => c3f{dynamic}<core::String>(0));
<X extends core::num>() → self::B<X> f4a = #C9;
self::B<core::num> c4a = f4a<core::num>(){() → self::B<core::num>};
self::expect(true, c4a is self::B<core::num>);
@ -241,14 +241,14 @@ Try removing the extra positional arguments.
f4a<core::String>(){() → self::B<core::String>};
};
dynamic f4b = #C9;
dynamic c4c = f4b{dynamic}.call();
dynamic c4c = f4b{dynamic}();
self::expect(true, c4c is self::B<core::num>);
self::expect(false, c4c is self::B<core::int>);
dynamic c4d = f4b{dynamic}.call<core::int>();
dynamic c4d = f4b{dynamic}<core::int>();
self::expect(true, c4d is self::B<core::int>);
self::expect(false, c4d is self::B<core::double>);
self::throws(() → dynamic => f4b{dynamic}.call(0));
self::throws(() → dynamic => f4b{dynamic}.call<core::String>());
self::throws(() → dynamic => f4b{dynamic}(0));
self::throws(() → dynamic => f4b{dynamic}<core::String>());
<X extends core::num, unrelated Y extends core::String>() → self::B<X> f5a = #C10;
self::B<core::num> c5a = f5a<core::num, core::String>(){() → self::B<core::num>};
self::expect(true, c5a is self::B<core::num>);
@ -268,16 +268,16 @@ Try removing the extra positional arguments.
f5a<core::num, core::num>(){() → self::B<core::num>};
};
dynamic f5b = #C10;
dynamic c5c = f5b{dynamic}.call();
dynamic c5c = f5b{dynamic}();
self::expect(true, c5c is self::B<core::num>);
self::expect(false, c5c is self::B<core::int>);
dynamic c5d = f5b{dynamic}.call<core::int, core::String>();
dynamic c5d = f5b{dynamic}<core::int, core::String>();
self::expect(true, c5d is self::B<core::int>);
self::expect(false, c5d is self::B<core::double>);
self::throws(() → dynamic => f5b{dynamic}.call(0));
self::throws(() → dynamic => f5b{dynamic}.call<core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::String, core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::num, core::num>());
self::throws(() → dynamic => f5b{dynamic}(0));
self::throws(() → dynamic => f5b{dynamic}<core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::String, core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::num, core::num>());
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -130,9 +130,9 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(0);
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::A);
self::throws(() → dynamic => f1b{dynamic}.call(0));
self::throws(() → dynamic => f1b{dynamic}(0));
<unrelated X extends core::num>() → self::A f2a = #C2;
self::A c2a = f2a<core::num>(){() → self::A};
self::expect(true, c2a is self::A);
@ -144,12 +144,12 @@ Try removing the extra positional arguments.
f2a<core::String>(){() → self::A};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::A);
dynamic c2c = f2b{dynamic}.call<core::int>();
dynamic c2c = f2b{dynamic}<core::int>();
self::expect(true, c2c is self::A);
self::throws(() → dynamic => f2b{dynamic}.call(0));
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}(0));
self::throws(() → dynamic => f2b{dynamic}<core::String>());
() → self::B<core::String> f3a = #C4;
self::B<core::String> c3a = f3a(){() → self::B<core::String>};
self::expect(true, c3a is self::B<core::String>);
@ -166,13 +166,13 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.<core::String>();
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call();
dynamic c3b = f3b{dynamic}();
self::expect(true, c3b is self::B<core::String>);
self::expect(false, c3b is self::B<core::int>);
self::expect(0, c3a.{self::B::field1}{core::int});
self::expect("", c3a.{self::B::field2}{core::String});
self::throws(() → dynamic => f3b{dynamic}.call(0));
self::throws(() → dynamic => f3b{dynamic}.call<core::String>());
self::throws(() → dynamic => f3b{dynamic}(0));
self::throws(() → dynamic => f3b{dynamic}<core::String>());
(core::int) → self::B<core::String> f3c = #C6;
self::B<core::String> c3c = f3c(42){(core::int) → self::B<core::String>};
self::expect(true, c3c is self::B<core::String>);
@ -192,14 +192,14 @@ Try removing the extra positional arguments.
^" in f3c{<inapplicable>}.<core::String>(0);
};
dynamic f3d = #C6;
dynamic c3d = f3d{dynamic}.call(42);
dynamic c3d = f3d{dynamic}(42);
self::expect(true, c3d is self::B<core::String>);
self::expect(false, c3d is self::B<core::int>);
self::expect(42, c3d{dynamic}.field1);
self::expect("", c3d{dynamic}.field2);
self::throws(() → dynamic => f3d{dynamic}.call());
self::throws(() → dynamic => f3d{dynamic}.call(0, 0));
self::throws(() → dynamic => f3d{dynamic}.call<core::String>(0));
self::throws(() → dynamic => f3d{dynamic}());
self::throws(() → dynamic => f3d{dynamic}(0, 0));
self::throws(() → dynamic => f3d{dynamic}<core::String>(0));
(core::int, core::String) → self::B<core::String> f3e = #C8;
self::B<core::String> c3e = f3e(42, "foo"){(core::int, core::String) → self::B<core::String>};
self::expect(true, c3e is self::B<core::String>);
@ -218,14 +218,14 @@ Try removing the extra positional arguments.
^" in f3e{<inapplicable>}.<core::String>(0, "");
};
dynamic f3f = #C8;
dynamic c3f = f3f{dynamic}.call(42, "foo");
dynamic c3f = f3f{dynamic}(42, "foo");
self::expect(true, c3f is self::B<core::String>);
self::expect(false, c3f is self::B<core::int>);
self::expect(42, c3f{dynamic}.field1);
self::expect("foo", c3f{dynamic}.field2);
self::throws(() → dynamic => c3f{dynamic}.call());
self::throws(() → dynamic => c3f{dynamic}.call(0));
self::throws(() → dynamic => c3f{dynamic}.call<core::String>(0));
self::throws(() → dynamic => c3f{dynamic}());
self::throws(() → dynamic => c3f{dynamic}(0));
self::throws(() → dynamic => c3f{dynamic}<core::String>(0));
<X extends core::num>() → self::B<X> f4a = #C9;
self::B<core::num> c4a = f4a<core::num>(){() → self::B<core::num>};
self::expect(true, c4a is self::B<core::num>);
@ -241,14 +241,14 @@ Try removing the extra positional arguments.
f4a<core::String>(){() → self::B<core::String>};
};
dynamic f4b = #C9;
dynamic c4c = f4b{dynamic}.call();
dynamic c4c = f4b{dynamic}();
self::expect(true, c4c is self::B<core::num>);
self::expect(false, c4c is self::B<core::int>);
dynamic c4d = f4b{dynamic}.call<core::int>();
dynamic c4d = f4b{dynamic}<core::int>();
self::expect(true, c4d is self::B<core::int>);
self::expect(false, c4d is self::B<core::double>);
self::throws(() → dynamic => f4b{dynamic}.call(0));
self::throws(() → dynamic => f4b{dynamic}.call<core::String>());
self::throws(() → dynamic => f4b{dynamic}(0));
self::throws(() → dynamic => f4b{dynamic}<core::String>());
<X extends core::num, unrelated Y extends core::String>() → self::B<X> f5a = #C10;
self::B<core::num> c5a = f5a<core::num, core::String>(){() → self::B<core::num>};
self::expect(true, c5a is self::B<core::num>);
@ -268,16 +268,16 @@ Try removing the extra positional arguments.
f5a<core::num, core::num>(){() → self::B<core::num>};
};
dynamic f5b = #C10;
dynamic c5c = f5b{dynamic}.call();
dynamic c5c = f5b{dynamic}();
self::expect(true, c5c is self::B<core::num>);
self::expect(false, c5c is self::B<core::int>);
dynamic c5d = f5b{dynamic}.call<core::int, core::String>();
dynamic c5d = f5b{dynamic}<core::int, core::String>();
self::expect(true, c5d is self::B<core::int>);
self::expect(false, c5d is self::B<core::double>);
self::throws(() → dynamic => f5b{dynamic}.call(0));
self::throws(() → dynamic => f5b{dynamic}.call<core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::String, core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::num, core::num>());
self::throws(() → dynamic => f5b{dynamic}(0));
self::throws(() → dynamic => f5b{dynamic}<core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::String, core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::num, core::num>());
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -130,9 +130,9 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(0);
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::A);
self::throws(() → dynamic => f1b{dynamic}.call(0));
self::throws(() → dynamic => f1b{dynamic}(0));
<unrelated X extends core::num>() → self::A f2a = #C2;
self::A c2a = f2a<core::num>(){() → self::A};
self::expect(true, c2a is self::A);
@ -144,12 +144,12 @@ Try removing the extra positional arguments.
f2a<core::String>(){() → self::A};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::A);
dynamic c2c = f2b{dynamic}.call<core::int>();
dynamic c2c = f2b{dynamic}<core::int>();
self::expect(true, c2c is self::A);
self::throws(() → dynamic => f2b{dynamic}.call(0));
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}(0));
self::throws(() → dynamic => f2b{dynamic}<core::String>());
() → self::B<core::String> f3a = #C4;
self::B<core::String> c3a = f3a(){() → self::B<core::String>};
self::expect(true, c3a is self::B<core::String>);
@ -166,13 +166,13 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.<core::String>();
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call();
dynamic c3b = f3b{dynamic}();
self::expect(true, c3b is self::B<core::String>);
self::expect(false, c3b is self::B<core::int>);
self::expect(0, c3a.{self::B::field1}{core::int});
self::expect("", c3a.{self::B::field2}{core::String});
self::throws(() → dynamic => f3b{dynamic}.call(0));
self::throws(() → dynamic => f3b{dynamic}.call<core::String>());
self::throws(() → dynamic => f3b{dynamic}(0));
self::throws(() → dynamic => f3b{dynamic}<core::String>());
(core::int) → self::B<core::String> f3c = #C6;
self::B<core::String> c3c = f3c(42){(core::int) → self::B<core::String>};
self::expect(true, c3c is self::B<core::String>);
@ -192,14 +192,14 @@ Try removing the extra positional arguments.
^" in f3c{<inapplicable>}.<core::String>(0);
};
dynamic f3d = #C6;
dynamic c3d = f3d{dynamic}.call(42);
dynamic c3d = f3d{dynamic}(42);
self::expect(true, c3d is self::B<core::String>);
self::expect(false, c3d is self::B<core::int>);
self::expect(42, c3d{dynamic}.field1);
self::expect("", c3d{dynamic}.field2);
self::throws(() → dynamic => f3d{dynamic}.call());
self::throws(() → dynamic => f3d{dynamic}.call(0, 0));
self::throws(() → dynamic => f3d{dynamic}.call<core::String>(0));
self::throws(() → dynamic => f3d{dynamic}());
self::throws(() → dynamic => f3d{dynamic}(0, 0));
self::throws(() → dynamic => f3d{dynamic}<core::String>(0));
(core::int, core::String) → self::B<core::String> f3e = #C8;
self::B<core::String> c3e = f3e(42, "foo"){(core::int, core::String) → self::B<core::String>};
self::expect(true, c3e is self::B<core::String>);
@ -218,14 +218,14 @@ Try removing the extra positional arguments.
^" in f3e{<inapplicable>}.<core::String>(0, "");
};
dynamic f3f = #C8;
dynamic c3f = f3f{dynamic}.call(42, "foo");
dynamic c3f = f3f{dynamic}(42, "foo");
self::expect(true, c3f is self::B<core::String>);
self::expect(false, c3f is self::B<core::int>);
self::expect(42, c3f{dynamic}.field1);
self::expect("foo", c3f{dynamic}.field2);
self::throws(() → dynamic => c3f{dynamic}.call());
self::throws(() → dynamic => c3f{dynamic}.call(0));
self::throws(() → dynamic => c3f{dynamic}.call<core::String>(0));
self::throws(() → dynamic => c3f{dynamic}());
self::throws(() → dynamic => c3f{dynamic}(0));
self::throws(() → dynamic => c3f{dynamic}<core::String>(0));
<X extends core::num>() → self::B<X> f4a = #C9;
self::B<core::num> c4a = f4a<core::num>(){() → self::B<core::num>};
self::expect(true, c4a is self::B<core::num>);
@ -241,14 +241,14 @@ Try removing the extra positional arguments.
f4a<core::String>(){() → self::B<core::String>};
};
dynamic f4b = #C9;
dynamic c4c = f4b{dynamic}.call();
dynamic c4c = f4b{dynamic}();
self::expect(true, c4c is self::B<core::num>);
self::expect(false, c4c is self::B<core::int>);
dynamic c4d = f4b{dynamic}.call<core::int>();
dynamic c4d = f4b{dynamic}<core::int>();
self::expect(true, c4d is self::B<core::int>);
self::expect(false, c4d is self::B<core::double>);
self::throws(() → dynamic => f4b{dynamic}.call(0));
self::throws(() → dynamic => f4b{dynamic}.call<core::String>());
self::throws(() → dynamic => f4b{dynamic}(0));
self::throws(() → dynamic => f4b{dynamic}<core::String>());
<X extends core::num, unrelated Y extends core::String>() → self::B<X> f5a = #C10;
self::B<core::num> c5a = f5a<core::num, core::String>(){() → self::B<core::num>};
self::expect(true, c5a is self::B<core::num>);
@ -268,16 +268,16 @@ Try removing the extra positional arguments.
f5a<core::num, core::num>(){() → self::B<core::num>};
};
dynamic f5b = #C10;
dynamic c5c = f5b{dynamic}.call();
dynamic c5c = f5b{dynamic}();
self::expect(true, c5c is self::B<core::num>);
self::expect(false, c5c is self::B<core::int>);
dynamic c5d = f5b{dynamic}.call<core::int, core::String>();
dynamic c5d = f5b{dynamic}<core::int, core::String>();
self::expect(true, c5d is self::B<core::int>);
self::expect(false, c5d is self::B<core::double>);
self::throws(() → dynamic => f5b{dynamic}.call(0));
self::throws(() → dynamic => f5b{dynamic}.call<core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::String, core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::num, core::num>());
self::throws(() → dynamic => f5b{dynamic}(0));
self::throws(() → dynamic => f5b{dynamic}<core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::String, core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::num, core::num>());
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -130,9 +130,9 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(0);
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::A);
self::throws(() → dynamic => f1b{dynamic}.call(0));
self::throws(() → dynamic => f1b{dynamic}(0));
<unrelated X extends core::num>() → self::A f2a = #C2;
self::A c2a = f2a<core::num>(){() → self::A};
self::expect(true, c2a is self::A);
@ -144,12 +144,12 @@ Try removing the extra positional arguments.
f2a<core::String>(){() → self::A};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::A);
dynamic c2c = f2b{dynamic}.call<core::int>();
dynamic c2c = f2b{dynamic}<core::int>();
self::expect(true, c2c is self::A);
self::throws(() → dynamic => f2b{dynamic}.call(0));
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}(0));
self::throws(() → dynamic => f2b{dynamic}<core::String>());
() → self::B<core::String> f3a = #C4;
self::B<core::String> c3a = f3a(){() → self::B<core::String>};
self::expect(true, c3a is self::B<core::String>);
@ -166,13 +166,13 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.<core::String>();
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call();
dynamic c3b = f3b{dynamic}();
self::expect(true, c3b is self::B<core::String>);
self::expect(false, c3b is self::B<core::int>);
self::expect(0, c3a.{self::B::field1}{core::int});
self::expect("", c3a.{self::B::field2}{core::String});
self::throws(() → dynamic => f3b{dynamic}.call(0));
self::throws(() → dynamic => f3b{dynamic}.call<core::String>());
self::throws(() → dynamic => f3b{dynamic}(0));
self::throws(() → dynamic => f3b{dynamic}<core::String>());
(core::int) → self::B<core::String> f3c = #C6;
self::B<core::String> c3c = f3c(42){(core::int) → self::B<core::String>};
self::expect(true, c3c is self::B<core::String>);
@ -192,14 +192,14 @@ Try removing the extra positional arguments.
^" in f3c{<inapplicable>}.<core::String>(0);
};
dynamic f3d = #C6;
dynamic c3d = f3d{dynamic}.call(42);
dynamic c3d = f3d{dynamic}(42);
self::expect(true, c3d is self::B<core::String>);
self::expect(false, c3d is self::B<core::int>);
self::expect(42, c3d{dynamic}.field1);
self::expect("", c3d{dynamic}.field2);
self::throws(() → dynamic => f3d{dynamic}.call());
self::throws(() → dynamic => f3d{dynamic}.call(0, 0));
self::throws(() → dynamic => f3d{dynamic}.call<core::String>(0));
self::throws(() → dynamic => f3d{dynamic}());
self::throws(() → dynamic => f3d{dynamic}(0, 0));
self::throws(() → dynamic => f3d{dynamic}<core::String>(0));
(core::int, core::String) → self::B<core::String> f3e = #C8;
self::B<core::String> c3e = f3e(42, "foo"){(core::int, core::String) → self::B<core::String>};
self::expect(true, c3e is self::B<core::String>);
@ -218,14 +218,14 @@ Try removing the extra positional arguments.
^" in f3e{<inapplicable>}.<core::String>(0, "");
};
dynamic f3f = #C8;
dynamic c3f = f3f{dynamic}.call(42, "foo");
dynamic c3f = f3f{dynamic}(42, "foo");
self::expect(true, c3f is self::B<core::String>);
self::expect(false, c3f is self::B<core::int>);
self::expect(42, c3f{dynamic}.field1);
self::expect("foo", c3f{dynamic}.field2);
self::throws(() → dynamic => c3f{dynamic}.call());
self::throws(() → dynamic => c3f{dynamic}.call(0));
self::throws(() → dynamic => c3f{dynamic}.call<core::String>(0));
self::throws(() → dynamic => c3f{dynamic}());
self::throws(() → dynamic => c3f{dynamic}(0));
self::throws(() → dynamic => c3f{dynamic}<core::String>(0));
<X extends core::num>() → self::B<X> f4a = #C9;
self::B<core::num> c4a = f4a<core::num>(){() → self::B<core::num>};
self::expect(true, c4a is self::B<core::num>);
@ -241,14 +241,14 @@ Try removing the extra positional arguments.
f4a<core::String>(){() → self::B<core::String>};
};
dynamic f4b = #C9;
dynamic c4c = f4b{dynamic}.call();
dynamic c4c = f4b{dynamic}();
self::expect(true, c4c is self::B<core::num>);
self::expect(false, c4c is self::B<core::int>);
dynamic c4d = f4b{dynamic}.call<core::int>();
dynamic c4d = f4b{dynamic}<core::int>();
self::expect(true, c4d is self::B<core::int>);
self::expect(false, c4d is self::B<core::double>);
self::throws(() → dynamic => f4b{dynamic}.call(0));
self::throws(() → dynamic => f4b{dynamic}.call<core::String>());
self::throws(() → dynamic => f4b{dynamic}(0));
self::throws(() → dynamic => f4b{dynamic}<core::String>());
<X extends core::num, unrelated Y extends core::String>() → self::B<X> f5a = #C10;
self::B<core::num> c5a = f5a<core::num, core::String>(){() → self::B<core::num>};
self::expect(true, c5a is self::B<core::num>);
@ -268,16 +268,16 @@ Try removing the extra positional arguments.
f5a<core::num, core::num>(){() → self::B<core::num>};
};
dynamic f5b = #C10;
dynamic c5c = f5b{dynamic}.call();
dynamic c5c = f5b{dynamic}();
self::expect(true, c5c is self::B<core::num>);
self::expect(false, c5c is self::B<core::int>);
dynamic c5d = f5b{dynamic}.call<core::int, core::String>();
dynamic c5d = f5b{dynamic}<core::int, core::String>();
self::expect(true, c5d is self::B<core::int>);
self::expect(false, c5d is self::B<core::double>);
self::throws(() → dynamic => f5b{dynamic}.call(0));
self::throws(() → dynamic => f5b{dynamic}.call<core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::String, core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::num, core::num>());
self::throws(() → dynamic => f5b{dynamic}(0));
self::throws(() → dynamic => f5b{dynamic}<core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::String, core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::num, core::num>());
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -130,9 +130,9 @@ Try removing the extra positional arguments.
^" in f1a{<inapplicable>}.(0);
};
dynamic f1b = #C1;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::A);
self::throws(() → dynamic => f1b{dynamic}.call(0));
self::throws(() → dynamic => f1b{dynamic}(0));
<unrelated X extends core::num>() → self::A f2a = #C2;
self::A c2a = f2a<core::num>(){() → self::A};
self::expect(true, c2a is self::A);
@ -144,12 +144,12 @@ Try removing the extra positional arguments.
f2a<core::String>(){() → self::A};
};
dynamic f2b = #C2;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::A);
dynamic c2c = f2b{dynamic}.call<core::int>();
dynamic c2c = f2b{dynamic}<core::int>();
self::expect(true, c2c is self::A);
self::throws(() → dynamic => f2b{dynamic}.call(0));
self::throws(() → dynamic => f2b{dynamic}.call<core::String>());
self::throws(() → dynamic => f2b{dynamic}(0));
self::throws(() → dynamic => f2b{dynamic}<core::String>());
() → self::B<core::String> f3a = #C4;
self::B<core::String> c3a = f3a(){() → self::B<core::String>};
self::expect(true, c3a is self::B<core::String>);
@ -166,13 +166,13 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.<core::String>();
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call();
dynamic c3b = f3b{dynamic}();
self::expect(true, c3b is self::B<core::String>);
self::expect(false, c3b is self::B<core::int>);
self::expect(0, c3a.{self::B::field1}{core::int});
self::expect("", c3a.{self::B::field2}{core::String});
self::throws(() → dynamic => f3b{dynamic}.call(0));
self::throws(() → dynamic => f3b{dynamic}.call<core::String>());
self::throws(() → dynamic => f3b{dynamic}(0));
self::throws(() → dynamic => f3b{dynamic}<core::String>());
(core::int) → self::B<core::String> f3c = #C6;
self::B<core::String> c3c = f3c(42){(core::int) → self::B<core::String>};
self::expect(true, c3c is self::B<core::String>);
@ -192,14 +192,14 @@ Try removing the extra positional arguments.
^" in f3c{<inapplicable>}.<core::String>(0);
};
dynamic f3d = #C6;
dynamic c3d = f3d{dynamic}.call(42);
dynamic c3d = f3d{dynamic}(42);
self::expect(true, c3d is self::B<core::String>);
self::expect(false, c3d is self::B<core::int>);
self::expect(42, c3d{dynamic}.field1);
self::expect("", c3d{dynamic}.field2);
self::throws(() → dynamic => f3d{dynamic}.call());
self::throws(() → dynamic => f3d{dynamic}.call(0, 0));
self::throws(() → dynamic => f3d{dynamic}.call<core::String>(0));
self::throws(() → dynamic => f3d{dynamic}());
self::throws(() → dynamic => f3d{dynamic}(0, 0));
self::throws(() → dynamic => f3d{dynamic}<core::String>(0));
(core::int, core::String) → self::B<core::String> f3e = #C8;
self::B<core::String> c3e = f3e(42, "foo"){(core::int, core::String) → self::B<core::String>};
self::expect(true, c3e is self::B<core::String>);
@ -218,14 +218,14 @@ Try removing the extra positional arguments.
^" in f3e{<inapplicable>}.<core::String>(0, "");
};
dynamic f3f = #C8;
dynamic c3f = f3f{dynamic}.call(42, "foo");
dynamic c3f = f3f{dynamic}(42, "foo");
self::expect(true, c3f is self::B<core::String>);
self::expect(false, c3f is self::B<core::int>);
self::expect(42, c3f{dynamic}.field1);
self::expect("foo", c3f{dynamic}.field2);
self::throws(() → dynamic => c3f{dynamic}.call());
self::throws(() → dynamic => c3f{dynamic}.call(0));
self::throws(() → dynamic => c3f{dynamic}.call<core::String>(0));
self::throws(() → dynamic => c3f{dynamic}());
self::throws(() → dynamic => c3f{dynamic}(0));
self::throws(() → dynamic => c3f{dynamic}<core::String>(0));
<X extends core::num>() → self::B<X> f4a = #C9;
self::B<core::num> c4a = f4a<core::num>(){() → self::B<core::num>};
self::expect(true, c4a is self::B<core::num>);
@ -241,14 +241,14 @@ Try removing the extra positional arguments.
f4a<core::String>(){() → self::B<core::String>};
};
dynamic f4b = #C9;
dynamic c4c = f4b{dynamic}.call();
dynamic c4c = f4b{dynamic}();
self::expect(true, c4c is self::B<core::num>);
self::expect(false, c4c is self::B<core::int>);
dynamic c4d = f4b{dynamic}.call<core::int>();
dynamic c4d = f4b{dynamic}<core::int>();
self::expect(true, c4d is self::B<core::int>);
self::expect(false, c4d is self::B<core::double>);
self::throws(() → dynamic => f4b{dynamic}.call(0));
self::throws(() → dynamic => f4b{dynamic}.call<core::String>());
self::throws(() → dynamic => f4b{dynamic}(0));
self::throws(() → dynamic => f4b{dynamic}<core::String>());
<X extends core::num, unrelated Y extends core::String>() → self::B<X> f5a = #C10;
self::B<core::num> c5a = f5a<core::num, core::String>(){() → self::B<core::num>};
self::expect(true, c5a is self::B<core::num>);
@ -268,16 +268,16 @@ Try removing the extra positional arguments.
f5a<core::num, core::num>(){() → self::B<core::num>};
};
dynamic f5b = #C10;
dynamic c5c = f5b{dynamic}.call();
dynamic c5c = f5b{dynamic}();
self::expect(true, c5c is self::B<core::num>);
self::expect(false, c5c is self::B<core::int>);
dynamic c5d = f5b{dynamic}.call<core::int, core::String>();
dynamic c5d = f5b{dynamic}<core::int, core::String>();
self::expect(true, c5d is self::B<core::int>);
self::expect(false, c5d is self::B<core::double>);
self::throws(() → dynamic => f5b{dynamic}.call(0));
self::throws(() → dynamic => f5b{dynamic}.call<core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::String, core::String>());
self::throws(() → dynamic => f5b{dynamic}.call<core::num, core::num>());
self::throws(() → dynamic => f5b{dynamic}(0));
self::throws(() → dynamic => f5b{dynamic}<core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::String, core::String>());
self::throws(() → dynamic => f5b{dynamic}<core::num, core::num>());
}
static method expect(dynamic expected, dynamic actual) → dynamic {
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))

View file

@ -125,14 +125,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -150,10 +150,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -166,7 +166,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -184,8 +184,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -215,10 +215,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
() → self::Class7b f7a = #C8;
self::Class7b c7a = f7a(){() → self::Class7b};
self::expect(true, c7a is self::Class7a);

View file

@ -125,14 +125,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -150,10 +150,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -166,7 +166,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -184,8 +184,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -215,10 +215,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
() → self::Class7b f7a = #C8;
self::Class7b c7a = f7a(){() → self::Class7b};
self::expect(true, c7a is self::Class7a);

View file

@ -125,14 +125,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -150,10 +150,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -166,7 +166,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -184,8 +184,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -215,10 +215,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
() → self::Class7b f7a = #C8;
self::Class7b c7a = f7a(){() → self::Class7b};
self::expect(true, c7a is self::Class7a);

View file

@ -125,14 +125,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -150,10 +150,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -166,7 +166,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -184,8 +184,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -215,10 +215,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
() → self::Class7b f7a = #C8;
self::Class7b c7a = f7a(){() → self::Class7b};
self::expect(true, c7a is self::Class7a);

View file

@ -125,14 +125,14 @@ static method testNoArgs() → dynamic {
self::Class1 c1a = f1a(){() → self::Class1};
self::expect(true, c1a is self::Class1);
dynamic f1b = #C2;
dynamic c1b = f1b{dynamic}.call();
dynamic c1b = f1b{dynamic}();
self::expect(true, c1b is self::Class1);
self::expect(true, core::identical(f1a, f1b));
() → self::Class2 f2a = #C3;
self::Class2 c2a = f2a(){() → self::Class2};
self::expect(true, c2a is self::Class2);
dynamic f2b = #C3;
dynamic c2b = f2b{dynamic}.call();
dynamic c2b = f2b{dynamic}();
self::expect(true, c2b is self::Class2);
self::expect(true, core::identical(f2a, f2b));
}
@ -150,10 +150,10 @@ Try removing the extra positional arguments.
^" in f3a{<inapplicable>}.(42, 87);
};
dynamic f3b = #C4;
dynamic c3b = f3b{dynamic}.call(87);
dynamic c3b = f3b{dynamic}(87);
self::expect(87, c3b{dynamic}.field);
self::throws(() → dynamic => f3b{dynamic}.call());
self::throws(() → dynamic => f3b{dynamic}.call(42, 87));
self::throws(() → dynamic => f3b{dynamic}());
self::throws(() → dynamic => f3b{dynamic}(42, 87));
([core::int?]) → self::Class4 f4a = #C5;
self::Class4 c4a = f4a(){([core::int?]) → self::Class4};
self::expect(null, c4a.{self::Class4::field}{core::int?});
@ -166,7 +166,7 @@ Try removing the extra positional arguments.
^" in f4a{<inapplicable>}.(42, 87);
};
dynamic f4b = #C5;
self::throws(() → dynamic => f4b{dynamic}.call(42, 87));
self::throws(() → dynamic => f4b{dynamic}(42, 87));
(core::int, [core::int?]) → self::Class5 f5a = #C6;
self::Class5 c5a = f5a(42){(core::int, [core::int?]) → self::Class5};
self::expect(42, c5a.{self::Class5::field1}{core::int});
@ -184,8 +184,8 @@ Try removing the extra positional arguments.
^" in f5a{<inapplicable>}.(42, 87, 123);
};
dynamic f5b = #C6;
self::throws(() → dynamic => f5b{dynamic}.call());
self::throws(() → dynamic => f5b{dynamic}.call(42, 87, 123));
self::throws(() → dynamic => f5b{dynamic}());
self::throws(() → dynamic => f5b{dynamic}(42, 87, 123));
(core::int, {field2: core::int?, required field3: core::int}) → self::Class6 f6a = #C7;
self::Class6 c6a = f6a(42, field3: 87){(core::int, {field2: core::int?, required field3: core::int}) → self::Class6};
self::expect(42, c6a.{self::Class6::field1}{core::int});
@ -215,10 +215,10 @@ Try removing the extra positional arguments.
self::expect(123, c6c.{self::Class6::field2}{core::int?});
self::expect(42, c6c.{self::Class6::field3}{core::int});
dynamic f6b = #C7;
self::throws(() → dynamic => f6b{dynamic}.call());
self::throws(() → dynamic => f6b{dynamic}.call(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}.call(field1: 87, field2: 87));
self::throws(() → dynamic => f6b{dynamic}());
self::throws(() → dynamic => f6b{dynamic}(42), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(42, 87), inSoundModeOnly: true);
self::throws(() → dynamic => f6b{dynamic}(field1: 87, field2: 87));
() → self::Class7b f7a = #C8;
self::Class7b c7a = f7a(){() → self::Class7b};
self::expect(true, c7a is self::Class7a);

View file

@ -1,4 +1,4 @@
Errors: {
}
method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr(dynamic x) → dynamic
return x{dynamic}.call(){dynamic}.fold<dart.core::int>(0, (dynamic previousValue, dynamic element) → dynamic => previousValue{dynamic}.+(element{dynamic}.length));
return x{dynamic}(){dynamic}.fold<dart.core::int>(0, (dynamic previousValue, dynamic element) → dynamic => previousValue{dynamic}.+(element{dynamic}.length));

View file

@ -343,11 +343,11 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:17:19: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:18:14: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
}
static extension-type-member method InlineClass|get#test(lowered final self::InlineClass /* = core::int */ #this) → () → void
return () → void => self::InlineClass|test(#this);
@ -371,11 +371,11 @@ Try changing the operand or remove the type arguments.
self::GenericInlineClass|test::T% c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:28:19: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
self::GenericInlineClass|test::T% c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:29:14: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
}
static extension-type-member method GenericInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|get#test::T%>% /* = self::GenericInlineClass|get#test::T% */ #this) → (self::GenericInlineClass|get#test::T%) → void
return (self::GenericInlineClass|get#test::T% t) → void => self::GenericInlineClass|test<self::GenericInlineClass|get#test::T%>(#this, t);
@ -399,11 +399,11 @@ Try changing the operand or remove the type arguments.
() → self::FunctionInlineClass|test::T% c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:39:19: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
() → self::FunctionInlineClass|test::T% c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:40:14: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
self::FunctionInlineClass|test::T% d1 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
self::FunctionInlineClass|test::T% d2 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
self::FunctionInlineClass|test::T% d3 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
@ -427,14 +427,14 @@ static extension-type-member method GenericFunctionInlineClass|test(lowered fina
dynamic c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:19: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:24: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
^^" in #this.{<unresolved>}it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:24: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 't'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^" in #this{<unresolved>}.t;
dynamic c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:14: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:19: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
^^" in #this.{<unresolved>}it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:19: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 't'.
var c2 = it = t; // Error, should not resolve to extension method.
^" in #this{<unresolved>}.t;
@ -467,13 +467,13 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:74:19: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:75:14: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
dynamic d1 = (#this as{Unchecked} dynamic){dynamic}.call();
dynamic d2 = (#this as{Unchecked} dynamic){dynamic}.call();
^^" in #this.{<unresolved>}it = 42;
dynamic d1 = (#this as{Unchecked} dynamic){dynamic}();
dynamic d2 = (#this as{Unchecked} dynamic){dynamic}();
dynamic d3 = (#this as{Unchecked} dynamic){dynamic}.call();
dynamic d4 = (#this as{Unchecked} dynamic){dynamic}.call();
}
@ -509,19 +509,19 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:93:19: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var c1 = this.a = 42; // Error
^" in #this{<unresolved>}.a = 42;
^" in #this.{<unresolved>}a = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:94:14: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var c2 = a = 42; // Error
^" in #this{<unresolved>}.a = 42;
^" in #this.{<unresolved>}a = 42;
core::String c3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:95:19: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var c3 = this.b = '42'; // Error
^" in #this{<unresolved>}.b = "42";
^" in #this.{<unresolved>}b = "42";
core::String c4 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:96:14: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var c4 = b = '42'; // Error
^" in #this{<unresolved>}.b = "42";
^" in #this.{<unresolved>}b = "42";
dynamic d1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:97:20: Error: The method 'call' isn't defined for the class 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'call'.
var d1 = this.a(); // Error
@ -566,7 +566,7 @@ Try changing the operand or remove the type arguments.
core::int a3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:119:24: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var a3 = inlineClass.it = 42; // Error,
^^" in inlineClass{<unresolved>}.it = 42;
^^" in inlineClass.{<unresolved>}it = 42;
core::String b1 = genericInlineClass as{Unchecked} core::String;
invalid-type b2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:123:33: Error: The static type of the explicit instantiation operand must be a generic function type but is 'String'.
Try changing the operand or remove the type arguments.
@ -575,7 +575,7 @@ Try changing the operand or remove the type arguments.
core::String b3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:124:31: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<String>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var b3 = genericInlineClass.it = '42'; // Error, should not
^^" in genericInlineClass{<unresolved>}.it = "42";
^^" in genericInlineClass.{<unresolved>}it = "42";
() → core::String c1 = functionInlineClass as{Unchecked} () → core::String;
invalid-type c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:128:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'String Function()'.
Try changing the operand or remove the type arguments.
@ -586,7 +586,7 @@ Try changing the operand or remove the type arguments.
() → core::String c5 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:131:32: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<String>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c5 = functionInlineClass.it = () => '42'; // Error, should not
^^" in functionInlineClass{<unresolved>}.it = () → core::String => "42";
^^" in functionInlineClass.{<unresolved>}it = () → core::String => "42";
<T extends core::Object? = dynamic>() → T% d1 = genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%;
() → core::int d2 = (genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%)<core::int>;
() → core::int d3 = (genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%)<core::int>;
@ -595,17 +595,17 @@ Try correcting the name to the name of an existing setter, or defining a setter
<T extends core::Object? = dynamic>() → Never d6 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:139:39: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var d6 = genericFunctionInlineClass.it = <T>() => throw ''; // Error, should
^^" in genericFunctionInlineClass{<unresolved>}.it = <T extends core::Object? = dynamic>() → Never => throw "";
^^" in genericFunctionInlineClass.{<unresolved>}it = <T extends core::Object? = dynamic>() → Never => throw "";
dynamic e1 = dynamicInlineClass as{Unchecked} dynamic;
invalid-type e2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:143:33: Error: The static type of the explicit instantiation operand must be a generic function type but is 'dynamic'.
Try changing the operand or remove the type arguments.
var e2 = dynamicInlineClass.it<int>; // Error
^";
dynamic e3 = (dynamicInlineClass as{Unchecked} dynamic){dynamic}.call();
dynamic e3 = (dynamicInlineClass as{Unchecked} dynamic){dynamic}();
core::String e4 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:145:31: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var e4 = dynamicInlineClass.it = '42'; // Error, should not resolve
^^" in dynamicInlineClass{<unresolved>}.it = "42";
^^" in dynamicInlineClass.{<unresolved>}it = "42";
core::int f1 = erroneousInlineClass as{Unchecked} core::int;
invalid-type f2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:149:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'int'.
Try changing the operand or remove the type arguments.
@ -614,7 +614,7 @@ Try changing the operand or remove the type arguments.
core::int f3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:150:33: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var f3 = erroneousInlineClass.a = 42; // Error, should not resolve
^" in erroneousInlineClass{<unresolved>}.a = 42;
^" in erroneousInlineClass.{<unresolved>}a = 42;
core::String g1 = erroneousInlineClass as{Unchecked} core::String;
invalid-type g2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:153:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'int'.
Try changing the operand or remove the type arguments.
@ -623,7 +623,7 @@ Try changing the operand or remove the type arguments.
core::String g3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:154:33: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var g3 = erroneousInlineClass.b = '42'; // Error, should not resolve
^" in erroneousInlineClass{<unresolved>}.b = "42";
^" in erroneousInlineClass.{<unresolved>}b = "42";
dynamic h1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:157:31: Error: The getter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named '_it'.
var h1 = privateInlineClass._it; // Error
@ -635,7 +635,7 @@ Try changing the operand or remove the type arguments.
core::int h3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:159:31: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var h3 = privateInlineClass._it = 42; // Error
^^^" in privateInlineClass{<unresolved>}._it = 42;
^^^" in privateInlineClass.{<unresolved>}_it = 42;
}
library;
@ -692,11 +692,11 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access_lib.dart:11:19: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var c1 = this._it = 42; // Error, should not resolve to extension method.
^^^" in #this{<unresolved>}._it = 42;
^^^" in #this.{<unresolved>}_it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access_lib.dart:12:14: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var c2 = _it = 42; // Error, should not resolve to extension method.
^^^" in #this{<unresolved>}._it = 42;
^^^" in #this.{<unresolved>}_it = 42;
}
static extension-type-member method PrivateInlineClass|get#test(lowered final self2::PrivateInlineClass /* = core::int */ #this) → () → void
return () → void => self2::PrivateInlineClass|test(#this);

View file

@ -343,11 +343,11 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:17:19: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:18:14: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
}
static extension-type-member method InlineClass|get#test(lowered final self::InlineClass /* = core::int */ #this) → () → void
return () → void => self::InlineClass|test(#this);
@ -371,11 +371,11 @@ Try changing the operand or remove the type arguments.
self::GenericInlineClass|test::T% c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:28:19: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
self::GenericInlineClass|test::T% c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:29:14: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
}
static extension-type-member method GenericInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|get#test::T%>% /* = self::GenericInlineClass|get#test::T% */ #this) → (self::GenericInlineClass|get#test::T%) → void
return (self::GenericInlineClass|get#test::T% t) → void => self::GenericInlineClass|test<self::GenericInlineClass|get#test::T%>(#this, t);
@ -399,11 +399,11 @@ Try changing the operand or remove the type arguments.
() → self::FunctionInlineClass|test::T% c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:39:19: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
() → self::FunctionInlineClass|test::T% c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:40:14: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
self::FunctionInlineClass|test::T% d1 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
self::FunctionInlineClass|test::T% d2 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
self::FunctionInlineClass|test::T% d3 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
@ -427,14 +427,14 @@ static extension-type-member method GenericFunctionInlineClass|test(lowered fina
dynamic c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:19: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:24: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
^^" in #this.{<unresolved>}it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:24: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 't'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^" in #this{<unresolved>}.t;
dynamic c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:14: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:19: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
^^" in #this.{<unresolved>}it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:19: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 't'.
var c2 = it = t; // Error, should not resolve to extension method.
^" in #this{<unresolved>}.t;
@ -467,13 +467,13 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:74:19: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:75:14: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
dynamic d1 = (#this as{Unchecked} dynamic){dynamic}.call();
dynamic d2 = (#this as{Unchecked} dynamic){dynamic}.call();
^^" in #this.{<unresolved>}it = 42;
dynamic d1 = (#this as{Unchecked} dynamic){dynamic}();
dynamic d2 = (#this as{Unchecked} dynamic){dynamic}();
dynamic d3 = (#this as{Unchecked} dynamic){dynamic}.call();
dynamic d4 = (#this as{Unchecked} dynamic){dynamic}.call();
}
@ -509,19 +509,19 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:93:19: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var c1 = this.a = 42; // Error
^" in #this{<unresolved>}.a = 42;
^" in #this.{<unresolved>}a = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:94:14: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var c2 = a = 42; // Error
^" in #this{<unresolved>}.a = 42;
^" in #this.{<unresolved>}a = 42;
core::String c3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:95:19: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var c3 = this.b = '42'; // Error
^" in #this{<unresolved>}.b = "42";
^" in #this.{<unresolved>}b = "42";
core::String c4 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:96:14: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var c4 = b = '42'; // Error
^" in #this{<unresolved>}.b = "42";
^" in #this.{<unresolved>}b = "42";
dynamic d1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:97:20: Error: The method 'call' isn't defined for the class 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'call'.
var d1 = this.a(); // Error
@ -566,7 +566,7 @@ Try changing the operand or remove the type arguments.
core::int a3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:119:24: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var a3 = inlineClass.it = 42; // Error,
^^" in inlineClass{<unresolved>}.it = 42;
^^" in inlineClass.{<unresolved>}it = 42;
core::String b1 = genericInlineClass as{Unchecked} core::String;
invalid-type b2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:123:33: Error: The static type of the explicit instantiation operand must be a generic function type but is 'String'.
Try changing the operand or remove the type arguments.
@ -575,7 +575,7 @@ Try changing the operand or remove the type arguments.
core::String b3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:124:31: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<String>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var b3 = genericInlineClass.it = '42'; // Error, should not
^^" in genericInlineClass{<unresolved>}.it = "42";
^^" in genericInlineClass.{<unresolved>}it = "42";
() → core::String c1 = functionInlineClass as{Unchecked} () → core::String;
invalid-type c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:128:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'String Function()'.
Try changing the operand or remove the type arguments.
@ -586,7 +586,7 @@ Try changing the operand or remove the type arguments.
() → core::String c5 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:131:32: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<String>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c5 = functionInlineClass.it = () => '42'; // Error, should not
^^" in functionInlineClass{<unresolved>}.it = () → core::String => "42";
^^" in functionInlineClass.{<unresolved>}it = () → core::String => "42";
<T extends core::Object? = dynamic>() → T% d1 = genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%;
() → core::int d2 = (genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%)<core::int>;
() → core::int d3 = (genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%)<core::int>;
@ -595,17 +595,17 @@ Try correcting the name to the name of an existing setter, or defining a setter
<T extends core::Object? = dynamic>() → Never d6 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:139:39: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var d6 = genericFunctionInlineClass.it = <T>() => throw ''; // Error, should
^^" in genericFunctionInlineClass{<unresolved>}.it = <T extends core::Object? = dynamic>() → Never => throw "";
^^" in genericFunctionInlineClass.{<unresolved>}it = <T extends core::Object? = dynamic>() → Never => throw "";
dynamic e1 = dynamicInlineClass as{Unchecked} dynamic;
invalid-type e2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:143:33: Error: The static type of the explicit instantiation operand must be a generic function type but is 'dynamic'.
Try changing the operand or remove the type arguments.
var e2 = dynamicInlineClass.it<int>; // Error
^";
dynamic e3 = (dynamicInlineClass as{Unchecked} dynamic){dynamic}.call();
dynamic e3 = (dynamicInlineClass as{Unchecked} dynamic){dynamic}();
core::String e4 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:145:31: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var e4 = dynamicInlineClass.it = '42'; // Error, should not resolve
^^" in dynamicInlineClass{<unresolved>}.it = "42";
^^" in dynamicInlineClass.{<unresolved>}it = "42";
core::int f1 = erroneousInlineClass as{Unchecked} core::int;
invalid-type f2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:149:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'int'.
Try changing the operand or remove the type arguments.
@ -614,7 +614,7 @@ Try changing the operand or remove the type arguments.
core::int f3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:150:33: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var f3 = erroneousInlineClass.a = 42; // Error, should not resolve
^" in erroneousInlineClass{<unresolved>}.a = 42;
^" in erroneousInlineClass.{<unresolved>}a = 42;
core::String g1 = erroneousInlineClass as{Unchecked} core::String;
invalid-type g2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:153:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'int'.
Try changing the operand or remove the type arguments.
@ -623,7 +623,7 @@ Try changing the operand or remove the type arguments.
core::String g3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:154:33: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var g3 = erroneousInlineClass.b = '42'; // Error, should not resolve
^" in erroneousInlineClass{<unresolved>}.b = "42";
^" in erroneousInlineClass.{<unresolved>}b = "42";
dynamic h1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:157:31: Error: The getter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named '_it'.
var h1 = privateInlineClass._it; // Error
@ -635,7 +635,7 @@ Try changing the operand or remove the type arguments.
core::int h3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:159:31: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var h3 = privateInlineClass._it = 42; // Error
^^^" in privateInlineClass{<unresolved>}._it = 42;
^^^" in privateInlineClass.{<unresolved>}_it = 42;
}
library;
@ -692,11 +692,11 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access_lib.dart:11:19: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var c1 = this._it = 42; // Error, should not resolve to extension method.
^^^" in #this{<unresolved>}._it = 42;
^^^" in #this.{<unresolved>}_it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access_lib.dart:12:14: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var c2 = _it = 42; // Error, should not resolve to extension method.
^^^" in #this{<unresolved>}._it = 42;
^^^" in #this.{<unresolved>}_it = 42;
}
static extension-type-member method PrivateInlineClass|get#test(lowered final self2::PrivateInlineClass /* = core::int */ #this) → () → void
return () → void => self2::PrivateInlineClass|test(#this);

View file

@ -343,11 +343,11 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:17:19: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:18:14: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
}
static extension-type-member method InlineClass|get#test(lowered final self::InlineClass /* = core::int */ #this) → () → void
return () → void => self::InlineClass|test(#this);
@ -371,11 +371,11 @@ Try changing the operand or remove the type arguments.
self::GenericInlineClass|test::T% c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:28:19: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
self::GenericInlineClass|test::T% c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:29:14: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
}
static extension-type-member method GenericInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|get#test::T%>% /* = self::GenericInlineClass|get#test::T% */ #this) → (self::GenericInlineClass|get#test::T%) → void
return (self::GenericInlineClass|get#test::T% t) → void => self::GenericInlineClass|test<self::GenericInlineClass|get#test::T%>(#this, t);
@ -399,11 +399,11 @@ Try changing the operand or remove the type arguments.
() → self::FunctionInlineClass|test::T% c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:39:19: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
() → self::FunctionInlineClass|test::T% c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:40:14: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
self::FunctionInlineClass|test::T% d1 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
self::FunctionInlineClass|test::T% d2 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
self::FunctionInlineClass|test::T% d3 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
@ -427,14 +427,14 @@ static extension-type-member method GenericFunctionInlineClass|test(lowered fina
dynamic c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:19: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:24: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
^^" in #this.{<unresolved>}it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:24: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 't'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^" in #this{<unresolved>}.t;
dynamic c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:14: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:19: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
^^" in #this.{<unresolved>}it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:19: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 't'.
var c2 = it = t; // Error, should not resolve to extension method.
^" in #this{<unresolved>}.t;
@ -467,13 +467,13 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:74:19: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:75:14: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
dynamic d1 = (#this as{Unchecked} dynamic){dynamic}.call();
dynamic d2 = (#this as{Unchecked} dynamic){dynamic}.call();
^^" in #this.{<unresolved>}it = 42;
dynamic d1 = (#this as{Unchecked} dynamic){dynamic}();
dynamic d2 = (#this as{Unchecked} dynamic){dynamic}();
dynamic d3 = (#this as{Unchecked} dynamic){dynamic}.call();
dynamic d4 = (#this as{Unchecked} dynamic){dynamic}.call();
}
@ -509,19 +509,19 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:93:19: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var c1 = this.a = 42; // Error
^" in #this{<unresolved>}.a = 42;
^" in #this.{<unresolved>}a = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:94:14: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var c2 = a = 42; // Error
^" in #this{<unresolved>}.a = 42;
^" in #this.{<unresolved>}a = 42;
core::String c3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:95:19: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var c3 = this.b = '42'; // Error
^" in #this{<unresolved>}.b = "42";
^" in #this.{<unresolved>}b = "42";
core::String c4 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:96:14: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var c4 = b = '42'; // Error
^" in #this{<unresolved>}.b = "42";
^" in #this.{<unresolved>}b = "42";
dynamic d1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:97:20: Error: The method 'call' isn't defined for the class 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'call'.
var d1 = this.a(); // Error
@ -566,7 +566,7 @@ Try changing the operand or remove the type arguments.
core::int a3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:119:24: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var a3 = inlineClass.it = 42; // Error,
^^" in inlineClass{<unresolved>}.it = 42;
^^" in inlineClass.{<unresolved>}it = 42;
core::String b1 = genericInlineClass as{Unchecked} core::String;
invalid-type b2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:123:33: Error: The static type of the explicit instantiation operand must be a generic function type but is 'String'.
Try changing the operand or remove the type arguments.
@ -575,7 +575,7 @@ Try changing the operand or remove the type arguments.
core::String b3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:124:31: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<String>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var b3 = genericInlineClass.it = '42'; // Error, should not
^^" in genericInlineClass{<unresolved>}.it = "42";
^^" in genericInlineClass.{<unresolved>}it = "42";
() → core::String c1 = functionInlineClass as{Unchecked} () → core::String;
invalid-type c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:128:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'String Function()'.
Try changing the operand or remove the type arguments.
@ -586,7 +586,7 @@ Try changing the operand or remove the type arguments.
() → core::String c5 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:131:32: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<String>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c5 = functionInlineClass.it = () => '42'; // Error, should not
^^" in functionInlineClass{<unresolved>}.it = () → core::String => "42";
^^" in functionInlineClass.{<unresolved>}it = () → core::String => "42";
<T extends core::Object? = dynamic>() → T% d1 = genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%;
() → core::int d2 = (genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%)<core::int>;
() → core::int d3 = (genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%)<core::int>;
@ -595,17 +595,17 @@ Try correcting the name to the name of an existing setter, or defining a setter
<T extends core::Object? = dynamic>() → Never d6 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:139:39: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var d6 = genericFunctionInlineClass.it = <T>() => throw ''; // Error, should
^^" in genericFunctionInlineClass{<unresolved>}.it = <T extends core::Object? = dynamic>() → Never => throw "";
^^" in genericFunctionInlineClass.{<unresolved>}it = <T extends core::Object? = dynamic>() → Never => throw "";
dynamic e1 = dynamicInlineClass as{Unchecked} dynamic;
invalid-type e2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:143:33: Error: The static type of the explicit instantiation operand must be a generic function type but is 'dynamic'.
Try changing the operand or remove the type arguments.
var e2 = dynamicInlineClass.it<int>; // Error
^";
dynamic e3 = (dynamicInlineClass as{Unchecked} dynamic){dynamic}.call();
dynamic e3 = (dynamicInlineClass as{Unchecked} dynamic){dynamic}();
core::String e4 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:145:31: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var e4 = dynamicInlineClass.it = '42'; // Error, should not resolve
^^" in dynamicInlineClass{<unresolved>}.it = "42";
^^" in dynamicInlineClass.{<unresolved>}it = "42";
core::int f1 = erroneousInlineClass as{Unchecked} core::int;
invalid-type f2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:149:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'int'.
Try changing the operand or remove the type arguments.
@ -614,7 +614,7 @@ Try changing the operand or remove the type arguments.
core::int f3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:150:33: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var f3 = erroneousInlineClass.a = 42; // Error, should not resolve
^" in erroneousInlineClass{<unresolved>}.a = 42;
^" in erroneousInlineClass.{<unresolved>}a = 42;
core::String g1 = erroneousInlineClass as{Unchecked} core::String;
invalid-type g2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:153:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'int'.
Try changing the operand or remove the type arguments.
@ -623,7 +623,7 @@ Try changing the operand or remove the type arguments.
core::String g3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:154:33: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var g3 = erroneousInlineClass.b = '42'; // Error, should not resolve
^" in erroneousInlineClass{<unresolved>}.b = "42";
^" in erroneousInlineClass.{<unresolved>}b = "42";
dynamic h1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:157:31: Error: The getter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named '_it'.
var h1 = privateInlineClass._it; // Error
@ -635,7 +635,7 @@ Try changing the operand or remove the type arguments.
core::int h3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:159:31: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var h3 = privateInlineClass._it = 42; // Error
^^^" in privateInlineClass{<unresolved>}._it = 42;
^^^" in privateInlineClass.{<unresolved>}_it = 42;
}
library;
@ -692,11 +692,11 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access_lib.dart:11:19: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var c1 = this._it = 42; // Error, should not resolve to extension method.
^^^" in #this{<unresolved>}._it = 42;
^^^" in #this.{<unresolved>}_it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access_lib.dart:12:14: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var c2 = _it = 42; // Error, should not resolve to extension method.
^^^" in #this{<unresolved>}._it = 42;
^^^" in #this.{<unresolved>}_it = 42;
}
static extension-type-member method PrivateInlineClass|get#test(lowered final self2::PrivateInlineClass /* = core::int */ #this) → () → void
return () → void => self2::PrivateInlineClass|test(#this);

View file

@ -343,11 +343,11 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:17:19: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:18:14: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
}
static extension-type-member method InlineClass|get#test(lowered final self::InlineClass /* = core::int */ #this) → () → void
return () → void => self::InlineClass|test(#this);
@ -371,11 +371,11 @@ Try changing the operand or remove the type arguments.
self::GenericInlineClass|test::T% c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:28:19: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
self::GenericInlineClass|test::T% c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:29:14: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
}
static extension-type-member method GenericInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|get#test::T%>% /* = self::GenericInlineClass|get#test::T% */ #this) → (self::GenericInlineClass|get#test::T%) → void
return (self::GenericInlineClass|get#test::T% t) → void => self::GenericInlineClass|test<self::GenericInlineClass|get#test::T%>(#this, t);
@ -399,11 +399,11 @@ Try changing the operand or remove the type arguments.
() → self::FunctionInlineClass|test::T% c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:39:19: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
() → self::FunctionInlineClass|test::T% c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:40:14: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
self::FunctionInlineClass|test::T% d1 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
self::FunctionInlineClass|test::T% d2 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
self::FunctionInlineClass|test::T% d3 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
@ -427,14 +427,14 @@ static extension-type-member method GenericFunctionInlineClass|test(lowered fina
dynamic c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:19: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:24: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
^^" in #this.{<unresolved>}it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:24: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 't'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^" in #this{<unresolved>}.t;
dynamic c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:14: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:19: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
^^" in #this.{<unresolved>}it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:19: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 't'.
var c2 = it = t; // Error, should not resolve to extension method.
^" in #this{<unresolved>}.t;
@ -467,13 +467,13 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:74:19: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:75:14: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
dynamic d1 = (#this as{Unchecked} dynamic){dynamic}.call();
dynamic d2 = (#this as{Unchecked} dynamic){dynamic}.call();
^^" in #this.{<unresolved>}it = 42;
dynamic d1 = (#this as{Unchecked} dynamic){dynamic}();
dynamic d2 = (#this as{Unchecked} dynamic){dynamic}();
dynamic d3 = (#this as{Unchecked} dynamic){dynamic}.call();
dynamic d4 = (#this as{Unchecked} dynamic){dynamic}.call();
}
@ -509,19 +509,19 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:93:19: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var c1 = this.a = 42; // Error
^" in #this{<unresolved>}.a = 42;
^" in #this.{<unresolved>}a = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:94:14: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var c2 = a = 42; // Error
^" in #this{<unresolved>}.a = 42;
^" in #this.{<unresolved>}a = 42;
core::String c3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:95:19: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var c3 = this.b = '42'; // Error
^" in #this{<unresolved>}.b = "42";
^" in #this.{<unresolved>}b = "42";
core::String c4 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:96:14: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var c4 = b = '42'; // Error
^" in #this{<unresolved>}.b = "42";
^" in #this.{<unresolved>}b = "42";
dynamic d1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:97:20: Error: The method 'call' isn't defined for the class 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'call'.
var d1 = this.a(); // Error
@ -566,7 +566,7 @@ Try changing the operand or remove the type arguments.
core::int a3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:119:24: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var a3 = inlineClass.it = 42; // Error,
^^" in inlineClass{<unresolved>}.it = 42;
^^" in inlineClass.{<unresolved>}it = 42;
core::String b1 = genericInlineClass as{Unchecked} core::String;
invalid-type b2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:123:33: Error: The static type of the explicit instantiation operand must be a generic function type but is 'String'.
Try changing the operand or remove the type arguments.
@ -575,7 +575,7 @@ Try changing the operand or remove the type arguments.
core::String b3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:124:31: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<String>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var b3 = genericInlineClass.it = '42'; // Error, should not
^^" in genericInlineClass{<unresolved>}.it = "42";
^^" in genericInlineClass.{<unresolved>}it = "42";
() → core::String c1 = functionInlineClass as{Unchecked} () → core::String;
invalid-type c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:128:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'String Function()'.
Try changing the operand or remove the type arguments.
@ -586,7 +586,7 @@ Try changing the operand or remove the type arguments.
() → core::String c5 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:131:32: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<String>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c5 = functionInlineClass.it = () => '42'; // Error, should not
^^" in functionInlineClass{<unresolved>}.it = () → core::String => "42";
^^" in functionInlineClass.{<unresolved>}it = () → core::String => "42";
<T extends core::Object? = dynamic>() → T% d1 = genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%;
() → core::int d2 = (genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%)<core::int>;
() → core::int d3 = (genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%)<core::int>;
@ -595,17 +595,17 @@ Try correcting the name to the name of an existing setter, or defining a setter
<T extends core::Object? = dynamic>() → Never d6 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:139:39: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var d6 = genericFunctionInlineClass.it = <T>() => throw ''; // Error, should
^^" in genericFunctionInlineClass{<unresolved>}.it = <T extends core::Object? = dynamic>() → Never => throw "";
^^" in genericFunctionInlineClass.{<unresolved>}it = <T extends core::Object? = dynamic>() → Never => throw "";
dynamic e1 = dynamicInlineClass as{Unchecked} dynamic;
invalid-type e2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:143:33: Error: The static type of the explicit instantiation operand must be a generic function type but is 'dynamic'.
Try changing the operand or remove the type arguments.
var e2 = dynamicInlineClass.it<int>; // Error
^";
dynamic e3 = (dynamicInlineClass as{Unchecked} dynamic){dynamic}.call();
dynamic e3 = (dynamicInlineClass as{Unchecked} dynamic){dynamic}();
core::String e4 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:145:31: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var e4 = dynamicInlineClass.it = '42'; // Error, should not resolve
^^" in dynamicInlineClass{<unresolved>}.it = "42";
^^" in dynamicInlineClass.{<unresolved>}it = "42";
core::int f1 = erroneousInlineClass as{Unchecked} core::int;
invalid-type f2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:149:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'int'.
Try changing the operand or remove the type arguments.
@ -614,7 +614,7 @@ Try changing the operand or remove the type arguments.
core::int f3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:150:33: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var f3 = erroneousInlineClass.a = 42; // Error, should not resolve
^" in erroneousInlineClass{<unresolved>}.a = 42;
^" in erroneousInlineClass.{<unresolved>}a = 42;
core::String g1 = erroneousInlineClass as{Unchecked} core::String;
invalid-type g2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:153:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'int'.
Try changing the operand or remove the type arguments.
@ -623,7 +623,7 @@ Try changing the operand or remove the type arguments.
core::String g3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:154:33: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var g3 = erroneousInlineClass.b = '42'; // Error, should not resolve
^" in erroneousInlineClass{<unresolved>}.b = "42";
^" in erroneousInlineClass.{<unresolved>}b = "42";
dynamic h1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:157:31: Error: The getter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named '_it'.
var h1 = privateInlineClass._it; // Error
@ -635,7 +635,7 @@ Try changing the operand or remove the type arguments.
core::int h3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:159:31: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var h3 = privateInlineClass._it = 42; // Error
^^^" in privateInlineClass{<unresolved>}._it = 42;
^^^" in privateInlineClass.{<unresolved>}_it = 42;
}
library;
@ -692,11 +692,11 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access_lib.dart:11:19: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var c1 = this._it = 42; // Error, should not resolve to extension method.
^^^" in #this{<unresolved>}._it = 42;
^^^" in #this.{<unresolved>}_it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access_lib.dart:12:14: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var c2 = _it = 42; // Error, should not resolve to extension method.
^^^" in #this{<unresolved>}._it = 42;
^^^" in #this.{<unresolved>}_it = 42;
}
static extension-type-member method PrivateInlineClass|get#test(lowered final self2::PrivateInlineClass /* = core::int */ #this) → () → void
return () → void => self2::PrivateInlineClass|test(#this);

View file

@ -343,11 +343,11 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:17:19: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:18:14: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
}
static extension-type-member method InlineClass|get#test(lowered final self::InlineClass /* = core::int */ #this) → () → void
return () → void => self::InlineClass|test(#this);
@ -371,11 +371,11 @@ Try changing the operand or remove the type arguments.
self::GenericInlineClass|test::T% c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:28:19: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
self::GenericInlineClass|test::T% c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:29:14: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
}
static extension-type-member method GenericInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|get#test::T%>% /* = self::GenericInlineClass|get#test::T% */ #this) → (self::GenericInlineClass|get#test::T%) → void
return (self::GenericInlineClass|get#test::T% t) → void => self::GenericInlineClass|test<self::GenericInlineClass|get#test::T%>(#this, t);
@ -399,11 +399,11 @@ Try changing the operand or remove the type arguments.
() → self::FunctionInlineClass|test::T% c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:39:19: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
() → self::FunctionInlineClass|test::T% c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:40:14: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<T>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = t;
^^" in #this.{<unresolved>}it = t;
self::FunctionInlineClass|test::T% d1 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
self::FunctionInlineClass|test::T% d2 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
self::FunctionInlineClass|test::T% d3 = (#this as{Unchecked} () → self::FunctionInlineClass|test::T%)(){() → self::FunctionInlineClass|test::T%};
@ -427,14 +427,14 @@ static extension-type-member method GenericFunctionInlineClass|test(lowered fina
dynamic c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:19: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:24: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
^^" in #this.{<unresolved>}it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:56:24: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 't'.
var c1 = this.it = t; // Error, should not resolve to extension method.
^" in #this{<unresolved>}.t;
dynamic c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:14: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = t; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:19: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
^^" in #this.{<unresolved>}it = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:57:19: Error: The getter 't' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 't'.
var c2 = it = t; // Error, should not resolve to extension method.
^" in #this{<unresolved>}.t;
@ -467,13 +467,13 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:74:19: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c1 = this.it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
^^" in #this.{<unresolved>}it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:75:14: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c2 = it = 42; // Error, should not resolve to extension method.
^^" in #this{<unresolved>}.it = 42;
dynamic d1 = (#this as{Unchecked} dynamic){dynamic}.call();
dynamic d2 = (#this as{Unchecked} dynamic){dynamic}.call();
^^" in #this.{<unresolved>}it = 42;
dynamic d1 = (#this as{Unchecked} dynamic){dynamic}();
dynamic d2 = (#this as{Unchecked} dynamic){dynamic}();
dynamic d3 = (#this as{Unchecked} dynamic){dynamic}.call();
dynamic d4 = (#this as{Unchecked} dynamic){dynamic}.call();
}
@ -509,19 +509,19 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:93:19: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var c1 = this.a = 42; // Error
^" in #this{<unresolved>}.a = 42;
^" in #this.{<unresolved>}a = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:94:14: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var c2 = a = 42; // Error
^" in #this{<unresolved>}.a = 42;
^" in #this.{<unresolved>}a = 42;
core::String c3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:95:19: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var c3 = this.b = '42'; // Error
^" in #this{<unresolved>}.b = "42";
^" in #this.{<unresolved>}b = "42";
core::String c4 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:96:14: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var c4 = b = '42'; // Error
^" in #this{<unresolved>}.b = "42";
^" in #this.{<unresolved>}b = "42";
dynamic d1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:97:20: Error: The method 'call' isn't defined for the class 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'call'.
var d1 = this.a(); // Error
@ -566,7 +566,7 @@ Try changing the operand or remove the type arguments.
core::int a3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:119:24: Error: The setter 'it' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var a3 = inlineClass.it = 42; // Error,
^^" in inlineClass{<unresolved>}.it = 42;
^^" in inlineClass.{<unresolved>}it = 42;
core::String b1 = genericInlineClass as{Unchecked} core::String;
invalid-type b2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:123:33: Error: The static type of the explicit instantiation operand must be a generic function type but is 'String'.
Try changing the operand or remove the type arguments.
@ -575,7 +575,7 @@ Try changing the operand or remove the type arguments.
core::String b3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:124:31: Error: The setter 'it' isn't defined for the class 'GenericInlineClass<String>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var b3 = genericInlineClass.it = '42'; // Error, should not
^^" in genericInlineClass{<unresolved>}.it = "42";
^^" in genericInlineClass.{<unresolved>}it = "42";
() → core::String c1 = functionInlineClass as{Unchecked} () → core::String;
invalid-type c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:128:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'String Function()'.
Try changing the operand or remove the type arguments.
@ -586,7 +586,7 @@ Try changing the operand or remove the type arguments.
() → core::String c5 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:131:32: Error: The setter 'it' isn't defined for the class 'FunctionInlineClass<String>'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var c5 = functionInlineClass.it = () => '42'; // Error, should not
^^" in functionInlineClass{<unresolved>}.it = () → core::String => "42";
^^" in functionInlineClass.{<unresolved>}it = () → core::String => "42";
<T extends core::Object? = dynamic>() → T% d1 = genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%;
() → core::int d2 = (genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%)<core::int>;
() → core::int d3 = (genericFunctionInlineClass as{Unchecked} <T extends core::Object? = dynamic>() → T%)<core::int>;
@ -595,17 +595,17 @@ Try correcting the name to the name of an existing setter, or defining a setter
<T extends core::Object? = dynamic>() → Never d6 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:139:39: Error: The setter 'it' isn't defined for the class 'GenericFunctionInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var d6 = genericFunctionInlineClass.it = <T>() => throw ''; // Error, should
^^" in genericFunctionInlineClass{<unresolved>}.it = <T extends core::Object? = dynamic>() → Never => throw "";
^^" in genericFunctionInlineClass.{<unresolved>}it = <T extends core::Object? = dynamic>() → Never => throw "";
dynamic e1 = dynamicInlineClass as{Unchecked} dynamic;
invalid-type e2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:143:33: Error: The static type of the explicit instantiation operand must be a generic function type but is 'dynamic'.
Try changing the operand or remove the type arguments.
var e2 = dynamicInlineClass.it<int>; // Error
^";
dynamic e3 = (dynamicInlineClass as{Unchecked} dynamic){dynamic}.call();
dynamic e3 = (dynamicInlineClass as{Unchecked} dynamic){dynamic}();
core::String e4 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:145:31: Error: The setter 'it' isn't defined for the class 'DynamicInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'it'.
var e4 = dynamicInlineClass.it = '42'; // Error, should not resolve
^^" in dynamicInlineClass{<unresolved>}.it = "42";
^^" in dynamicInlineClass.{<unresolved>}it = "42";
core::int f1 = erroneousInlineClass as{Unchecked} core::int;
invalid-type f2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:149:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'int'.
Try changing the operand or remove the type arguments.
@ -614,7 +614,7 @@ Try changing the operand or remove the type arguments.
core::int f3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:150:33: Error: The setter 'a' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'a'.
var f3 = erroneousInlineClass.a = 42; // Error, should not resolve
^" in erroneousInlineClass{<unresolved>}.a = 42;
^" in erroneousInlineClass.{<unresolved>}a = 42;
core::String g1 = erroneousInlineClass as{Unchecked} core::String;
invalid-type g2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:153:34: Error: The static type of the explicit instantiation operand must be a generic function type but is 'int'.
Try changing the operand or remove the type arguments.
@ -623,7 +623,7 @@ Try changing the operand or remove the type arguments.
core::String g3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:154:33: Error: The setter 'b' isn't defined for the class 'ErroneousInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'b'.
var g3 = erroneousInlineClass.b = '42'; // Error, should not resolve
^" in erroneousInlineClass{<unresolved>}.b = "42";
^" in erroneousInlineClass.{<unresolved>}b = "42";
dynamic h1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:157:31: Error: The getter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing getter, or defining a getter or field named '_it'.
var h1 = privateInlineClass._it; // Error
@ -635,7 +635,7 @@ Try changing the operand or remove the type arguments.
core::int h3 = invalid-expression "pkg/front_end/testcases/extension_types/field_access.dart:159:31: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var h3 = privateInlineClass._it = 42; // Error
^^^" in privateInlineClass{<unresolved>}._it = 42;
^^^" in privateInlineClass.{<unresolved>}_it = 42;
}
library;
@ -692,11 +692,11 @@ Try changing the operand or remove the type arguments.
core::int c1 = invalid-expression "pkg/front_end/testcases/extension_types/field_access_lib.dart:11:19: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var c1 = this._it = 42; // Error, should not resolve to extension method.
^^^" in #this{<unresolved>}._it = 42;
^^^" in #this.{<unresolved>}_it = 42;
core::int c2 = invalid-expression "pkg/front_end/testcases/extension_types/field_access_lib.dart:12:14: Error: The setter '_it' isn't defined for the class 'PrivateInlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named '_it'.
var c2 = _it = 42; // Error, should not resolve to extension method.
^^^" in #this{<unresolved>}._it = 42;
^^^" in #this.{<unresolved>}_it = 42;
}
static extension-type-member method PrivateInlineClass|get#test(lowered final self2::PrivateInlineClass /* = core::int */ #this) → () → void
return () → void => self2::PrivateInlineClass|test(#this);

View file

@ -43,5 +43,5 @@ static method test() → void {
invalid-expression "pkg/front_end/testcases/extension_types/issue53720.dart:14:9: Error: The setter 'm' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'm'.
E2(1).m = 10; /* Error */
^" in self::E2|constructor#(1){<unresolved>}.m = 10;
^" in self::E2|constructor#(1).{<unresolved>}m = 10;
}

View file

@ -43,5 +43,5 @@ static method test() → void {
invalid-expression "pkg/front_end/testcases/extension_types/issue53720.dart:14:9: Error: The setter 'm' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'm'.
E2(1).m = 10; /* Error */
^" in self::E2|constructor#(1){<unresolved>}.m = 10;
^" in self::E2|constructor#(1).{<unresolved>}m = 10;
}

View file

@ -43,5 +43,5 @@ static method test() → void {
invalid-expression "pkg/front_end/testcases/extension_types/issue53720.dart:14:9: Error: The setter 'm' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'm'.
E2(1).m = 10; /* Error */
^" in self::E2|constructor#(1){<unresolved>}.m = 10;
^" in self::E2|constructor#(1).{<unresolved>}m = 10;
}

View file

@ -43,5 +43,5 @@ static method test() → void {
invalid-expression "pkg/front_end/testcases/extension_types/issue53720.dart:14:9: Error: The setter 'm' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'm'.
E2(1).m = 10; /* Error */
^" in self::E2|constructor#(1){<unresolved>}.m = 10;
^" in self::E2|constructor#(1).{<unresolved>}m = 10;
}

View file

@ -43,5 +43,5 @@ static method test() → void {
invalid-expression "pkg/front_end/testcases/extension_types/issue53720.dart:14:9: Error: The setter 'm' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'm'.
E2(1).m = 10; /* Error */
^" in self::E2|constructor#(1){<unresolved>}.m = 10;
^" in self::E2|constructor#(1).{<unresolved>}m = 10;
}

View file

@ -67,7 +67,7 @@ static method test() → void {
invalid-expression "pkg/front_end/testcases/extension_types/issue53720_2.dart:22:6: Error: The setter 'm1' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'm1'.
e2.m1 = 10; // Compile-time error.
^^" in e2{<unresolved>}.m1 = 10;
^^" in e2.{<unresolved>}m1 = 10;
self::E2|set#m2(e2, 10);
invalid-expression "pkg/front_end/testcases/extension_types/issue53720_2.dart:24:6: Error: The method 'm2' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing method, or defining a method named 'm2'.

View file

@ -67,7 +67,7 @@ static method test() → void {
invalid-expression "pkg/front_end/testcases/extension_types/issue53720_2.dart:22:6: Error: The setter 'm1' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'm1'.
e2.m1 = 10; // Compile-time error.
^^" in e2{<unresolved>}.m1 = 10;
^^" in e2.{<unresolved>}m1 = 10;
self::E2|set#m2(e2, 10);
invalid-expression "pkg/front_end/testcases/extension_types/issue53720_2.dart:24:6: Error: The method 'm2' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing method, or defining a method named 'm2'.

View file

@ -67,7 +67,7 @@ static method test() → void {
invalid-expression "pkg/front_end/testcases/extension_types/issue53720_2.dart:22:6: Error: The setter 'm1' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'm1'.
e2.m1 = 10; // Compile-time error.
^^" in e2{<unresolved>}.m1 = 10;
^^" in e2.{<unresolved>}m1 = 10;
self::E2|set#m2(e2, 10);
invalid-expression "pkg/front_end/testcases/extension_types/issue53720_2.dart:24:6: Error: The method 'm2' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing method, or defining a method named 'm2'.

View file

@ -67,7 +67,7 @@ static method test() → void {
invalid-expression "pkg/front_end/testcases/extension_types/issue53720_2.dart:22:6: Error: The setter 'm1' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'm1'.
e2.m1 = 10; // Compile-time error.
^^" in e2{<unresolved>}.m1 = 10;
^^" in e2.{<unresolved>}m1 = 10;
self::E2|set#m2(e2, 10);
invalid-expression "pkg/front_end/testcases/extension_types/issue53720_2.dart:24:6: Error: The method 'm2' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing method, or defining a method named 'm2'.

View file

@ -67,7 +67,7 @@ static method test() → void {
invalid-expression "pkg/front_end/testcases/extension_types/issue53720_2.dart:22:6: Error: The setter 'm1' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'm1'.
e2.m1 = 10; // Compile-time error.
^^" in e2{<unresolved>}.m1 = 10;
^^" in e2.{<unresolved>}m1 = 10;
self::E2|set#m2(e2, 10);
invalid-expression "pkg/front_end/testcases/extension_types/issue53720_2.dart:24:6: Error: The method 'm2' isn't defined for the class 'E2'.
Try correcting the name to the name of an existing method, or defining a method named 'm2'.

View file

@ -93,11 +93,11 @@ Try correcting the name to the name of an existing getter, or defining a getter
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:29:10: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
this.getter = 42; // Error, should not resolve to extension method.
^^^^^^" in #this{<unresolved>}.getter = 42;
^^^^^^" in #this.{<unresolved>}getter = 42;
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:30:5: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
getter = 42; // Error, should not resolve to extension method.
^^^^^^" in #this{<unresolved>}.getter = 42;
^^^^^^" in #this.{<unresolved>}getter = 42;
core::int i1 = self::InlineClass|method(#this);
core::int i2 = self::InlineClass|method(#this);
core::num j1 = self::InlineClass|genericMethod<core::num>(#this, 0);
@ -151,7 +151,7 @@ Try correcting the name to the name of an existing getter, or defining a getter
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:74:6: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
ic.getter = 42; // Error, should not resolve to extension method.
^^^^^^" in ic{<unresolved>}.getter = 42;
^^^^^^" in ic.{<unresolved>}getter = 42;
core::int i = self::InlineClass|method(ic);
core::num j = self::InlineClass|genericMethod<core::num>(ic, 0);
core::int k = self::InlineClass|genericMethod<core::int>(ic, 0);

View file

@ -93,11 +93,11 @@ Try correcting the name to the name of an existing getter, or defining a getter
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:29:10: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
this.getter = 42; // Error, should not resolve to extension method.
^^^^^^" in #this{<unresolved>}.getter = 42;
^^^^^^" in #this.{<unresolved>}getter = 42;
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:30:5: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
getter = 42; // Error, should not resolve to extension method.
^^^^^^" in #this{<unresolved>}.getter = 42;
^^^^^^" in #this.{<unresolved>}getter = 42;
core::int i1 = self::InlineClass|method(#this);
core::int i2 = self::InlineClass|method(#this);
core::num j1 = self::InlineClass|genericMethod<core::num>(#this, 0);
@ -151,7 +151,7 @@ Try correcting the name to the name of an existing getter, or defining a getter
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:74:6: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
ic.getter = 42; // Error, should not resolve to extension method.
^^^^^^" in ic{<unresolved>}.getter = 42;
^^^^^^" in ic.{<unresolved>}getter = 42;
core::int i = self::InlineClass|method(ic);
core::num j = self::InlineClass|genericMethod<core::num>(ic, 0);
core::int k = self::InlineClass|genericMethod<core::int>(ic, 0);

View file

@ -93,11 +93,11 @@ Try correcting the name to the name of an existing getter, or defining a getter
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:29:10: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
this.getter = 42; // Error, should not resolve to extension method.
^^^^^^" in #this{<unresolved>}.getter = 42;
^^^^^^" in #this.{<unresolved>}getter = 42;
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:30:5: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
getter = 42; // Error, should not resolve to extension method.
^^^^^^" in #this{<unresolved>}.getter = 42;
^^^^^^" in #this.{<unresolved>}getter = 42;
core::int i1 = self::InlineClass|method(#this);
core::int i2 = self::InlineClass|method(#this);
core::num j1 = self::InlineClass|genericMethod<core::num>(#this, 0);
@ -151,7 +151,7 @@ Try correcting the name to the name of an existing getter, or defining a getter
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:74:6: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
ic.getter = 42; // Error, should not resolve to extension method.
^^^^^^" in ic{<unresolved>}.getter = 42;
^^^^^^" in ic.{<unresolved>}getter = 42;
core::int i = self::InlineClass|method(ic);
core::num j = self::InlineClass|genericMethod<core::num>(ic, 0);
core::int k = self::InlineClass|genericMethod<core::int>(ic, 0);

View file

@ -93,11 +93,11 @@ Try correcting the name to the name of an existing getter, or defining a getter
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:29:10: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
this.getter = 42; // Error, should not resolve to extension method.
^^^^^^" in #this{<unresolved>}.getter = 42;
^^^^^^" in #this.{<unresolved>}getter = 42;
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:30:5: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
getter = 42; // Error, should not resolve to extension method.
^^^^^^" in #this{<unresolved>}.getter = 42;
^^^^^^" in #this.{<unresolved>}getter = 42;
core::int i1 = self::InlineClass|method(#this);
core::int i2 = self::InlineClass|method(#this);
core::num j1 = self::InlineClass|genericMethod<core::num>(#this, 0);
@ -151,7 +151,7 @@ Try correcting the name to the name of an existing getter, or defining a getter
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:74:6: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
ic.getter = 42; // Error, should not resolve to extension method.
^^^^^^" in ic{<unresolved>}.getter = 42;
^^^^^^" in ic.{<unresolved>}getter = 42;
core::int i = self::InlineClass|method(ic);
core::num j = self::InlineClass|genericMethod<core::num>(ic, 0);
core::int k = self::InlineClass|genericMethod<core::int>(ic, 0);

View file

@ -93,11 +93,11 @@ Try correcting the name to the name of an existing getter, or defining a getter
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:29:10: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
this.getter = 42; // Error, should not resolve to extension method.
^^^^^^" in #this{<unresolved>}.getter = 42;
^^^^^^" in #this.{<unresolved>}getter = 42;
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:30:5: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
getter = 42; // Error, should not resolve to extension method.
^^^^^^" in #this{<unresolved>}.getter = 42;
^^^^^^" in #this.{<unresolved>}getter = 42;
core::int i1 = self::InlineClass|method(#this);
core::int i2 = self::InlineClass|method(#this);
core::num j1 = self::InlineClass|genericMethod<core::num>(#this, 0);
@ -151,7 +151,7 @@ Try correcting the name to the name of an existing getter, or defining a getter
invalid-expression "pkg/front_end/testcases/extension_types/method_access.dart:74:6: Error: The setter 'getter' isn't defined for the class 'InlineClass'.
Try correcting the name to the name of an existing setter, or defining a setter or field named 'getter'.
ic.getter = 42; // Error, should not resolve to extension method.
^^^^^^" in ic{<unresolved>}.getter = 42;
^^^^^^" in ic.{<unresolved>}getter = 42;
core::int i = self::InlineClass|method(ic);
core::num j = self::InlineClass|genericMethod<core::num>(ic, 0);
core::int k = self::InlineClass|genericMethod<core::int>(ic, 0);

View file

@ -225,12 +225,12 @@ Try using an explicit extension application of the wanted extension or hiding un
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.getter = 42;
^^^^^^" in c{<unresolved>}.getter = 42;
^^^^^^" in c.{<unresolved>}getter = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:33:5: Error: The property 'setter' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.setter = 42;
^^^^^^" in c{<unresolved>}.setter = 42;
^^^^^^" in c.{<unresolved>}setter = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:34:5: Error: The property 'property' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
@ -240,7 +240,7 @@ Try using an explicit extension application of the wanted extension or hiding un
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.property = 42;
^^^^^^^^" in c{<unresolved>}.property = 42;
^^^^^^^^" in c.{<unresolved>}property = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:36:5: Error: The operator '+' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.

View file

@ -225,12 +225,12 @@ Try using an explicit extension application of the wanted extension or hiding un
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.getter = 42;
^^^^^^" in c{<unresolved>}.getter = 42;
^^^^^^" in c.{<unresolved>}getter = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:33:5: Error: The property 'setter' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.setter = 42;
^^^^^^" in c{<unresolved>}.setter = 42;
^^^^^^" in c.{<unresolved>}setter = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:34:5: Error: The property 'property' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
@ -240,7 +240,7 @@ Try using an explicit extension application of the wanted extension or hiding un
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.property = 42;
^^^^^^^^" in c{<unresolved>}.property = 42;
^^^^^^^^" in c.{<unresolved>}property = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:36:5: Error: The operator '+' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.

View file

@ -225,12 +225,12 @@ Try using an explicit extension application of the wanted extension or hiding un
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.getter = 42;
^^^^^^" in c{<unresolved>}.getter = 42;
^^^^^^" in c.{<unresolved>}getter = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:33:5: Error: The property 'setter' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.setter = 42;
^^^^^^" in c{<unresolved>}.setter = 42;
^^^^^^" in c.{<unresolved>}setter = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:34:5: Error: The property 'property' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
@ -240,7 +240,7 @@ Try using an explicit extension application of the wanted extension or hiding un
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.property = 42;
^^^^^^^^" in c{<unresolved>}.property = 42;
^^^^^^^^" in c.{<unresolved>}property = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:36:5: Error: The operator '+' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.

View file

@ -225,12 +225,12 @@ Try using an explicit extension application of the wanted extension or hiding un
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.getter = 42;
^^^^^^" in c{<unresolved>}.getter = 42;
^^^^^^" in c.{<unresolved>}getter = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:33:5: Error: The property 'setter' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.setter = 42;
^^^^^^" in c{<unresolved>}.setter = 42;
^^^^^^" in c.{<unresolved>}setter = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:34:5: Error: The property 'property' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
@ -240,7 +240,7 @@ Try using an explicit extension application of the wanted extension or hiding un
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.property = 42;
^^^^^^^^" in c{<unresolved>}.property = 42;
^^^^^^^^" in c.{<unresolved>}property = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:36:5: Error: The operator '+' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.

View file

@ -225,12 +225,12 @@ Try using an explicit extension application of the wanted extension or hiding un
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.getter = 42;
^^^^^^" in c{<unresolved>}.getter = 42;
^^^^^^" in c.{<unresolved>}getter = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:33:5: Error: The property 'setter' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.setter = 42;
^^^^^^" in c{<unresolved>}.setter = 42;
^^^^^^" in c.{<unresolved>}setter = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:34:5: Error: The property 'property' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
@ -240,7 +240,7 @@ Try using an explicit extension application of the wanted extension or hiding un
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
c.property = 42;
^^^^^^^^" in c{<unresolved>}.property = 42;
^^^^^^^^" in c.{<unresolved>}property = 42;
invalid-expression "pkg/front_end/testcases/extensions/ambiguous.dart:36:5: Error: The operator '+' is defined in multiple extensions for 'C' and neither is more specific.
- 'C' is from 'pkg/front_end/testcases/extensions/ambiguous.dart'.
Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.

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