blob: a844f383bb430acc0c5f5d9bd1c05ec00f9bd441 [file] [log] [blame]
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
/// @assertion Note that you can spread any [Iterable] into a set literal, not
/// just other sets
/// @description Checks that list and custom [Iterable] cannot be assigned to
/// set, but can be spreaded into a set literal.
/// @author iarkh@unipro.ru
import "dart:collection";
class MyIterable extends IterableBase {
MyIterable();
Iterator get iterator => MyIterator();
}
class MyIterator extends Iterator {
int i = -1;
MyIterator() {}
@override
bool moveNext() => ++i < 10;
@override
dynamic get current => i;
}
main() {
Set set = {1, 2, 3};
List list = [null, 14, "testme"];
Iterable i = new MyIterable();
Set s1 = {...set};
Set s2 = {...list};
Set s3 = {...i};
var set1 = {1, 2, 3} as Set?;
var list1 = [null, 14, "testme"] as List?;
var i1 = new MyIterable() as Iterable?;
Set s4 = {...?set1};
Set s5 = {...?list1};
Set s6 = {...?i1};
}