| 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 5f90a7975d98f3f2bd9098aef1325d4a660617e3..3a72c7a692ec9ddd0720744ec81e17065fff2a6d 100644
|
| --- a/compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java
|
| +++ b/compiler/javatests/com/google/dart/compiler/parser/SyntaxTest.java
|
| @@ -46,6 +46,75 @@ import static com.google.dart.compiler.common.ErrorExpectation.errEx;
|
| import java.util.List;
|
|
|
| public class SyntaxTest extends AbstractParserTest {
|
| +
|
| + public void test_parseClass_withBeforeExtends() throws Exception {
|
| + parseUnit("test.dart", Joiner.on("\n").join(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| + "class A with B extends C {}",
|
| + ""),
|
| + ParserErrorCode.WITH_BEFORE_EXTENDS, 2, 9);
|
| + }
|
| +
|
| + public void test_parseClass_implementsBeforeExtends() throws Exception {
|
| + parseUnit("test.dart", Joiner.on("\n").join(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| + "class A implements B extends C {}",
|
| + ""),
|
| + ParserErrorCode.IMPLEMENTS_BEFORE_EXTENDS, 2, 9);
|
| + }
|
| +
|
| + public void test_parseClass_multipleExtends() throws Exception {
|
| + parseUnit("test.dart", Joiner.on("\n").join(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| + "class A extends B extends C {}",
|
| + ""),
|
| + ParserErrorCode.MULTIPLE_EXTENDS_CLAUSES, 2, 19);
|
| + }
|
| +
|
| + public void test_parseClass_implementsBeforeWith() throws Exception {
|
| + parseUnit("test.dart", Joiner.on("\n").join(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| + "class A extends B implements C with D {}",
|
| + ""),
|
| + ParserErrorCode.IMPLEMENTS_BEFORE_WITH, 2, 19);
|
| + }
|
| +
|
| + public void test_parseClass_multipleWith() throws Exception {
|
| + parseUnit("test.dart", Joiner.on("\n").join(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| + "class A extends B with C with D {}",
|
| + ""),
|
| + ParserErrorCode.MULTIPLE_WITH_CLAUSES, 2, 26);
|
| + }
|
| +
|
| + public void test_parseClass_multipleImplements() throws Exception {
|
| + parseUnit("test.dart", Joiner.on("\n").join(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| + "class A implements B implements C {}",
|
| + ""),
|
| + ParserErrorCode.MULTIPLE_IMPLEMENTS_CLAUSES, 2, 22);
|
| + }
|
| +
|
| + public void test_parseClass_withWithoutExtends() throws Exception {
|
| + parseUnit("test.dart", Joiner.on("\n").join(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| + "class A with B, C {}",
|
| + ""),
|
| + ParserErrorCode.WITH_WITHOUT_EXTENDS, 2, 9);
|
| + }
|
| +
|
| + public void test_parseClass_with() throws Exception {
|
| + parseUnit("test.dart", Joiner.on("\n").join(
|
| + "// filler filler filler filler filler filler filler filler filler filler",
|
| + "class A extends B with C, D {}",
|
| + ""));
|
| + DartClass clazz = findNode(DartClass.class, "class A");
|
| + NodeList<DartTypeNode> mixins = clazz.getMixins();
|
| + assertEquals(2, mixins.size());
|
| + assertEquals("C", mixins.get(0).toString());
|
| + assertEquals("D", mixins.get(1).toString());
|
| + }
|
| +
|
| /**
|
| * <p>
|
| * http://code.google.com/p/dart/issues/detail?id=6881
|
|
|