Index: dart/compiler/javatests/com/google/dart/compiler/parser/ParserRecoveryTest.java |
diff --git a/dart/compiler/javatests/com/google/dart/compiler/parser/ParserRecoveryTest.java b/dart/compiler/javatests/com/google/dart/compiler/parser/ParserRecoveryTest.java |
deleted file mode 100644 |
index b615cdfc50217fb0ef5307c5f578a6f6d4dae4bd..0000000000000000000000000000000000000000 |
--- a/dart/compiler/javatests/com/google/dart/compiler/parser/ParserRecoveryTest.java |
+++ /dev/null |
@@ -1,1694 +0,0 @@ |
-// 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. |
- |
-package com.google.dart.compiler.parser; |
- |
-import com.google.common.base.Joiner; |
-import com.google.dart.compiler.ast.DartArrayLiteral; |
-import com.google.dart.compiler.ast.DartBinaryExpression; |
-import com.google.dart.compiler.ast.DartBooleanLiteral; |
-import com.google.dart.compiler.ast.DartBreakStatement; |
-import com.google.dart.compiler.ast.DartClass; |
-import com.google.dart.compiler.ast.DartContinueStatement; |
-import com.google.dart.compiler.ast.DartDoWhileStatement; |
-import com.google.dart.compiler.ast.DartExprStmt; |
-import com.google.dart.compiler.ast.DartFieldDefinition; |
-import com.google.dart.compiler.ast.DartForInStatement; |
-import com.google.dart.compiler.ast.DartForStatement; |
-import com.google.dart.compiler.ast.DartFunctionTypeAlias; |
-import com.google.dart.compiler.ast.DartIdentifier; |
-import com.google.dart.compiler.ast.DartIfStatement; |
-import com.google.dart.compiler.ast.DartImportDirective; |
-import com.google.dart.compiler.ast.DartIntegerLiteral; |
-import com.google.dart.compiler.ast.DartLibraryDirective; |
-import com.google.dart.compiler.ast.DartMapLiteral; |
-import com.google.dart.compiler.ast.DartMethodDefinition; |
-import com.google.dart.compiler.ast.DartPropertyAccess; |
-import com.google.dart.compiler.ast.DartReturnStatement; |
-import com.google.dart.compiler.ast.DartSourceDirective; |
-import com.google.dart.compiler.ast.DartStatement; |
-import com.google.dart.compiler.ast.DartSwitchStatement; |
-import com.google.dart.compiler.ast.DartThrowExpression; |
-import com.google.dart.compiler.ast.DartTryStatement; |
-import com.google.dart.compiler.ast.DartTypeNode; |
-import com.google.dart.compiler.ast.DartUnit; |
-import com.google.dart.compiler.ast.DartUnqualifiedInvocation; |
-import com.google.dart.compiler.ast.DartVariable; |
-import com.google.dart.compiler.ast.DartVariableStatement; |
-import com.google.dart.compiler.ast.DartWhileStatement; |
- |
-import java.math.BigInteger; |
-import java.util.List; |
- |
-public class ParserRecoveryTest extends AbstractParserTest { |
- |
- @Override |
- public void testStringsErrors() { |
- // Implemented elsewhere |
- } |
- |
- public void test_incompleteFunctionExpression() { |
- DartParserRunner parserRunner = parseSource(Joiner.on("\n").join( |
- "// filler filler filler filler filler filler filler filler filler filler", |
- "main() {", |
- " var v = (AAA a, BB)", |
- "}")); |
- DartUnit unit = parserRunner.getDartUnit(); |
- assertEquals( |
- Joiner.on("\n").join( |
- "// unit test_incompleteFunctionExpression", |
- "", |
- "main() {", |
- " var v = (AAA a, BB) {", |
- " };", |
- "}", |
- ""), |
- unit.toString()); |
- } |
- |
- public void test_incompleteFunctionExpression_qualifiedType() { |
- DartParserRunner parserRunner = parseSource(Joiner.on("\n").join( |
- "// filler filler filler filler filler filler filler filler filler filler", |
- "main() {", |
- " var v = (pref.AAA a, BB)", |
- "}")); |
- DartUnit unit = parserRunner.getDartUnit(); |
- assertEquals( |
- Joiner.on("\n").join( |
- "// unit test_incompleteFunctionExpression_qualifiedType", |
- "", |
- "main() {", |
- " var v = (pref.AAA a, BB) {", |
- " };", |
- "}", |
- ""), |
- unit.toString()); |
- } |
- |
- public void test_incompleteFunctionExpression_typeArguments() { |
- DartParserRunner parserRunner = parseSource(Joiner.on("\n").join( |
- "// filler filler filler filler filler filler filler filler filler filler", |
- "main() {", |
- " var v = (AAA<T1, T2<T3, T4>, T5> a, BB)", |
- "}")); |
- DartUnit unit = parserRunner.getDartUnit(); |
- assertEquals( |
- Joiner.on("\n").join( |
- "// unit test_incompleteFunctionExpression_typeArguments", |
- "", |
- "main() {", |
- " var v = (AAA<T1, T2<T3, T4>, T5> a, BB) {", |
- " };", |
- "}", |
- ""), |
- unit.toString()); |
- } |
- |
- public void testVarOnMethodDefinition() { |
- // This syntax is illegal, and should produce errors, but since it is a common error, |
- // we want to make sure it produce a valid AST for editor users |
- DartUnit unit = parseUnit("phony_var_on_method.dart", |
- Joiner.on("\n").join( |
- "var f1() { return 1;}", // Error, use of var on a method |
- "class A { ", |
- " var f2() { return 1;}", // Error, use of var on a method |
- " f3() { return 2; }", |
- "}"), |
- ParserErrorCode.VAR_IS_NOT_ALLOWED_ON_A_METHOD_DEFINITION, 1, 1, |
- ParserErrorCode.VAR_IS_NOT_ALLOWED_ON_A_METHOD_DEFINITION, 3, 3); |
- DartMethodDefinition f1 = (DartMethodDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("f1", ((DartIdentifier)(f1.getName())).getName()); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(1); |
- DartMethodDefinition f2 = (DartMethodDefinition)(A.getMembers().get(0)); |
- assertEquals("f2", ((DartIdentifier)(f2.getName())).getName()); |
- // Make sure that parsing continue |
- DartMethodDefinition f3 = (DartMethodDefinition)(A.getMembers().get(1)); |
- assertEquals("f3", ((DartIdentifier)(f3.getName())).getName()); |
- } |
- |
- public void testFinalOnMethodDefinition() { |
- // This syntax is illegal, and should produce errors, but since it is a common error, |
- // we want to make sure it produce a valid AST for editor users |
- DartUnit unit = parseUnit("phony_final_on_method.dart", |
- Joiner.on("\n").join( |
- "final f1() {return 1;}", // Error, use of final on a method |
- "class A { ", |
- " final f2() {return 1;}", // Error, use of final on a method |
- " f3() { return 2; }", |
- " final String f4() { return 1; }", // Error, use of final on a method |
- "}"), |
- ParserErrorCode.FINAL_IS_NOT_ALLOWED_ON_A_METHOD_DEFINITION, 1, 1, |
- ParserErrorCode.FINAL_IS_NOT_ALLOWED_ON_A_METHOD_DEFINITION, 3, 3, |
- ParserErrorCode.FINAL_IS_NOT_ALLOWED_ON_A_METHOD_DEFINITION, 5, 9); |
- DartMethodDefinition f1 = (DartMethodDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("f1", ((DartIdentifier)(f1.getName())).getName()); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(1); |
- DartMethodDefinition f2 = (DartMethodDefinition)(A.getMembers().get(0)); |
- assertEquals("f2", ((DartIdentifier)(f2.getName())).getName()); |
- DartMethodDefinition f3 = (DartMethodDefinition)(A.getMembers().get(1)); |
- assertEquals("f3", ((DartIdentifier)(f3.getName())).getName()); |
- DartMethodDefinition f4 = (DartMethodDefinition)(A.getMembers().get(2)); |
- assertEquals("f4", ((DartIdentifier)(f4.getName())).getName()); |
- } |
- |
- public void testRecoverToTopLevel1() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_to_toplevel1.dart", |
- Joiner.on("\n").join( |
- "class A {", |
- " var a;", |
- "", // error - missing right brace |
- "class B { ", // error recover should pick up class B |
- " var b;", |
- "}")); |
- // Make sure class B is still around |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(0); |
- assertEquals("A", A.getName().getName()); |
- DartFieldDefinition A_a = (DartFieldDefinition)A.getMembers().get(0); |
- assertEquals("a", A_a.getFields().get(0).getName().getName()); |
- DartClass B = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("B", B.getName().getName()); |
- DartFieldDefinition B_b = (DartFieldDefinition)B.getMembers().get(0); |
- assertEquals("b", B_b.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverToTopLevel2() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_to_toplevel2.dart", |
- Joiner.on("\n").join( |
- "class A {", |
- " var a;", |
- " var incomplete", // error - missing semicolon |
- "", // error - missing closing brace |
- "class B { ", // error recover should pick up class B |
- " var b;", |
- "}")); |
- // Make sure class B is still around |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(0); |
- assertEquals("A", A.getName().getName()); |
- DartFieldDefinition A_a = (DartFieldDefinition)A.getMembers().get(0); |
- assertEquals("a", A_a.getFields().get(0).getName().getName()); |
- DartClass B = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("B", B.getName().getName()); |
- DartFieldDefinition B_b = (DartFieldDefinition)B.getMembers().get(0); |
- assertEquals("b", B_b.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverToTopLevel3() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_to_toplevel3.dart", |
- Joiner.on("\n").join( |
- "class A {", |
- " var a;", |
- " var incomplete = ", // error - missing value |
- "", // error - missing closing brace |
- "class B { ", // error recover should pick up class B |
- " var b;", |
- "}")); |
- // Make sure class B is still around |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(0); |
- assertEquals("A", A.getName().getName()); |
- DartFieldDefinition A_a = (DartFieldDefinition)A.getMembers().get(0); |
- assertEquals("a", A_a.getFields().get(0).getName().getName()); |
- DartClass B = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("B", B.getName().getName()); |
- DartFieldDefinition B_b = (DartFieldDefinition)B.getMembers().get(0); |
- assertEquals("b", B_b.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverToTopLevel4() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_to_toplevel4.dart", |
- Joiner.on("\n").join( |
- "class A {", |
- " var a;", |
- " incomplete()", // error - missing body |
- "", // error - missing right brace |
- "class B { ", // error recover should pick up class B |
- " var b;", |
- "}")); |
- // Make sure class B is still around |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(0); |
- assertEquals("A", A.getName().getName()); |
- DartFieldDefinition A_a = (DartFieldDefinition)A.getMembers().get(0); |
- assertEquals("a", A_a.getFields().get(0).getName().getName()); |
- DartClass B = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("B", B.getName().getName()); |
- DartFieldDefinition B_b = (DartFieldDefinition)B.getMembers().get(0); |
- assertEquals("b", B_b.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverToTopLevel5() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_to_toplevel5.dart", |
- Joiner.on("\n").join( |
- "class A {", |
- " var a;", |
- " incomplete()", // error - missing body |
- "}", |
- "class B { ", // error recover should pick up class B |
- " var b;", |
- "}")); |
- // Make sure class B is still around |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(0); |
- assertEquals("A", A.getName().getName()); |
- DartFieldDefinition A_a = (DartFieldDefinition)A.getMembers().get(0); |
- assertEquals("a", A_a.getFields().get(0).getName().getName()); |
- DartClass B = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("B", B.getName().getName()); |
- DartFieldDefinition B_b = (DartFieldDefinition)B.getMembers().get(0); |
- assertEquals("b", B_b.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverToTopLevel6() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_to_toplevel6.dart", |
- Joiner.on("\n").join( |
- "class A {", |
- " var a;", |
- " method() { instance.field", // error - missing semicolon, missing rbrace |
- "}", |
- "class B { ", // error recover should pick up class B |
- " var b;", |
- "}")); |
- // Make sure class B is still around |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(0); |
- assertEquals("A", A.getName().getName()); |
- DartFieldDefinition A_a = (DartFieldDefinition)A.getMembers().get(0); |
- assertEquals("a", A_a.getFields().get(0).getName().getName()); |
- DartClass B = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("B", B.getName().getName()); |
- DartFieldDefinition B_b = (DartFieldDefinition)B.getMembers().get(0); |
- assertEquals("b", B_b.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverToTopLevel7() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_to_toplevel7.dart", |
- Joiner.on("\n").join( |
- "class A {", |
- " var a;", |
- " method() { instance.field", // error - missing semicolon, missing rbrace |
- "", // error missing rbrace |
- "class B { ", // error recover should pick up class B |
- " var b;", |
- "}")); |
- // Make sure class B is still around |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(0); |
- assertEquals("A", A.getName().getName()); |
- DartFieldDefinition A_a = (DartFieldDefinition)A.getMembers().get(0); |
- assertEquals("a", A_a.getFields().get(0).getName().getName()); |
- DartClass B = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("B", B.getName().getName()); |
- DartFieldDefinition B_b = (DartFieldDefinition)B.getMembers().get(0); |
- assertEquals("b", B_b.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverToTopLevel8() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_to_toplevel8.dart", |
- Joiner.on("\n").join( |
- "class A {", |
- " var a;", |
- " method() {", |
- " B instance ;", |
- " instance.", // error - missing semicolon, missing rbrace |
- "", // error missing rbrace |
- "class B { ", // error recover should pick up class B |
- " var b;", |
- "}")); |
- // Make sure class B is still around |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(0); |
- assertEquals("A", A.getName().getName()); |
- DartFieldDefinition A_a = (DartFieldDefinition)A.getMembers().get(0); |
- assertEquals("a", A_a.getFields().get(0).getName().getName()); |
- DartClass B = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("B", B.getName().getName()); |
- DartFieldDefinition B_b = (DartFieldDefinition)B.getMembers().get(0); |
- assertEquals("b", B_b.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverToTopLevel9() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_to_toplevel9.dart", |
- Joiner.on("\n").join( |
- "class A ", // missing braces |
- "class B { ", // error recovery should pick up class B |
- " var b;", |
- "}")); |
- // Make sure class B is still around |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(0); |
- assertEquals("A", A.getName().getName()); |
- DartClass B = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("B", B.getName().getName()); |
- DartFieldDefinition B_b = (DartFieldDefinition)B.getMembers().get(0); |
- assertEquals("b", B_b.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverToTopLevel10() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_to_toplevel10.dart", |
- Joiner.on("\n").join( |
- "class A ", // missing opening brace |
- " var a;", |
- "}", |
- "class B { ", // error recovery should pick up class B |
- " var b;", |
- "}")); |
- // Make sure class B is still around |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(0); |
- assertEquals("A", A.getName().getName()); |
- // In this case, the parser chooses to promote 'var a' to a top level element |
- DartClass B = (DartClass)unit.getTopLevelNodes().get(2); |
- assertEquals("B", B.getName().getName()); |
- DartFieldDefinition B_b = (DartFieldDefinition)B.getMembers().get(0); |
- assertEquals("b", B_b.getFields().get(0).getName().getName()); |
- } |
- |
- public void testReservedWordClass() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_reserved_word_class", |
- Joiner.on("\n").join( |
- "class foo {}", |
- "main() {", |
- " int class = 10;", |
- " print(\"class = $class\");", |
- "}", |
- "class bar {}")); |
- DartClass foo = (DartClass)unit.getTopLevelNodes().get(0); |
- assertEquals("foo", foo.getName().getName()); |
- DartMethodDefinition mainMethod = (DartMethodDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("main", ((DartIdentifier)mainMethod.getName()).getName()); |
- // The recovery on 'int class' closes the main method, assuming int class = 10 is a |
- // new toplevel so 'print' ends up as a bogus top level node. |
- DartClass bar = (DartClass)unit.getTopLevelNodes().get(3); |
- assertEquals("bar", bar.getName().getName()); |
- } |
- |
- public void testBadOperatorRecovery() { |
- DartUnit unit = parseUnit("phony_bad_operator_recovery", |
- Joiner.on("\n").join( |
- "class foo {", |
- " operator / (arg) {}", |
- " operator /= (arg) {}", |
- " operator ][ (arg) {}", |
- " operator === (arg) {}", |
- " operator + (arg) {}", |
- "}"), |
- ParserErrorCode.OPERATOR_IS_NOT_USER_DEFINABLE, 3, 12, |
- ParserErrorCode.OPERATOR_IS_NOT_USER_DEFINABLE, 4, 12, |
- ParserErrorCode.OPERATOR_IS_NOT_USER_DEFINABLE, 5, 12); |
- DartClass foo = (DartClass)unit.getTopLevelNodes().get(0); |
- assertEquals("foo", foo.getName().getName()); |
- DartMethodDefinition opDiv = (DartMethodDefinition)foo.getMembers().get(0); |
- assertEquals("/", ((DartIdentifier)opDiv.getName()).getName()); |
- DartMethodDefinition opAssignDiv = (DartMethodDefinition)foo.getMembers().get(1); |
- assertEquals("/=", ((DartIdentifier)opAssignDiv.getName()).getName()); |
- DartMethodDefinition opNonsense = (DartMethodDefinition)foo.getMembers().get(2); |
- assertEquals("][", ((DartIdentifier)opNonsense.getName()).getName()); |
- DartMethodDefinition opEquiv = (DartMethodDefinition)foo.getMembers().get(3); |
- assertEquals("===", ((DartIdentifier)opEquiv.getName()).getName()); |
- DartMethodDefinition opPlus = (DartMethodDefinition)foo.getMembers().get(4); |
- assertEquals("+", ((DartIdentifier)opPlus.getName()).getName()); |
- } |
- |
- public void testPropertyAccessInArgumentListRecovery1() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access1.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "var bad = new B(null, foo.);", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFieldDefinition bad = (DartFieldDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getFields().get(0).getName().getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInArgumentListRecovery2() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access2.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "var bad = new B(null, foo.,);", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFieldDefinition bad = (DartFieldDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getFields().get(0).getName().getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInArgumentListRecovery3() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access3.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "var bad = new B(null,, foo);", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFieldDefinition bad = (DartFieldDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getFields().get(0).getName().getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInArgumentListRecovery4() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access4.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "var bad = new B(null,+, foo);", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFieldDefinition bad = (DartFieldDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getFields().get(0).getName().getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInInitializerListRecovery1() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access1.dart", |
- Joiner.on("\n").join( |
- "class A {", |
- " var before;", |
- " A() : before = foo. ;", |
- " var after;", |
- "}")); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(0); |
- DartFieldDefinition before = (DartFieldDefinition)A.getMembers().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartMethodDefinition bad = (DartMethodDefinition)A.getMembers().get(1); |
- assertEquals("A", ((DartIdentifier)bad.getName()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)A.getMembers().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInFormalParameterList1() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_parameter1.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "typedef void bad(bar.);", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFunctionTypeAlias bad = (DartFunctionTypeAlias)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getName().getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInFormalParameterList2() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_parameter2.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "typedef void bad(bar.,baz);", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFunctionTypeAlias bad = (DartFunctionTypeAlias)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getName().getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInFormalParameterList3() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_parameter3.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "typedef void bad(foo, [bar.]);", // incomplete property access |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFunctionTypeAlias bad = (DartFunctionTypeAlias)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getName().getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- |
- public void testPropertyAccessInFormalParameterList4() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_parameter4.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "typedef void bad(int bar.);", // a property access is not valid here |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFunctionTypeAlias bad = (DartFunctionTypeAlias)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getName().getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInFormalParameterList5() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_parameter5.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "var bad = (bar.) {};", // incomplete property access |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFieldDefinition bad = (DartFieldDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getFields().get(0).getName().getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInFormalParameterList6() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_parameter6.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "void bad(foo.);", // incomplete property access |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartMethodDefinition bad = (DartMethodDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", ((DartIdentifier)bad.getName()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverInBlock1() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_in_block1.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "bad() { foo( }", // unterminated invocation |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartMethodDefinition bad = (DartMethodDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", ((DartIdentifier)bad.getName()).getName()); |
- DartUnqualifiedInvocation invocation = (DartUnqualifiedInvocation) |
- ((DartExprStmt)bad.getFunction().getBody().getStatements().get(0)).getExpression(); |
- assertEquals("foo", invocation.getTarget().getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverInBlock2() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_in_block2.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "bad() { foo }", // unterminated statement |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartMethodDefinition bad = (DartMethodDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", ((DartIdentifier)bad.getName()).getName()); |
- DartIdentifier ident = (DartIdentifier) |
- ((DartExprStmt)bad.getFunction().getBody().getStatements().get(0)).getExpression(); |
- assertEquals("foo", ident.getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverInBlock3() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_in_block3.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "bad() { foo. }", // unterminated statement |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartMethodDefinition bad = (DartMethodDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", ((DartIdentifier)bad.getName()).getName()); |
- DartPropertyAccess prop = (DartPropertyAccess) |
- ((DartExprStmt)bad.getFunction().getBody().getStatements().get(0)).getExpression(); |
-assertEquals("foo", ((DartIdentifier)prop.getQualifier()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverInBlock4() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_in_block4.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "bad() { var foo = }", // unterminated variable decl |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartMethodDefinition bad = (DartMethodDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", ((DartIdentifier)bad.getName()).getName()); |
- DartVariable foo = ((DartVariableStatement)bad.getFunction().getBody().getStatements().get(0)) |
- .getVariables().get(0); |
- assertEquals("foo", foo.getVariableName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverInBlock5() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_in_block5.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "bad() { foo(bar. }", // unterminated invocation |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartMethodDefinition bad = (DartMethodDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", ((DartIdentifier)bad.getName()).getName()); |
- DartUnqualifiedInvocation invocation = (DartUnqualifiedInvocation) |
- ((DartExprStmt)bad.getFunction().getBody().getStatements().get(0)).getExpression(); |
- assertEquals("foo", invocation.getTarget().getName()); |
- DartPropertyAccess arg0 = (DartPropertyAccess)invocation.getArguments().get(0); |
- assertEquals("bar", ((DartIdentifier)arg0.getQualifier()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoverInBlock6() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recover_in_block6.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "bad() { foo + }", // incomplete expression |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartMethodDefinition bad = (DartMethodDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", ((DartIdentifier)bad.getName()).getName()); |
- DartBinaryExpression expr = (DartBinaryExpression) |
- ((DartExprStmt)bad.getFunction().getBody().getStatements().get(0)).getExpression(); |
- assertEquals("foo", ((DartIdentifier)expr.getArg1()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInExpressionList1() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_expression_list1.dart", |
- Joiner.on("\n").join( |
- "method() {", |
- " var before;", |
- " for (var i=0;i < 2;before, foo.,after) {}", |
- " var after;", |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- DartVariable before = ((DartVariableStatement) method.getFunction().getBody().getStatements() |
- .get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartForStatement forStatement = (DartForStatement) method.getFunction().getBody() |
- .getStatements().get(1); |
- DartBinaryExpression increment = (DartBinaryExpression) forStatement.getIncrement(); |
- DartBinaryExpression i1 = (DartBinaryExpression) increment.getArg1(); |
- DartIdentifier beforeIdent = (DartIdentifier) i1.getArg1(); |
- assertEquals("before", beforeIdent.getName()); |
- DartPropertyAccess foo = (DartPropertyAccess) i1.getArg2(); |
- assertEquals("foo", ((DartIdentifier) foo.getQualifier()).getName()); |
- DartIdentifier afterIdent = (DartIdentifier) increment.getArg2(); |
- assertEquals("after", afterIdent.getName()); |
- DartVariable after = ((DartVariableStatement) method.getFunction().getBody().getStatements() |
- .get(2)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testPropertyAccessInExpressionList2() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_expression_list2.dart", |
- Joiner.on("\n").join( |
- "method() {", |
- " var before;", |
- " for (var i=0;i < 2; foo.) {}", |
- " var after;", |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- DartVariable before = ((DartVariableStatement) method.getFunction().getBody().getStatements() |
- .get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartForStatement forStatement = (DartForStatement) method.getFunction().getBody() |
- .getStatements().get(1); |
- DartPropertyAccess foo = (DartPropertyAccess) forStatement.getIncrement(); |
- assertEquals("foo", ((DartIdentifier) foo.getQualifier()).getName()); |
- DartVariable after = ((DartVariableStatement) method.getFunction().getBody().getStatements() |
- .get(2)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testPropertyAccessInArrayLiteral1() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_array_literal1.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "var bad = [foo.];", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFieldDefinition bad = (DartFieldDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getFields().get(0).getName().getName()); |
- DartArrayLiteral literal = (DartArrayLiteral)bad.getFields().get(0).getValue(); |
- DartPropertyAccess foo = (DartPropertyAccess)literal.getExpressions().get(0); |
- assertEquals("foo", ((DartIdentifier)foo.getQualifier()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInArrayLiteral2() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_array_literal2.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "var bad = [foo.,];", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFieldDefinition bad = (DartFieldDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getFields().get(0).getName().getName()); |
- DartArrayLiteral literal = (DartArrayLiteral)bad.getFields().get(0).getValue(); |
- DartPropertyAccess foo = (DartPropertyAccess)literal.getExpressions().get(0); |
- assertEquals("foo", ((DartIdentifier)foo.getQualifier()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInArrayLiteral3() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_array_literal2.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "var bad = [foo. + ];", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFieldDefinition bad = (DartFieldDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getFields().get(0).getName().getName()); |
- DartArrayLiteral literal = (DartArrayLiteral)bad.getFields().get(0).getValue(); |
- DartPropertyAccess foo = (DartPropertyAccess)literal.getExpressions().get(0); |
- assertEquals("foo", ((DartIdentifier)foo.getQualifier()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInMapLiteral1() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_map_literal1.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "var bad = {\"key\" : foo.};", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFieldDefinition bad = (DartFieldDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getFields().get(0).getName().getName()); |
- DartMapLiteral literal = (DartMapLiteral)bad.getFields().get(0).getValue(); |
- DartPropertyAccess foo = (DartPropertyAccess)literal.getEntries().get(0).getValue(); |
- assertEquals("foo", ((DartIdentifier)foo.getQualifier()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInMapLiteral2() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_map_literal2.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "var bad = {\"key\" : foo.,};", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFieldDefinition bad = (DartFieldDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getFields().get(0).getName().getName()); |
- DartMapLiteral literal = (DartMapLiteral)bad.getFields().get(0).getValue(); |
- DartPropertyAccess foo = (DartPropertyAccess)literal.getEntries().get(0).getValue(); |
- assertEquals("foo", ((DartIdentifier)foo.getQualifier()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInMapLiteral3() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_map_literal3.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "var bad = {\"key\" : foo. +};", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFieldDefinition bad = (DartFieldDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getFields().get(0).getName().getName()); |
- DartMapLiteral literal = (DartMapLiteral)bad.getFields().get(0).getValue(); |
- DartPropertyAccess foo = (DartPropertyAccess)literal.getEntries().get(0).getValue(); |
- assertEquals("foo", ((DartIdentifier)foo.getQualifier()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoveryDirective1() { |
- DartUnit unit = parseUnit("phony_recovery_directive1.dart", |
- Joiner.on("\n").join( |
- "library a;", |
- "library b;"), |
- ParserErrorCode.DIRECTIVE_OUT_OF_ORDER, 2, 1, |
- ParserErrorCode.ONLY_ONE_LIBRARY_DIRECTIVE, 2, 10); |
- DartLibraryDirective a = (DartLibraryDirective)unit.getDirectives().get(0); |
- assertEquals("a", a.getLibraryName()); |
- DartLibraryDirective b = (DartLibraryDirective)unit.getDirectives().get(1); |
- assertEquals("b", b.getLibraryName()); |
- } |
- |
- public void testRecoveryDirective2() { |
- DartUnit unit = parseUnit("phony_recovery_directive2.dart", |
- Joiner.on("\n").join( |
- "import 'a';", |
- "library b;"), |
- ParserErrorCode.DIRECTIVE_OUT_OF_ORDER, 2, 1); |
- DartImportDirective a = (DartImportDirective)unit.getDirectives().get(0); |
- assertEquals("a", a.getLibraryUri().getValue()); |
- DartLibraryDirective b = (DartLibraryDirective)unit.getDirectives().get(1); |
- assertEquals("b", b.getLibraryName()); |
- } |
- |
- public void testRecoveryDirective3() { |
- DartUnit unit = parseUnit("phony_recovery_directive3.dart", |
- Joiner.on("\n").join( |
- "part 'a';", |
- "import 'b';"), |
- ParserErrorCode.DIRECTIVE_OUT_OF_ORDER, 2, 1); |
- DartSourceDirective a = (DartSourceDirective)unit.getDirectives().get(0); |
- assertEquals("a", a.getSourceUri().getValue()); |
- DartImportDirective b = (DartImportDirective)unit.getDirectives().get(1); |
- assertEquals("b", b.getLibraryUri().getValue()); |
- } |
- |
- public void testRecoveryDirective4() { |
- DartUnit unit = parseUnit("phony_recovery_directive4.dart", |
- Joiner.on("\n").join( |
- "import 'a'", // missing semicolon |
- "import 'b';"), |
- ParserErrorCode.EXPECTED_TOKEN, 1, 8); |
- DartImportDirective a = (DartImportDirective)unit.getDirectives().get(0); |
- assertEquals("a", a.getLibraryUri().getValue()); |
- DartImportDirective b = (DartImportDirective)unit.getDirectives().get(1); |
- assertEquals("b", b.getLibraryUri().getValue()); |
- } |
- |
- public void testRecoveryDirective6() { |
- DartUnit unit = parseUnit("phony_recovery_directive6.dart", |
- Joiner.on("\n").join( |
- "import 'a'", // missing semicolon |
- "class b {}"), |
- ParserErrorCode.EXPECTED_TOKEN, 1, 8); |
- DartImportDirective a = (DartImportDirective)unit.getDirectives().get(0); |
- assertEquals("a", a.getLibraryUri().getValue()); |
- DartClass b = (DartClass)unit.getTopLevelNodes().get(0); |
- assertEquals("b", b.getClassName()); |
- } |
- |
- |
- public void testPropertyAccessInTypeArgsRecovery1() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_type_args1.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "List<foo.> bad;", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartFieldDefinition bad = (DartFieldDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getFields().get(0).getName().getName()); |
- DartTypeNode badTypeNode = bad.getTypeNode().getTypeArguments().get(0); |
- assertEquals("foo", ((DartIdentifier)((DartPropertyAccess)badTypeNode.getIdentifier()).getQualifier()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInTypeArgsRecovery2() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_type_args2.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "List<foo. +> bad;", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
-// DartFieldDefinition bad = (DartFieldDefinition)unit.getTopLevelNodes().get(1); |
-// assertEquals("bad", bad.getFields().get(0).getName().getName()); |
-// DartTypeNode badTypeNode = bad.getTypeNode().getTypeArguments().get(0); |
-// assertEquals("foo", ((DartIdentifier)((DartPropertyAccess)badTypeNode.getIdentifier()).getQualifier()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInTypeParametersRecovery1() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_type_param1.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class bad<T extends foo.> {}", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass bad = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getClassName()); |
- DartTypeNode badTypeNode = bad.getTypeParameters().get(0).getBound(); |
- assertEquals("foo", ((DartIdentifier)((DartPropertyAccess)badTypeNode.getIdentifier()).getQualifier()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInTypeParametersRecovery2() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_type_param2.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class bad<T extends foo. +> {}", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass bad = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getClassName()); |
- DartTypeNode badTypeNode = bad.getTypeParameters().get(0).getBound(); |
- assertEquals("foo", ((DartIdentifier)((DartPropertyAccess)badTypeNode.getIdentifier()).getQualifier()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testPropertyAccessInTypeParametersRecovery3() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_property_access_type_param3.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class bad<foo +> {}", |
- "var after;")); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass bad = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("bad", bad.getClassName()); |
- assertEquals("foo", bad.getTypeParameters().get(0).getName().getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testInvalidIdentifier1() { |
- DartUnit unit = parseUnit("phony_invalid_identifier.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class void {}", |
- "var after;"), |
- ParserErrorCode.INVALID_IDENTIFIER, 2, 7); |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(1); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- } |
- |
- public void testRecoveryClassRbrace1() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recovery_class_rbrace1.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class A {", |
- " int bad =,", // incomplete field definition |
- "}", |
- "int after;")); // use 'int' instead of 'var' because it is harder to recover to |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("A", A.getClassName()); |
- DartFieldDefinition bad = (DartFieldDefinition)A.getMembers().get(0); |
- assertEquals("bad", bad.getFields().get(0).getName().getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- assertEquals("int", ((DartIdentifier)after.getTypeNode().getIdentifier()).getName()); |
- } |
- |
- public void testRecoveryClassRbrace2() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recovery_class_rbrace2.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class A {", |
- " int bad( arg a,", // incomplete method definition |
- "}", |
- "int after;")); // use 'int' instead of 'var' because it is harder to recover to |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("A", A.getClassName()); |
- DartMethodDefinition bad = (DartMethodDefinition)A.getMembers().get(0); |
- assertEquals("bad", ((DartIdentifier)bad.getName()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- assertEquals("int", ((DartIdentifier)after.getTypeNode().getIdentifier()).getName()); |
- } |
- |
- public void testRecoveryClassRbrace3() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recovery_class_rbrace3.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class A {", |
- " int bad( arg a, ; complete garbage follows", // incomplete method definition |
- "}", |
- "int after;")); // use 'int' instead of 'var' because it is harder to recover to |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("A", A.getClassName()); |
- DartMethodDefinition bad = (DartMethodDefinition)A.getMembers().get(0); |
- assertEquals("bad", ((DartIdentifier)bad.getName()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- assertEquals("int", ((DartIdentifier)after.getTypeNode().getIdentifier()).getName()); |
- } |
- |
- public void testRecoveryClassRbrace4() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recovery_class_rbrace4.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class A {", |
- " int bad(arg a) { junk }; ", // trailing semicolon |
- "}", |
- "int after;")); // use 'int' instead of 'var' because it is harder to recover to |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("A", A.getClassName()); |
- DartMethodDefinition bad = (DartMethodDefinition)A.getMembers().get(0); |
- assertEquals("bad", ((DartIdentifier)bad.getName()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- assertEquals("int", ((DartIdentifier)after.getTypeNode().getIdentifier()).getName()); |
- } |
- |
- public void testRecoveryClassRbrace5() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recovery_class_rbrace5.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class A {", |
- " var bad = int foo(arg a) { = junk }; ", // jibberish value with trailing semicolon |
- "}", |
- "int after;")); // use 'int' instead of 'var' because it is harder to recover to |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("A", A.getClassName()); |
- DartFieldDefinition bad = (DartFieldDefinition)A.getMembers().get(0); |
- assertEquals("bad", bad.getFields().get(0).getName().getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- assertEquals("int", ((DartIdentifier)after.getTypeNode().getIdentifier()).getName()); |
- } |
- |
- public void testRecoveryClassRbrace6() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recovery_class_rbrace6.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class A {", |
- " bad() ", // incomplete method |
- "}", |
- "int after;")); // use 'int' instead of 'var' because it is harder to recover to |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("A", A.getClassName()); |
- DartMethodDefinition bad = (DartMethodDefinition)A.getMembers().get(0); |
- assertEquals("bad", ((DartIdentifier)bad.getName()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- assertEquals("int", ((DartIdentifier)after.getTypeNode().getIdentifier()).getName()); |
- } |
- |
- public void testRecoveryClassRbrace7() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recovery_class_rbrace7.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class A {", |
- " bad() }", // incomplete method |
- "}", |
- "int after;")); // use 'int' instead of 'var' because it is harder to recover to |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("A", A.getClassName()); |
- DartMethodDefinition bad = (DartMethodDefinition)A.getMembers().get(0); |
- assertEquals("bad", ((DartIdentifier)bad.getName()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- assertEquals("int", ((DartIdentifier)after.getTypeNode().getIdentifier()).getName()); |
- } |
- |
- public void testRecoveryClassRbrace8() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recovery_class_rbrace8.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class A {", |
- " bad( }", // incomplete method |
- "}", |
- "int after;")); // use 'int' instead of 'var' because it is harder to recover to |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("A", A.getClassName()); |
- DartMethodDefinition bad = (DartMethodDefinition)A.getMembers().get(0); |
- assertEquals("bad", ((DartIdentifier)bad.getName()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- assertEquals("int", ((DartIdentifier)after.getTypeNode().getIdentifier()).getName()); |
- } |
- |
- public void testRecoveryClassRbrace9() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recovery_class_rbrace9.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class A {", |
- " bad", // incomplete declaration |
- "}", |
- "int after;")); // use 'int' instead of 'var' because it is harder to recover to |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("A", A.getClassName()); |
- DartMethodDefinition bad = (DartMethodDefinition)A.getMembers().get(0); |
- assertNotNull(bad); |
- // assertEquals("bad", ((DartIdentifier)bad.getName()).getName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- assertEquals("int", ((DartIdentifier)after.getTypeNode().getIdentifier()).getName()); |
- } |
- |
- public void testRecoveryClassRbrace10() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recovery_class_rbrace10.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class A {", |
- " void", // incomplete declaration |
- "}", |
- "int after;")); // use 'int' instead of 'var' because it is harder to recover to |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("A", A.getClassName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- assertEquals("int", ((DartIdentifier)after.getTypeNode().getIdentifier()).getName()); |
- } |
- |
- public void testRecoveryClassRbrace11() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recovery_class_rbrace11.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class A {", |
- " const", // incomplete declaration |
- "}", |
- "int after;")); // use 'int' instead of 'var' because it is harder to recover to |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("A", A.getClassName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- assertEquals("int", ((DartIdentifier)after.getTypeNode().getIdentifier()).getName()); |
- } |
- |
- public void testRecoveryClassRbrace12() { |
- DartUnit unit = parseUnitUnspecifiedErrors("phony_recovery_class_rbrace12.dart", |
- Joiner.on("\n").join( |
- "var before;", |
- "class A {", |
- " ;;;;", // stray semicolons |
- "}", |
- "int after;")); // use 'int' instead of 'var' because it is harder to recover to |
- DartFieldDefinition before = (DartFieldDefinition)unit.getTopLevelNodes().get(0); |
- assertEquals("before", before.getFields().get(0).getName().getName()); |
- DartClass A = (DartClass)unit.getTopLevelNodes().get(1); |
- assertEquals("A", A.getClassName()); |
- DartFieldDefinition after = (DartFieldDefinition)unit.getTopLevelNodes().get(2); |
- assertEquals("after", after.getFields().get(0).getName().getName()); |
- assertEquals("int", ((DartIdentifier)after.getTypeNode().getIdentifier()).getName()); |
- } |
- |
- public void testRecoveryBeforeIf1() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_if1.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad.", |
- " if (false) {}", |
- " int after;", // use 'int' instead of 'var' because it is harder to recover to |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartPropertyAccess bad = (DartPropertyAccess) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", ((DartIdentifier) bad.getQualifier()).getName()); |
- DartIfStatement ifStatement = (DartIfStatement) statements.get(2); |
- assertEquals(false, ((DartBooleanLiteral)ifStatement.getCondition()).getValue()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeIf2() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_if2.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad", |
- " if (false) {}", |
- " int after;", // use 'int' instead of 'var' because it is harder to recover to |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartIdentifier bad = (DartIdentifier) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", bad.getName()); |
- DartIfStatement ifStatement = (DartIfStatement) statements.get(2); |
- assertEquals(false, ((DartBooleanLiteral)ifStatement.getCondition()).getValue()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeSwitch1() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_switch1.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad.", |
- " switch (false) {}", |
- " int after;", // use 'int' instead of 'var' because it is harder to recover to |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartPropertyAccess bad = (DartPropertyAccess) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", ((DartIdentifier) bad.getQualifier()).getName()); |
- DartSwitchStatement switchStatement = (DartSwitchStatement) statements.get(2); |
- assertEquals(false, ((DartBooleanLiteral)switchStatement.getExpression()).getValue()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeSwitch2() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_switch2.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad", |
- " switch (false) {}", |
- " int after;", // use 'int' instead of 'var' because it is harder to recover to |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartIdentifier bad = (DartIdentifier) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", bad.getName()); |
- DartSwitchStatement switchStatement = (DartSwitchStatement) statements.get(2); |
- assertEquals(false, ((DartBooleanLiteral)switchStatement.getExpression()).getValue()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeWhile1() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_while1.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad.", |
- " while (false) {}", |
- " int after;", // use 'int' instead of 'var' because it is harder to recover to |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartPropertyAccess bad = (DartPropertyAccess) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", ((DartIdentifier) bad.getQualifier()).getName()); |
- DartWhileStatement whileStatement = (DartWhileStatement) statements.get(2); |
- assertEquals(false, ((DartBooleanLiteral)whileStatement.getCondition()).getValue()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeWhile2() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_while2.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad", |
- " while (false) {}", |
- " int after;", // use 'int' instead of 'var' because it is harder to recover to |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartIdentifier bad = ((DartIdentifier)((DartExprStmt) statements.get(1)).getExpression()); |
- assertEquals("bad", bad.getName()); |
- DartWhileStatement whileStatement = (DartWhileStatement) statements.get(2); |
- assertEquals(false, ((DartBooleanLiteral)whileStatement.getCondition()).getValue()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeDo1() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_do1.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad.", |
- " do {} while (false);", |
- " int after;", // use 'int' instead of 'var' because it is harder to recover to |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartPropertyAccess bad = (DartPropertyAccess) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", ((DartIdentifier) bad.getQualifier()).getName()); |
- DartDoWhileStatement doStatement = (DartDoWhileStatement) statements.get(2); |
- assertEquals(false, ((DartBooleanLiteral)doStatement.getCondition()).getValue()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeDo2() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_do2.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad", |
- " do {} while (false);", |
- " int after;", // use 'int' instead of 'var' because it is harder to recover to |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartIdentifier bad = (DartIdentifier) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", bad.getName()); |
- DartDoWhileStatement doStatement = (DartDoWhileStatement) statements.get(2); |
- assertEquals(false, ((DartBooleanLiteral)doStatement.getCondition()).getValue()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeFor1() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_for1.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad.", |
- " for(var i in []) {}", |
- " int after;", // use 'int' instead of 'var' because it is harder to recover to |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartPropertyAccess bad = (DartPropertyAccess) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", ((DartIdentifier) bad.getQualifier()).getName()); |
- DartForInStatement forInStatement = (DartForInStatement) statements.get(2); |
- assertEquals("i", forInStatement.getVariableStatement() |
- .getVariables().get(0).getName().getName()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeFor2() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_for2.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad.", |
- " for(var i = 0 ; i < 1 ; i++) {}", |
- " int after;", // use 'int' instead of 'var' because it is harder to recover to |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartPropertyAccess bad = (DartPropertyAccess) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", ((DartIdentifier) bad.getQualifier()).getName()); |
- DartForStatement forStatement = (DartForStatement) statements.get(2); |
- assertEquals("i", ((DartVariableStatement)forStatement.getInit()) |
- .getVariables().get(0).getName().getName()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeVar1() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_var1.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad.", |
- " var after;", |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartPropertyAccess bad = (DartPropertyAccess) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", ((DartIdentifier) bad.getQualifier()).getName()); |
- DartVariable after = ((DartVariableStatement) statements.get(2)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeVar2() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_var2.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad", |
- " var after;", |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartIdentifier bad = (DartIdentifier) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", bad.getName()); |
- DartVariable after = ((DartVariableStatement) statements.get(2)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeFinal1() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_final1.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad.", |
- " final int after;", |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartPropertyAccess bad = (DartPropertyAccess) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", ((DartIdentifier) bad.getQualifier()).getName()); |
- DartVariable after = ((DartVariableStatement) statements.get(2)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- assertTrue(((DartVariableStatement)statements.get(2)).getModifiers().isFinal()); |
- } |
- |
- public void testRecoveryBeforeFinal2() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_final2.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad", |
- " final int after;", |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartIdentifier bad = (DartIdentifier) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", bad.getName()); |
- DartVariable after = ((DartVariableStatement) statements.get(2)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- assertTrue(((DartVariableStatement)statements.get(2)).getModifiers().isFinal()); |
- } |
- |
- public void testRecoveryBeforeTry1() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_try1.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad.", |
- " try {}", |
- " int after;", |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartPropertyAccess bad = (DartPropertyAccess) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", ((DartIdentifier) bad.getQualifier()).getName()); |
- DartTryStatement tryStatement = (DartTryStatement) statements.get(2); |
- assertEquals(0, tryStatement.getTryBlock().getStatements().size()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeTry2() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_try1.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad", |
- " try {}", |
- " int after;", |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartIdentifier bad = (DartIdentifier) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", bad.getName()); |
- DartTryStatement tryStatement = (DartTryStatement) statements.get(2); |
- assertEquals(0, tryStatement.getTryBlock().getStatements().size()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeContinue1() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_continue1.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad.", |
- " continue;", // Not really legal here, but the parser doesn't know. |
- " int after;", |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartPropertyAccess bad = (DartPropertyAccess) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", ((DartIdentifier) bad.getQualifier()).getName()); |
- DartContinueStatement continueStatement = (DartContinueStatement) statements.get(2); |
- assertNull(continueStatement.getTargetName()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeContinue2() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_continue2.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad", |
- " continue;", // Not really legal here, but the parser doesn't know. |
- " int after;", |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartIdentifier bad = (DartIdentifier) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", bad.getName()); |
- DartContinueStatement continueStatement = (DartContinueStatement) statements.get(2); |
- assertNull(continueStatement.getTargetName()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeBreak1() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_break1.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad.", |
- " break;", // Not really legal here, but the parser doesn't know. |
- " int after;", |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartPropertyAccess bad = (DartPropertyAccess) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", ((DartIdentifier) bad.getQualifier()).getName()); |
- DartBreakStatement breakStatement = (DartBreakStatement) statements.get(2); |
- assertNull(breakStatement.getTargetName()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeBreak2() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_break2.dart", |
- Joiner.on("\n").join("method() {", |
- " var before;", |
- " bad", |
- " break;", // Not really legal here, but the parser doesn't know. |
- " int after;", |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartIdentifier bad = (DartIdentifier) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", bad.getName()); |
- DartBreakStatement breakStatement = (DartBreakStatement) statements.get(2); |
- assertNull(breakStatement.getTargetName()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeReturn1() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_break1.dart", |
- Joiner.on("\n").join( |
- "int method() {", |
- " var before;", |
- " bad.", |
- " return 1;", |
- " int after;", // Never reached, but the parser doesn't know. |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartPropertyAccess bad = (DartPropertyAccess) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", ((DartIdentifier) bad.getQualifier()).getName()); |
- DartReturnStatement returnStatement = (DartReturnStatement) statements.get(2); |
- assertEquals(BigInteger.valueOf(1), ((DartIntegerLiteral)returnStatement.getValue()).getValue()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeReturn2() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_break1.dart", |
- Joiner.on("\n").join( |
- "int method() {", |
- " var before;", |
- " bad", |
- " return 1;", |
- " int after;", // Never reached, but the parser doesn't know. |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartIdentifier bad = (DartIdentifier) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", bad.getName()); |
- DartReturnStatement returnStatement = (DartReturnStatement) statements.get(2); |
- assertEquals(BigInteger.valueOf(1), ((DartIntegerLiteral)returnStatement.getValue()).getValue()); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeThrow1() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_break1.dart", |
- Joiner.on("\n").join( |
- "int method() {", |
- " var before;", |
- " bad.", |
- " throw new Exception();", |
- " int after;", // Never reached, but the parser doesn't know. |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartPropertyAccess bad = (DartPropertyAccess) ((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", ((DartIdentifier) bad.getQualifier()).getName()); |
- DartThrowExpression throwStatement = (DartThrowExpression) ((DartExprStmt) statements.get(2)).getExpression(); |
- assertNotNull(throwStatement); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
- |
- public void testRecoveryBeforeThrow2() { |
- DartUnit unit = parseUnitUnspecifiedErrors( |
- "phony_recovery_before_break2.dart", |
- Joiner.on("\n").join( |
- "int method() {", |
- " var before;", |
- " bad", |
- " throw new Exception();", |
- " int after;", // Never reached, but the parser doesn't know. |
- "}")); |
- DartMethodDefinition method = (DartMethodDefinition) unit.getTopLevelNodes().get(0); |
- List<DartStatement> statements = method.getFunction().getBody().getStatements(); |
- DartVariable before = ((DartVariableStatement) statements.get(0)).getVariables().get(0); |
- assertEquals("before", before.getName().getName()); |
- DartIdentifier bad = (DartIdentifier)((DartExprStmt) statements.get(1)).getExpression(); |
- assertEquals("bad", bad.getName()); |
- DartThrowExpression throwStatement = (DartThrowExpression) ((DartExprStmt) statements.get(2)).getExpression(); |
- assertNotNull(throwStatement); |
- DartVariable after = ((DartVariableStatement) statements.get(3)).getVariables().get(0); |
- assertEquals("after", after.getName().getName()); |
- } |
-} |