mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
[java-inspections] IDEA-375458 Remove false-positives when cast or stream mapping is added to explicitly change nullability
Merge-request: IJ-MR-174003 Merged-by: Bartek Pacia <bartek.pacia@jetbrains.com> GitOrigin-RevId: 11262e4d6da8be5a8ebd664c4415d8b812f12b6e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
29d3066a8a
commit
877652b6fb
+13
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInspection;
|
||||
|
||||
import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInsight.intention.HighPriorityAction;
|
||||
import com.intellij.codeInspection.options.OptPane;
|
||||
import com.intellij.codeInspection.util.OptionalUtil;
|
||||
@@ -353,6 +354,18 @@ public final class RedundantStreamOptionalCallInspection extends AbstractBaseJav
|
||||
return true;
|
||||
}
|
||||
if (expression instanceof PsiLambdaExpression lambda) {
|
||||
PsiType functionalInterfaceType = lambda.getFunctionalInterfaceType();
|
||||
if (functionalInterfaceType != null && lambda.getParameterList().getParametersCount() == 1) {
|
||||
PsiType functionalInterfaceReturnType = LambdaUtil.getFunctionalInterfaceReturnType(functionalInterfaceType);
|
||||
PsiType parameterType = lambda.getParameterList().getParameters()[0].getType();
|
||||
if (functionalInterfaceReturnType != null) {
|
||||
Nullability returnTypeNullability = functionalInterfaceReturnType.getNullability().nullability();
|
||||
Nullability parameterNullability = parameterType.getNullability().nullability();
|
||||
if (!returnTypeNullability.equals(Nullability.UNKNOWN) && !returnTypeNullability.equals(parameterNullability)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (LambdaUtil.isIdentityLambda(lambda)) return true;
|
||||
if (!allowBoxUnbox) return false;
|
||||
PsiExpression body = LambdaUtil.extractSingleExpressionFromBody(lambda.getBody());
|
||||
|
||||
Reference in New Issue
Block a user