blob: 5412a3f6ed009e3e1d50ceb6ed2068812132d0e1 [file] [log] [blame]
// Copyright (c) 2018, 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 It is a static error when the type of the iterator expression in a
* synchronous for-in element may not be assigned to Iterable<T> for some type T
*
* @description Checks that it is a static error when the type of the iterator
* expression in a synchronous for-in element may not be assigned to
* Iterable<T> for some type T.
* @author sgrekhov@unipro.ru
*/
main() {
[for (var i in "not iterable") i];
// ^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.FOR_IN_OF_INVALID_TYPE
// [cfe] The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
[for (var i in 3.14) i];
// ^^^^
// [analyzer] COMPILE_TIME_ERROR.FOR_IN_OF_INVALID_TYPE
// [cfe] The type 'double' used in the 'for' loop must implement 'Iterable<dynamic>'.
}