From 188101d81c1b0476d606f92c589b11d3141be157 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Fri, 19 Oct 2012 22:34:46 +0200 Subject: [PATCH] Parse Java type annotations regardless to language level --- .../lang/java/parser/DeclarationParser.java | 15 +++-- .../lang/java/parser/ExpressionParser.java | 13 ++--- .../intellij/lang/java/parser/FileParser.java | 2 +- .../lang/java/parser/JavaParserUtil.java | 4 -- .../lang/java/parser/JavadocParser.java | 2 +- .../lang/java/parser/ReferenceParser.java | 29 ++++------ .../psi/impl/PsiJavaParserFacadeImpl.java | 4 +- .../psi/impl/source/tree/JavaElementType.java | 2 +- .../declarationParsing/class/Errors4.txt | 46 ++++++++-------- .../daemon/AnnotationsHighlightingTest.java | 55 +++++++++++-------- .../lang/java/parser/JavaParsingTestCase.java | 11 ---- .../AnnotationParsingTest.java | 22 +++----- .../parser/partial/DeclarationParserTest.java | 19 +++---- .../parser/partial/ReferenceParserTest.java | 9 +-- .../daemon/LightDaemonAnalyzerTestCase.java | 4 +- 15 files changed, 104 insertions(+), 133 deletions(-) diff --git a/java/java-psi-impl/src/com/intellij/lang/java/parser/DeclarationParser.java b/java/java-psi-impl/src/com/intellij/lang/java/parser/DeclarationParser.java index 01d3288e803e..479134ed8906 100644 --- a/java/java-psi-impl/src/com/intellij/lang/java/parser/DeclarationParser.java +++ b/java/java-psi-impl/src/com/intellij/lang/java/parser/DeclarationParser.java @@ -212,7 +212,7 @@ public class DeclarationParser { } // adding a reference, not simple tokens allows "Browse ..." to work well - final PsiBuilder.Marker ref = myParser.getReferenceParser().parseJavaCodeReference(builder, true, true, false, false, false); + final PsiBuilder.Marker ref = myParser.getReferenceParser().parseJavaCodeReference(builder, true, true, false, false); if (ref == null) { builder.advanceLexer(); } @@ -408,7 +408,7 @@ public class DeclarationParser { eatBrackets(builder, constructor, "expected.semicolon"); - if (areTypeAnnotationsSupported(builder)) { + if (builder.getTokenType() == JavaTokenType.AT) { final PsiBuilder.Marker receiver = builder.mark(); final PsiBuilder.Marker annotations = parseAnnotations(builder); if (annotations != null) { @@ -419,8 +419,7 @@ public class DeclarationParser { } } - myParser.getReferenceParser() - .parseReferenceList(builder, JavaTokenType.THROWS_KEYWORD, JavaElementType.THROWS_LIST, JavaTokenType.COMMA); + myParser.getReferenceParser().parseReferenceList(builder, JavaTokenType.THROWS_KEYWORD, JavaElementType.THROWS_LIST, JavaTokenType.COMMA); final boolean hasDefault = expect(builder, JavaTokenType.DEFAULT_KEYWORD); if (hasDefault && anno) { @@ -560,7 +559,7 @@ public class DeclarationParser { } // adding a reference, not simple tokens allows "Browse .." to work well - final PsiBuilder.Marker ref = myParser.getReferenceParser().parseJavaCodeReference(builder, true, true, false, false, false); + final PsiBuilder.Marker ref = myParser.getReferenceParser().parseJavaCodeReference(builder, true, true, false, false); if (ref == null && builder.getTokenType() != null) { builder.advanceLexer(); } @@ -744,8 +743,8 @@ public class DeclarationParser { } } - if (marker != null) { - marker.error(errorKey != null ? JavaErrorMessages.message(errorKey):null); + if (marker != null && errorKey != null) { + marker.error(JavaErrorMessages.message(errorKey)); } return result; @@ -769,7 +768,7 @@ public class DeclarationParser { final PsiBuilder.Marker anno = builder.mark(); builder.advanceLexer(); - final PsiBuilder.Marker classRef = myParser.getReferenceParser().parseJavaCodeReference(builder, true, false, false, false, false); + final PsiBuilder.Marker classRef = myParser.getReferenceParser().parseJavaCodeReference(builder, true, false, false, false); if (classRef == null) { error(builder, JavaErrorMessages.message("expected.class.reference")); } diff --git a/java/java-psi-impl/src/com/intellij/lang/java/parser/ExpressionParser.java b/java/java-psi-impl/src/com/intellij/lang/java/parser/ExpressionParser.java index ff2f21a5e07d..0c37ad317ebc 100644 --- a/java/java-psi-impl/src/com/intellij/lang/java/parser/ExpressionParser.java +++ b/java/java-psi-impl/src/com/intellij/lang/java/parser/ExpressionParser.java @@ -79,7 +79,7 @@ public class ExpressionParser { if (left == null) return null; final IElementType tokenType = getGtTokenType(builder); - if (ASSIGNMENT_OPS.contains(tokenType)) { + if (ASSIGNMENT_OPS.contains(tokenType) && tokenType != null) { final PsiBuilder.Marker assignment = left.precede(); advanceGtToken(builder, tokenType); @@ -211,10 +211,10 @@ public class ExpressionParser { PsiBuilder.Marker left = parseExpression(builder, ExprType.SHIFT); if (left == null) return null; - while (true) { + IElementType tokenType; + while ((tokenType = getGtTokenType(builder)) != null) { final IElementType toCreate; final ExprType toParse; - final IElementType tokenType = getGtTokenType(builder); if (RELATIONAL_OPS.contains(tokenType)) { toCreate = JavaElementType.BINARY_EXPRESSION; toParse = ExprType.SHIFT; @@ -367,7 +367,7 @@ public class ExpressionParser { final int offset = builder.getCurrentOffset(); startMarker.rollbackTo(); - final PsiBuilder.Marker ref = myParser.getReferenceParser().parseJavaCodeReference(builder, false, true, false, false, false); + final PsiBuilder.Marker ref = myParser.getReferenceParser().parseJavaCodeReference(builder, false, true, false, false); if (ref == null || builder.getTokenType() != JavaTokenType.DOT || builder.getCurrentOffset() != dotOffset) { copy.rollbackTo(); return parsePrimary(builder, BreakPoint.P2, offset); @@ -687,11 +687,10 @@ public class ExpressionParser { myParser.getReferenceParser().parseReferenceParameterList(builder, false, true); final PsiBuilder.Marker refOrType; - final boolean parseAnnotations = areTypeAnnotationsSupported(builder) && builder.getTokenType() == JavaTokenType.AT; final IElementType tokenType = builder.getTokenType(); - if (tokenType == JavaTokenType.IDENTIFIER || parseAnnotations) { - refOrType = myParser.getReferenceParser().parseJavaCodeReference(builder, true, true, parseAnnotations, true, true); + if (tokenType == JavaTokenType.IDENTIFIER || tokenType == JavaTokenType.AT) { + refOrType = myParser.getReferenceParser().parseJavaCodeReference(builder, true, true, true, true); if (refOrType == null) { error(builder, JavaErrorMessages.message("expected.identifier")); newExpr.done(JavaElementType.NEW_EXPRESSION); diff --git a/java/java-psi-impl/src/com/intellij/lang/java/parser/FileParser.java b/java/java-psi-impl/src/com/intellij/lang/java/parser/FileParser.java index 72e9725eaf1b..eeee97774d96 100644 --- a/java/java-psi-impl/src/com/intellij/lang/java/parser/FileParser.java +++ b/java/java-psi-impl/src/com/intellij/lang/java/parser/FileParser.java @@ -122,7 +122,7 @@ public class FileParser { } } - final PsiBuilder.Marker ref = myParser.getReferenceParser().parseJavaCodeReference(builder, true, false, false, false, false); + final PsiBuilder.Marker ref = myParser.getReferenceParser().parseJavaCodeReference(builder, true, false, false, false); if (ref == null) { statement.rollbackTo(); return null; diff --git a/java/java-psi-impl/src/com/intellij/lang/java/parser/JavaParserUtil.java b/java/java-psi-impl/src/com/intellij/lang/java/parser/JavaParserUtil.java index 5d8e40b80586..652b6ecd5791 100644 --- a/java/java-psi-impl/src/com/intellij/lang/java/parser/JavaParserUtil.java +++ b/java/java-psi-impl/src/com/intellij/lang/java/parser/JavaParserUtil.java @@ -133,10 +133,6 @@ public class JavaParserUtil { builder.putUserDataUnprotected(LANG_LEVEL_KEY, level); } - public static boolean areTypeAnnotationsSupported(final PsiBuilder builder) { - return getLanguageLevel(builder).isAtLeast(LanguageLevel.JDK_1_8); - } - @NotNull public static LanguageLevel getLanguageLevel(final PsiBuilder builder) { final LanguageLevel level = builder.getUserDataUnprotected(LANG_LEVEL_KEY); diff --git a/java/java-psi-impl/src/com/intellij/lang/java/parser/JavadocParser.java b/java/java-psi-impl/src/com/intellij/lang/java/parser/JavadocParser.java index 39addc29cb03..84db450a1e5a 100644 --- a/java/java-psi-impl/src/com/intellij/lang/java/parser/JavadocParser.java +++ b/java/java-psi-impl/src/com/intellij/lang/java/parser/JavadocParser.java @@ -51,7 +51,7 @@ public class JavadocParser { private JavadocParser() { } public static void parseJavadocReference(@NotNull final PsiBuilder builder) { - JavaParser.INSTANCE.getReferenceParser().parseJavaCodeReference(builder, true, true, false, false, false); + JavaParser.INSTANCE.getReferenceParser().parseJavaCodeReference(builder, true, true, false, false); swallowTokens(builder); } diff --git a/java/java-psi-impl/src/com/intellij/lang/java/parser/ReferenceParser.java b/java/java-psi-impl/src/com/intellij/lang/java/parser/ReferenceParser.java index 0555b567fcaa..461e6efd75fe 100644 --- a/java/java-psi-impl/src/com/intellij/lang/java/parser/ReferenceParser.java +++ b/java/java-psi-impl/src/com/intellij/lang/java/parser/ReferenceParser.java @@ -88,18 +88,15 @@ public class ReferenceParser { final TypeInfo typeInfo = new TypeInfo(); - final boolean annotationsSupported = areTypeAnnotationsSupported(builder); PsiBuilder.Marker type = builder.mark(); - if (annotationsSupported) { - myParser.getDeclarationParser().parseAnnotations(builder); - } + myParser.getDeclarationParser().parseAnnotations(builder); final IElementType tokenType = builder.getTokenType(); if (expect(builder, ElementType.PRIMITIVE_TYPE_BIT_SET)) { typeInfo.isPrimitive = true; } else if (tokenType == JavaTokenType.IDENTIFIER) { - parseJavaCodeReference(builder, eatLastDot, true, annotationsSupported, false, false, false, diamonds, typeInfo); + parseJavaCodeReference(builder, eatLastDot, true, false, false, false, diamonds, typeInfo); } else if ((wildcard || badWildcard) && tokenType == JavaTokenType.QUEST) { type.drop(); @@ -119,9 +116,7 @@ public class ReferenceParser { while (true) { type.done(JavaElementType.TYPE); - if (annotationsSupported) { - myParser.getDeclarationParser().parseAnnotations(builder); - } + myParser.getDeclarationParser().parseAnnotations(builder); final PsiBuilder.Marker bracket = builder.mark(); if (!expect(builder, JavaTokenType.LBRACKET)) { @@ -171,25 +166,23 @@ public class ReferenceParser { @Nullable public PsiBuilder.Marker parseJavaCodeReference(final PsiBuilder builder, final boolean eatLastDot, final boolean parameterList, - final boolean annotations, final boolean isNew, final boolean diamonds) { - return parseJavaCodeReference(builder, eatLastDot, parameterList, annotations, false, false, isNew, diamonds, new TypeInfo()); + final boolean isNew, final boolean diamonds) { + return parseJavaCodeReference(builder, eatLastDot, parameterList, false, false, isNew, diamonds, new TypeInfo()); } public boolean parseImportCodeReference(final PsiBuilder builder, final boolean isStatic) { final TypeInfo typeInfo = new TypeInfo(); - parseJavaCodeReference(builder, true, false, false, true, isStatic, false, false, typeInfo); + parseJavaCodeReference(builder, true, false, true, isStatic, false, false, typeInfo); return !typeInfo.hasErrors; } @Nullable private PsiBuilder.Marker parseJavaCodeReference(final PsiBuilder builder, final boolean eatLastDot, final boolean parameterList, - final boolean annotations, final boolean isImport, final boolean isStaticImport, - final boolean isNew, final boolean diamonds, final TypeInfo typeInfo) { + final boolean isImport, final boolean isStaticImport, final boolean isNew, + final boolean diamonds, final TypeInfo typeInfo) { PsiBuilder.Marker refElement = builder.mark(); - if (annotations) { - myParser.getDeclarationParser().parseAnnotations(builder); - } + myParser.getDeclarationParser().parseAnnotations(builder); if (!expect(builder, JavaTokenType.IDENTIFIER)) { refElement.rollbackTo(); @@ -277,7 +270,7 @@ public class ReferenceParser { } else { final IElementType tokenType = builder.getTokenType(); - if (WILDCARD_KEYWORD_SET.contains(tokenType)) { + if (WILDCARD_KEYWORD_SET.contains(tokenType) && tokenType != null) { parseReferenceList(builder, tokenType, null, JavaTokenType.AND); } } @@ -365,7 +358,7 @@ public class ReferenceParser { if (expect(builder, start)) { while (true) { - final PsiBuilder.Marker classReference = parseJavaCodeReference(builder, true, true, true, false, false); + final PsiBuilder.Marker classReference = parseJavaCodeReference(builder, true, true, false, false); if (classReference == null) { error(builder, JavaErrorMessages.message("expected.identifier")); } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiJavaParserFacadeImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiJavaParserFacadeImpl.java index 417b1b42300f..15492b31346f 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiJavaParserFacadeImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiJavaParserFacadeImpl.java @@ -87,14 +87,14 @@ public class PsiJavaParserFacadeImpl implements PsiJavaParserFacade { public static final JavaParserUtil.ParserWrapper REFERENCE = new JavaParserUtil.ParserWrapper() { @Override public void parse(final PsiBuilder builder) { - JavaParser.INSTANCE.getReferenceParser().parseJavaCodeReference(builder, false, true, false, false, false); + JavaParser.INSTANCE.getReferenceParser().parseJavaCodeReference(builder, false, true, false, false); } }; public static final JavaParserUtil.ParserWrapper DIAMOND_REF = new JavaParserUtil.ParserWrapper() { @Override public void parse(final PsiBuilder builder) { - JavaParser.INSTANCE.getReferenceParser().parseJavaCodeReference(builder, false, true, false, false, true); + JavaParser.INSTANCE.getReferenceParser().parseJavaCodeReference(builder, false, true, false, true); } }; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementType.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementType.java index db208fff0ad0..9374cccffb7f 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementType.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/JavaElementType.java @@ -224,7 +224,7 @@ public interface JavaElementType { private final JavaParserUtil.ParserWrapper myParser = new JavaParserUtil.ParserWrapper() { @Override public void parse(final PsiBuilder builder) { - JavaParser.INSTANCE.getReferenceParser().parseJavaCodeReference(builder, false, true, false, false, false); + JavaParser.INSTANCE.getReferenceParser().parseJavaCodeReference(builder, false, true, false, false); } }; diff --git a/java/java-tests/testData/psi/parser-full/declarationParsing/class/Errors4.txt b/java/java-tests/testData/psi/parser-full/declarationParsing/class/Errors4.txt index 8403f0d8d947..8380253fd361 100644 --- a/java/java-tests/testData/psi/parser-full/declarationParsing/class/Errors4.txt +++ b/java/java-tests/testData/psi/parser-full/declarationParsing/class/Errors4.txt @@ -69,36 +69,34 @@ PsiJavaFile:Errors4.java PsiWhiteSpace('\n ') PsiDeclarationStatement - PsiErrorElement:Identifier expected - - PsiJavaToken:AT('@') - PsiDeclarationStatement - PsiLocalVariable:List - PsiModifierList: - - PsiTypeElement:Deprecated + PsiTypeElement:@Deprecated List + PsiAnnotation + PsiJavaToken:AT('@') PsiJavaCodeReferenceElement:Deprecated PsiIdentifier:Deprecated('Deprecated') PsiReferenceParameterList + PsiAnnotationParameterList + PsiWhiteSpace(' ') - PsiIdentifier:List('List') - PsiErrorElement:';' expected - - PsiErrorElement:Unexpected token - PsiJavaToken:LT('<') - PsiExpressionStatement - PsiBinaryExpression:Object>() - PsiReferenceExpression:Object + PsiJavaCodeReferenceElement:List + PsiIdentifier:List('List') PsiReferenceParameterList - - PsiIdentifier:Object('Object') - PsiJavaToken:GT('>') - PsiParenthesizedExpression:() - PsiJavaToken:LPARENTH('(') - PsiErrorElement:Expression expected - - PsiJavaToken:RPARENTH(')') + PsiJavaToken:LT('<') + PsiTypeElement:Object + PsiJavaCodeReferenceElement:Object + PsiIdentifier:Object('Object') + PsiReferenceParameterList + + PsiJavaToken:GT('>') + PsiErrorElement:Identifier expected + + PsiExpressionStatement + PsiParenthesizedExpression:() + PsiJavaToken:LPARENTH('(') + PsiErrorElement:Expression expected + + PsiJavaToken:RPARENTH(')') PsiJavaToken:SEMICOLON(';') PsiWhiteSpace('\n ') PsiJavaToken:RBRACE('}') diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/AnnotationsHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/AnnotationsHighlightingTest.java index 4e96e59e8e14..c98e22fa42cd 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/AnnotationsHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/AnnotationsHighlightingTest.java @@ -1,3 +1,18 @@ +/* + * Copyright 2000-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.intellij.codeInsight.daemon; import org.jetbrains.annotations.NonNls; @@ -9,30 +24,24 @@ public class AnnotationsHighlightingTest extends LightDaemonAnalyzerTestCase { @NonNls private static final String BASE_PATH = "/codeInsight/daemonCodeAnalyzer/annotations"; - private void doTest(boolean checkWarnings) throws Exception { + private void doTest(boolean checkWarnings) { doTest(BASE_PATH + "/" + getTestName(true) + ".java", checkWarnings, false); } - public void testNotValueNameOmitted() throws Exception { doTest(false); } - public void testCannotFindMethod() throws Exception { doTest(false); } - public void testIncompatibleType1() throws Exception { doTest(false); } - public void testIncompatibleType2() throws Exception { doTest(false); } - public void testIncompatibleType3() throws Exception { doTest(false); } - public void testIncompatibleType4() throws Exception { doTest(false); } - public void testMissingAttribute() throws Exception { doTest(false); } - public void testDuplicateAnnotation() throws Exception { doTest(false); } - public void testNonConstantInitializer() throws Exception { doTest(false); } - public void testInvalidType() throws Exception { doTest(false); } - public void testInapplicable() throws Exception { doTest(false); } - public void testDuplicateAttribute() throws Exception { doTest(false); } - public void testDuplicateTarget() throws Exception { doTest(false); } - public void testTypeAnnotations() throws Exception { doTest(false); } - - public void testInvalidPackageAnnotationTarget() throws Exception { - doTest(BASE_PATH + "/" + getTestName(true) + "/package-info.java", false, false); - } - - public void testPackageAnnotationNotInPackageInfo() throws Exception { - doTest(BASE_PATH + "/" + getTestName(true) + "/notPackageInfo.java", false, false); - } + public void testNotValueNameOmitted() { doTest(false); } + public void testCannotFindMethod() { doTest(false); } + public void testIncompatibleType1() { doTest(false); } + public void testIncompatibleType2() { doTest(false); } + public void testIncompatibleType3() { doTest(false); } + public void testIncompatibleType4() { doTest(false); } + public void testMissingAttribute() { doTest(false); } + public void testDuplicateAnnotation() { doTest(false); } + public void testNonConstantInitializer() { doTest(false); } + public void testInvalidType() { doTest(false); } + public void testInapplicable() { doTest(false); } + public void testDuplicateAttribute() { doTest(false); } + public void testDuplicateTarget() { doTest(false); } + public void testTypeAnnotations() { doTest(false); } + public void testInvalidPackageAnnotationTarget() { doTest(BASE_PATH + "/" + getTestName(true) + "/package-info.java", false, false); } + public void testPackageAnnotationNotInPackageInfo() { doTest(BASE_PATH + "/" + getTestName(true) + "/notPackageInfo.java", false, false); } } diff --git a/java/java-tests/testSrc/com/intellij/lang/java/parser/JavaParsingTestCase.java b/java/java-tests/testSrc/com/intellij/lang/java/parser/JavaParsingTestCase.java index a554c6f1d047..107d7d2b297e 100644 --- a/java/java-tests/testSrc/com/intellij/lang/java/parser/JavaParsingTestCase.java +++ b/java/java-tests/testSrc/com/intellij/lang/java/parser/JavaParsingTestCase.java @@ -49,17 +49,6 @@ public abstract class JavaParsingTestCase extends ParsingTestCase { IdeaTestCase.initPlatformPrefix(); } - protected void withLevel(final LanguageLevel level, final Runnable r) { - LanguageLevel prev = myLanguageLevel; - myLanguageLevel = level; - try { - r.run(); - } - finally { - myLanguageLevel = prev; - } - } - @Override protected void setUp() throws Exception { super.setUp(); diff --git a/java/java-tests/testSrc/com/intellij/lang/java/parser/annotationParsing/AnnotationParsingTest.java b/java/java-tests/testSrc/com/intellij/lang/java/parser/annotationParsing/AnnotationParsingTest.java index a2639d698a1b..b665ba027bea 100644 --- a/java/java-tests/testSrc/com/intellij/lang/java/parser/annotationParsing/AnnotationParsingTest.java +++ b/java/java-tests/testSrc/com/intellij/lang/java/parser/annotationParsing/AnnotationParsingTest.java @@ -16,7 +16,6 @@ package com.intellij.lang.java.parser.annotationParsing; import com.intellij.lang.java.parser.JavaParsingTestCase; -import com.intellij.pom.java.LanguageLevel; import com.intellij.psi.PsiErrorElement; import com.intellij.psi.PsiRecursiveElementVisitor; @@ -40,19 +39,16 @@ public class AnnotationParsingTest extends JavaParsingTestCase { public void testParameterizedMethod () { doTest(true); } public void testQualifiedAnnotation() { doTest(true); } public void testEnumSmartTypeCompletion() { doTest(true); } + public void testErrors() { doTest(true); } public void testTypeAnno() { - withLevel(LanguageLevel.JDK_1_8, new Runnable() { @Override public void run() { - doTest(true); - myFile.accept(new PsiRecursiveElementVisitor() { - @Override - public void visitErrorElement(PsiErrorElement element) { - fail(element.getErrorDescription()); - super.visitErrorElement(element); - } - }); - }}); + doTest(true); + myFile.accept(new PsiRecursiveElementVisitor() { + @Override + public void visitErrorElement(PsiErrorElement element) { + fail(element.getErrorDescription()); + super.visitErrorElement(element); + } + }); } - - public void testErrors() { doTest(true); } } diff --git a/java/java-tests/testSrc/com/intellij/lang/java/parser/partial/DeclarationParserTest.java b/java/java-tests/testSrc/com/intellij/lang/java/parser/partial/DeclarationParserTest.java index 7523c73712dd..fd828852377a 100644 --- a/java/java-tests/testSrc/com/intellij/lang/java/parser/partial/DeclarationParserTest.java +++ b/java/java-tests/testSrc/com/intellij/lang/java/parser/partial/DeclarationParserTest.java @@ -18,7 +18,6 @@ package com.intellij.lang.java.parser.partial; import com.intellij.lang.PsiBuilder; import com.intellij.lang.java.parser.JavaParser; import com.intellij.lang.java.parser.JavaParsingTestCase; -import com.intellij.pom.java.LanguageLevel; public class DeclarationParserTest extends JavaParsingTestCase { public DeclarationParserTest() { @@ -40,16 +39,14 @@ public class DeclarationParserTest extends JavaParsingTestCase { " @Preliminary(a=A.B\n#) public class TimeTravel {}\n" + " @Preliminary(a=A.B\n#, b=c) public class TimeTravel {} }", false, false); } public void testTypeAnno() { - withLevel(LanguageLevel.JDK_1_8, new Runnable() { @Override public void run() { - doParserTest("{ class C<@D T extends @F Object> extends @F Object {\n" + - " @F int @F[] method() @F throws @F Exception {\n" + - " a = this instanceof @F C;\n" + - " C<@F @G C> c = new @Q C<@F C>();\n" + - " c = (@F Object)c;\n" + - " Class c = @TA String.class;\n" + - " @F C.field++;\n" + - " }\n} }", false, false); - }}); + doParserTest("{ class C<@D T extends @F Object> extends @F Object {\n" + + " @F int @F[] method() @F throws @F Exception {\n" + + " a = this instanceof @F C;\n" + + " C<@F @G C> c = new @Q C<@F C>();\n" + + " c = (@F Object)c;\n" + + " Class c = @TA String.class;\n" + + " @F C.field++;\n" + + " }\n} }", false, false); } public void testEnumBody0() { doParserTest("{ ; }", false, true); } diff --git a/java/java-tests/testSrc/com/intellij/lang/java/parser/partial/ReferenceParserTest.java b/java/java-tests/testSrc/com/intellij/lang/java/parser/partial/ReferenceParserTest.java index 5fde8f2d290f..5c130ba091bc 100644 --- a/java/java-tests/testSrc/com/intellij/lang/java/parser/partial/ReferenceParserTest.java +++ b/java/java-tests/testSrc/com/intellij/lang/java/parser/partial/ReferenceParserTest.java @@ -19,7 +19,6 @@ import com.intellij.lang.PsiBuilder; import com.intellij.lang.java.parser.JavaParser; import com.intellij.lang.java.parser.JavaParsingTestCase; import com.intellij.lang.java.parser.ReferenceParser; -import com.intellij.pom.java.LanguageLevel; public class ReferenceParserTest extends JavaParsingTestCase { @@ -37,11 +36,7 @@ public class ReferenceParserTest extends JavaParsingTestCase { public void testType3() { doTypeParserTest("int[]["); } public void testType4() { doTypeParserTest("Map>"); } public void testType5() { doTypeParserTest("Object[]..."); } - public void testType6() { - withLevel(LanguageLevel.JDK_1_8, new Runnable() { @Override public void run() { - doTypeParserTest("@English String @NonEmpty []"); - }}); - } + public void testType6() { doTypeParserTest("@English String @NonEmpty []"); } public void testType7() { doTypeParserTest("Diamond<>"); } public void testType8() { doTypeParserTest("A|"); } public void testType9() { doTypeParserTest("A|B"); } @@ -68,7 +63,7 @@ public class ReferenceParserTest extends JavaParsingTestCase { @Override public void parse(final PsiBuilder builder) { - JavaParser.INSTANCE.getReferenceParser().parseJavaCodeReference(builder, myIncomplete, false, false, false, false); + JavaParser.INSTANCE.getReferenceParser().parseJavaCodeReference(builder, myIncomplete, false, false, false); } } diff --git a/java/testFramework/src/com/intellij/codeInsight/daemon/LightDaemonAnalyzerTestCase.java b/java/testFramework/src/com/intellij/codeInsight/daemon/LightDaemonAnalyzerTestCase.java index 357134d2a19d..2cc216d4a460 100644 --- a/java/testFramework/src/com/intellij/codeInsight/daemon/LightDaemonAnalyzerTestCase.java +++ b/java/testFramework/src/com/intellij/codeInsight/daemon/LightDaemonAnalyzerTestCase.java @@ -74,12 +74,12 @@ public abstract class LightDaemonAnalyzerTestCase extends LightCodeInsightTestCa } } - protected void doTest(@NonNls String filePath, boolean checkWarnings, boolean checkInfos) throws Exception { + protected void doTest(@NonNls String filePath, boolean checkWarnings, boolean checkInfos) { configureByFile(filePath); doTestConfiguredFile(checkWarnings, checkInfos, filePath); } - protected void doTest(@NonNls String filePath, boolean checkWarnings, boolean checkWeakWarnings, boolean checkInfos) throws Exception { + protected void doTest(@NonNls String filePath, boolean checkWarnings, boolean checkWeakWarnings, boolean checkInfos) { configureByFile(filePath); doTestConfiguredFile(checkWarnings, checkWeakWarnings, checkInfos, filePath); }