// Copyright (c) 2011, 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 A constant expression is an expression whose value can never
/// change, and that can be evaluated entirely at compile time.
/// A constant expression is one of the following:
/// . . .
/// • An expression of one of the forms ~e, e1 ^ e2, e1 & e2, e1 | e2, e1 >> e2
///   or e1 << e2, where e1 and e2 are constant expressions that evaluate to an
///   integer value or to null.
/// @description Checks that it is a compile-time error when an expression of
/// the form e1 << e2 where e1 or e2 does not evaluate to an integer value, is
/// used to initialize a constant variable.
/// @author kaigorodov

final constList = const [
  1 << "one and a half"
//     ^
// [analyzer] unspecified
// [cfe] unspecified
];

main() {
  print(constList);
}
