blob: 5043c107bdfa214900e9458defb5ef634a20874c [file] [log] [blame]
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/constants/const_collections.dart:23:51: Error: Unexpected type 'int' of a spread. Expected 'dynamic' or an Iterable.
// const List<String> barWithIntSpread = [...foo, ...fortyTwo];
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:25:51: Error: Unexpected type 'Map<String, String>' of a spread. Expected 'dynamic' or an Iterable.
// - 'Map' is from 'dart:core'.
// const List<String> barWithMapSpread = [...foo, ...quux];
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:41:50: Error: Unexpected type 'int' of a map spread entry. Expected 'dynamic' or a Map.
// const Set<String> quxWithIntSpread = {...baz, ...fortyTwo};
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:42:38: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
// const Set<String> quxWithMapSpread = {...baz, ...quux};
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:48:59: Error: A value of type 'CustomIterable' can't be assigned to a variable of type 'String'.
// - 'CustomIterable' is from 'pkg/front_end/testcases/general/constants/const_collections.dart'.
// const Set<String> quxWithCustomIterableSpread3 = {...baz, customIterable};
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:58:60: Error: Unexpected type 'int' of a map spread entry. Expected 'dynamic' or a Map.
// const Map<String, String> quuzWithIntSpread = {...quux, ...fortyTwo};
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:59:47: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
// const Map<String, String> quuzWithSetSpread = {...quux, ...baz};
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:60:46: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
// const Map<String, String> mapWithSetSpread = {...baz};
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:24:46: Error: Constant evaluation error:
// const List<String> barWithIntDynamicSpread = [...foo, ...fortyTwoAsDynamic];
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:24:58: Context: Expected constant '42' to be of type 'Iterable<dynamic>', but was of type 'int'.
// - 'Iterable' is from 'dart:core'.
// const List<String> barWithIntDynamicSpread = [...foo, ...fortyTwoAsDynamic];
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:24:20: Context: While analyzing:
// const List<String> barWithIntDynamicSpread = [...foo, ...fortyTwoAsDynamic];
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:26:51: Error: Constant evaluation error:
// const List<String> barWithCustomIterableSpread1 = [
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:28:12: Context: Only lists and sets can be used in spreads in constant lists and sets.
// ...const CustomIterable()
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:26:20: Context: While analyzing:
// const List<String> barWithCustomIterableSpread1 = [
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:30:51: Error: Constant evaluation error:
// const List<String> barWithCustomIterableSpread2 = [...bar, ...CustomIterable()];
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:30:63: Context: Only lists and sets can be used in spreads in constant lists and sets.
// const List<String> barWithCustomIterableSpread2 = [...bar, ...CustomIterable()];
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:30:20: Context: While analyzing:
// const List<String> barWithCustomIterableSpread2 = [...bar, ...CustomIterable()];
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:32:51: Error: Constant evaluation error:
// const List<String> barWithCustomIterableSpread3 = [...bar, ...customIterable];
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:32:63: Context: Only lists and sets can be used in spreads in constant lists and sets.
// const List<String> barWithCustomIterableSpread3 = [...bar, ...customIterable];
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:32:20: Context: While analyzing:
// const List<String> barWithCustomIterableSpread3 = [...bar, ...customIterable];
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:33:43: Error: Constant evaluation error:
// const List<String> listConcat = ["Hello"] + ["World"];
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:33:43: Context: The method '+' can't be invoked on '<String>["Hello"]' in a constant expression.
// const List<String> listConcat = ["Hello"] + ["World"];
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:33:20: Context: While analyzing:
// const List<String> listConcat = ["Hello"] + ["World"];
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:43:50: Error: Constant evaluation error:
// const Set<String> quxWithCustomIterableSpread1 = {
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:45:12: Context: Only lists and sets can be used in spreads in constant lists and sets.
// ...const CustomIterable()
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:43:19: Context: While analyzing:
// const Set<String> quxWithCustomIterableSpread1 = {
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:47:50: Error: Constant evaluation error:
// const Set<String> quxWithCustomIterableSpread2 = {...baz, ...CustomIterable()};
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:47:62: Context: Only lists and sets can be used in spreads in constant lists and sets.
// const Set<String> quxWithCustomIterableSpread2 = {...baz, ...CustomIterable()};
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:47:19: Context: While analyzing:
// const Set<String> quxWithCustomIterableSpread2 = {...baz, ...CustomIterable()};
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:49:48: Error: Constant evaluation error:
// const Set<dynamic> setWithNonPrimitiveEquals = {const WithEquals(42)};
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:49:55: Context: The element 'WithEquals {i: 42}' does not have a primitive operator '=='.
// - 'WithEquals' is from 'pkg/front_end/testcases/general/constants/const_collections.dart'.
// const Set<dynamic> setWithNonPrimitiveEquals = {const WithEquals(42)};
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:49:20: Context: While analyzing:
// const Set<dynamic> setWithNonPrimitiveEquals = {const WithEquals(42)};
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:50:40: Error: Constant evaluation error:
// const Set<dynamic> setWithDuplicates = {42, 42};
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:50:45: Context: The element '42' conflicts with another existing element in the set.
// const Set<dynamic> setWithDuplicates = {42, 42};
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:50:20: Context: While analyzing:
// const Set<dynamic> setWithDuplicates = {42, 42};
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:61:27: Error: Constant evaluation error:
// const Map<String, String> mapWithCustomMap1 = {...const CustomMap()};
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:61:57: Context: Only maps can be used in spreads in constant maps.
// const Map<String, String> mapWithCustomMap1 = {...const CustomMap()};
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:61:27: Context: While analyzing:
// const Map<String, String> mapWithCustomMap1 = {...const CustomMap()};
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:62:27: Error: Constant evaluation error:
// const Map<String, String> mapWithCustomMap2 = {...CustomMap()};
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:62:51: Context: Only maps can be used in spreads in constant maps.
// const Map<String, String> mapWithCustomMap2 = {...CustomMap()};
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:62:27: Context: While analyzing:
// const Map<String, String> mapWithCustomMap2 = {...CustomMap()};
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:64:27: Error: Constant evaluation error:
// const Map<String, String> mapWithCustomMap3 = {...customMap};
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:64:51: Context: Only maps can be used in spreads in constant maps.
// const Map<String, String> mapWithCustomMap3 = {...customMap};
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:64:27: Context: While analyzing:
// const Map<String, String> mapWithCustomMap3 = {...customMap};
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:65:56: Error: Constant evaluation error:
// const Map<dynamic, int> mapWithNonPrimitiveEqualsKey = {
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:66:9: Context: The key 'WithEquals {i: 42}' does not have a primitive operator '=='.
// - 'WithEquals' is from 'pkg/front_end/testcases/general/constants/const_collections.dart'.
// const WithEquals(42): 42
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:65:25: Context: While analyzing:
// const Map<dynamic, int> mapWithNonPrimitiveEqualsKey = {
// ^
//
// pkg/front_end/testcases/general/constants/const_collections.dart:68:41: Error: Constant evaluation error:
// const Map<int, int> mapWithDuplicates = {42: 42, 42: 42};
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:68:50: Context: The key '42' conflicts with another existing key in the map.
// const Map<int, int> mapWithDuplicates = {42: 42, 42: 42};
// ^
// pkg/front_end/testcases/general/constants/const_collections.dart:68:21: Context: While analyzing:
// const Map<int, int> mapWithDuplicates = {42: 42, 42: 42};
// ^
//
import self as self;
import "dart:collection" as col;
import "dart:core" as core;
import "dart:collection";
class ConstIterable extends col::IterableBase<core::int> /*hasConstConstructor*/ {
const constructor •() self::ConstIterable
: super col::IterableBase::•()
;
get iterator() core::Iterator<core::int>
return <core::int>[].{core::Iterable::iterator}{core::Iterator<core::int>};
}
class WithEquals extends core::Object /*hasConstConstructor*/ {
final field core::int i;
const constructor •(core::int i) self::WithEquals
: self::WithEquals::i = i, super core::Object::•()
;
operator ==(core::Object o) core::bool {
return o is{ForNonNullableByDefault} self::WithEquals && (o{self::WithEquals} as{ForNonNullableByDefault} self::WithEquals).{self::WithEquals::i}{core::int} =={core::num::==}{(core::Object) core::bool} this.{self::WithEquals::i}{core::int};
}
}
class CustomIterable extends col::IterableBase<core::String> /*hasConstConstructor*/ {
const constructor •() self::CustomIterable
: super col::IterableBase::•()
;
get iterator() core::Iterator<core::String>
return <core::String>[].{core::Iterable::iterator}{core::Iterator<core::String>};
}
class CustomMap extends core::Object implements core::Map<core::String, core::String> /*hasConstConstructor*/ {
const constructor •() self::CustomMap
: super core::Object::•()
;
@#C1
get entries() core::Iterable<core::MapEntry<core::String, core::String>>
return <core::MapEntry<core::String, core::String>>[];
@#C1
operator [](core::Object? key) core::String
return throw new core::UnimplementedError::•();
@#C1
operator []=(covariant-by-class core::String key, covariant-by-class core::String value) void
return throw new core::UnimplementedError::•();
@#C1
method cast<RK extends core::Object? = dynamic, RV extends core::Object? = dynamic>() core::Map<self::CustomMap::cast::RK%, self::CustomMap::cast::RV%>
return throw new core::UnimplementedError::•();
@#C1
method clear() void
return throw new core::UnimplementedError::•();
@#C1
method containsKey(core::Object? key) core::bool
return throw new core::UnimplementedError::•();
@#C1
method containsValue(core::Object? value) core::bool
return throw new core::UnimplementedError::•();
@#C1
get isEmpty() core::bool
return throw new core::UnimplementedError::•();
@#C1
get isNotEmpty() core::bool
return throw new core::UnimplementedError::•();
@#C1
get keys() core::Iterable<core::String>
return throw new core::UnimplementedError::•();
@#C1
get length() core::int
return throw new core::UnimplementedError::•();
@#C1
method remove(core::Object? key) core::String
return throw new core::UnimplementedError::•();
@#C1
get values() core::Iterable<core::String>
return throw new core::UnimplementedError::•();
@#C1
method addAll(covariant-by-class core::Map<core::String, core::String> other) void
return throw new core::UnimplementedError::•();
@#C1
method addEntries(covariant-by-class core::Iterable<core::MapEntry<core::String, core::String>> newEntries) void
return throw new core::UnimplementedError::•();
@#C1
method forEach((core::String, core::String) void f) void
return throw new core::UnimplementedError::•();
@#C1
method putIfAbsent(covariant-by-class core::String key, covariant-by-class () core::String ifAbsent) core::String
return throw new core::UnimplementedError::•();
@#C1
method updateAll(covariant-by-class (core::String, core::String) core::String update) void
return throw new core::UnimplementedError::•();
@#C1
method removeWhere((core::String, core::String) core::bool predicate) void
return throw new core::UnimplementedError::•();
method update(covariant-by-class core::String key, covariant-by-class (core::String) core::String update, {covariant-by-class () →? core::String ifAbsent = #C2}) → core::String
return throw new core::UnimplementedError::•();
method map<K2 extends core::Object? = dynamic, V2 extends core::Object? = dynamic>((core::String, core::String) core::MapEntry<self::CustomMap::map::K2%, self::CustomMap::map::V2%> f) core::Map<self::CustomMap::map::K2%, self::CustomMap::map::V2%>
return throw new core::UnimplementedError::•();
}
static const field core::int fortyTwo = #C3;
static const field dynamic fortyTwoAsDynamic = #C3;
static const field core::List<core::String>? nullList = #C2;
static const field core::List<core::String> foo = #C6;
static const field core::List<core::String> bar = #C8;
static field core::List<core::String> barAsVar = block {
final core::List<core::String> #t1 = core::List::of<core::String>(#C6);
#t1.{core::List::add}{Invariant}("!"){(core::String) → void};
} =>#t1;
static const field core::List<core::String> barWithNullSpread = #C6;
static const field core::List<core::String> barWithIntSpread = invalid-expression "pkg/front_end/testcases/general/constants/const_collections.dart:23:51: Error: Unexpected type 'int' of a spread. Expected 'dynamic' or an Iterable.
const List<String> barWithIntSpread = [...foo, ...fortyTwo];
^";
static const field core::List<core::String> barWithIntDynamicSpread = invalid-expression "Expected constant '42' to be of type 'Iterable<dynamic>', but was of type 'int'.
- 'Iterable' is from 'dart:core'.";
static const field core::List<core::String> barWithMapSpread = invalid-expression "pkg/front_end/testcases/general/constants/const_collections.dart:25:51: Error: Unexpected type 'Map<String, String>' of a spread. Expected 'dynamic' or an Iterable.
- 'Map' is from 'dart:core'.
const List<String> barWithMapSpread = [...foo, ...quux];
^";
static const field core::List<core::String> barWithCustomIterableSpread1 = invalid-expression "Only lists and sets can be used in spreads in constant lists and sets.";
static const field core::List<core::String> barWithCustomIterableSpread2 = invalid-expression "Only lists and sets can be used in spreads in constant lists and sets.";
static const field self::CustomIterable customIterable = #C9;
static const field core::List<core::String> barWithCustomIterableSpread3 = invalid-expression "Only lists and sets can be used in spreads in constant lists and sets.";
static const field core::List<core::String> listConcat = invalid-expression "The method '+' can't be invoked on '<String>[\"Hello\"]' in a constant expression.";
static const field core::Set<core::String>? nullSet = #C2;
static const field core::Set<core::String> baz = #C10;
static const field core::Set<core::String> qux = #C11;
static const field core::Set<core::String> quxWithNullSpread = #C10;
static const field core::Set<core::String> quxWithIntSpread = invalid-expression "pkg/front_end/testcases/general/constants/const_collections.dart:41:50: Error: Unexpected type 'int' of a map spread entry. Expected 'dynamic' or a Map.
const Set<String> quxWithIntSpread = {...baz, ...fortyTwo};
^";
static const field core::Set<core::String> quxWithMapSpread = invalid-expression "pkg/front_end/testcases/general/constants/const_collections.dart:42:38: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
const Set<String> quxWithMapSpread = {...baz, ...quux};
^";
static const field core::Set<core::String> quxWithCustomIterableSpread1 = invalid-expression "Only lists and sets can be used in spreads in constant lists and sets.";
static const field core::Set<core::String> quxWithCustomIterableSpread2 = invalid-expression "Only lists and sets can be used in spreads in constant lists and sets.";
static const field core::Set<core::String> quxWithCustomIterableSpread3 = invalid-expression "pkg/front_end/testcases/general/constants/const_collections.dart:48:59: Error: A value of type 'CustomIterable' can't be assigned to a variable of type 'String'.
- 'CustomIterable' is from 'pkg/front_end/testcases/general/constants/const_collections.dart'.
const Set<String> quxWithCustomIterableSpread3 = {...baz, customIterable};
^";
static const field core::Set<dynamic> setWithNonPrimitiveEquals = invalid-expression "The element 'WithEquals {i: 42}' does not have a primitive operator '=='.
- 'WithEquals' is from 'pkg/front_end/testcases/general/constants/const_collections.dart'.";
static const field core::Set<dynamic> setWithDuplicates = invalid-expression "The element '42' conflicts with another existing element in the set.";
static const field core::Map<core::String, core::String>? nullMap = #C2;
static const field core::Map<core::String, core::String> quux = #C12;
static const field core::Map<core::String, core::String> quuz = #C14;
static const field core::Map<core::String, core::String> quuzWithNullSpread = #C12;
static const field core::Map<core::String, core::String> quuzWithIntSpread = invalid-expression "pkg/front_end/testcases/general/constants/const_collections.dart:58:60: Error: Unexpected type 'int' of a map spread entry. Expected 'dynamic' or a Map.
const Map<String, String> quuzWithIntSpread = {...quux, ...fortyTwo};
^";
static const field core::Map<core::String, core::String> quuzWithSetSpread = invalid-expression "pkg/front_end/testcases/general/constants/const_collections.dart:59:47: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
const Map<String, String> quuzWithSetSpread = {...quux, ...baz};
^";
static const field core::Map<core::String, core::String> mapWithSetSpread = invalid-expression "pkg/front_end/testcases/general/constants/const_collections.dart:60:46: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
const Map<String, String> mapWithSetSpread = {...baz};
^";
static const field core::Map<core::String, core::String> mapWithCustomMap1 = invalid-expression "Only maps can be used in spreads in constant maps.";
static const field core::Map<core::String, core::String> mapWithCustomMap2 = invalid-expression "Only maps can be used in spreads in constant maps.";
static const field core::Map<core::String, core::String> customMap = #C15;
static const field core::Map<core::String, core::String> mapWithCustomMap3 = invalid-expression "Only maps can be used in spreads in constant maps.";
static const field core::Map<dynamic, core::int> mapWithNonPrimitiveEqualsKey = invalid-expression "The key 'WithEquals {i: 42}' does not have a primitive operator '=='.
- 'WithEquals' is from 'pkg/front_end/testcases/general/constants/const_collections.dart'.";
static const field core::Map<core::int, core::int> mapWithDuplicates = invalid-expression "The key '42' conflicts with another existing key in the map.";
static get fooAsGetter() core::List<core::String>
return #C6;
static get barAsGetter() core::List<core::String>
return #C8;
static get bazAsGetter() core::Set<core::String>
return #C10;
static get quxAsGetter() core::Set<core::String>
return #C11;
static get quuxAsGetter() core::Map<core::String, core::String>
return #C12;
static get quuzAsGetter() core::Map<core::String, core::String>
return #C14;
static method main() dynamic {
core::print(#C8);
core::print(#C11);
core::print(#C14);
core::print( block {
final core::Set<core::String> #t2 = col::LinkedHashSet::•<core::String>();
#t2.{core::Set::add}{Invariant}("hello"){(core::String) → core::bool};
} =>#t2);
core::print(#C16);
}
constants {
#C1 = core::_Override {}
#C2 = null
#C3 = 42
#C4 = "hello"
#C5 = "world"
#C6 = <core::String*>[#C4, #C5]
#C7 = "!"
#C8 = <core::String*>[#C4, #C5, #C7]
#C9 = self::CustomIterable {}
#C10 = <core::String*>{#C4, #C5}
#C11 = <core::String*>{#C4, #C5, #C7}
#C12 = <core::String*, core::String*>{#C4:#C5)
#C13 = "bye!"
#C14 = <core::String*, core::String*>{#C4:#C5, #C7:#C13)
#C15 = self::CustomMap {}
#C16 = <core::String*>{#C4}
}
Constructor coverage from constants:
org-dartlang-testcase:///const_collections.dart:
- CustomIterable. (from org-dartlang-testcase:///const_collections.dart:79:9)
- IterableBase. (from org-dartlang-sdk:///sdk/lib/collection/iterable.dart:219:9)
- Iterable. (from org-dartlang-sdk:///sdk/lib/core/iterable.dart:87:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- WithEquals. (from org-dartlang-testcase:///const_collections.dart:72:9)
- CustomMap. (from org-dartlang-testcase:///const_collections.dart:84:9)