Nullability (PsiFunctionalExpression function, int index) { Nullability nullability = inferLambdaParameterNullability(function, index); if(nullability != Nullability.UNKNOWN) { return nullability; } PsiClassType type = ObjectUtils.tryCast(LambdaUtil.getFunctionalInterfaceType(function, true), PsiClassType.class); PsiMethod sam = LambdaUtil.getFunctionalInterfaceMethod(type); if (sam != null) { PsiParameter parameter = sam.getParameterList().getParameter(index); if (parameter != null) { nullability = getElementNullability(null, parameter); if (nullability != Nullability.UNKNOWN) { return nullability; } PsiType parameterType = type.resolveGenerics().getSubstitutor().substitute(parameter.getType()); return getTypeNullability(GenericsUtil.eliminateWildcards(parameterType, false, true)); } } return Nullability.UNKNOWN; }