src/mongo/db/exec/sbe/values/path_request.h is not including used headers

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Query Execution
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      When using clang-query, the header is considered in isolation and the following errors are reported:

      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:43:5: error: use of undeclared identifier 'std'
         43 |     std::string field;
            |     ^
      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:62:19: error: use of undeclared identifier 'std'
         62 | using Component = std::variant<Get, Traverse, Id>;
            |                   ^
      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:63:14: error: use of undeclared identifier 'std'
         63 | using Path = std::vector<Component>;
            |              ^
      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:63:26: error: use of undeclared identifier 'Component'
         63 | using Path = std::vector<Component>;
            |                          ^
      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:69:36: error: unknown type name 'Path'
         69 |     PathRequest(PathRequestType t, Path p) : type(t), path(std::move(p)) {}
            |                                    ^
      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:74:5: error: unknown type name 'Path'
         74 |     Path path;
            |     ^
      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:79:5: error: use of undeclared identifier 'std'
         79 |     std::string toString() const;
            |     ^
      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:81:5: error: unknown type name 'StringData'
         81 |     StringData getTopLevelField() const;
            |     ^
      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:83:5: error: use of undeclared identifier 'std'
         83 |     std::string getFullPath() const;
            |     ^
      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:69:60: error: use of undeclared identifier 'std'
         69 |     PathRequest(PathRequestType t, Path p) : type(t), path(std::move(p)) {}
            |                                                            ^
      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:86:1: error: use of undeclared identifier 'std'
         86 | std::string pathToString(const Path& p);
            | ^
      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:86:32: error: unknown type name 'Path'
         86 | std::string pathToString(const Path& p);
            |                                ^
      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:87:1: error: use of undeclared identifier 'std'
         87 | std::ostream& operator<<(std::ostream& os, const Path& path);
            | ^
      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:87:26: error: use of undeclared identifier 'std'
         87 | std::ostream& operator<<(std::ostream& os, const Path& path);
            |                          ^
      /workspaces/mongo/src/mongo/db/exec/sbe/values/path_request.h:87:50: error: unknown type name 'Path'
         87 | std::ostream& operator<<(std::ostream& os, const Path& path);
            |                                                  ^

      This can be fixed by adding the missing headers.

      In server code, the header is always included after others, so it's just coincidence this is not a compilation error.

            Assignee:
            Unassigned
            Reporter:
            Niels Lohmann
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: