Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(600)

Unified Diff: compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java

Issue 10661022: Issue 3752. Support for @override annotations (as structured doc comments) (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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"));
+ }
+ }
+ }
+ }
}

Powered by Google App Engine
This is Rietveld 408576698