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::•()
    ;
}
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>(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<BottomType> #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 core::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}";
  }
}
