// Copyright (c) 2017, 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

class C {
  static bool staticTrue() => true;
  final int x;

  // Functions as parameters to assert are no longer supported in Dart 2.0, so
  // this is now a static type error.
  const C.bc01(this.x, y)
      : assert(staticTrue)
      //       ^^^^^^^^^^
      // [analyzer] COMPILE_TIME_ERROR.NON_BOOL_EXPRESSION
      // [cfe] A value of type 'bool Function()' can't be assigned to a variable of type 'bool'.
      ;
}

main() {
  new C.bc01(1, 2);
}
