c191551fac
TEST=Covered by existing tests. Change-Id: Ied8be1874164e68e0a3a48e1b2f9a33310071381 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/183009 Commit-Queue: Dmitry Stefantsov <dmitryas@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com>
44 lines
3.1 KiB
Plaintext
44 lines
3.1 KiB
Plaintext
library;
|
|
//
|
|
// Problems in library:
|
|
//
|
|
// pkg/front_end/testcases/extensions/extension_setter_error.dart:13:41: Error: A value of type 'GenericClass<int>' can't be assigned to a variable of type 'GenericClass<double>'.
|
|
// - 'GenericClass' is from 'pkg/front_end/testcases/extensions/extension_setter_error.dart'.
|
|
// expect(null, GenericExtension<double>(genericClass).setter = null);
|
|
// ^
|
|
//
|
|
import self as self;
|
|
import "dart:core" as core;
|
|
|
|
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 GenericExtension<T extends core::Object* = dynamic> on self::GenericClass<T*>* {
|
|
set setter = self::GenericExtension|set#setter;
|
|
}
|
|
static method GenericExtension|set#setter<T extends core::Object* = dynamic>(lowered final self::GenericClass<self::GenericExtension|set#setter::T*>* #this, self::GenericExtension|set#setter::T* value) → void {}
|
|
static method error() → dynamic {
|
|
self::GenericClass<core::int*>* genericClass = new self::GenericClass::•<core::int*>();
|
|
self::expect(null, let final self::GenericClass<core::int*>* #t1 = let final Never* #t2 = invalid-expression "pkg/front_end/testcases/extensions/extension_setter_error.dart:13:41: Error: A value of type 'GenericClass<int>' can't be assigned to a variable of type 'GenericClass<double>'.
|
|
- 'GenericClass' is from 'pkg/front_end/testcases/extensions/extension_setter_error.dart'.
|
|
expect(null, GenericExtension<double>(genericClass).setter = null);
|
|
^" in genericClass as{TypeError} self::GenericClass<core::double*>* in let final Null #t3 = null in let final void #t4 = self::GenericExtension|set#setter<core::double*>(#t1, #t3) in #t3);
|
|
}
|
|
static method expect(dynamic expected, dynamic actual) → dynamic {
|
|
if(!expected.{core::Object::==}(actual)) {
|
|
throw "Mismatch: expected=${expected}, actual=${actual}";
|
|
}
|
|
}
|