docs: private void resolveTypesUsingImports(Expression expression) {
      if (expression instanceof NodeWithType) {
        NodeWithType<?, ?> nodeWithType = ((NodeWithType<?, ?>) expression);
        nodeWithType.setType(getQualifiedName(nodeWithType.getType()));
      }
  
      // Recurse downward in the expression
      expression
          .getChildNodes()
          .stream()
          .filter(Expression.class::isInstance)
          .map(Expression.class::cast)
          .forEach(this::resolveTypesUsingImports);
    }