@NotNull
  @Override
  public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly) {
    return new JavaElementVisitor() {
      @Override
      public void visitMethodCallExpression(@NotNull PsiMethodCallExpression expression) {
        super.visitMethodCallExpression(expression);

        final String referenceName = expression.getMethodExpression().getReferenceName();
        if (referenceName != null && MEMBER_METHOD_NAMES.contains(referenceName)) {
          final PsiMethod method = expression.resolveMethod();
          if (method != null) {
            final PsiClass containingClass = method.getContainingClass();
            if (containingClass != null && JAVA_LANG_CLASS.equals(containingClass.getQualifiedName())) {
              switch (referenceName) {
                case GET_FIELD -> checkField(expression, false, holder);
                case GET_DECLARED_FIELD -> checkField(expression, true, holder);
                case GET_METHOD -> checkMethod(expression, false, holder);
                case GET_DECLARED_METHOD -> checkMethod(expression, true, holder);
                case GET_CONSTRUCTOR -> checkConstructor(expression, false, holder);
                case GET_DECLARED_CONSTRUCTOR -> checkConstructor(expression, true, holder);
              }
            }
          }
        }
      }
    };
  }
@NotNull
  @Override
  public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder holder, boolean isOnTheFly)