// 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.

// @dart = 2.9

/// @assertion The [&&] operator is now short-circuit in constant and potentially
/// constant expressions. It only attempts to evaluate the second operand if the
/// first operand evaluates to [true]. This makes [false && (null as
/// String).length] a valid constant expression. The second operand expression
/// still needs to be a potentially constant expression, which is a new use of
/// potentially constant expressions outside of [const] constructor initializer
/// lists.
/// @description Checks that [&&] throws error if the first operand of [&&]
/// operation is [true] and the second one is not valid in the potentially
/// constant expression.
/// @author iarkh@unipro.ru


class MyClass {
  final bool b;
  const MyClass(Object o) : b = true && ((o as int) < 23);
}

main() {
  const MyClass c1 = MyClass("testme");
//                   ^^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified

}
