@Override
    public boolean checkTypes(@NotNull PsiReferenceExpression expression, @NotNull PsiType leftType, @NotNull PsiType rightType) {
      TypeMismatch mismatch = InconvertibleTypesChecker.checkTypes(leftType, rightType, getMutualSubclassMode());
      if (mismatch != null) {
        registerError(Objects.requireNonNull(expression.getReferenceNameElement()), mismatch);
        return true;
      }
      return false;
    }
@Override
    public boolean checkTypes(@NotNull PsiReferenceExpression expression, @NotNull PsiType leftType, @NotNull PsiType rightType)