PsiElement () { PsiParameterList list = ObjectUtils.tryCast(getParent(), PsiParameterList.class); if (list != null) { PsiMethod clsMethod = ObjectUtils.tryCast(list.getParent(), PsiMethod.class); if (clsMethod != null) { int index = ArrayUtil.indexOf(list.getParameters(), this); if (index >= 0) { PsiMethod psiMethod = ObjectUtils.tryCast(clsMethod.getNavigationElement(), PsiMethod.class); if (psiMethod != null && psiMethod != clsMethod) { PsiParameter[] psiParameters = psiMethod.getParameterList().getParameters(); if (psiParameters.length > index) { return psiParameters[index]; } } } } } return this; }