diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/suspiciousNameCombination/SuspiciousNameCombinationInspectionBase.java b/java/java-analysis-impl/src/com/intellij/codeInspection/suspiciousNameCombination/SuspiciousNameCombinationInspectionBase.java index 72b71c0260b3..99ec22082f58 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/suspiciousNameCombination/SuspiciousNameCombinationInspectionBase.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/suspiciousNameCombination/SuspiciousNameCombinationInspectionBase.java @@ -156,10 +156,10 @@ public class SuspiciousNameCombinationInspectionBase extends BaseJavaBatchLocalI @Override public void visitReturnStatement(final PsiReturnStatement statement) { final PsiExpression returnValue = statement.getReturnValue(); - PsiMethod containingMethod = PsiTreeUtil.getParentOfType(returnValue, PsiMethod.class); - if (returnValue instanceof PsiReferenceExpression && containingMethod != null) { + PsiElement containingMethod = PsiTreeUtil.getParentOfType(returnValue, PsiMethod.class, PsiLambdaExpression.class); + if (returnValue instanceof PsiReferenceExpression && containingMethod instanceof PsiMethod) { final String refName = ((PsiReferenceExpression)returnValue).getReferenceName(); - checkCombination(returnValue, containingMethod.getName(), refName, "suspicious.name.return"); + checkCombination(returnValue, ((PsiMethod)containingMethod).getName(), refName, "suspicious.name.return"); } } diff --git a/java/java-tests/testData/inspection/suspiciousNameCombination/returnValue/src/ReturnValue.java b/java/java-tests/testData/inspection/suspiciousNameCombination/returnValue/src/ReturnValue.java index 663d192a6dc0..22c540ea3b5b 100644 --- a/java/java-tests/testData/inspection/suspiciousNameCombination/returnValue/src/ReturnValue.java +++ b/java/java-tests/testData/inspection/suspiciousNameCombination/returnValue/src/ReturnValue.java @@ -3,4 +3,16 @@ public class ReturnValue { int y=0; return y; } + + interface I { + int m(); + } + + public int getY() { + I i = () -> { + int x = 0; + return x; + } + return i.m(); + } } \ No newline at end of file