[java] junit 5 tests for fixture based highlighting tests

GitOrigin-RevId: a337b1d17a69bffb4df25f5e7c79bda973c5b4a2
This commit is contained in:
Anna Kozlova
2021-11-20 15:15:12 +00:00
committed by intellij-monorepo-bot
parent 13c276c37b
commit 0567932ab5
8 changed files with 474 additions and 387 deletions
@@ -1,13 +1,13 @@
class Logger {}
class HashMap {}
class Test {
public static void main(String[] args) {
User user = new User();
Logger logger = null;
HashMap hashMap = null;
foo<error descr="'foo(T, java.util.logging.Logger, java.util.function.Function<T,java.lang.String>)' in 'Test' cannot be applied to '(User, Logger, <method reference>)'">(user, logger, User::getId)</error>;
foo<error descr="'foo(T, java.util.HashMap, java.util.function.Function<T,java.lang.String>)' in 'Test' cannot be applied to '(User, HashMap, <method reference>)'">(user, hashMap, User::getId)</error>;
}
private static <T> void foo(T val, java.util.logging.Logger logger, java.util.function.Function<T, String> idFunction) { }
private static <T> void foo(T val, java.util.HashMap hashMap, java.util.function.Function<T, String> idFunction) { }
}
class User {
@@ -1,135 +1,152 @@
/*
* Copyright 2000-2017 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.
*/
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.java.codeInsight.daemon.lambda;
import com.intellij.codeInsight.daemon.LightDaemonAnalyzerTestCase;
import com.intellij.codeInspection.deadCode.UnusedDeclarationInspection;
import com.intellij.openapi.projectRoots.JavaSdkVersion;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.testFramework.IdeaTestUtil;
import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase5;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class MostSpecificResolutionTest extends LightDaemonAnalyzerTestCase {
class MostSpecificResolutionTest extends LightJavaCodeInsightFixtureTestCase5 {
@NonNls static final String BASE_PATH = "/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific";
@NotNull
@Override
protected void setUp() throws Exception {
super.setUp();
enableInspectionTool(new UnusedDeclarationInspection());
protected String getRelativePath() {
return super.getRelativePath() + BASE_PATH;
}
public void testVoidConflict() {
@BeforeEach
void setUp() {
getFixture().enableInspections(new UnusedDeclarationInspection());
}
@Test
void testVoidConflict() {
doTest();
}
public void testNestedLambdaSpecifics() {
@Test
void testNestedLambdaSpecifics() {
doTest();
}
public void testBothVarargs() {
@Test
void testBothVarargs() {
doTest();
}
public void testNestedVarargs() {
@Test
void testNestedVarargs() {
doTest();
}
public void testMostSpecificForSameFunctionalTypes() {
@Test
void testMostSpecificForSameFunctionalTypes() {
doTest();
}
public void testIDEA121884() {
@Test
void testIDEA121884() {
doTest();
}
public void testIDEA121999() {
@Test
void testIDEA121999() {
doTest();
}
public void testRelatedSAMErasures() {
@Test
void testRelatedSAMErasures() {
doTest();
}
public void testJDK8034223() {
@Test
void testJDK8034223() {
doTest();
}
public void testIDEA123352() {
@Test
void testIDEA123352() {
doTest();
}
public void testIncompleteMethodInInterface() {
@Test
void testIncompleteMethodInInterface() {
doTest(false);
}
public void testMostSpecificByReturnType() {
@Test
void testMostSpecificByReturnType() {
doTest();
}
public void testDifferentParamsLength() {
@Test
void testDifferentParamsLength() {
doTest(false);
}
public void testNoReturnTypeResolutionForThrownException() {
@Test
void testNoReturnTypeResolutionForThrownException() {
doTest(false);
}
public void testBoxingAndOverloadResolution() {
@Test
void testBoxingAndOverloadResolution() {
doTest();
}
public void testSuperMethodsInExactCheck() {
@Test
void testSuperMethodsInExactCheck() {
doTest();
}
public void testTargetTypeParameter() {
@Test
void testTargetTypeParameter() {
doTest(false);
}
public void testJDK8042508() {
@Test
void testJDK8042508() {
if (Registry.is("JDK8042508.bug.fixed", false)) {
doTest(false);
}
}
public void testIDEA125855() {
@Test
void testIDEA125855() {
doTest();
}
public void testIDEA127584() {
@Test
void testIDEA127584() {
doTest();
}
public void testVarargsSpecificsDuringMethodReferenceResolve() {
@Test
void testVarargsSpecificsDuringMethodReferenceResolve() {
doTest();
}
public void testFunctionalTypeComparisonWhenMethodsAreNotGeneric() {
@Test
void testFunctionalTypeComparisonWhenMethodsAreNotGeneric() {
doTest(false);
}
public void testInferSpecificForGenericMethodWhenCallProvidesExplicitTypeArguments() {
@Test
void testInferSpecificForGenericMethodWhenCallProvidesExplicitTypeArguments() {
doTest(false);
}
public void testIncompatibleSiteSubstitutionBounds() {
@Test
void testIncompatibleSiteSubstitutionBounds() {
doTest(false);
}
public void testEnsureArgTypesAreNotCalculatedDuringOverload() {
@Test
void testEnsureArgTypesAreNotCalculatedDuringOverload() {
doTest();
}
@@ -138,7 +155,6 @@ public class MostSpecificResolutionTest extends LightDaemonAnalyzerTestCase {
}
private void doTest(boolean warnings) {
IdeaTestUtil.setTestVersion(JavaSdkVersion.JDK_1_8, getModule(), getTestRootDisposable());
doTest(BASE_PATH + "/" + getTestName(false) + ".java", warnings, false);
getFixture().testHighlighting(warnings, false, false, getTestName(false) + ".java");
}
}
@@ -1,165 +1,160 @@
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.java.codeInsight.daemon.lambda;
import com.intellij.codeInsight.daemon.LightDaemonAnalyzerTestCase;
import com.intellij.codeInspection.deadCode.UnusedDeclarationInspection;
import com.intellij.openapi.projectRoots.JavaSdkVersion;
import com.intellij.testFramework.IdeaTestUtil;
import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase5;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.Test;
public class NewLambdaHighlightingTest extends LightDaemonAnalyzerTestCase {
private static final String BASE_PATH = "/codeInsight/daemonCodeAnalyzer/lambda/newLambda/";
class NewLambdaHighlightingTest extends LightJavaCodeInsightFixtureTestCase5 {
@Test void testIDEA93586() { doTest(); }
@Test void testIDEA113573() { doTest(); }
@Test void testIDEA112922() { doTest(); }
@Test void testIDEA113504() { doTest(); }
@Test void testAfterAbstractPipeline2() { doTest(); }
@Test void testIDEA116252() { doTest(); }
@Test void testIDEA106670() { doTest(); }
@Test void testIDEA116548() { doTest(); }
@Test void testOverloadResolutionSAM() { doTest(); }
@Test void testIntersectionTypesDuringInference() { doTest(); }
@Test void testIncludeConstraintsWhenParentMethodIsDuringCalculation() { doTest(); }
@Test void testUseCalculatedSubstitutor() { doTest(); }
@Test void testArgumentOfAnonymousClass() { doTest(); }
@Test void testEllipsis() { doTest(); }
@Test void testOuterMethodPropagation() { doTest(); }
@Test void testRecursiveCalls() { doTest(); }
@Test void testGroundTargetTypeForImplicitLambdas() { doTest(); }
@Test void testAdditionalConstraintsReduceOrder() { doTest(); }
@Test void testAdditionalConstraintSubstitution() { doTest(); }
@Test void testFunctionalInterfacesCalculation() { doTest(); }
@Test void testMissedSiteSubstitutorDuringDeepAdditionalConstraintsGathering() { doTest(); }
@Test void testIDEA120992() { doTest(); }
@Test void testTargetTypeConflictResolverShouldNotTryToEvaluateCurrentArgumentType() { doTest(); }
@Test void testIDEA119535() { doTest(); }
@Test void testIDEA119003() { doTest(); }
@Test void testIDEA125674() { doTest(); }
@Test void testIDEA117124() { doTest(); }
@Test void testWildcardParameterization() { doTest(); }
@Test void testDiamondInLambdaReturn() { doTest(); }
@Test void testIDEA118965() { doTest(); }
@Test void testIDEA121315() { doTest(); }
@Test void testIDEA118965comment() { doTest(); }
@Test void testIDEA122074() { doTest(); }
@Test void testIDEA122084() { doTest(); }
@Test void testAdditionalConstraintDependsOnNonMentionedVars() { doTest(); }
@Test void testIDEA122616() { doTest(); }
@Test void testIDEA122700() { doTest(); }
@Test void testIDEA122406() { doTest(); }
@Test void testNestedCallsInsideLambdaReturnExpression() { doTest(); }
@Test void testIDEA123731() { doTest(); }
@Test void testIDEA123869() { doTest(); }
@Test void testIDEA123848() { doTest(); }
@Test void testOnlyLambdaAtTypeParameterPlace() { doTest(); }
@Test void testLiftedIntersectionType() { doTest(); }
@Test void testInferenceFromReturnStatements() { doTest(); }
@Test void testDownUpThroughLambdaReturnStatements() { doTest(); }
@Test void testIDEA124547() { doTest(); }
@Test void testIDEA118362() { doTest(); }
@Test void testIDEA126056() { doTest(); }
@Test void testIDEA125254() { doTest(); }
@Test void testIDEA124961() { doTest(); }
@Test void testIDEA124961_1_8_0_40() { doTest(); }
@Test void testIDEA126109() { doTest(); }
@Test void testIDEA126809() { doTest(); }
@Test void testIDEA124424() { doTest(); }
@Test void testNestedLambdaExpressions1() { doTest(); }
@Test void testNestedLambdaExpressionsNoFormalParams() { doTest(); }
@Test void testNestedLambdaExpressionsNoFormalParams1() { doTest(); }
@Test void testDeepNestedLambdaExpressionsNoFormalParams() { doTest(); }
@Test void testNestedLambdaExpressionsNoFormalParamsStopAtStandalone() { doTest(); }
@Test void testNestedLambdaCheckedExceptionsConstraints() { doTest(); }
@Test void testNestedLambdaWithInferenceVariableAsTargetType() { doTest(); }
@Test void testIDEA127596() { doTest(); }
@Test void testIDEA124983() { doTest(); }
@Test void testIDEA123951() { doTest(); }
@Test void testIDEA124190() { doTest(); }
@Test void testIDEA127124comment() { doTest(); }
@Test void testParenthesizedExpressionsDuringConstrainsCollection() { doTest(); }
@Test void testIDEA126778() { doTest(); }
@Test void testEnsureGroundTypeToGetLambdaParameterType() { doTest(); }
@Test void testSameParametrizationCheckTakesTypeParametersIntoAccount() { doTest(); }
@Test void testCheckedExceptionsConstraintsSubstitutions() { doTest(); }
@Test void testCheckedExceptionsConstraintsSubstitutions1() { doTest(); }
@Test void testCheckedExceptionsConstraintsSubstitutions2() { doTest(); }
@Test void testCheckedExceptionsConstraintsSubstitutionsDeepInBody() { doTest(); }
@Test void testIDEA130129() { doTest(); }
@Test void testIDEA130920() { doTest(); }
@Test void testExpectedReturnTypeInAnonymousInsideLambda() { doTest(); }
@Test void testIDEA131700() { doTest(); }
@Test void testPropertiesInsteadOfSiteSubstitutorIfAny() { doTest(); }
@Test void testIDEA127124() { doTest(); }
@Test void testIDEA123987() { doTest(); }
@Test void testIDEA136759() { doTest(); }
@Test void testInfiniteLoopAndValueCompatibility() { doTest(); }
@Test void testAcceptInferredVariablesBeforeAdditionalConstraintsLeadToFail() { doTest(); }
@Test void testEnsureNoCaptureIsPerformedOverTargetTypeOfCastExpressionWhichMarksFunctionalExpression() { doTest(); }
@Test void testCaptureInReturnStatementOfLambdaExpression() { doTest(); }
@Test void testControlFlowAnalysisFailedValueCompatibilityUnchanged() { doTest(); }
@Test void testNonAccessibleFunctionalInterfaceTypeArguments() { doTest(); }
@Test void testIntersectionTypeOfDifferentParameterizationOfTheSameClassInNonWildcardParameterization() { doTest(); /* JDK-8043374 */ }
@Test void testPreserveCapturedWildcardsDuringNonWildcardParameterization() { doTest(); }
@Test void testIDEA136401() { doTest(); }
@Test void testIDEA133920() { doTest(); }
@Test void testIDEA132253() { doTest(); }
@Test void testIDEA144840() { doTest(); }
@Test void testRecursiveAtSiteSubstitutorsWithAdditionalConstraints() { doTest(); }
@Test void testIDEA136325() { doTest(); }
@Test void testIDEA127215() { doTest(); }
@Test void testGroundTargetTypeForExpectedReturnTypeOfLambdaExpression() { doTest(); }
@Test void testIDEA149224() { doTest(); }
@Test void testIDEA149670() { doTest(); }
@Test void testIDEA149709() { doTest(); }
@Test void testResolveOrderShouldTakeIntoAccountDependenciesOfAlreadyResolvedVars() { doTest(); }
@Test void testCodeBlockLambdaWithIsValueCompatibleChecks() { doTest(); }
@Test void testCodeBlockLambdaWithoutParamsIsValueCompatibleChecks() { doTest(); }
@Test void testInferenceFromReturnLambdaStatementWhereContainingMethodNonGeneric() { doTest(); }
@Test void testCLikeArrayDeclarationInLambdaWithExplicitTypes() { doTest(); }
@Test void testAdditionalConstraintsOrderWhenOutputVariablesAlreadyHaveProperEqualBound() { doTest(); }
@Test void testIDEA153284() { doTest(); }
@Test void testAvoidPartlyRawTypesAsTheyWontBeTreatedAsWildcardParameterizedAnyway() { doTest(); }
@Test void testDeepChainOfNestedLambdasOverCachedTopLevel() { doTest(); }
@Test void testIDEA153999() { doTest(); }
@Test void testFieldReferencedFromLambdaInitializations() { doTest(); }
@Test void testRawSiteSubstitutorWithExpectedGenericsParameterType() { doTest(); }
@Test void testPreserveCapturedWildcardAsLambdaParameterType() { doTest(); }
@Test void testDontWarnAboutNestedLambdaForAProblemInOuter() { doTest(); }
@Test void testUncheckedPartial() { doTest(); }
@Test void testVarargMethodWithThrownTypes() { doTest(); }
@Test void testExceptionInLambdaBodyCheck() { doTest(); }
@Test void testHighlightFaultyLambdaReturnExpression() { doTest(); }
@Test void testUncheckedConstraintOnInferenceVariableWithProperUpperBound() { doTest(); }
@Test void testCollectLambdaAdditionalConstraintsByGroundType() { doTest(); }
@Test void testInferTypeParametersFromFunctionalInterfaceInputs() { doTest(); }
@Test void testGroundTargetTypeWhenAbstractMethodInSuperclass() { doTest(); }
@Test void testNestedLambdasWithInferenceOfReturnTypeInTheLatestLambda() { doTest(); }
@Test void testCapturedWildcardNotOpenedDuringInference() { doTest(); }
@Test void testIgnoreStandaloneExpressionsInLambdaReturnForNestedCalls() { doTest(); }
@Test void testArrayNotAFunctionalInterface() { doTest(); }
@Test void testRawSubstitutionForInterfaceMethod() { doTest(); }
@Test void testConditionalExpressionInLambdaReturns() { doTest(); }
@Test void testLambdaWithFormalTypeParameters() { doTest(); }
@Test void testIDEA174924() { doTest(); }
@Test void testVoidValueCompatibilityWithBreakInSwitch() { doTest(); }
@Test void testLambdaChainWithCapturedWildcards() { doTest(); }
@Test void testExceptionInferenceForVarargMethods() { doTest(); }
@Test void testConditionalBooleanAsFunctionalInterfaceType() { doTest(); }
@Test void testUnhandledExceptionInLambdaChain() { doTest(); }
@Test void testFunctionalBound() { doTest(); }
@Test void testValidFixesOnUnresolvedMethod() { doTest(); }
@Test void testPolyExpressionInVoidCompatibleLambdaReturn() { doTest(); }
@Test void testStopAtTypeCastWhenSearchForTopMostNode() { doTest(); }
@Test void testLambdaWithExplicitTypeAndTargetTypeParameter() { doTest(); }
@Override
protected void setUp() throws Exception {
super.setUp();
enableInspectionTool(new UnusedDeclarationInspection());
protected @NotNull String getRelativePath() {
return super.getRelativePath() + "/codeInsight/daemonCodeAnalyzer/lambda/newLambda/";
}
public void testIDEA93586() { doTest(); }
public void testIDEA113573() { doTest(); }
public void testIDEA112922() { doTest(); }
public void testIDEA113504() { doTest(); }
public void testAfterAbstractPipeline2() { doTest(); }
public void testIDEA116252() { doTest(); }
public void testIDEA106670() { doTest(); }
public void testIDEA116548() { doTest(); }
public void testOverloadResolutionSAM() { doTest(); }
public void testIntersectionTypesDuringInference() { doTest(); }
public void testIncludeConstraintsWhenParentMethodIsDuringCalculation() { doTest(); }
public void testUseCalculatedSubstitutor() { doTest(); }
public void testArgumentOfAnonymousClass() { doTest(); }
public void testEllipsis() { doTest(); }
public void testOuterMethodPropagation() { doTest(); }
public void testRecursiveCalls() { doTest(); }
public void testGroundTargetTypeForImplicitLambdas() { doTest(); }
public void testAdditionalConstraintsReduceOrder() { doTest(); }
public void testAdditionalConstraintSubstitution() { doTest(); }
public void testFunctionalInterfacesCalculation() { doTest(); }
public void testMissedSiteSubstitutorDuringDeepAdditionalConstraintsGathering() { doTest(); }
public void testIDEA120992() { doTest(); }
public void testTargetTypeConflictResolverShouldNotTryToEvaluateCurrentArgumentType() { doTest(); }
public void testIDEA119535() { doTest(); }
public void testIDEA119003() { doTest(); }
public void testIDEA125674() { doTest(); }
public void testIDEA117124() { doTest(); }
public void testWildcardParameterization() { doTest(); }
public void testDiamondInLambdaReturn() { doTest(); }
public void testIDEA118965() { doTest(); }
public void testIDEA121315() { doTest(); }
public void testIDEA118965comment() { doTest(); }
public void testIDEA122074() { doTest(); }
public void testIDEA122084() { doTest(); }
public void testAdditionalConstraintDependsOnNonMentionedVars() { doTest(); }
public void testIDEA122616() { doTest(); }
public void testIDEA122700() { doTest(); }
public void testIDEA122406() { doTest(); }
public void testNestedCallsInsideLambdaReturnExpression() { doTest(); }
public void testIDEA123731() { doTest(); }
public void testIDEA123869() { doTest(); }
public void testIDEA123848() { doTest(); }
public void testOnlyLambdaAtTypeParameterPlace() { doTest(); }
public void testLiftedIntersectionType() { doTest(); }
public void testInferenceFromReturnStatements() { doTest(); }
public void testDownUpThroughLambdaReturnStatements() { doTest(); }
public void testIDEA124547() { doTest(); }
public void testIDEA118362() { doTest(); }
public void testIDEA126056() { doTest(); }
public void testIDEA125254() { doTest(); }
public void testIDEA124961() { doTest(); }
public void testIDEA124961_1_8_0_40() { doTest(); }
public void testIDEA126109() { doTest(); }
public void testIDEA126809() { doTest(); }
public void testIDEA124424() { doTest(); }
public void testNestedLambdaExpressions1() { doTest(); }
public void testNestedLambdaExpressionsNoFormalParams() { doTest(); }
public void testNestedLambdaExpressionsNoFormalParams1() { doTest(); }
public void testDeepNestedLambdaExpressionsNoFormalParams() { doTest(); }
public void testNestedLambdaExpressionsNoFormalParamsStopAtStandalone() { doTest(); }
public void testNestedLambdaCheckedExceptionsConstraints() { doTest(); }
public void testNestedLambdaWithInferenceVariableAsTargetType() { doTest(); }
public void testIDEA127596() { doTest(); }
public void testIDEA124983() { doTest(); }
public void testIDEA123951() { doTest(); }
public void testIDEA124190() { doTest(); }
public void testIDEA127124comment() { doTest(); }
public void testParenthesizedExpressionsDuringConstrainsCollection() { doTest(); }
public void testIDEA126778() { doTest(); }
public void testEnsureGroundTypeToGetLambdaParameterType() { doTest(); }
public void testSameParametrizationCheckTakesTypeParametersIntoAccount() { doTest(); }
public void testCheckedExceptionsConstraintsSubstitutions() { doTest(); }
public void testCheckedExceptionsConstraintsSubstitutions1() { doTest(); }
public void testCheckedExceptionsConstraintsSubstitutions2() { doTest(); }
public void testCheckedExceptionsConstraintsSubstitutionsDeepInBody() { doTest(); }
public void testIDEA130129() { doTest(); }
public void testIDEA130920() { doTest(); }
public void testExpectedReturnTypeInAnonymousInsideLambda() { doTest(); }
public void testIDEA131700() { doTest(); }
public void testPropertiesInsteadOfSiteSubstitutorIfAny() { doTest(); }
public void testIDEA127124() { doTest(); }
public void testIDEA123987() { doTest(); }
public void testIDEA136759() { doTest(); }
public void testInfiniteLoopAndValueCompatibility() { doTest(); }
public void testAcceptInferredVariablesBeforeAdditionalConstraintsLeadToFail() { doTest(); }
public void testEnsureNoCaptureIsPerformedOverTargetTypeOfCastExpressionWhichMarksFunctionalExpression() { doTest(); }
public void testCaptureInReturnStatementOfLambdaExpression() { doTest(); }
public void testControlFlowAnalysisFailedValueCompatibilityUnchanged() { doTest(); }
public void testNonAccessibleFunctionalInterfaceTypeArguments() { doTest(); }
public void testIntersectionTypeOfDifferentParameterizationOfTheSameClassInNonWildcardParameterization() { doTest(); /* JDK-8043374 */ }
public void testPreserveCapturedWildcardsDuringNonWildcardParameterization() { doTest(); }
public void testIDEA136401() { doTest(); }
public void testIDEA133920() { doTest(); }
public void testIDEA132253() { doTest(); }
public void testIDEA144840() { doTest(); }
public void testRecursiveAtSiteSubstitutorsWithAdditionalConstraints() { doTest(); }
public void testIDEA136325() { doTest(); }
public void testIDEA127215() { doTest(); }
public void testGroundTargetTypeForExpectedReturnTypeOfLambdaExpression() { doTest(); }
public void testIDEA149224() { doTest(); }
public void testIDEA149670() { doTest(); }
public void testIDEA149709() { doTest(); }
public void testResolveOrderShouldTakeIntoAccountDependenciesOfAlreadyResolvedVars() { doTest(); }
public void testCodeBlockLambdaWithIsValueCompatibleChecks() { doTest(); }
public void testCodeBlockLambdaWithoutParamsIsValueCompatibleChecks() { doTest(); }
public void testInferenceFromReturnLambdaStatementWhereContainingMethodNonGeneric() { doTest(); }
public void testCLikeArrayDeclarationInLambdaWithExplicitTypes() { doTest(); }
public void testAdditionalConstraintsOrderWhenOutputVariablesAlreadyHaveProperEqualBound() { doTest(); }
public void testIDEA153284() { doTest(); }
public void testAvoidPartlyRawTypesAsTheyWontBeTreatedAsWildcardParameterizedAnyway() { doTest(); }
public void testDeepChainOfNestedLambdasOverCachedTopLevel() { doTest(); }
public void testIDEA153999() { doTest(); }
public void testFieldReferencedFromLambdaInitializations() { doTest(); }
public void testRawSiteSubstitutorWithExpectedGenericsParameterType() { doTest(); }
public void testPreserveCapturedWildcardAsLambdaParameterType() { doTest(); }
public void testDontWarnAboutNestedLambdaForAProblemInOuter() { doTest(); }
public void testUncheckedPartial() { doTest(); }
public void testVarargMethodWithThrownTypes() { doTest(); }
public void testExceptionInLambdaBodyCheck() { doTest(); }
public void testHighlightFaultyLambdaReturnExpression() { doTest(); }
public void testUncheckedConstraintOnInferenceVariableWithProperUpperBound() { doTest(); }
public void testCollectLambdaAdditionalConstraintsByGroundType() { doTest(); }
public void testInferTypeParametersFromFunctionalInterfaceInputs() { doTest(); }
public void testGroundTargetTypeWhenAbstractMethodInSuperclass() { doTest(); }
public void testNestedLambdasWithInferenceOfReturnTypeInTheLatestLambda() { doTest(); }
public void testCapturedWildcardNotOpenedDuringInference() { doTest(); }
public void testIgnoreStandaloneExpressionsInLambdaReturnForNestedCalls() { doTest(); }
public void testArrayNotAFunctionalInterface() { doTest(); }
public void testRawSubstitutionForInterfaceMethod() { doTest(); }
public void testConditionalExpressionInLambdaReturns() { doTest(); }
public void testLambdaWithFormalTypeParameters() { doTest(); }
public void testIDEA174924() { doTest(); }
public void testVoidValueCompatibilityWithBreakInSwitch() { doTest(); }
public void testLambdaChainWithCapturedWildcards() { doTest(); }
public void testExceptionInferenceForVarargMethods() { doTest(); }
public void testConditionalBooleanAsFunctionalInterfaceType() { doTest(); }
public void testUnhandledExceptionInLambdaChain() { doTest(); }
public void testFunctionalBound() { doTest(); }
public void testValidFixesOnUnresolvedMethod() { doTest(); }
public void testPolyExpressionInVoidCompatibleLambdaReturn() { doTest(); }
public void testStopAtTypeCastWhenSearchForTopMostNode() { doTest(); }
public void testLambdaWithExplicitTypeAndTargetTypeParameter() { doTest(); }
private void doTest() {
IdeaTestUtil.setTestVersion(JavaSdkVersion.JDK_1_8, getModule(), getTestRootDisposable());
doTest(BASE_PATH + getTestName(false) + ".java", false, false);
getFixture().testHighlighting(false, false, false, getTestName(false) + ".java");
}
}
@@ -1,200 +1,195 @@
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.java.codeInsight.daemon.lambda;
import com.intellij.codeInsight.daemon.LightDaemonAnalyzerTestCase;
import com.intellij.codeInsight.daemon.impl.HighlightInfoType;
import com.intellij.codeInspection.LocalInspectionTool;
import com.intellij.codeInspection.deadCode.UnusedDeclarationInspection;
import com.intellij.codeInspection.uncheckedWarnings.UncheckedWarningLocalInspection;
import com.intellij.openapi.projectRoots.JavaSdkVersion;
import com.intellij.testFramework.IdeaTestUtil;
import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase5;
import org.jetbrains.annotations.NotNull;
import org.junit.Assert;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class NewMethodRefHighlightingTest extends LightDaemonAnalyzerTestCase {
class NewMethodRefHighlightingTest extends LightJavaCodeInsightFixtureTestCase5 {
private static final String BASE_PATH = "/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/";
@NotNull
@Override
protected void setUp() throws Exception {
super.setUp();
enableInspectionTool(new UnusedDeclarationInspection());
protected String getRelativePath() {
return super.getRelativePath() + BASE_PATH;
}
@Override
protected LocalInspectionTool @NotNull [] configureLocalInspectionTools() {
return new LocalInspectionTool[]{
new UncheckedWarningLocalInspection()
};
@BeforeEach
void setUp() {
getFixture().enableInspections(new UnusedDeclarationInspection(), new UncheckedWarningLocalInspection());
}
public void testIDEA93587() { doTest(true); }
public void testIDEA106522() { doTest(); }
public void testIDEA112574() { doTest(); }
public void testIDEA113558() { doTest(true); }
public void testAfterDistinctOps() { doTest(true); }
public void testUncheckedWarningWithRawSecondSearchAndMethodFromSuper() { doTest(true); }
public void testWildcardReturns() { doTest(false); }
public void testInexactMethodReferencePrimitiveBound() { doTest(false); }
public void testAfterCollectors1() { doTest(false); }
public void testAfterCollectors2() { doTest(false); }
public void testIDEA116359() { doTest(false); }
public void testAfterSliceOps() { doTest(false); }
public void testAssertNumberOfParameters() { doTest(false); }
public void testGenericArrayCreation() { doTest(true); }
public void testWildcardsInClassTypeQualifier() { doTest(); }
public void testRawConstructorReferenceWithTypeParams() { doTest(); }
public void testCheckReturnTypeForExactRefs() { doTest(); }
public void testPotentialApplicability() { doTest(); }
public void testLiftMethodReferenceTypeParams() { doTest(); }
public void testHighlightReferenceWhenContradictBoundsAreInferred() { doTest(); }
public void testAfterBounds() { doTest(); }
public void testIncludeContainingClassParamsInResolveSetForConstructorRefs() { doTest(); }
public void testContainingClassTypeParamsForBounds() { doTest(); }
public void testCapturingReturnValue() { doTest(); }
public void testIDEA117311() { doTest(); }
public void testDeepWildcardEliminating() { doTest(); }
@Test void testIDEA93587() { doTest(true); }
@Test void testIDEA106522() { doTest(); }
@Test void testIDEA112574() { doTest(); }
@Test void testIDEA113558() { doTest(true); }
@Test void testAfterDistinctOps() { doTest(true); }
@Test void testUncheckedWarningWithRawSecondSearchAndMethodFromSuper() { doTest(true); }
@Test void testWildcardReturns() { doTest(false); }
@Test void testInexactMethodReferencePrimitiveBound() { doTest(false); }
@Test void testAfterCollectors1() { doTest(false); }
@Test void testAfterCollectors2() { doTest(false); }
@Test void testIDEA116359() { doTest(false); }
@Test void testAfterSliceOps() { doTest(false); }
@Test void testAssertNumberOfParameters() { doTest(false); }
@Test void testGenericArrayCreation() { doTest(true); }
@Test void testWildcardsInClassTypeQualifier() { doTest(); }
@Test void testRawConstructorReferenceWithTypeParams() { doTest(); }
@Test void testCheckReturnTypeForExactRefs() { doTest(); }
@Test void testPotentialApplicability() { doTest(); }
@Test void testLiftMethodReferenceTypeParams() { doTest(); }
@Test void testHighlightReferenceWhenContradictBoundsAreInferred() { doTest(); }
@Test void testAfterBounds() { doTest(); }
@Test void testIncludeContainingClassParamsInResolveSetForConstructorRefs() { doTest(); }
@Test void testContainingClassTypeParamsForBounds() { doTest(); }
@Test void testCapturingReturnValue() { doTest(); }
@Test void testIDEA117311() { doTest(); }
@Test void testDeepWildcardEliminating() { doTest(); }
//public void testLambdaExercise() { doTest(); }
public void testIDEA118437() { doTest(); }
public void testIDEA113297() { doTest(); }
public void testIDEA120376() { doTest(); }
public void testIDEA120370() { doTest(); }
public void testExcludeContainingClassTypeParamsFromInference() { doTest(); }
public void testEnsureTypeParametersAreNotModifiedDuringGroundTypeEvaluation() { doTest(); }
public void testIncorrectArrayCreationSignature() { doTest(); }
public void testRawTargetType() { doTest(); }
public void testReturnTypeCheckForRawReceiver() { doTest(); }
public void testStaticNonStaticReferenceTypeAmbiguity() {
@Test void testIDEA118437() { doTest(); }
@Test void testIDEA113297() { doTest(); }
@Test void testIDEA120376() { doTest(); }
@Test void testIDEA120370() { doTest(); }
@Test void testExcludeContainingClassTypeParamsFromInference() { doTest(); }
@Test void testEnsureTypeParametersAreNotModifiedDuringGroundTypeEvaluation() { doTest(); }
@Test void testIncorrectArrayCreationSignature() { doTest(); }
@Test void testRawTargetType() { doTest(); }
@Test void testReturnTypeCheckForRawReceiver() { doTest(); }
@Test void testStaticNonStaticReferenceTypeAmbiguity() {
doTest();
doHighlighting()
getFixture().doHighlighting()
.stream()
.filter(info -> info.type == HighlightInfoType.ERROR)
.forEach(info -> Assert.assertEquals("<html>Reference to 'm' is ambiguous, both 'm(Test, String)' and 'm(String)' match</html>",
info.getToolTip()));
}
public void testStaticWithVarargsNonStaticReferenceTypeAmbiguity() { doTest(); }
public void testStaticNonStaticWithVarargsReferenceTypeAmbiguity() { doTest(); }
public void testSuperClassPotentiallyApplicableMembers() { doTest(); }
public void testExactMethodReferencePertinentToApplicabilityCheck() { doTest(); }
public void testAmbiguityVarargs() { doTest(); }
public void testRawInnerClassQualifier() { doTest(); }
public void testIDEA122100() { doTest(); }
public void testIDEA122509() { doTest(); }
public void testIDEA122681() { doTest(); }
public void testIDEA112191() { doTest(); }
public void testIDEA122018comment() { doTest(); }
public void testIDEA123223() { doTest(); }
public void testIDEA123248() { doTest(); }
public void testIDEA123366() { doTest(); }
public void testIDEA123366comment() { doTest(); }
public void testFromReferenceWithTypeArgs() { doTest(); }
public void testRefOnStaticInterfaceMethod() { doTest(); }
public void testUncheckedMethodReference() { doTest(true); }
public void testIDEA124148() { doTest(); }
public void testIDEA124613() { doTest(); }
public void testCollectingApplicabilityConstraints() { doTest(); }
public void testIDEA126062() { doTest(); }
public void testRejectReceiverTypesForConstructorRefs() { doTest(); }
public void testEnumValuesMethod() { doTest(); }
public void testMissedApplicableMemberContainingClassSubstitution() { doTest(); }
public void testIDEA126969() { doTest(); }
public void testIDEA127506() { doTest(); }
public void testIDEA127275() { doTest(); }
public void testIDEA127275_() { doTest(); }
public void testUnresolvedMethodReference() { doTest(); }
public void testIDEA128534() { doTest(); }
public void testIDEA128712() { doTest(); }
public void testAdditionalConstraints3Level() { doTest(); }
public void testWildcardParametrization() { doTest(); }
public void testReceiverTypeSubstitution() { doTest(); }
public void testTypeParametersInitOrder() { doTest(); }
public void testIDEA132560() { doTest(); }
public void testEnsureThatCapturedWildcardsAreNotOpenWithoutAnyReason() { doTest(); }
public void testVarargsParametersCountComparison() { doTest(true); }
public void testPotentialCompatibilityWithInvalidShape() { doTest(true); }
public void testSiteSubstitutionOfNonReceiverReference() { doTest(); }
public void testRawReferenceTypeWithReceiver() { doTest(); }
public void testMethodReferenceTypeArgumentsApplicability() { doTest(); }
public void testTypeNameInterfaceSuperMethodReferenceApplicability() { doTest(); }
public void testNewParameterizedReferenceOnRawType() { doTest(); }
public void testArrayTypeNewReifiable() { doTest(); }
public void testReturnTypeApplicabilityIfCapturedWildcardInferred() { doTest(); }
public void testIDEA133935() { doTest(); }
public void testIDEA132379() { doTest(); }
public void testIDEA136581() { doTest(); }
public void testSuperSubstitutorInNormalCase() { doTest(false); }
public void testSecondSearchIfFirstParameterIsASubtypeOfReferenceTypeFromExpressionDeclaration() { doTest(); }
public void testEnsureNotResolvedMethodRefsAreNotMarkedAsExact() { doTest(); }
public void testReceiverSubstitutorForExactReferenceInMethodReferenceConstraint() { doTest(); }
public void testSkipCheckedExceptionsHandledByInterfaceMethod() { doTest(); }
public void testConstraintsFromNonRawReceiverType() { doTest(); }
public void testSubstitutionForReturnTypeConstraintsForTargetGenericMethod() { doTest(); }
public void testIDEA140586() { doTest(); }
public void testUnhandledExceptionsInQualifier() { doTest(); }
public void testRawClassTypeOnConstructorReference() { doTest(); }
public void testIncompleteCodeWithMethodReferenceOverLambdaParameter() { doTest(); }
public void testIncompleteMethodReferenceWithUncheckedWarningInspection() { doTest(); }
public void testCapturedReturnTypeOfMethodReference() { doTest(); }
public void testEnumConstantsAsContext() { doTest(); }
public void testIDEA138752() { doTest(); }
public void testIDEA136708() { doTest(); }
public void testContainingClassTypeParametersShouldNotBeInferredDuringMethodReferenceProcessing() { doTest(); }
public void testIDEA147511() { doTest(); }
public void testRawInferredTypeCheck() { doTest(); }
public void testIDEA147873() { doTest(); }
public void testIDEA148553() { doTest(); }
public void testIDEA148093() { doTest(); }
public void testIDEA148841() { doTest(); }
public void testCapturedTypesOfImplicitParameterTypes() { doTest(); }
public void testApplicabilityConflictMessage() { doTest(); }
public void testQualifierOfCapturedWildcardType() { doTest(); }
public void testCapturedWildcardInReceiverPosition() { doTest(); }
public void testGetClassReturnTypeInMethodReference() { doTest(); }
public void testCaptureTypeOfNewArrayExpression() { doTest(); }
public void testIDEA152659() { doTest(); }
@Test void testStaticWithVarargsNonStaticReferenceTypeAmbiguity() { doTest(); }
@Test void testStaticNonStaticWithVarargsReferenceTypeAmbiguity() { doTest(); }
@Test void testSuperClassPotentiallyApplicableMembers() { doTest(); }
@Test void testExactMethodReferencePertinentToApplicabilityCheck() { doTest(); }
@Test void testAmbiguityVarargs() { doTest(); }
@Test void testRawInnerClassQualifier() { doTest(); }
@Test void testIDEA122100() { doTest(); }
@Test void testIDEA122509() { doTest(); }
@Test void testIDEA122681() { doTest(); }
@Test void testIDEA112191() { doTest(); }
@Test void testIDEA122018comment() { doTest(); }
@Test void testIDEA123223() { doTest(); }
@Test void testIDEA123248() { doTest(); }
@Test void testIDEA123366() { doTest(); }
@Test void testIDEA123366comment() { doTest(); }
@Test void testFromReferenceWithTypeArgs() { doTest(); }
@Test void testRefOnStaticInterfaceMethod() { doTest(); }
@Test void testUncheckedMethodReference() { doTest(true); }
@Test void testIDEA124148() { doTest(); }
@Test void testIDEA124613() { doTest(); }
@Test void testCollectingApplicabilityConstraints() { doTest(); }
@Test void testIDEA126062() { doTest(); }
@Test void testRejectReceiverTypesForConstructorRefs() { doTest(); }
@Test void testEnumValuesMethod() { doTest(); }
@Test void testMissedApplicableMemberContainingClassSubstitution() { doTest(); }
@Test void testIDEA126969() { doTest(); }
@Test void testIDEA127506() { doTest(); }
@Test void testIDEA127275() { doTest(); }
@Test void testIDEA127275_() { doTest(); }
@Test void testUnresolvedMethodReference() { doTest(); }
@Test void testIDEA128534() { doTest(); }
@Test void testIDEA128712() { doTest(); }
@Test void testAdditionalConstraints3Level() { doTest(); }
@Test void testWildcardParametrization() { doTest(); }
@Test void testReceiverTypeSubstitution() { doTest(); }
@Test void testTypeParametersInitOrder() { doTest(); }
@Test void testIDEA132560() { doTest(); }
@Test void testEnsureThatCapturedWildcardsAreNotOpenWithoutAnyReason() { doTest(); }
@Test void testVarargsParametersCountComparison() { doTest(true); }
@Test void testPotentialCompatibilityWithInvalidShape() { doTest(true); }
@Test void testSiteSubstitutionOfNonReceiverReference() { doTest(); }
@Test void testRawReferenceTypeWithReceiver() { doTest(); }
@Test void testMethodReferenceTypeArgumentsApplicability() { doTest(); }
@Test void testTypeNameInterfaceSuperMethodReferenceApplicability() { doTest(); }
@Test void testNewParameterizedReferenceOnRawType() { doTest(); }
@Test void testArrayTypeNewReifiable() { doTest(); }
@Test void testReturnTypeApplicabilityIfCapturedWildcardInferred() { doTest(); }
@Test void testIDEA133935() { doTest(); }
@Test void testIDEA132379() { doTest(); }
@Test void testIDEA136581() { doTest(); }
@Test void testSuperSubstitutorInNormalCase() { doTest(false); }
@Test void testSecondSearchIfFirstParameterIsASubtypeOfReferenceTypeFromExpressionDeclaration() { doTest(); }
@Test void testEnsureNotResolvedMethodRefsAreNotMarkedAsExact() { doTest(); }
@Test void testReceiverSubstitutorForExactReferenceInMethodReferenceConstraint() { doTest(); }
@Test void testSkipCheckedExceptionsHandledByInterfaceMethod() { doTest(); }
@Test void testConstraintsFromNonRawReceiverType() { doTest(); }
@Test void testSubstitutionForReturnTypeConstraintsForTargetGenericMethod() { doTest(); }
@Test void testIDEA140586() { doTest(); }
@Test void testUnhandledExceptionsInQualifier() { doTest(); }
@Test void testRawClassTypeOnConstructorReference() { doTest(); }
@Test void testIncompleteCodeWithMethodReferenceOverLambdaParameter() { doTest(); }
@Test void testIncompleteMethodReferenceWithUncheckedWarningInspection() { doTest(); }
@Test void testCapturedReturnTypeOfMethodReference() { doTest(); }
@Test void testEnumConstantsAsContext() { doTest(); }
@Test void testIDEA138752() { doTest(); }
@Test void testIDEA136708() { doTest(); }
@Test void testContainingClassTypeParametersShouldNotBeInferredDuringMethodReferenceProcessing() { doTest(); }
@Test void testIDEA147511() { doTest(); }
@Test void testRawInferredTypeCheck() { doTest(); }
@Test void testIDEA147873() { doTest(); }
@Test void testIDEA148553() { doTest(); }
@Test void testIDEA148093() { doTest(); }
@Test void testIDEA148841() { doTest(); }
@Test void testCapturedTypesOfImplicitParameterTypes() { doTest(); }
@Test void testApplicabilityConflictMessage() { doTest(); }
@Test void testQualifierOfCapturedWildcardType() { doTest(); }
@Test void testCapturedWildcardInReceiverPosition() { doTest(); }
@Test void testGetClassReturnTypeInMethodReference() { doTest(); }
@Test void testCaptureTypeOfNewArrayExpression() { doTest(); }
@Test void testIDEA152659() { doTest(); }
//removing one unsound capture conversion is not enough to leave the system consistent
public void _testRegistryOptionToSkipUnsoundCaptureConversionInMethodReferenceReturnType() { doTest(); }
public void testFreshVariableLowerBoundsDuringSuperTypeChecks() { doTest(); }
public void testTypeParameterInstantiation() { doTest(); }
public void testIgnoreForeignVariables() { doTest(); }
public void testChainedCallsWithMethodReferenceInside() { doTest(); }
public void testApplicabilityErrorVisibleWhenConstraintsFromFunctionalExpressionsProvideValidSubstitutor() { doTest(); }
public void testMethodReferenceSecondSearchDontInfluenceTopSiteSubstitutor() { doTest(); }
public void testCheckReturnTypeOfMethodReferenceWhenTheRestIsGood() { doTest(); }
public void testEnsureResolveToClassInConstructorRefs() { doTest(); }
public void testReturnTypeCompatibilityConstraintForSecondSearchCase() { doTest(); }
public void testMethodInInheritorFoundBySecondSearch() { doTest(); }
public void testNonExactMethodReferenceOnRawClassType() { doTest(); }
public void testIncludeOnlyTypeParametersUsedInParameterTypesExcludeThoseUsedInReturnOnly() { doTest(); }
public void testMethodREfToContainingMethodWithGenericParam() { doTest(); }
public void testRawClassTypeOnConstructorWithVarargs() { doTest(); }
public void testIDEA175280() { doTest(); }
public void testDistinguishCapturedWildcardsByDifferentParameters() { doTest(); }
public void testConstructorRefOnClassWithRecursiveTypeParameter() { doTest(); }
public void testWildcardInCheckedCompatibilityConstraints() { doTest(); }
public void testConstructorReferenceWithVarargsParameters() { doTest(); }
public void testMethodReferenceSwallowedErrors() { doTest(); }
public void testConflictingVarargsFromFirstSearchWithNArityOfTheSecondSearch() { doTest(); }
public void testSkipInferenceForInapplicableMethodReference() { doTest(); }
public void testRegisterVariablesForNonFoundParameterizations() { doTest(); }
void _testRegistryOptionToSkipUnsoundCaptureConversionInMethodReferenceReturnType() { doTest(); }
@Test void testFreshVariableLowerBoundsDuringSuperTypeChecks() { doTest(); }
@Test void testTypeParameterInstantiation() { doTest(); }
@Test void testIgnoreForeignVariables() { doTest(); }
@Test void testChainedCallsWithMethodReferenceInside() { doTest(); }
@Test void testApplicabilityErrorVisibleWhenConstraintsFromFunctionalExpressionsProvideValidSubstitutor() { doTest(); }
@Test void testMethodReferenceSecondSearchDontInfluenceTopSiteSubstitutor() { doTest(); }
@Test void testCheckReturnTypeOfMethodReferenceWhenTheRestIsGood() { doTest(); }
@Test void testEnsureResolveToClassInConstructorRefs() { doTest(); }
@Test void testReturnTypeCompatibilityConstraintForSecondSearchCase() { doTest(); }
@Test void testMethodInInheritorFoundBySecondSearch() { doTest(); }
@Test void testNonExactMethodReferenceOnRawClassType() { doTest(); }
@Test void testIncludeOnlyTypeParametersUsedInParameterTypesExcludeThoseUsedInReturnOnly() { doTest(); }
@Test void testMethodREfToContainingMethodWithGenericParam() { doTest(); }
@Test void testRawClassTypeOnConstructorWithVarargs() { doTest(); }
@Test void testIDEA175280() { doTest(); }
@Test void testDistinguishCapturedWildcardsByDifferentParameters() { doTest(); }
@Test void testConstructorRefOnClassWithRecursiveTypeParameter() { doTest(); }
@Test void testWildcardInCheckedCompatibilityConstraints() { doTest(); }
@Test void testConstructorReferenceWithVarargsParameters() { doTest(); }
@Test void testMethodReferenceSwallowedErrors() { doTest(); }
@Test void testConflictingVarargsFromFirstSearchWithNArityOfTheSecondSearch() { doTest(); }
@Test void testSkipInferenceForInapplicableMethodReference() { doTest(); }
@Test void testRegisterVariablesForNonFoundParameterizations() { doTest(); }
public void testConstructorReferenceOnRawTypeWithInferredSubtypes() { doTest(); }
public void testPreferErrorOnTopLevelToFailedSubstitutorOnNestedLevel() { doTest(); }
public void testDontIgnoreIncompatibilitiesDuringFirstApplicabilityCheck() { doTest(); }
public void testCaptureOnDedicatedParameterOfSecondSearch() { doTest(); }
public void testVoidConflict() { doTest(); }
public void testCreateMethodFromMethodRefApplicability() { doTest(); }
public void testErrorMessageOnTopCallWhenFunctionalInterfaceIsNotInferred() { doTest(); }
public void testReferencesToPolymorphicMethod() { doTest(); }
public void testTypeArgumentsOnFirstSearchAccessibleMethod() { doTest(); }
public void testIDEA250434() { doTest(); }
@Test void testConstructorReferenceOnRawTypeWithInferredSubtypes() { doTest(); }
@Test void testPreferErrorOnTopLevelToFailedSubstitutorOnNestedLevel() { doTest(); }
@Test void testDontIgnoreIncompatibilitiesDuringFirstApplicabilityCheck() { doTest(); }
@Test void testCaptureOnDedicatedParameterOfSecondSearch() { doTest(); }
@Test void testVoidConflict() { doTest(); }
@Test void testCreateMethodFromMethodRefApplicability() { doTest(); }
@Test void testErrorMessageOnTopCallWhenFunctionalInterfaceIsNotInferred() { doTest(); }
@Test void testReferencesToPolymorphicMethod() { doTest(); }
@Test void testTypeArgumentsOnFirstSearchAccessibleMethod() { doTest(); }
@Test void testIDEA250434() { doTest(); }
private void doTest() {
doTest(false);
}
private void doTest(boolean warnings) {
IdeaTestUtil.setTestVersion(JavaSdkVersion.JDK_1_8, getModule(), getTestRootDisposable());
doTest(BASE_PATH + getTestName(false) + ".java", warnings, false);
getFixture().testHighlighting(warnings, false, false, getTestName(false) + ".java");
}
}
@@ -1,17 +1,22 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.java.codeInsight.daemon.lambda;
import com.intellij.codeInsight.daemon.LightDaemonAnalyzerTestCase;
import com.intellij.openapi.projectRoots.JavaSdkVersion;
import com.intellij.testFramework.IdeaTestUtil;
import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase5;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.Test;
public class UncheckedWarningInferenceTest extends LightDaemonAnalyzerTestCase {
private static final String BASE_PATH = "/codeInsight/daemonCodeAnalyzer/lambda/unchecked/";
class UncheckedWarningInferenceTest extends LightJavaCodeInsightFixtureTestCase5 {
public void testDontTreatAsUncheckedIfRawWasAssignedInRawParameter() { doTest(); }
@NotNull
@Override
protected String getRelativePath() {
return super.getRelativePath() + "/codeInsight/daemonCodeAnalyzer/lambda/unchecked/";
}
@Test
void testDontTreatAsUncheckedIfRawWasAssignedInRawParameter() { doTest(); }
private void doTest() {
IdeaTestUtil.setTestVersion(JavaSdkVersion.JDK_1_8, getModule(), getTestRootDisposable());
doTest(BASE_PATH + getTestName(false) + ".java", false, false);
getFixture().testHighlighting(getTestName(false) + ".java");
}
}
@@ -21,7 +21,8 @@ import org.jetbrains.annotations.NotNull;
import java.io.File;
/**
* @see LightJavaCodeInsightFixtureTestCase4 for JUnit4 variant
* @see LightJavaCodeInsightFixtureTestCase4
* @see LightJavaCodeInsightFixtureTestCase5
* @author peter
*/
@TestDataPath("$CONTENT_ROOT/testData")
@@ -86,6 +87,8 @@ public abstract class LightJavaCodeInsightFixtureTestCase extends UsefulTestCase
return IdeaTestUtil.getMockJdk17();
}
};
public static final @NotNull LightProjectDescriptor JAVA_LATEST_WITH_LATEST_JDK = new ProjectDescriptor(LanguageLevel.HIGHEST);
protected JavaCodeInsightTestFixture myFixture;
@@ -0,0 +1,52 @@
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.testFramework.fixtures
import com.intellij.JavaTestUtil
import com.intellij.testFramework.LightProjectDescriptor
import com.intellij.testFramework.PlatformTestUtil
import com.intellij.testFramework.TestDataPath
import com.intellij.testFramework.junit5.EdtInterceptor
import com.intellij.testFramework.rules.TestNameExtension
import org.junit.jupiter.api.extension.AfterEachCallback
import org.junit.jupiter.api.extension.BeforeEachCallback
import org.junit.jupiter.api.extension.ExtensionContext
import org.junit.jupiter.api.extension.RegisterExtension
@TestDataPath("\$CONTENT_ROOT/testData")
abstract class LightJavaCodeInsightFixtureTestCase5 (projectDescriptor: LightProjectDescriptor? = null) {
protected open fun getRelativePath() : String = JavaTestUtil.getRelativeJavaTestDataPath()
protected open fun getTestDataPath() : String? = null
@RegisterExtension
private val testNameRule = TestNameExtension()
protected fun getTestName(lowercaseFirstLetter: Boolean): String {
return PlatformTestUtil.getTestName(testNameRule.methodName, lowercaseFirstLetter)
}
@RegisterExtension
private val testCase = object : LightJavaCodeInsightFixtureTestCase(), BeforeEachCallback, AfterEachCallback {
override fun getProjectDescriptor(): LightProjectDescriptor = projectDescriptor ?: JAVA_LATEST_WITH_LATEST_JDK
override fun getTestDataPath(): String = this@LightJavaCodeInsightFixtureTestCase5.getTestDataPath() ?: super.getTestDataPath()
override fun getBasePath(): String = this@LightJavaCodeInsightFixtureTestCase5.getRelativePath()
override fun beforeEach(context: ExtensionContext?) {
setUp()
}
override fun afterEach(context: ExtensionContext?) {
tearDown()
}
val fixture: JavaCodeInsightTestFixture get() = myFixture
}
protected val fixture: JavaCodeInsightTestFixture get() = testCase.fixture
@RegisterExtension
private val runInEdtRule = EdtInterceptor(true)
}
@@ -2,32 +2,53 @@
package com.intellij.testFramework.junit5;
import com.intellij.testFramework.EdtTestUtil;
import com.intellij.testFramework.RunsInEdt;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.InvocationInterceptor;
import org.junit.jupiter.api.extension.ReflectiveInvocationContext;
import org.junit.platform.commons.support.AnnotationSupport;
import java.lang.reflect.Method;
public class EdtInterceptor implements InvocationInterceptor {
private final boolean myAnnotationDependant;
public EdtInterceptor() {
this(false);
}
public EdtInterceptor(boolean annotationDependant) {
myAnnotationDependant = annotationDependant;
}
private void doRun(Invocation<Void> invocation, ExtensionContext extensionContext) throws Throwable {
if (myAnnotationDependant &&
AnnotationSupport.findAnnotation(extensionContext.getTestClass(), RunsInEdt.class).isEmpty() &&
AnnotationSupport.findAnnotation(extensionContext.getTestMethod(), RunsInEdt.class).isEmpty()) {
invocation.proceed();
return;
}
EdtTestUtil.runInEdtAndWait(() -> invocation.proceed());
}
@Override
public void interceptTestMethod(Invocation<Void> invocation,
ReflectiveInvocationContext<Method> invocationContext,
ExtensionContext extensionContext) throws Throwable {
EdtTestUtil.runInEdtAndWait(() -> invocation.proceed());
doRun(invocation, extensionContext);
}
@Override
public void interceptBeforeEachMethod(Invocation<Void> invocation,
ReflectiveInvocationContext<Method> invocationContext,
ExtensionContext extensionContext) throws Throwable {
EdtTestUtil.runInEdtAndWait(() -> invocation.proceed());
doRun(invocation, extensionContext);
}
@Override
public void interceptAfterEachMethod(Invocation<Void> invocation,
ReflectiveInvocationContext<Method> invocationContext,
ExtensionContext extensionContext) throws Throwable {
EdtTestUtil.runInEdtAndWait(() -> invocation.proceed());
doRun(invocation, extensionContext);
}
}