View | Details | Raw Unified | Return to bug 239117
Collapse All | Expand All

(-)src/org/eclipse/jdt/core/tests/dom/ASTConverterRecoveryTest.java (-1 / +38 lines)
Lines 514-520 Link Here
514
		Statement statement2 = forStatement.getBody();
514
		Statement statement2 = forStatement.getBody();
515
		assertTrue("Not an empty statement", statement2.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
515
		assertTrue("Not an empty statement", statement2.getNodeType() == ASTNode.EMPTY_STATEMENT); //$NON-NLS-1$
516
		EmptyStatement emptyStatement = (EmptyStatement)statement2;
516
		EmptyStatement emptyStatement = (EmptyStatement)statement2;
517
		checkSourceRange(emptyStatement, "i", source); //$NON-NLS-1$
517
		assertEquals("Wrong start position", fragment.getStartPosition() + fragment.getLength(), emptyStatement.getStartPosition());
518
		assertEquals("Wrong length", 0, emptyStatement.getLength());
518
		assertTrue("Not flag as RECOVERED", (emptyStatement.getFlags() & ASTNode.RECOVERED) != 0);
519
		assertTrue("Not flag as RECOVERED", (emptyStatement.getFlags() & ASTNode.RECOVERED) != 0);
519
	}
520
	}
520
521
Lines 951-954 Link Here
951
		checkSourceRange(message, "(\"aa\"", source); //$NON-NLS-1$
952
		checkSourceRange(message, "(\"aa\"", source); //$NON-NLS-1$
952
		assertTrue("Not flag as RECOVERED", (message.getFlags() & ASTNode.RECOVERED) != 0);
953
		assertTrue("Not flag as RECOVERED", (message.getFlags() & ASTNode.RECOVERED) != 0);
953
	}
954
	}
955
	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=239117
956
	public void test0018() throws JavaModelException {
957
		this.workingCopies = new ICompilationUnit[0];
958
	
959
		ASTResult result = this.buildMarkedAST(
960
				"/Converter/src/p/X.java",
961
				"package p;\n" +
962
				"public class X {\n" +
963
				"	void m(Object var) {\n" +
964
				"		if (1==1 && var.equals(1)[*1*][*1*] {\n" +
965
				"		}\n" +
966
				"	}\n" +
967
				"}");
968
	
969
		assertASTResult(
970
				"===== AST =====\n" + 
971
				"package p;\n" + 
972
				"public class X {\n" + 
973
				"  void m(  Object var){\n" + 
974
				"    if (1 == 1 && var.equals(1))     [*1*];[*1*]\n" + 
975
				"  }\n" + 
976
				"}\n" + 
977
				"\n" + 
978
				"===== Details =====\n" + 
979
				"1:EMPTY_STATEMENT,[77,0],,RECOVERED,[N/A]\n" + 
980
				"===== Problems =====\n" + 
981
				"1. ERROR in /Converter/src/p/X.java (at line 4)\n" + 
982
				"	if (1==1 && var.equals(1) {\n" + 
983
				"	                ^^^^^^\n" + 
984
				"The method equals(Object) in the type Object is not applicable for the arguments (int)\n" + 
985
				"2. ERROR in /Converter/src/p/X.java (at line 4)\n" + 
986
				"	if (1==1 && var.equals(1) {\n" + 
987
				"	                        ^\n" + 
988
				"Syntax error, insert \") Statement\" to complete BlockStatements\n",
989
				result);
990
	}
954
}
991
}
(-)compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java (-1 / +1 lines)
Lines 2895-2901 Link Here
2895
				return;
2895
				return;
2896
			}
2896
			}
2897
		}
2897
		}
2898
		pushOnAstStack(new EmptyStatement(this.endStatementPosition, this.endStatementPosition));
2898
		pushOnAstStack(new EmptyStatement(this.endPosition + 1, this.endStatementPosition));
2899
	}
2899
	}
2900
}
2900
}
2901
protected void consumeEmptySwitchBlock() {
2901
protected void consumeEmptySwitchBlock() {

Return to bug 239117