PsiParameter (PsiMethod called, int paramIdx, PsiMethod caller) { //do not change hierarchy if (caller.findDeepestSuperMethods().length > 0) { return null; } //find first method call final Ref<PsiParameter> ref = new Ref<>(); ReferencesSearch.search(called, new LocalSearchScope(caller)).forEach(reference -> { final PsiElement element = reference.getElement(); if (element instanceof PsiJavaCodeReferenceElement) { final PsiElement elementParent = element.getParent(); if (elementParent instanceof PsiCallExpression) { ref.set(isTheOnlyOneParameterUsage(elementParent, paramIdx, called)); return false; } } return true; }); return ref.get(); }