| library; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/extension_types/spread.dart:18:22: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'MyList<int>'. |
| // - 'List' is from 'dart:core'. |
| // MyList<int> list = []; // Error |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/spread.dart:19:23: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'MySet<String>'. |
| // - 'Set' is from 'dart:core'. |
| // MySet<String> set = {}; // Error |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/spread.dart:20:29: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'MyMap<String, bool>'. |
| // - 'Map' is from 'dart:core'. |
| // MyMap<String, bool> map = {}; // Error |
| // ^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| import "dart:collection" as col; |
| |
| extension type MyList<T extends core::Object? = dynamic>(core::List<T%> it) implements core::List<T%> { |
| abstract extension-type-member representation-field get it() → core::List<T%>; |
| constructor • = self::MyList|constructor#; |
| constructor tearoff • = self::MyList|constructor#_#new#tearOff; |
| } |
| extension type MySet<T extends core::Object? = dynamic>(core::Set<T%> it) implements core::Set<T%> { |
| abstract extension-type-member representation-field get it() → core::Set<T%>; |
| constructor • = self::MySet|constructor#; |
| constructor tearoff • = self::MySet|constructor#_#new#tearOff; |
| } |
| extension type MyMap<K extends core::Object? = dynamic, V extends core::Object? = dynamic>(core::Map<K%, V%> it) implements core::Map<K%, V%> { |
| abstract extension-type-member representation-field get it() → core::Map<K%, V%>; |
| constructor • = self::MyMap|constructor#; |
| constructor tearoff • = self::MyMap|constructor#_#new#tearOff; |
| } |
| static extension-type-member method MyList|constructor#<T extends core::Object? = dynamic>(core::List<self::MyList|constructor#::T%> it) → self::MyList<self::MyList|constructor#::T%> /* erasure=core::List<self::MyList|constructor#::T%> */ { |
| lowered final self::MyList<self::MyList|constructor#::T%> /* erasure=core::List<self::MyList|constructor#::T%> */ #this = it; |
| return #this; |
| } |
| static extension-type-member method MyList|constructor#_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::MyList|constructor#_#new#tearOff::T%> it) → self::MyList<self::MyList|constructor#_#new#tearOff::T%> /* erasure=core::List<self::MyList|constructor#_#new#tearOff::T%> */ |
| return self::MyList|constructor#<self::MyList|constructor#_#new#tearOff::T%>(it); |
| static extension-type-member method MySet|constructor#<T extends core::Object? = dynamic>(core::Set<self::MySet|constructor#::T%> it) → self::MySet<self::MySet|constructor#::T%> /* erasure=core::Set<self::MySet|constructor#::T%> */ { |
| lowered final self::MySet<self::MySet|constructor#::T%> /* erasure=core::Set<self::MySet|constructor#::T%> */ #this = it; |
| return #this; |
| } |
| static extension-type-member method MySet|constructor#_#new#tearOff<T extends core::Object? = dynamic>(core::Set<self::MySet|constructor#_#new#tearOff::T%> it) → self::MySet<self::MySet|constructor#_#new#tearOff::T%> /* erasure=core::Set<self::MySet|constructor#_#new#tearOff::T%> */ |
| return self::MySet|constructor#<self::MySet|constructor#_#new#tearOff::T%>(it); |
| static extension-type-member method MyMap|constructor#<K extends core::Object? = dynamic, V extends core::Object? = dynamic>(core::Map<self::MyMap|constructor#::K%, self::MyMap|constructor#::V%> it) → self::MyMap<self::MyMap|constructor#::K%, self::MyMap|constructor#::V%> /* erasure=core::Map<self::MyMap|constructor#::K%, self::MyMap|constructor#::V%> */ { |
| lowered final self::MyMap<self::MyMap|constructor#::K%, self::MyMap|constructor#::V%> /* erasure=core::Map<self::MyMap|constructor#::K%, self::MyMap|constructor#::V%> */ #this = it; |
| return #this; |
| } |
| static extension-type-member method MyMap|constructor#_#new#tearOff<K extends core::Object? = dynamic, V extends core::Object? = dynamic>(core::Map<self::MyMap|constructor#_#new#tearOff::K%, self::MyMap|constructor#_#new#tearOff::V%> it) → self::MyMap<self::MyMap|constructor#_#new#tearOff::K%, self::MyMap|constructor#_#new#tearOff::V%> /* erasure=core::Map<self::MyMap|constructor#_#new#tearOff::K%, self::MyMap|constructor#_#new#tearOff::V%> */ |
| return self::MyMap|constructor#<self::MyMap|constructor#_#new#tearOff::K%, self::MyMap|constructor#_#new#tearOff::V%>(it); |
| static method method(self::MyList<core::int> /* erasure=core::List<core::int> */ list, self::MySet<core::String> /* erasure=core::Set<core::String> */ set, self::MyMap<core::bool, core::num> /* erasure=core::Map<core::bool, core::num> */ map) → dynamic { |
| core::List<core::int> list2 = block { |
| final core::List<core::int> #t1 = core::List::of<core::int>(list); |
| } =>#t1; |
| core::Set<core::String> set2 = block { |
| final core::Set<core::String> #t2 = col::LinkedHashSet::of<core::String>(set); |
| } =>#t2; |
| core::Map<core::bool, core::num> map2 = block { |
| final core::Map<core::bool, core::num> #t3 = col::LinkedHashMap::of<core::bool, core::num>(map); |
| } =>#t3; |
| } |
| static method test() → dynamic { |
| self::MyList<core::int> /* erasure=core::List<core::int> */ list = invalid-expression "pkg/front_end/testcases/extension_types/spread.dart:18:22: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'MyList<int>'. |
| - 'List' is from 'dart:core'. |
| MyList<int> list = []; // Error |
| ^" in <dynamic>[] as{TypeError} self::MyList<core::int> /* erasure=core::List<core::int> */; |
| self::MySet<core::String> /* erasure=core::Set<core::String> */ set = invalid-expression "pkg/front_end/testcases/extension_types/spread.dart:19:23: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'MySet<String>'. |
| - 'Set' is from 'dart:core'. |
| MySet<String> set = {}; // Error |
| ^" in ( block { |
| final core::Set<dynamic> #t4 = col::LinkedHashSet::•<dynamic>(); |
| } =>#t4) as{TypeError} self::MySet<core::String> /* erasure=core::Set<core::String> */; |
| self::MyMap<core::String, core::bool> /* erasure=core::Map<core::String, core::bool> */ map = invalid-expression "pkg/front_end/testcases/extension_types/spread.dart:20:29: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'MyMap<String, bool>'. |
| - 'Map' is from 'dart:core'. |
| MyMap<String, bool> map = {}; // Error |
| ^" in <dynamic, dynamic>{} as{TypeError} self::MyMap<core::String, core::bool> /* erasure=core::Map<core::String, core::bool> */; |
| } |