diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java index f691f50a9ad35..590989c95a766 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 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. @@ -354,7 +354,7 @@ public static HighlightInfo checkInterfaceMultipleInheritance(PsiClass aClass) { } private static HighlightInfo checkInterfaceMultipleInheritance(PsiClass aClass, - PsiElement place, + PsiElement place, PsiSubstitutor derivedSubstitutor, Map inheritedClasses, Set visited, @@ -659,7 +659,7 @@ else if (refParent instanceof PsiReferenceList) { return null; } - public static HighlightInfo checkReferenceTypeUsedAsTypeArgument(final PsiTypeElement typeElement) { + static HighlightInfo checkReferenceTypeUsedAsTypeArgument(PsiTypeElement typeElement, LanguageLevel level) { final PsiType type = typeElement.getType(); if (type != PsiType.NULL && type instanceof PsiPrimitiveType || type instanceof PsiWildcardType && ((PsiWildcardType)type).getBound() instanceof PsiPrimitiveType) { @@ -669,9 +669,11 @@ public static HighlightInfo checkReferenceTypeUsedAsTypeArgument(final PsiTypeEl .getElement(); if (element == null) return null; - String description = JavaErrorMessages.message("generics.type.argument.cannot.be.of.primitive.type"); - final HighlightInfo highlightInfo = - HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(typeElement).descriptionAndTooltip(description).create(); + if (level.isAtLeast(LanguageLevel.JDK_X)) return null; + + String text = JavaErrorMessages.message("generics.type.argument.cannot.be.of.primitive.type"); + HighlightInfo highlightInfo = HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(typeElement).descriptionAndTooltip(text).create(); + PsiType toConvert = type; if (type instanceof PsiWildcardType) { toConvert = ((PsiWildcardType)type).getBound(); @@ -679,8 +681,8 @@ public static HighlightInfo checkReferenceTypeUsedAsTypeArgument(final PsiTypeEl if (toConvert instanceof PsiPrimitiveType) { final PsiClassType boxedType = ((PsiPrimitiveType)toConvert).getBoxedType(typeElement); if (boxedType != null) { - QuickFixAction.registerQuickFixAction(highlightInfo, - QUICK_FIX_FACTORY.createReplacePrimitiveWithBoxedTypeAction(typeElement, toConvert.getPresentableText(), ((PsiPrimitiveType)toConvert).getBoxedTypeName())); + QuickFixAction.registerQuickFixAction(highlightInfo, QUICK_FIX_FACTORY.createReplacePrimitiveWithBoxedTypeAction( + typeElement, toConvert.getPresentableText(), ((PsiPrimitiveType)toConvert).getBoxedTypeName())); } } return highlightInfo; @@ -721,7 +723,7 @@ public static HighlightInfo checkAccessStaticFieldFromEnumConstructor(@NotNull P final PsiMember constructorOrInitializer = PsiUtil.findEnclosingConstructorOrInitializer(expr); if (constructorOrInitializer == null) return null; if (constructorOrInitializer.hasModifierProperty(PsiModifier.STATIC)) return null; - final PsiClass aClass = constructorOrInitializer instanceof PsiEnumConstantInitializer ? + final PsiClass aClass = constructorOrInitializer instanceof PsiEnumConstantInitializer ? (PsiClass)constructorOrInitializer : constructorOrInitializer.getContainingClass(); if (aClass == null || !(aClass.isEnum() || aClass instanceof PsiEnumConstantInitializer)) return null; final PsiField field = (PsiField)resolved; @@ -747,7 +749,7 @@ public static HighlightInfo checkAccessStaticFieldFromEnumConstructor(@NotNull P @Nullable public static HighlightInfo checkEnumInstantiation(PsiElement expression, PsiClass aClass) { - if (aClass != null && aClass.isEnum() && + if (aClass != null && aClass.isEnum() && (!(expression instanceof PsiNewExpression) || ((PsiNewExpression)expression).getArrayDimensions().length == 0 && ((PsiNewExpression)expression).getArrayInitializer() == null)) { String description = JavaErrorMessages.message("enum.types.cannot.be.instantiated"); @@ -1283,8 +1285,8 @@ private static boolean unqualifiedNestedClassReferenceAccessedViaContainingClass final PsiElement superClass = referenceElement.resolve(); if (superClass instanceof PsiClass) { final PsiClass superContainingClass = ((PsiClass)superClass).getContainingClass(); - if (superContainingClass != null && - InheritanceUtil.isInheritorOrSelf(containingClass, superContainingClass, true) && + if (superContainingClass != null && + InheritanceUtil.isInheritorOrSelf(containingClass, superContainingClass, true) && !PsiTreeUtil.isAncestor(superContainingClass, containingClass, true)) { return true; } @@ -1297,7 +1299,7 @@ private static boolean unqualifiedNestedClassReferenceAccessedViaContainingClass public static void registerVariableParameterizedTypeFixes(HighlightInfo highlightInfo, @NotNull PsiVariable variable, - @NotNull PsiReferenceParameterList parameterList, + @NotNull PsiReferenceParameterList parameterList, @NotNull JavaSdkVersion version) { PsiType type = variable.getType(); if (!(type instanceof PsiClassType)) return; diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java index a0d1c63cef03a..b4028cb7c8319 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java @@ -1490,7 +1490,7 @@ public void visitResourceList(PsiResourceList resourceList) { @Override public void visitTypeElement(final PsiTypeElement type) { if (!myHolder.hasErrorResults()) myHolder.add(HighlightUtil.checkIllegalType(type)); - if (!myHolder.hasErrorResults()) myHolder.add(GenericsHighlightUtil.checkReferenceTypeUsedAsTypeArgument(type)); + if (!myHolder.hasErrorResults()) myHolder.add(GenericsHighlightUtil.checkReferenceTypeUsedAsTypeArgument(type, myLanguageLevel)); if (!myHolder.hasErrorResults()) myHolder.add(GenericsHighlightUtil.checkWildcardUsage(type)); } diff --git a/java/java-psi-api/src/com/intellij/openapi/projectRoots/JavaSdkVersion.java b/java/java-psi-api/src/com/intellij/openapi/projectRoots/JavaSdkVersion.java index b185b481c3156..0e6c1e97c2e62 100644 --- a/java/java-psi-api/src/com/intellij/openapi/projectRoots/JavaSdkVersion.java +++ b/java/java-psi-api/src/com/intellij/openapi/projectRoots/JavaSdkVersion.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2015 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. @@ -33,7 +33,9 @@ public enum JavaSdkVersion { JDK_1_7(LanguageLevel.JDK_1_7, "1.7"), JDK_1_8(LanguageLevel.JDK_1_8, "1.8"), JDK_1_9(LanguageLevel.JDK_1_9, "1.9"); - + + private static final JavaSdkVersion MAX_JDK = JDK_1_9; + private final LanguageLevel myMaxLanguageLevel; private final String myDescription; @@ -75,6 +77,9 @@ public static JavaSdkVersion byDescription(@NotNull String description) throws I @NotNull public static JavaSdkVersion fromLanguageLevel(@NotNull LanguageLevel languageLevel) throws IllegalArgumentException { + if (languageLevel == LanguageLevel.JDK_X) { + return MAX_JDK; + } JavaSdkVersion[] values = values(); for (int i = values.length - 1; i >= 0; i--) { JavaSdkVersion version = values[i]; diff --git a/java/java-psi-api/src/com/intellij/pom/java/LanguageLevel.java b/java/java-psi-api/src/com/intellij/pom/java/LanguageLevel.java index 176474cbc4d34..b0e03a7c8824d 100644 --- a/java/java-psi-api/src/com/intellij/pom/java/LanguageLevel.java +++ b/java/java-psi-api/src/com/intellij/pom/java/LanguageLevel.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 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. @@ -20,7 +20,6 @@ import com.intellij.openapi.roots.LanguageLevelProjectExtension; import com.intellij.openapi.util.Key; import org.jetbrains.annotations.Nls; -import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -36,7 +35,8 @@ public enum LanguageLevel { JDK_1_6("Java 6", JavaCoreBundle.message("jdk.1.6.language.level.description")), JDK_1_7("Java 7", JavaCoreBundle.message("jdk.1.7.language.level.description")), JDK_1_8("Java 8", JavaCoreBundle.message("jdk.1.8.language.level.description")), - JDK_1_9("Java 9", JavaCoreBundle.message("jdk.1.9.language.level.description")); + JDK_1_9("Java 9", JavaCoreBundle.message("jdk.1.9.language.level.description")), + JDK_X("Java X", JavaCoreBundle.message("jdk.X.language.level.description")); public static final LanguageLevel HIGHEST = JDK_1_8; // TODO! when language level 9 is really supported, update this field public static final Key KEY = Key.create("LANGUAGE_LEVEL"); @@ -44,13 +44,12 @@ public enum LanguageLevel { private final String myName; private final String myPresentableText; - LanguageLevel(@NotNull @NonNls String name, @NotNull @Nls String presentableText) { + LanguageLevel(@NotNull String name, @NotNull @Nls String presentableText) { myName = name; myPresentableText = presentableText; } @NotNull - @NonNls public String getName() { return myName; } diff --git a/java/java-psi-api/src/messages/JavaCoreBundle.properties b/java/java-psi-api/src/messages/JavaCoreBundle.properties index 5ff783532c04b..c64bfa9814c96 100644 --- a/java/java-psi-api/src/messages/JavaCoreBundle.properties +++ b/java/java-psi-api/src/messages/JavaCoreBundle.properties @@ -7,4 +7,6 @@ jdk.1.5.language.level.description=5.0 - 'enum' keyword, generics, autoboxing et jdk.1.6.language.level.description=6 - @Override in interfaces jdk.1.7.language.level.description=7 - Diamonds, ARM, multi-catch etc. jdk.1.8.language.level.description=8 - Lambdas, type annotations etc. -jdk.1.9.language.level.description=9 - Jigsaw project etc. +jdk.1.9.language.level.description=9 - JDK modularization etc. + +jdk.X.language.level.description=X - Experimental features 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 1eb16b3f03d17..5727073250345 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 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 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. @@ -21,8 +21,6 @@ import com.intellij.lang.java.JavaLanguage; import com.intellij.lang.java.JavaParserDefinition; import com.intellij.lexer.Lexer; -import com.intellij.openapi.application.Application; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.Key; @@ -38,7 +36,6 @@ import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.TokenSet; import com.intellij.psi.util.PsiUtil; -import com.intellij.util.SystemProperties; import com.intellij.util.indexing.IndexingDataKeys; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -122,12 +119,6 @@ else if (ElementType.JAVA_PLAIN_COMMENT_BIT_SET.contains(tokenType)) { public static final WhitespacesAndCommentsBinder SPECIAL_PRECEDING_COMMENT_BINDER = new PrecedingWhitespacesAndCommentsBinder(true); public static final WhitespacesAndCommentsBinder TRAILING_COMMENT_BINDER = new TrailingWhitespacesAndCommentsBinder(); - public static final boolean EXPERIMENTAL_FEATURES; - static { - Application app = ApplicationManager.getApplication(); - EXPERIMENTAL_FEATURES = SystemProperties.getBooleanProperty("idea.experimental.java.features", app != null && app.isUnitTestMode()); - } - private JavaParserUtil() { } public static void setLanguageLevel(final PsiBuilder builder, final LanguageLevel level) { 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 a2eb9047c2a84..ced52aa0c29a6 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 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 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. @@ -102,15 +102,20 @@ private TypeInfo parseTypeInfo(PsiBuilder builder, int flags, boolean badWildcar if (expect(builder, ElementType.PRIMITIVE_TYPE_BIT_SET)) { typeInfo.isPrimitive = true; } - else if (tokenType == JavaTokenType.IDENTIFIER) { - parseJavaCodeReference(builder, isSet(flags, EAT_LAST_DOT), true, false, false, false, isSet(flags, DIAMONDS), typeInfo); - } - else if ((isSet(flags, WILDCARD) || badWildcard) && tokenType == JavaTokenType.QUEST) { - builder.advanceLexer(); + else if ((isSet(flags, WILDCARD) || badWildcard) && (tokenType == JavaTokenType.QUEST || isKeywordAny(builder))) { + if (tokenType == JavaTokenType.QUEST) { + builder.advanceLexer(); + } + else { + dummy(builder); + } completeWildcardType(builder, isSet(flags, WILDCARD), type); typeInfo.marker = type; return typeInfo; } + else if (tokenType == JavaTokenType.IDENTIFIER) { + parseJavaCodeReference(builder, isSet(flags, EAT_LAST_DOT), true, false, false, false, isSet(flags, DIAMONDS), typeInfo); + } else if (isSet(flags, DIAMONDS) && tokenType == JavaTokenType.GT) { emptyElement(builder, JavaElementType.DIAMOND_TYPE); type.done(JavaElementType.TYPE); @@ -344,10 +349,8 @@ public PsiBuilder.Marker parseTypeParameter(final PsiBuilder builder) { myParser.getDeclarationParser().parseAnnotations(builder); - if (EXPERIMENTAL_FEATURES && "any".equals(builder.getTokenText()) && getLanguageLevel(builder).isAtLeast(LanguageLevel.JDK_1_9)) { - PsiBuilder.Marker mark = builder.mark(); - builder.advanceLexer(); - mark.done(JavaElementType.DUMMY_ELEMENT); + if (isKeywordAny(builder)) { + dummy(builder); } final boolean wild = expect(builder, JavaTokenType.QUEST); @@ -368,8 +371,7 @@ public PsiBuilder.Marker parseTypeParameter(final PsiBuilder builder) { } @NotNull - public PsiBuilder.Marker parseReferenceList(final PsiBuilder builder, final IElementType start, - @Nullable final IElementType type, final IElementType delimiter) { + public PsiBuilder.Marker parseReferenceList(PsiBuilder builder, IElementType start, @Nullable IElementType type, IElementType delimiter) { final PsiBuilder.Marker element = builder.mark(); if (expect(builder, start)) { @@ -392,4 +394,14 @@ public PsiBuilder.Marker parseReferenceList(final PsiBuilder builder, final IEle } return element; } + + private static boolean isKeywordAny(PsiBuilder builder) { + return getLanguageLevel(builder).isAtLeast(LanguageLevel.JDK_X) && "any".equals(builder.getTokenText()); + } + + private static void dummy(PsiBuilder builder) { + PsiBuilder.Marker mark = builder.mark(); + builder.advanceLexer(); + mark.done(JavaElementType.DUMMY_ELEMENT); + } } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiTypeElementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiTypeElementImpl.java index 58ff1af8d4ad3..6b1ffdac37f45 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiTypeElementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiTypeElementImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 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. @@ -124,7 +124,8 @@ else if (PsiUtil.isJavaToken(child, JavaTokenType.ELLIPSIS)) { type = PsiEllipsisType.createEllipsis(type, array); } - if (PsiUtil.isJavaToken(child, JavaTokenType.QUEST)) { + if (PsiUtil.isJavaToken(child, JavaTokenType.QUEST) || + child instanceof ASTNode && ((ASTNode)child).getElementType() == JavaElementType.DUMMY_ELEMENT && "any".equals(child.getText())) { assert type == null : this; PsiElement boundKind = PsiTreeUtil.skipSiblingsForward(child, PsiComment.class, PsiWhiteSpace.class); PsiElement boundType = PsiTreeUtil.skipSiblingsForward(boundKind, PsiComment.class, PsiWhiteSpace.class); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting9/ValueTypes.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting9/ValueTypes.java new file mode 100644 index 0000000000000..570d01af756ae --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting9/ValueTypes.java @@ -0,0 +1,10 @@ +class C { } + +class Test { + void m(C c) { } + + void test() { + C c = new C(); + m(c); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/references/AnyTypeArgs.txt b/java/java-tests/testData/psi/parser-partial/references/AnyTypeArgs.txt new file mode 100644 index 0000000000000..f09448d75d080 --- /dev/null +++ b/java/java-tests/testData/psi/parser-partial/references/AnyTypeArgs.txt @@ -0,0 +1,28 @@ +PsiJavaFile:AnyTypeArgs.java + PsiTypeElement:T + PsiJavaCodeReferenceElement:T + PsiIdentifier:T('T') + PsiReferenceParameterList + PsiJavaToken:LT('<') + PsiTypeElement:E_SRC + PsiJavaCodeReferenceElement:E_SRC + PsiIdentifier:E_SRC('E_SRC') + PsiReferenceParameterList + + PsiJavaToken:COMMA(',') + PsiWhiteSpace(' ') + PsiTypeElement:any + PsiElement(DUMMY_ELEMENT) + PsiIdentifier:any('any') + PsiJavaToken:COMMA(',') + PsiWhiteSpace(' ') + PsiTypeElement:E_DST + PsiJavaCodeReferenceElement:E_DST + PsiIdentifier:E_DST('E_DST') + PsiReferenceParameterList + + PsiJavaToken:COMMA(',') + PsiWhiteSpace(' ') + PsiTypeElement:? + PsiJavaToken:QUEST('?') + PsiJavaToken:GT('>') \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/references/AnyType.txt b/java/java-tests/testData/psi/parser-partial/references/AnyTypeParams.txt similarity index 89% rename from java/java-tests/testData/psi/parser-partial/references/AnyType.txt rename to java/java-tests/testData/psi/parser-partial/references/AnyTypeParams.txt index f08d6209fc8f8..d1316e52f59e1 100644 --- a/java/java-tests/testData/psi/parser-partial/references/AnyType.txt +++ b/java/java-tests/testData/psi/parser-partial/references/AnyTypeParams.txt @@ -1,4 +1,4 @@ -PsiJavaFile:AnyType.java +PsiJavaFile:AnyTypeParams.java PsiTypeParameterList PsiJavaToken:LT('<') PsiTypeParameter:T diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk9Test.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk9Test.java index 0c4874791fec5..93991d29022fb 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk9Test.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk9Test.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 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. @@ -15,8 +15,6 @@ */ package com.intellij.codeInsight.daemon; -import com.intellij.codeInspection.InspectionProfileEntry; -import com.intellij.codeInspection.LocalInspectionTool; import com.intellij.codeInspection.compiler.JavacQuirksInspection; import com.intellij.codeInspection.deadCode.UnusedDeclarationInspection; import com.intellij.codeInspection.redundantCast.RedundantCastInspection; @@ -24,34 +22,24 @@ import com.intellij.openapi.projectRoots.JavaSdkVersion; import com.intellij.pom.java.LanguageLevel; import com.intellij.testFramework.IdeaTestUtil; -import org.jetbrains.annotations.NotNull; - public class LightAdvHighlightingJdk9Test extends LightDaemonAnalyzerTestCase { private static final String BASE_PATH = "/codeInsight/daemonCodeAnalyzer/advHighlighting9"; + @Override protected void setUp() throws Exception { super.setUp(); - enableInspectionTool(new UnusedDeclarationInspection()); - } - - private void doTest(boolean checkWarnings, boolean checkInfos, InspectionProfileEntry... classes) { setLanguageLevel(LanguageLevel.JDK_1_9); IdeaTestUtil.setTestVersion(JavaSdkVersion.JDK_1_9, getModule(), myTestRootDisposable); - enableInspectionTools(classes); - doTest(BASE_PATH + "/" + getTestName(false) + ".java", checkWarnings, checkInfos); + enableInspectionTools(new UnusedDeclarationInspection(), new UncheckedWarningLocalInspection(), new JavacQuirksInspection(), new RedundantCastInspection()); } - @NotNull - @Override - protected LocalInspectionTool[] configureLocalInspectionTools() { - return new LocalInspectionTool[]{ - new UncheckedWarningLocalInspection(), - new JavacQuirksInspection(), - new RedundantCastInspection() - }; + private void doTest(boolean checkWarnings, boolean checkInfos) { + doTest(BASE_PATH + "/" + getTestName(false) + ".java", checkWarnings, checkInfos); } public void testSafeVarargsApplicability() { doTest(true, false); } public void testPrivateInInterfaces() { doTest(false, false); } + + public void testValueTypes() { setLanguageLevel(LanguageLevel.JDK_X); doTest(false, false); } } 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 555d166e13bf2..dae6ea4e742af 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 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 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. @@ -51,10 +51,8 @@ public ReferenceParserTest() { public void testTypeParams7() { doTypeParamsParserTest(""); } public void testTypeParams8() { doTypeParamsParserTest(""); } - public void testAnyType() { - setLanguageLevel(LanguageLevel.JDK_1_9); - doTypeParamsParserTest(""); - } + public void testAnyTypeParams() { setLanguageLevel(LanguageLevel.JDK_X); doTypeParamsParserTest(""); } + public void testAnyTypeArgs() { setLanguageLevel(LanguageLevel.JDK_X); doTypeParserTest("T"); } private void doRefParserTest(final String text, final boolean incomplete) { doParserTest(text, new MyTestParser(incomplete));