diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaUtil.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaUtil.java index ddf626ed6d30..e37d308cecef 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaUtil.java @@ -39,7 +39,6 @@ import java.util.concurrent.atomic.AtomicBoolean; * @author Gregory.Shrago */ public class DfaUtil { - @Nullable("null means DFA analysis has failed (too complex to analyze)") public static Collection getCachedVariableValues(@Nullable final PsiVariable variable, @Nullable final PsiElement context) { if (variable == null || context == null) return Collections.emptyList(); @@ -53,7 +52,7 @@ public class DfaUtil { ValuableInstructionVisitor.PlaceResult placeResult = value.get(context); final Collection> concatenations = placeResult == null ? null : placeResult.myValues.get(variable); if (concatenations != null) { - return ContainerUtil.map(concatenations, expressions -> concatenateExpressions(expressions)); + return ContainerUtil.map(concatenations, DfaUtil::concatenateExpressions); } return Collections.emptyList(); } @@ -83,23 +82,23 @@ public class DfaUtil { } @NotNull - public static Collection getPossibleInitializationElements(final PsiElement qualifierExpression) { + public static Collection getPossibleInitializationElements(@NotNull PsiElement qualifierExpression) { if (qualifierExpression instanceof PsiMethodCallExpression) { - return Collections.singletonList(qualifierExpression); + return Collections.singletonList((PsiMethodCallExpression)qualifierExpression); } if (qualifierExpression instanceof PsiReferenceExpression) { final PsiElement targetElement = ((PsiReferenceExpression)qualifierExpression).resolve(); if (!(targetElement instanceof PsiVariable)) { return Collections.emptyList(); } - final Collection variableValues = getCachedVariableValues((PsiVariable)targetElement, qualifierExpression); + Collection variableValues = getCachedVariableValues((PsiVariable)targetElement, qualifierExpression); if (variableValues == null || variableValues.isEmpty()) { return DfaPsiUtil.getVariableAssignmentsInFile((PsiVariable)targetElement, false, qualifierExpression); } return variableValues; } if (qualifierExpression instanceof PsiLiteralExpression) { - return Collections.singletonList(qualifierExpression); + return Collections.singletonList((PsiLiteralExpression)qualifierExpression); } return Collections.emptyList(); } @@ -180,10 +179,7 @@ public class DfaUtil { public DfaInstructionState[] visitPush(PushInstruction instruction, DataFlowRunner runner, DfaMemoryState memState) { PsiExpression place = instruction.getPlace(); if (place != null) { - PlaceResult result = myResults.get(place); - if (result == null) { - myResults.put(place, result = new PlaceResult()); - } + PlaceResult result = myResults.computeIfAbsent(place, __ -> new PlaceResult()); final Map map = ((ValuableDataFlowRunner.MyDfaMemoryState)memState).getVariableStates(); for (Map.Entry entry : map.entrySet()) { ValuableDataFlowRunner.ValuableDfaVariableState state = (ValuableDataFlowRunner.ValuableDfaVariableState)entry.getValue(); diff --git a/platform/lang-impl/src/com/intellij/slicer/SliceUsage.java b/platform/lang-impl/src/com/intellij/slicer/SliceUsage.java index 0b1a3a7a1b66..3caab61fbd32 100644 --- a/platform/lang-impl/src/com/intellij/slicer/SliceUsage.java +++ b/platform/lang-impl/src/com/intellij/slicer/SliceUsage.java @@ -35,8 +35,7 @@ public abstract class SliceUsage extends UsageInfo2UsageAdapter { private final SliceUsage myParent; public final SliceAnalysisParams params; - public SliceUsage(@NotNull PsiElement element, - @NotNull SliceUsage parent) { + public SliceUsage(@NotNull PsiElement element, @NotNull SliceUsage parent) { super(new UsageInfo(element)); myParent = parent; params = parent.params; @@ -51,12 +50,7 @@ public abstract class SliceUsage extends UsageInfo2UsageAdapter { } public void processChildren(@NotNull Processor processor) { - final PsiElement element = ApplicationManager.getApplication().runReadAction(new Computable() { - @Override - public PsiElement compute() { - return getElement(); - } - }); + final PsiElement element = ApplicationManager.getApplication().runReadAction((Computable)this::getElement); ProgressIndicator indicator = ProgressManager.getInstance().getProgressIndicator(); indicator.checkCanceled(); @@ -97,5 +91,5 @@ public abstract class SliceUsage extends UsageInfo2UsageAdapter { } @NotNull - protected abstract SliceUsage copy(); + protected abstract SliceUsage copy(); }