d6b79dab6c
Closes #45204. Bug: https://github.com/dart-lang/sdk/issues/45204 Change-Id: I5295704a8d470e639fe346dbbbf80ad28ff614a6 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190520 Commit-Queue: Dmitry Stefantsov <dmitryas@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com>
255 lines
16 KiB
Plaintext
255 lines
16 KiB
Plaintext
library;
|
|
//
|
|
// Problems in library:
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:23:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
// Extension().method(null);
|
|
// ^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:24:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
// Extension(c1, null).method(null);
|
|
// ^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:25:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
// Extension(receiver: c1).method(null);
|
|
// ^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:26:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
// Extension(c1, receiver: null).method(null);
|
|
// ^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:27:3: Error: Explicit extension application of extension 'Extension' takes '0' type argument(s).
|
|
// Extension<int>(c1).method(null);
|
|
// ^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:29:17: Error: Getter not found: 'foo'.
|
|
// Extension(c1).foo;
|
|
// ^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:30:17: Error: Setter not found: 'foo'.
|
|
// Extension(c1).foo = null;
|
|
// ^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:31:17: Error: Method not found: 'foo'.
|
|
// Extension(c1).foo();
|
|
// ^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:32:17: Error: Too few positional arguments: 1 required, 0 given.
|
|
// Extension(c1).method();
|
|
// ^
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:8:3: Context: Found this candidate, but the arguments don't match.
|
|
// method(a) {}
|
|
// ^^^^^^^^^^^^^...
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:36:17: Error: Too many positional arguments: 1 allowed, but 2 found.
|
|
// Try removing the extra positional arguments.
|
|
// Extension(c1).method(1, 2);
|
|
// ^
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:8:3: Context: Found this candidate, but the arguments don't match.
|
|
// method(a) {}
|
|
// ^^^^^^^^^^^^^...
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:37:17: Error: Too few positional arguments: 1 required, 0 given.
|
|
// Extension(c1).method(a: 1);
|
|
// ^
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:8:3: Context: Found this candidate, but the arguments don't match.
|
|
// method(a) {}
|
|
// ^^^^^^^^^^^^^...
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:38:27: Error: No named parameter with the name 'a'.
|
|
// Extension(c1).method(1, a: 2);
|
|
// ^
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:8:3: Context: Found this candidate, but the arguments don't match.
|
|
// method(a) {}
|
|
// ^^^^^^^^^^^^^...
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:39:17: Error: Expected 0 type arguments.
|
|
// Extension(c1).method<int>(null);
|
|
// ^
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:8:3: Context: Found this candidate, but the arguments don't match.
|
|
// method(a) {}
|
|
// ^^^^^^^^^^^^^...
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:42:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
// GenericExtension().method();
|
|
// ^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:43:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
// GenericExtension<int>().method();
|
|
// ^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:44:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
// GenericExtension(c2, null).method();
|
|
// ^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:45:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
// GenericExtension<int>(c2, null).method();
|
|
// ^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:46:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
// GenericExtension(receiver: c2).method();
|
|
// ^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:47:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
// GenericExtension<int>(receiver: c2).method();
|
|
// ^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:48:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
// GenericExtension(c2, receiver: null).method();
|
|
// ^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:49:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
// GenericExtension<int>(c2, receiver: null).method();
|
|
// ^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:50:3: Error: Explicit extension application of extension 'GenericExtension' takes '1' type argument(s).
|
|
// GenericExtension<int, String>(c2).method();
|
|
// ^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:28:13: Error: The argument type 'String' can't be assigned to the parameter type 'Class'.
|
|
// - 'Class' is from 'pkg/front_end/testcases/extensions/invalid_explicit_access.dart'.
|
|
// Extension(s).method(null);
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:51:20: Error: The argument type 'String' can't be assigned to the parameter type 'GenericClass<dynamic>'.
|
|
// - 'GenericClass' is from 'pkg/front_end/testcases/extensions/invalid_explicit_access.dart'.
|
|
// GenericExtension(s).method();
|
|
// ^
|
|
//
|
|
// pkg/front_end/testcases/extensions/invalid_explicit_access.dart:52:25: Error: The argument type 'String' can't be assigned to the parameter type 'GenericClass<int>'.
|
|
// - 'GenericClass' is from 'pkg/front_end/testcases/extensions/invalid_explicit_access.dart'.
|
|
// GenericExtension<int>(s).method();
|
|
// ^
|
|
//
|
|
import self as self;
|
|
import "dart:core" as core;
|
|
|
|
class Class extends core::Object {
|
|
synthetic constructor •() → self::Class*
|
|
: super core::Object::•()
|
|
;
|
|
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
|
|
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
|
|
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
|
|
abstract member-signature method toString() → core::String*; -> core::Object::toString
|
|
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
|
|
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
|
|
}
|
|
class GenericClass<T extends core::Object* = dynamic> extends core::Object {
|
|
synthetic constructor •() → self::GenericClass<self::GenericClass::T*>*
|
|
: super core::Object::•()
|
|
;
|
|
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
|
|
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
|
|
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
|
|
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
|
|
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
|
|
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
|
|
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
|
|
abstract member-signature method toString() → core::String*; -> core::Object::toString
|
|
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
|
|
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
|
|
}
|
|
extension Extension on self::Class* {
|
|
method method = self::Extension|method;
|
|
tearoff method = self::Extension|get#method;
|
|
}
|
|
extension GenericExtension<T extends core::Object* = dynamic> on self::GenericClass<T*>* {
|
|
method method = self::GenericExtension|method;
|
|
tearoff method = self::GenericExtension|get#method;
|
|
}
|
|
static method Extension|method(lowered final self::Class* #this, dynamic a) → dynamic {}
|
|
static method Extension|get#method(lowered final self::Class* #this) → (dynamic) →* dynamic
|
|
return (dynamic a) → dynamic => self::Extension|method(#this, a);
|
|
static method GenericExtension|method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|method::T*>* #this) → dynamic {}
|
|
static method GenericExtension|get#method<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|get#method::T*>* #this) → () →* dynamic
|
|
return () → dynamic => self::GenericExtension|method<self::GenericExtension|get#method::T*>(#this);
|
|
static method main() → dynamic {
|
|
core::String* s = "";
|
|
self::Class* c1 = new self::Class::•();
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:23:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
Extension().method(null);
|
|
^^^^^^^^^".method(null);
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:24:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
Extension(c1, null).method(null);
|
|
^^^^^^^^^".method(null);
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:25:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
Extension(receiver: c1).method(null);
|
|
^^^^^^^^^".method(null);
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:26:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
Extension(c1, receiver: null).method(null);
|
|
^^^^^^^^^".method(null);
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:27:3: Error: Explicit extension application of extension 'Extension' takes '0' type argument(s).
|
|
Extension<int>(c1).method(null);
|
|
^^^^^^^^^".method(null);
|
|
self::Extension|method(let final Never* #t1 = invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:28:13: Error: The argument type 'String' can't be assigned to the parameter type 'Class'.
|
|
- 'Class' is from 'pkg/front_end/testcases/extensions/invalid_explicit_access.dart'.
|
|
Extension(s).method(null);
|
|
^" in s as{TypeError} self::Class*, null);
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:29:17: Error: Getter not found: 'foo'.
|
|
Extension(c1).foo;
|
|
^^^";
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:30:17: Error: Setter not found: 'foo'.
|
|
Extension(c1).foo = null;
|
|
^^^";
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:31:17: Error: Method not found: 'foo'.
|
|
Extension(c1).foo();
|
|
^^^";
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:32:17: Error: Too few positional arguments: 1 required, 0 given.
|
|
Extension(c1).method();
|
|
^";
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:36:17: Error: Too many positional arguments: 1 allowed, but 2 found.
|
|
Try removing the extra positional arguments.
|
|
Extension(c1).method(1, 2);
|
|
^";
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:37:17: Error: Too few positional arguments: 1 required, 0 given.
|
|
Extension(c1).method(a: 1);
|
|
^";
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:38:27: Error: No named parameter with the name 'a'.
|
|
Extension(c1).method(1, a: 2);
|
|
^";
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:39:17: Error: Expected 0 type arguments.
|
|
Extension(c1).method<int>(null);
|
|
^";
|
|
self::GenericClass<core::int*>* c2 = new self::GenericClass::•<core::int*>();
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:42:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
GenericExtension().method();
|
|
^^^^^^^^^^^^^^^^".method();
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:43:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
GenericExtension<int>().method();
|
|
^^^^^^^^^^^^^^^^".method();
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:44:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
GenericExtension(c2, null).method();
|
|
^^^^^^^^^^^^^^^^".method();
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:45:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
GenericExtension<int>(c2, null).method();
|
|
^^^^^^^^^^^^^^^^".method();
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:46:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
GenericExtension(receiver: c2).method();
|
|
^^^^^^^^^^^^^^^^".method();
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:47:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
GenericExtension<int>(receiver: c2).method();
|
|
^^^^^^^^^^^^^^^^".method();
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:48:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
GenericExtension(c2, receiver: null).method();
|
|
^^^^^^^^^^^^^^^^".method();
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:49:3: Error: Explicit extension application requires exactly 1 positional argument.
|
|
GenericExtension<int>(c2, receiver: null).method();
|
|
^^^^^^^^^^^^^^^^".method();
|
|
invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:50:3: Error: Explicit extension application of extension 'GenericExtension' takes '1' type argument(s).
|
|
GenericExtension<int, String>(c2).method();
|
|
^^^^^^^^^^^^^^^^".method();
|
|
self::GenericExtension|method<dynamic>(let final Never* #t2 = invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:51:20: Error: The argument type 'String' can't be assigned to the parameter type 'GenericClass<dynamic>'.
|
|
- 'GenericClass' is from 'pkg/front_end/testcases/extensions/invalid_explicit_access.dart'.
|
|
GenericExtension(s).method();
|
|
^" in s as{TypeError} self::GenericClass<dynamic>*);
|
|
self::GenericExtension|method<core::int*>(let final Never* #t3 = invalid-expression "pkg/front_end/testcases/extensions/invalid_explicit_access.dart:52:25: Error: The argument type 'String' can't be assigned to the parameter type 'GenericClass<int>'.
|
|
- 'GenericClass' is from 'pkg/front_end/testcases/extensions/invalid_explicit_access.dart'.
|
|
GenericExtension<int>(s).method();
|
|
^" in s as{TypeError} self::GenericClass<core::int*>*);
|
|
}
|