• ZyX's avatar
    eval/typval: Add missing includes, also add a script to find them · a32db8ed
    ZyX authored
    Contains unfinished attempt to integrate IWYU (ref #549). To finish it different
    job should be done, specifically:
    - Instead of feeding IWYU with modified file a mirror source tree should be
      created with the help of CMake which will contain modified sources. This
      solves the problem with IWYU thinking that `*.generated.h` headers should be
      included in place of `*` headers.
    - Build IWYU as all other third-party utilities.
    - Make modified sources avoid problems with `nvim/func_attr.h` includes and
      various related tricks.
    Current script may only be used for manual checks like this:
        ./scripts/check-includes.py \
            --generated-includes-dir build/include \
            --generated-includes-dir build/src/nvim/auto \
            --file src/nvim/eval/typval.c \
            -- -Isrc -Ibuild/include -Ibuild/src/nvim/auto \
    (it is also somewhat fine with `--file src/nvim/eval/typval.h`). I have no idea
    why (I mean, why developer think that these lines are needed, why they are
    suggested is pretty obvious: because there is typedef which mentions them before
    structs are defined), but for typval.h it reports, among other things, that it
    should add lines
        struct dictvar_S;
        struct listitem_S;
        struct listvar_S;
        struct listwatch_S;
check-includes.py 1.75 KB