void (@NotNull PsiLocalVariable variable) { PsiExpression expression = variable.getInitializer(); PsiMethodCallExpression getCall = extractMapMethodCall(expression, "get"); if (getCall == null) return; List<PsiReferenceExpression> references = VariableAccessUtils .getVariableReferences(variable, PsiTreeUtil.getParentOfType(variable, PsiCodeBlock.class)); if (references.isEmpty()) return; PsiMethodCallExpression commonPutCall = findPutMethodParent(references.get(0).getElement()); if (commonPutCall == null || !isCommonPutCallForAllReferences(references, commonPutCall)) return; PsiExpression getCallQualifierExpression = getCall.getMethodExpression().getQualifierExpression(); PsiExpression putCallQualifierExpression = commonPutCall.getMethodExpression().getQualifierExpression(); EquivalenceChecker equivalenceChecker = getCanonicalPsiEquivalence(); if (! equivalenceChecker.expressionsAreEquivalent(getCallQualifierExpression, putCallQualifierExpression)) return; PsiStatement variableDeclarationStatement = PsiTreeUtil.getParentOfType(variable, PsiDeclarationStatement.class); PsiElement nextSibling = PsiTreeUtil.skipWhitespacesAndCommentsForward(variableDeclarationStatement); if (! (nextSibling instanceof PsiStatement)) return; PsiExpressionStatement putCallStatement = ObjectUtils.tryCast(commonPutCall.getParent(), PsiExpressionStatement.class); if (nextSibling != putCallStatement) return; PsiExpression[] getArgs = getCall.getArgumentList().getExpressions(); PsiExpression[] putArgs = commonPutCall.getArgumentList().getExpressions(); if (getArgs.length != 1 || putArgs.length != 2 || ! equivalenceChecker.expressionsAreEquivalent(getArgs[0], putArgs[0])) return; PsiExpression value = putArgs[1]; if (LambdaGenerationUtil.canBeUncheckedLambda(value)) { GetPutToComputeFix fix = new GetPutToComputeFix(variable); holder.registerProblem(commonPutCall, QuickFixBundle.message("java.8.map.api.inspection.description", "compute"), fix); } }