mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java] junit 5 tests for fixture based highlighting tests
GitOrigin-RevId: a337b1d17a69bffb4df25f5e7c79bda973c5b4a2
This commit is contained in:
committed by
intellij-monorepo-bot
parent
13c276c37b
commit
0567932ab5
+4
-4
@@ -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 {
|
||||
|
||||
+65
-49
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
+149
-154
@@ -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");
|
||||
}
|
||||
}
|
||||
+162
-167
@@ -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");
|
||||
}
|
||||
}
|
||||
+14
-9
@@ -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");
|
||||
}
|
||||
}
|
||||
+4
-1
@@ -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;
|
||||
|
||||
|
||||
+52
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user