| // Copyright (c) 2014, 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 |
| |
| import 'package:expect/expect.dart'; |
| import 'package:async_helper/async_helper.dart'; |
| import 'dart:mirrors'; |
| |
| import "deferred_constraints_constants_lib.dart" deferred as lib; |
| |
| const myConst1 = |
| lib.constantInstance; //# reference1: compile-time error |
| /* // //# reference1: continued |
| 499; |
| */ // //# reference1: continued |
| const myConst2 = |
| lib.Const.instance; //# reference2: compile-time error |
| /* // //# reference2: continued |
| 499; |
| */ // //# reference2: continued |
| |
| void f1( |
| {a: |
| const lib.Const() //# default_argument1: compile-time error |
| /* // //# default_argument1: continued |
| 499 |
| */ // //# default_argument1: continued |
| }) {} |
| |
| void f2( |
| {a: |
| lib.constantInstance //# default_argument2: compile-time error |
| /* // //# default_argument2: continued |
| 499 |
| */ // //# default_argument2: continued |
| }) {} |
| |
| @lib.Const() //# metadata1: compile-time error |
| class H1 {} |
| |
| @lib.Const.instance //# metadata2: compile-time error |
| class H2 {} |
| |
| @lib.Const.namedConstructor() //# metadata3: compile-time error |
| class H3 {} |
| |
| void main() { |
| var a1 = myConst1; |
| var a2 = myConst2; |
| |
| asyncStart(); |
| lib.loadLibrary().then((_) { |
| var instance = lib.constantInstance; |
| var c1 = const lib.Const(); //# constructor1: compile-time error |
| var c2 = const lib.Const.namedConstructor(); //# constructor2: compile-time error |
| f1(); |
| f2(); |
| var constInstance = lib.constantInstance; //# reference_after_load: ok |
| var h1 = new H1(); |
| var h2 = new H2(); |
| var h3 = new H3(); |
| |
| // Need to access the metadata to trigger the expected compilation error. |
| reflectClass(H1).metadata; //# metadata1: continued |
| reflectClass(H2).metadata; //# metadata2: continued |
| reflectClass(H3).metadata; //# metadata3: continued |
| |
| asyncEnd(); |
| }); |
| } |