blob: d45bb33ae7313229f7d899fa97b2d9c50126bf3e [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/extension_types/implement_all.dart:33:44: Error: Type 'void' can't be used here.
// Try removing 'void' keyword or replace it with 'var', 'final', or a type.
// extension type ET_Void(Null it) implements void /* Error */ {}
// ^^^^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:33:44: Error: Type 'void' not found.
// extension type ET_Void(Null it) implements void /* Error */ {}
// ^^^^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:57:48: Error: 'Extension' isn't a type.
// extension type ET_Extension(int it) implements Extension /* Error */ {}
// ^^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:29:44: Error: The type 'Null' can't be implemented by an extension type.
// extension type ET_Null(Null it) implements Null /* Error */ {}
// ^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:31:50: Error: The type 'dynamic' can't be implemented by an extension type.
// extension type ET_Dynamic(dynamic it) implements dynamic /* Error */ {}
// ^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:33:44: Error: The type 'void' can't be implemented by an extension type.
// extension type ET_Void(Null it) implements void /* Error */ {}
// ^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:35:46: Error: The type 'Never' can't be implemented by an extension type.
// extension type ET_Never(Never it) implements Never /* Error */ {}
// ^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:35:31: Error: The representation type can't be a bottom type.
// extension type ET_Never(Never it) implements Never /* Error */ {}
// ^^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:39:48: Error: The type 'Record' can't be implemented by an extension type.
// extension type ET_Record(Record it) implements Record /* Error */ {}
// ^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:41:56: Error: The type 'RecordType' which is an alias of '(int, String)' can't be implemented by an extension type.
// extension type ET_RecordType(RecordType it) implements RecordType /* Error */ {}
// ^
// pkg/front_end/testcases/extension_types/implement_all.dart:7:9: Context: The issue arises via this type alias.
// typedef RecordType = (int, String);
// ^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:43:52: Error: The type 'Function' can't be implemented by an extension type.
// extension type ET_Function(Function it) implements Function /* Error */ {}
// ^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:46:16: Error: The type 'FunctionType' which is an alias of 'void Function()' can't be implemented by an extension type.
// implements FunctionType /* Error */ {}
// ^
// pkg/front_end/testcases/extension_types/implement_all.dart:9:9: Context: The issue arises via this type alias.
// typedef FunctionType = void Function();
// ^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:49:16: Error: The type 'NullableInterfaceType' which is an alias of 'String?' can't be implemented by an extension type because it is nullable.
// implements NullableInterfaceType /* Error */ {}
// ^
// pkg/front_end/testcases/extension_types/implement_all.dart:11:9: Context: The issue arises via this type alias.
// typedef NullableInterfaceType = String?;
// ^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:52:16: Error: The type 'NullableExtensionType' which is an alias of 'ExtensionType?' can't be implemented by an extension type because it is nullable.
// implements NullableExtensionType /* Error */ {}
// ^
// pkg/front_end/testcases/extension_types/implement_all.dart:13:9: Context: The issue arises via this type alias.
// typedef NullableExtensionType = ExtensionType?;
// ^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:55:16: Error: The type 'FutureOr<int>' can't be implemented by an extension type.
// implements FutureOr<int> /* Error */ {}
// ^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:57:48: Error: The type 'Extension' can't be implemented by an extension type.
// extension type ET_Extension(int it) implements Extension /* Error */ {}
// ^
//
// pkg/front_end/testcases/extension_types/implement_all.dart:59:52: Error: The type variable 'T' can't be implemented by an extension type.
// extension type ET_TypeVariable<T>(T it) implements T /* Error */ {}
// ^
//
import self as self;
import "dart:core" as core;
import "dart:async";
typedef RecordType = (core::int, core::String);
typedef FunctionType = () void;
typedef NullableInterfaceType = core::String?;
typedef NullableExtensionType = self::ExtensionType? /* erasure=core::int? */;
typedef Alias = self::Class;
typedef GenericAlias<T extends core::Object? = dynamic> = self::GenericClass<T%>;
class Class extends core::Object {
synthetic constructor •() self::Class
: super core::Object::•()
;
}
class GenericClass<T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() self::GenericClass<self::GenericClass::T%>
: super core::Object::•()
;
}
extension Extension on core::int {
}
extension type ExtensionType(core::int it) {
abstract extension-type-member representation-field get it() core::int;
constructor = self::ExtensionType|constructor#;
constructor tearoff = self::ExtensionType|constructor#_#new#tearOff;
}
extension type GenericExtensionType<T extends core::Object? = dynamic>(T% it) {
abstract extension-type-member representation-field get it() T%;
constructor = self::GenericExtensionType|constructor#;
constructor tearoff = self::GenericExtensionType|constructor#_#new#tearOff;
}
extension type ET_Null(Null it) {
abstract extension-type-member representation-field get it() Null;
constructor = self::ET_Null|constructor#;
constructor tearoff = self::ET_Null|constructor#_#new#tearOff;
}
extension type ET_Dynamic(dynamic it) {
abstract extension-type-member representation-field get it() dynamic;
constructor = self::ET_Dynamic|constructor#;
constructor tearoff = self::ET_Dynamic|constructor#_#new#tearOff;
}
extension type ET_Void(Null it) {
abstract extension-type-member representation-field get it() Null;
constructor = self::ET_Void|constructor#;
constructor tearoff = self::ET_Void|constructor#_#new#tearOff;
}
extension type ET_Never(invalid-type it) {
abstract extension-type-member representation-field get it() Never;
constructor = self::ET_Never|constructor#;
constructor tearoff = self::ET_Never|constructor#_#new#tearOff;
}
extension type ET_Object(core::Object it) implements core::Object {
abstract extension-type-member representation-field get it() core::Object;
constructor = self::ET_Object|constructor#;
constructor tearoff = self::ET_Object|constructor#_#new#tearOff;
}
extension type ET_Record(core::Record it) {
abstract extension-type-member representation-field get it() core::Record;
constructor = self::ET_Record|constructor#;
constructor tearoff = self::ET_Record|constructor#_#new#tearOff;
}
extension type ET_RecordType((core::int, core::String) it) {
abstract extension-type-member representation-field get it() (core::int, core::String);
constructor = self::ET_RecordType|constructor#;
constructor tearoff = self::ET_RecordType|constructor#_#new#tearOff;
}
extension type ET_Function(core::Function it) {
abstract extension-type-member representation-field get it() core::Function;
constructor = self::ET_Function|constructor#;
constructor tearoff = self::ET_Function|constructor#_#new#tearOff;
}
extension type ET_FunctionType(() void it) {
abstract extension-type-member representation-field get it() () void;
constructor = self::ET_FunctionType|constructor#;
constructor tearoff = self::ET_FunctionType|constructor#_#new#tearOff;
}
extension type ET_NullableInterfaceType(core::String? it) {
abstract extension-type-member representation-field get it() core::String?;
constructor = self::ET_NullableInterfaceType|constructor#;
constructor tearoff = self::ET_NullableInterfaceType|constructor#_#new#tearOff;
}
extension type ET_NullableExtensionType(core::int it) {
abstract extension-type-member representation-field get it() core::int;
constructor = self::ET_NullableExtensionType|constructor#;
constructor tearoff = self::ET_NullableExtensionType|constructor#_#new#tearOff;
}
extension type ET_FutureOr(FutureOr<core::int>it) {
abstract extension-type-member representation-field get it() FutureOr<core::int>;
constructor = self::ET_FutureOr|constructor#;
constructor tearoff = self::ET_FutureOr|constructor#_#new#tearOff;
}
extension type ET_Extension(core::int it) {
abstract extension-type-member representation-field get it() core::int;
constructor = self::ET_Extension|constructor#;
constructor tearoff = self::ET_Extension|constructor#_#new#tearOff;
}
extension type ET_TypeVariable<T extends core::Object? = dynamic>(T% it) {
abstract extension-type-member representation-field get it() T%;
constructor = self::ET_TypeVariable|constructor#;
constructor tearoff = self::ET_TypeVariable|constructor#_#new#tearOff;
}
extension type ET_Class(self::Class it) implements self::Class {
abstract extension-type-member representation-field get it() self::Class;
constructor = self::ET_Class|constructor#;
constructor tearoff = self::ET_Class|constructor#_#new#tearOff;
}
extension type ET_GenericClass<T extends core::Object? = dynamic>(self::GenericClass<T%> it) implements self::GenericClass<T%> {
abstract extension-type-member representation-field get it() self::GenericClass<T%>;
constructor = self::ET_GenericClass|constructor#;
constructor tearoff = self::ET_GenericClass|constructor#_#new#tearOff;
}
extension type ET_Alias(self::Class it) implements self::Class {
abstract extension-type-member representation-field get it() self::Class;
constructor = self::ET_Alias|constructor#;
constructor tearoff = self::ET_Alias|constructor#_#new#tearOff;
}
extension type ET_GenericAlias<T extends core::Object? = dynamic>(self::GenericClass<T%> it) implements self::GenericClass<T%> {
abstract extension-type-member representation-field get it() self::GenericClass<T%>;
constructor = self::ET_GenericAlias|constructor#;
constructor tearoff = self::ET_GenericAlias|constructor#_#new#tearOff;
}
extension type ET_ExtensionType(core::int it) implements self::ExtensionType% /* erasure=core::int, declared=! */ {
abstract extension-type-member representation-field get it() core::int;
constructor = self::ET_ExtensionType|constructor#;
constructor tearoff = self::ET_ExtensionType|constructor#_#new#tearOff;
}
extension type ET_GenericExtensionType<T extends core::Object? = dynamic>(T% it) implements self::GenericExtensionType<T%>% /* erasure=T%, declared=! */ {
abstract extension-type-member representation-field get it() T%;
constructor = self::ET_GenericExtensionType|constructor#;
constructor tearoff = self::ET_GenericExtensionType|constructor#_#new#tearOff;
}
static extension-type-member method ExtensionType|constructor#(core::int it) → self::ExtensionType% /* erasure=core::int, declared=! */ {
lowered final self::ExtensionType% /* erasure=core::int, declared=! */ #this = it;
return #this;
}
static extension-type-member method ExtensionType|constructor#_#new#tearOff(core::int it) → self::ExtensionType% /* erasure=core::int, declared=! */
return self::ExtensionType|constructor#(it);
static extension-type-member method GenericExtensionType|constructor#<T extends core::Object? = dynamic>(self::GenericExtensionType|constructor#::T% it) → self::GenericExtensionType<self::GenericExtensionType|constructor#::T%>% /* erasure=self::GenericExtensionType|constructor#::T%, declared=! */ {
lowered final self::GenericExtensionType<self::GenericExtensionType|constructor#::T%>% /* erasure=self::GenericExtensionType|constructor#::T%, declared=! */ #this = it;
return #this;
}
static extension-type-member method GenericExtensionType|constructor#_#new#tearOff<T extends core::Object? = dynamic>(self::GenericExtensionType|constructor#_#new#tearOff::T% it) → self::GenericExtensionType<self::GenericExtensionType|constructor#_#new#tearOff::T%>% /* erasure=self::GenericExtensionType|constructor#_#new#tearOff::T%, declared=! */
return self::GenericExtensionType|constructor#<self::GenericExtensionType|constructor#_#new#tearOff::T%>(it);
static extension-type-member method ET_Null|constructor#(Null it) → self::ET_Null% /* erasure=Null, declared=! */ {
lowered final self::ET_Null% /* erasure=Null, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_Null|constructor#_#new#tearOff(Null it) → self::ET_Null% /* erasure=Null, declared=! */
return self::ET_Null|constructor#(it);
static extension-type-member method ET_Dynamic|constructor#(dynamic it) → self::ET_Dynamic% /* erasure=dynamic, declared=! */ {
lowered final self::ET_Dynamic% /* erasure=dynamic, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_Dynamic|constructor#_#new#tearOff(dynamic it) → self::ET_Dynamic% /* erasure=dynamic, declared=! */
return self::ET_Dynamic|constructor#(it);
static extension-type-member method ET_Void|constructor#(Null it) → self::ET_Void% /* erasure=Null, declared=! */ {
lowered final self::ET_Void% /* erasure=Null, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_Void|constructor#_#new#tearOff(Null it) → self::ET_Void% /* erasure=Null, declared=! */
return self::ET_Void|constructor#(it);
static extension-type-member method ET_Never|constructor#(Never it) → self::ET_Never% /* erasure=invalid-type, declared=! */ {
lowered final self::ET_Never% /* erasure=invalid-type, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_Never|constructor#_#new#tearOff(Never it) → self::ET_Never% /* erasure=invalid-type, declared=! */
return self::ET_Never|constructor#(it);
static extension-type-member method ET_Object|constructor#(core::Object it) → self::ET_Object /* erasure=core::Object */ {
lowered final self::ET_Object /* erasure=core::Object */ #this = it;
return #this;
}
static extension-type-member method ET_Object|constructor#_#new#tearOff(core::Object it) → self::ET_Object /* erasure=core::Object */
return self::ET_Object|constructor#(it);
static extension-type-member method ET_Record|constructor#(core::Record it) → self::ET_Record% /* erasure=core::Record, declared=! */ {
lowered final self::ET_Record% /* erasure=core::Record, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_Record|constructor#_#new#tearOff(core::Record it) → self::ET_Record% /* erasure=core::Record, declared=! */
return self::ET_Record|constructor#(it);
static extension-type-member method ET_RecordType|constructor#((core::int, core::String) it) → self::ET_RecordType% /* erasure=(core::int, core::String), declared=! */ {
lowered final self::ET_RecordType% /* erasure=(core::int, core::String), declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_RecordType|constructor#_#new#tearOff((core::int, core::String) it) → self::ET_RecordType% /* erasure=(core::int, core::String), declared=! */
return self::ET_RecordType|constructor#(it);
static extension-type-member method ET_Function|constructor#(core::Function it) → self::ET_Function% /* erasure=core::Function, declared=! */ {
lowered final self::ET_Function% /* erasure=core::Function, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_Function|constructor#_#new#tearOff(core::Function it) → self::ET_Function% /* erasure=core::Function, declared=! */
return self::ET_Function|constructor#(it);
static extension-type-member method ET_FunctionType|constructor#(() → void it) → self::ET_FunctionType% /* erasure=() → void, declared=! */ {
lowered final self::ET_FunctionType% /* erasure=() → void, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_FunctionType|constructor#_#new#tearOff(() → void it) → self::ET_FunctionType% /* erasure=() → void, declared=! */
return self::ET_FunctionType|constructor#(it);
static extension-type-member method ET_NullableInterfaceType|constructor#(core::String? it) → self::ET_NullableInterfaceType% /* erasure=core::String?, declared=! */ {
lowered final self::ET_NullableInterfaceType% /* erasure=core::String?, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_NullableInterfaceType|constructor#_#new#tearOff(core::String? it) → self::ET_NullableInterfaceType% /* erasure=core::String?, declared=! */
return self::ET_NullableInterfaceType|constructor#(it);
static extension-type-member method ET_NullableExtensionType|constructor#(core::int it) → self::ET_NullableExtensionType% /* erasure=core::int, declared=! */ {
lowered final self::ET_NullableExtensionType% /* erasure=core::int, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_NullableExtensionType|constructor#_#new#tearOff(core::int it) → self::ET_NullableExtensionType% /* erasure=core::int, declared=! */
return self::ET_NullableExtensionType|constructor#(it);
static extension-type-member method ET_FutureOr|constructor#(FutureOr<core::int>it) → self::ET_FutureOr% /* erasure=FutureOr<core::int>, declared=! */ {
lowered final self::ET_FutureOr% /* erasure=FutureOr<core::int>, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_FutureOr|constructor#_#new#tearOff(FutureOr<core::int>it) → self::ET_FutureOr% /* erasure=FutureOr<core::int>, declared=! */
return self::ET_FutureOr|constructor#(it);
static extension-type-member method ET_Extension|constructor#_#new#tearOff(core::int it) → self::ET_Extension% /* erasure=core::int, declared=! */
return self::ET_Extension|constructor#(it);
static extension-type-member method ET_Extension|constructor#(core::int it) → self::ET_Extension% /* erasure=core::int, declared=! */ {
lowered final self::ET_Extension% /* erasure=core::int, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_TypeVariable|constructor#<T extends core::Object? = dynamic>(self::ET_TypeVariable|constructor#::T% it) → self::ET_TypeVariable<self::ET_TypeVariable|constructor#::T%>% /* erasure=self::ET_TypeVariable|constructor#::T%, declared=! */ {
lowered final self::ET_TypeVariable<self::ET_TypeVariable|constructor#::T%>% /* erasure=self::ET_TypeVariable|constructor#::T%, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_TypeVariable|constructor#_#new#tearOff<T extends core::Object? = dynamic>(self::ET_TypeVariable|constructor#_#new#tearOff::T% it) → self::ET_TypeVariable<self::ET_TypeVariable|constructor#_#new#tearOff::T%>% /* erasure=self::ET_TypeVariable|constructor#_#new#tearOff::T%, declared=! */
return self::ET_TypeVariable|constructor#<self::ET_TypeVariable|constructor#_#new#tearOff::T%>(it);
static extension-type-member method ET_Class|constructor#(self::Class it) → self::ET_Class /* erasure=self::Class */ {
lowered final self::ET_Class /* erasure=self::Class */ #this = it;
return #this;
}
static extension-type-member method ET_Class|constructor#_#new#tearOff(self::Class it) → self::ET_Class /* erasure=self::Class */
return self::ET_Class|constructor#(it);
static extension-type-member method ET_GenericClass|constructor#<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericClass|constructor#::T%> it) → self::ET_GenericClass<self::ET_GenericClass|constructor#::T%> /* erasure=self::GenericClass<self::ET_GenericClass|constructor#::T%> */ {
lowered final self::ET_GenericClass<self::ET_GenericClass|constructor#::T%> /* erasure=self::GenericClass<self::ET_GenericClass|constructor#::T%> */ #this = it;
return #this;
}
static extension-type-member method ET_GenericClass|constructor#_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericClass|constructor#_#new#tearOff::T%> it) → self::ET_GenericClass<self::ET_GenericClass|constructor#_#new#tearOff::T%> /* erasure=self::GenericClass<self::ET_GenericClass|constructor#_#new#tearOff::T%> */
return self::ET_GenericClass|constructor#<self::ET_GenericClass|constructor#_#new#tearOff::T%>(it);
static extension-type-member method ET_Alias|constructor#(self::Class it) → self::ET_Alias /* erasure=self::Class */ {
lowered final self::ET_Alias /* erasure=self::Class */ #this = it;
return #this;
}
static extension-type-member method ET_Alias|constructor#_#new#tearOff(self::Class it) → self::ET_Alias /* erasure=self::Class */
return self::ET_Alias|constructor#(it);
static extension-type-member method ET_GenericAlias|constructor#<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericAlias|constructor#::T%> it) → self::ET_GenericAlias<self::ET_GenericAlias|constructor#::T%> /* erasure=self::GenericClass<self::ET_GenericAlias|constructor#::T%> */ {
lowered final self::ET_GenericAlias<self::ET_GenericAlias|constructor#::T%> /* erasure=self::GenericClass<self::ET_GenericAlias|constructor#::T%> */ #this = it;
return #this;
}
static extension-type-member method ET_GenericAlias|constructor#_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericAlias|constructor#_#new#tearOff::T%> it) → self::ET_GenericAlias<self::ET_GenericAlias|constructor#_#new#tearOff::T%> /* erasure=self::GenericClass<self::ET_GenericAlias|constructor#_#new#tearOff::T%> */
return self::ET_GenericAlias|constructor#<self::ET_GenericAlias|constructor#_#new#tearOff::T%>(it);
static extension-type-member method ET_ExtensionType|constructor#(core::int it) → self::ET_ExtensionType% /* erasure=core::int, declared=! */ {
lowered final self::ET_ExtensionType% /* erasure=core::int, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_ExtensionType|constructor#_#new#tearOff(core::int it) → self::ET_ExtensionType% /* erasure=core::int, declared=! */
return self::ET_ExtensionType|constructor#(it);
static extension-type-member method ET_GenericExtensionType|constructor#<T extends core::Object? = dynamic>(self::ET_GenericExtensionType|constructor#::T% it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|constructor#::T%>% /* erasure=self::ET_GenericExtensionType|constructor#::T%, declared=! */ {
lowered final self::ET_GenericExtensionType<self::ET_GenericExtensionType|constructor#::T%>% /* erasure=self::ET_GenericExtensionType|constructor#::T%, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET_GenericExtensionType|constructor#_#new#tearOff<T extends core::Object? = dynamic>(self::ET_GenericExtensionType|constructor#_#new#tearOff::T% it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|constructor#_#new#tearOff::T%>% /* erasure=self::ET_GenericExtensionType|constructor#_#new#tearOff::T%, declared=! */
return self::ET_GenericExtensionType|constructor#<self::ET_GenericExtensionType|constructor#_#new#tearOff::T%>(it);