// Copyright (c) 2012, 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. // Test ensuring that compiler can parse metadata. Need to add negative // test cases with illegal metadata annotations. library metadata_test.dart; import "package:expect/expect.dart"; import "lib.dart" as Meta; class Tag { final String annotation; const Tag(this.annotation); } const meta1 = 1; const meta2 = const Tag("meta2"); const extern = const Tag("external"); @meta1 var topLevelVar; @Meta.Alien.unknown() List unknownUnknowns = []; @meta1 typedef int DingDong<@meta2 T>(@meta1 event); @meta1 class A<@Tag("typeParam") T> { @meta1 @meta2 static String staticField = "s"; @Meta.Alien("ET") int foo(@meta1 bool fool, {@meta1 @Tag("opt") x: 100}) { g() => 10; return x * g(); } @Tag(r"timewarp") List getNextWeeksLottoNumbers() => [1, 2, 3, 4, 5, 6]; } @meta1 main() { @meta1 var a = new A(); Expect.equals(0, a.foo(false, x: 0)); for (@Tag("loopvar") int i = 0; i < 10; i++) { // Do something. } @meta1 var s = r'This is a raw \\ string.'; }