@Override
    public @Nullable Boolean weigh(@NotNull LookupElement element) {
      PsiClass psiClass = ObjectUtils.tryCast(element.getObject(), PsiClass.class);
      if (psiClass == null) return true;
      PsiClassType type = JavaPsiFacade.getElementFactory(psiClass.getProject()).createType(psiClass);
      return psiClass.isInterface() || psiClass.hasModifierProperty(PsiModifier.ABSTRACT) ||
             !myOrigType.isAssignableFrom(type);
    }
@Override
    public @Nullable Boolean weigh(@NotNull LookupElement element)