Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-12726

All headers should be independently compilable

    • Type: Icon: Technical Debt Technical Debt
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Build
    • Storage Engines
    • StorEng - Refinement Pipeline

      Right now a lot of headers do not compile on their own and instead assume that they are being included in a context with several things already declared, and several headers already included. As a recent example, btree_cmp_inline.h uses WT_INLINE, and WT_ITEM just in the first function signature, but doesn't include anything to make them available. This works when building because the actual .c files are careful about where it is included, but it is really annoying when using intelligent editors, such as vscode or neovim using clangd. You get red squiggles everywhere, and things like hover to see types and GoToDefinition don't work.

        1. includes-forward-deps.png
          438 kB
          Yury Ershov
        2. Screenshot 2024-03-26 at 15.36.41.png
          60 kB
          Mathias Stearn

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            mathias@mongodb.com Mathias Stearn
            Votes:
            0 Vote for this issue
            Watchers:
            14 Start watching this issue

              Created:
              Updated: