@Override
      public @Nullable PsiJavaCodeReferenceElement retrieveReference() {
        PsiJavaCodeReferenceElement result = myCache.get();
        if (result == null) {
          PsiType type = calcTypeByParent();
          if (type instanceof PsiClassReferenceType) {
            result = findReferenceByIndex((PsiClassReferenceType)type);
          }
          myCache = new WeakReference<>(result);
        }
        return result;
      }
@Override
      public @Nullable PsiJavaCodeReferenceElement retrieveReference()