| Index: compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java
 | 
| diff --git a/compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java b/compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java
 | 
| index 65709c496c09d3f88b5d746ebbfe984ad8f2d6f1..d183b9fbe710c1aa35937a36c843d38a0b850fe5 100644
 | 
| --- a/compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java
 | 
| +++ b/compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java
 | 
| @@ -10,6 +10,7 @@ import com.google.dart.compiler.DartSourceTest;
 | 
|  import com.google.dart.compiler.ast.DartArrayLiteral;
 | 
|  import com.google.dart.compiler.ast.DartBinaryExpression;
 | 
|  import com.google.dart.compiler.ast.DartClass;
 | 
| +import com.google.dart.compiler.ast.DartComment;
 | 
|  import com.google.dart.compiler.ast.DartExprStmt;
 | 
|  import com.google.dart.compiler.ast.DartExpression;
 | 
|  import com.google.dart.compiler.ast.DartField;
 | 
| @@ -183,9 +184,7 @@ public class SyntaxTest extends AbstractParserTest {
 | 
|      String sourceCode = "= 123;";
 | 
|      try {
 | 
|        DartSourceTest dartSrc = new DartSourceTest(getName(), sourceCode, null);
 | 
| -      DartScannerParserContext context =
 | 
| -        new DartScannerParserContext(dartSrc, sourceCode, new DartCompilerListener.Empty());
 | 
| -      DartParser parser = new DartParser(context);
 | 
| +      DartParser parser = makeParser(dartSrc, sourceCode, new DartCompilerListener.Empty());
 | 
|        parser.parseExpression();
 | 
|      }
 | 
|      catch(Exception e) {
 | 
| @@ -803,4 +802,93 @@ public class SyntaxTest extends AbstractParserTest {
 | 
|              "}"),
 | 
|              ParserErrorCode.REDIRECTING_CONSTRUCTOR_CANNOT_HAVE_A_BODY, 4, 18);
 | 
|    }
 | 
| +  public void test_metadata_deprecated() {
 | 
| +    String code = makeCode(
 | 
| +        "// filler filler filler filler filler filler filler filler filler filler",
 | 
| +        "class A {",
 | 
| +        "  m0() {}",
 | 
| +        "  // @deprecated",
 | 
| +        "  m1() {}",
 | 
| +        "}",
 | 
| +        "");
 | 
| +    DartUnit unit = parseUnit(getName() + ".dart", code);
 | 
| +    // A
 | 
| +    {
 | 
| +      DartClass classA = (DartClass) unit.getTopLevelNodes().get(0);
 | 
| +      // m0()
 | 
| +      {
 | 
| +        DartMethodDefinition method = (DartMethodDefinition) classA.getMembers().get(0);
 | 
| +        assertEquals("m0", method.getName().toSource());
 | 
| +        assertEquals(false, method.getMetadata().isDeprecated());
 | 
| +      }
 | 
| +      // m1()
 | 
| +      {
 | 
| +        DartMethodDefinition method = (DartMethodDefinition) classA.getMembers().get(1);
 | 
| +        assertEquals("m1", method.getName().toSource());
 | 
| +        assertEquals(true, method.getMetadata().isDeprecated());
 | 
| +      }
 | 
| +    }
 | 
| +  }
 | 
| +  
 | 
| +  public void test_metadata_override() {
 | 
| +    String code = makeCode(
 | 
| +        "// filler filler filler filler filler filler filler filler filler filler",
 | 
| +        "class A {",
 | 
| +        "  m0() {}",
 | 
| +        "  // @override",
 | 
| +        "  m1() {}",
 | 
| +        "  /** Leading DartDoc comment */",
 | 
| +        "  // @override",
 | 
| +        "  m2() {}",
 | 
| +        "  /**",
 | 
| +        "   * DartDoc comment",
 | 
| +        "   * @override",
 | 
| +        "   */",
 | 
| +        "  m3() {}",
 | 
| +        "}",
 | 
| +        "");
 | 
| +    DartUnit unit = parseUnit(getName() + ".dart", code);
 | 
| +    // A
 | 
| +    {
 | 
| +      DartClass classA = (DartClass) unit.getTopLevelNodes().get(0);
 | 
| +      // m0()
 | 
| +      {
 | 
| +        DartMethodDefinition method = (DartMethodDefinition) classA.getMembers().get(0);
 | 
| +        assertEquals("m0", method.getName().toSource());
 | 
| +        assertEquals(false, method.getMetadata().isOverride());
 | 
| +        assertNull(method.getDartDoc());
 | 
| +      }
 | 
| +      // m1()
 | 
| +      {
 | 
| +        DartMethodDefinition method = (DartMethodDefinition) classA.getMembers().get(1);
 | 
| +        assertEquals("m1", method.getName().toSource());
 | 
| +        assertEquals(true, method.getMetadata().isOverride());
 | 
| +        assertNull(method.getDartDoc());
 | 
| +      }
 | 
| +      // m2()
 | 
| +      {
 | 
| +        DartMethodDefinition method = (DartMethodDefinition) classA.getMembers().get(2);
 | 
| +        assertEquals("m2", method.getName().toSource());
 | 
| +        assertEquals(true, method.getMetadata().isOverride());
 | 
| +        {
 | 
| +          DartComment dartDoc = method.getDartDoc();
 | 
| +          assertNotNull(dartDoc);
 | 
| +          assertEquals("/** Leading DartDoc comment */", getNodeSource(code, dartDoc));
 | 
| +        }
 | 
| +      }
 | 
| +      // m3()
 | 
| +      {
 | 
| +        DartMethodDefinition method = (DartMethodDefinition) classA.getMembers().get(3);
 | 
| +        assertEquals("m3", method.getName().toSource());
 | 
| +        assertEquals(true, method.getMetadata().isOverride());
 | 
| +        {
 | 
| +          DartComment dartDoc = method.getDartDoc();
 | 
| +          assertNotNull(dartDoc);
 | 
| +          String commentCode = getNodeSource(code, dartDoc);
 | 
| +          assertTrue(commentCode.contains("DartDoc comment"));
 | 
| +          assertTrue(commentCode.contains("@override"));
 | 
| +        }
 | 
| +      }
 | 
| +    }
 | 
| +  }
 | 
|  }
 | 
| 
 |