disable redundant cast checks in var context (IDEA-188833)

This commit is contained in:
Anna.Kozlova
2018-03-26 14:06:46 +02:00
parent ba496d0239
commit 65dc553bea
3 changed files with 21 additions and 2 deletions

View File

@@ -849,6 +849,9 @@ public class RedundantCastUtil {
}
}
}
else if (parent instanceof PsiLocalVariable) {
return ((PsiLocalVariable)parent).getTypeElement().isInferredType();
}
return false;
}

View File

@@ -0,0 +1,5 @@
class Main {
void m() {
var r = (Runnable) this::m;
}
}

View File

@@ -4,6 +4,7 @@ package com.intellij.java.codeInsight.daemon;
import com.intellij.codeInsight.daemon.LightDaemonAnalyzerTestCase;
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction;
import com.intellij.codeInspection.AnonymousCanBeLambdaInspection;
import com.intellij.codeInspection.redundantCast.RedundantCastInspection;
import com.intellij.openapi.projectRoots.JavaSdkVersion;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.pom.java.LanguageLevel;
@@ -23,18 +24,28 @@ public class LightAdvLVTIHighlightingTest extends LightDaemonAnalyzerTestCase {
}
private void doTest() {
doTest(BASE_PATH + "/" + getTestName(false) + ".java", false, false);
doTest(false);
}
private void doTest(final boolean checkWarnings) {
doTest(BASE_PATH + "/" + getTestName(false) + ".java", checkWarnings, false);
}
public void testSimpleAvailability() { doTest(); }
public void testDisabledInspections() {
enableInspectionTool(new AnonymousCanBeLambdaInspection());
doTest(BASE_PATH + "/" + getTestName(false) + ".java", true, false);
doTest(true);
}
public void testKeepSemanticCastForVars() {
enableInspectionTool(new RedundantCastInspection());
doTest(true);
}
public void testVarClassNameConflicts() { doTest(); }
public void testStandaloneInVarContext() { doTest(); }
public void testUpwardProjection() { doTest(); }
public void testVarInLambdaParameters() {