blob: ef8e0d2faa98a2b3510375c4b418a133a0cdffe3 [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/dart2js/abstract_tear_off.dart:15:9: Error: Constructors on abstract classes can't be torn off.
// Class.new; // Error
// ^^^
//
// pkg/front_end/testcases/dart2js/abstract_tear_off.dart:17:5: Error: Constructors on abstract classes can't be torn off.
// F.new; // Error
// ^^^
//
import self as self;
import "dart:core" as core;
typedef F<unrelated T extends core::Object? = dynamic> = self::Class;
abstract class Class extends core::Object {
constructor •() self::Class
: super core::Object::•()
;
static factory redirect() self::Class /* redirection-target: self::ClassImpl::• */
return new self::ClassImpl::•();
static method _#redirect#tearOff() → self::Class
return new self::ClassImpl::•();
}
class ClassImpl extends core::Object implements self::Class {
synthetic constructor •() self::ClassImpl
: super core::Object::•()
;
static method _#new#tearOff() → self::ClassImpl
return new self::ClassImpl::•();
}
static method test() dynamic {
invalid-expression "pkg/front_end/testcases/dart2js/abstract_tear_off.dart:15:9: Error: Constructors on abstract classes can't be torn off.
Class.new; // Error
^^^";
#C1;
invalid-expression "pkg/front_end/testcases/dart2js/abstract_tear_off.dart:17:5: Error: Constructors on abstract classes can't be torn off.
F.new; // Error
^^^";
#C2;
}
static method _#F#redirect#tearOff<unrelated T extends core::Object? = dynamic>() → self::Class
return self::Class::_#redirect#tearOff();
constants {
#C1 = static-tearoff self::Class::_#redirect#tearOff
#C2 = static-tearoff self::_#F#redirect#tearOff
}