blob: f0d95ef175a8f3261d2e5f18c1d75c2298125e53 [file] [log] [blame]
// 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.
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();
});
}