| Index: compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java
|
| ===================================================================
|
| --- compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java (revision 10903)
|
| +++ compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java (working copy)
|
| @@ -19,6 +19,7 @@
|
| import com.google.dart.compiler.ast.DartIdentifier;
|
| import com.google.dart.compiler.ast.DartIntegerLiteral;
|
| import com.google.dart.compiler.ast.DartMapLiteral;
|
| +import com.google.dart.compiler.ast.DartAnnotation;
|
| import com.google.dart.compiler.ast.DartMethodDefinition;
|
| import com.google.dart.compiler.ast.DartNode;
|
| import com.google.dart.compiler.ast.DartPropertyAccess;
|
| @@ -928,6 +929,59 @@
|
| assertTrue(((DartVariableStatement) statement).getModifiers().isConstant());
|
| }
|
|
|
| + public void test_metadata_identifier() {
|
| + String code = makeCode(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| + "const int annotation = 0;",
|
| + "class A {",
|
| + " m0() {}",
|
| + " @annotation",
|
| + " m1() {}",
|
| + "}",
|
| + "");
|
| + DartUnit unit = parseUnit(getName() + ".dart", code);
|
| + DartClass classA = (DartClass) unit.getTopLevelNodes().get(1);
|
| +
|
| + DartMethodDefinition method0 = (DartMethodDefinition) classA.getMembers().get(0);
|
| + assertEquals("m0", method0.getName().toSource());
|
| + assertEquals(0, method0.getMetadata().size());
|
| +
|
| + DartMethodDefinition method1 = (DartMethodDefinition) classA.getMembers().get(1);
|
| + assertEquals("m1", method1.getName().toSource());
|
| + assertEquals(1, method1.getMetadata().size());
|
| + DartAnnotation metadata = method1.getMetadata().get(0);
|
| + assertNotNull(metadata);
|
| + DartExpression name = metadata.getName();
|
| + assertTrue(name instanceof DartIdentifier);
|
| + assertEquals("annotation", name.toSource());
|
| + assertEquals(0, metadata.getArguments().size());
|
| + }
|
| +
|
| + public void test_metadata_constructor() {
|
| + String code = makeCode(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| + "class A {",
|
| + " const A();",
|
| + "}",
|
| + "",
|
| + "class B {",
|
| + " m0() {}",
|
| + " @A()",
|
| + " m1() {}",
|
| + "}",
|
| + "");
|
| + DartUnit unit = parseUnit(getName() + ".dart", code);
|
| + DartClass classB = (DartClass) unit.getTopLevelNodes().get(1);
|
| +
|
| + DartMethodDefinition method0 = (DartMethodDefinition) classB.getMembers().get(0);
|
| + assertEquals("m0", method0.getName().toSource());
|
| + assertEquals(0, method0.getMetadata().size());
|
| +
|
| + DartMethodDefinition method1 = (DartMethodDefinition) classB.getMembers().get(1);
|
| + assertEquals("m1", method1.getName().toSource());
|
| + assertEquals(1, method1.getMetadata().size());
|
| + }
|
| +
|
| public void test_metadata_deprecated() {
|
| String code = makeCode(
|
| "// filler filler filler filler filler filler filler filler filler filler",
|
| @@ -945,13 +999,13 @@
|
| {
|
| DartMethodDefinition method = (DartMethodDefinition) classA.getMembers().get(0);
|
| assertEquals("m0", method.getName().toSource());
|
| - assertEquals(false, method.getMetadata().isDeprecated());
|
| + assertEquals(false, method.getObsoleteMetadata().isDeprecated());
|
| }
|
| // m1()
|
| {
|
| DartMethodDefinition method = (DartMethodDefinition) classA.getMembers().get(1);
|
| assertEquals("m1", method.getName().toSource());
|
| - assertEquals(true, method.getMetadata().isDeprecated());
|
| + assertEquals(true, method.getObsoleteMetadata().isDeprecated());
|
| }
|
| }
|
| }
|
| @@ -981,21 +1035,21 @@
|
| {
|
| DartMethodDefinition method = (DartMethodDefinition) classA.getMembers().get(0);
|
| assertEquals("m0", method.getName().toSource());
|
| - assertEquals(false, method.getMetadata().isOverride());
|
| + assertEquals(false, method.getObsoleteMetadata().isOverride());
|
| assertNull(method.getDartDoc());
|
| }
|
| // m1()
|
| {
|
| DartMethodDefinition method = (DartMethodDefinition) classA.getMembers().get(1);
|
| assertEquals("m1", method.getName().toSource());
|
| - assertEquals(true, method.getMetadata().isOverride());
|
| + assertEquals(true, method.getObsoleteMetadata().isOverride());
|
| assertNull(method.getDartDoc());
|
| }
|
| // m2()
|
| {
|
| DartMethodDefinition method = (DartMethodDefinition) classA.getMembers().get(2);
|
| assertEquals("m2", method.getName().toSource());
|
| - assertEquals(true, method.getMetadata().isOverride());
|
| + assertEquals(true, method.getObsoleteMetadata().isOverride());
|
| {
|
| DartComment dartDoc = method.getDartDoc();
|
| assertNotNull(dartDoc);
|
| @@ -1006,7 +1060,7 @@
|
| {
|
| DartMethodDefinition method = (DartMethodDefinition) classA.getMembers().get(3);
|
| assertEquals("m3", method.getName().toSource());
|
| - assertEquals(true, method.getMetadata().isOverride());
|
| + assertEquals(true, method.getObsoleteMetadata().isOverride());
|
| {
|
| DartComment dartDoc = method.getDartDoc();
|
| assertNotNull(dartDoc);
|
|
|