PsiType (PsiMethodReferenceExpression ref) { PsiType functionalInterfaceType = ref.getFunctionalInterfaceType(); if (functionalInterfaceType != null) return functionalInterfaceType; Ref<PsiType> type = new Ref<>(); if (LambdaUtil.processParentOverloads(ref, (fType) -> type.set(fType))) { return type.get(); } return null; }