@Override
  public @NotNull PsiElement getNavigationElement() {
    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;
  }
@Override
  public @NotNull PsiElement getNavigationElement()