[gjs: 8/10] maint: Fix IWYU includes in files that previously failed




commit 02cdfa5b754f00c860b56bf0571caec5a094492c
Author: Philip Chimento <philip chimento gmail com>
Date:   Sat Jul 23 09:49:41 2022 -0700

    maint: Fix IWYU includes in files that previously failed
    
    Due to the bug fixed by the previous commit, many files' includes had
    gotten out of sync. This fixes all of the IWYU complaints.
    
    We need to add some lines to the mapping file, either due to an IWYU
    upgrade or changes in the header files; I'm not sure. It's annoying that
    we have to list all the glib/*.h files separately, but that is for two
    reasons: there is no glob for glib/* that can leave out <glib/gstdio.h>
    and other public GLib headers; and glib/galloca.h should redirect to the
    system alloca.h.

 gi/arg-cache.cpp           |  2 ++
 gi/arg.cpp                 |  1 +
 gi/boxed.cpp               |  3 ++-
 gi/enumeration.cpp         |  1 +
 gi/function.cpp            |  1 +
 gi/fundamental.cpp         |  1 +
 gi/gerror.cpp              |  1 +
 gi/gtype.cpp               |  1 +
 gi/interface.cpp           |  1 +
 gi/object.cpp              |  2 ++
 gi/param.cpp               |  1 +
 gi/private.cpp             |  1 +
 gi/repo.cpp                |  1 +
 gi/union.cpp               |  1 +
 gi/value.cpp               |  1 +
 gjs/byteArray.cpp          |  1 +
 gjs/global.cpp             |  1 +
 gjs/importer.cpp           |  1 +
 gjs/jsapi-util.cpp         |  1 +
 gjs/module.cpp             |  1 +
 gjs/objectbox.cpp          |  2 ++
 modules/console.cpp        |  1 +
 modules/print.cpp          |  1 +
 modules/system.cpp         |  1 +
 tools/gjs-private-iwyu.imp | 38 ++++++++++++++++++++++++++++++++++++++
 tools/process_iwyu.py      | 10 ++++++++++
 util/log.cpp               |  1 +
 27 files changed, 77 insertions(+), 1 deletion(-)
---
diff --git a/gi/arg-cache.cpp b/gi/arg-cache.cpp
index 707f2978f..7c2694685 100644
--- a/gi/arg-cache.cpp
+++ b/gi/arg-cache.cpp
@@ -48,7 +48,9 @@
 #include "gi/value.h"
 #include "gi/wrapperutils.h"  // for GjsTypecheckNoThrow
 #include "gjs/byteArray.h"
+#include "gjs/enum-utils.h"  // for operator&, operator|=, operator|
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "util/log.h"
 
 enum ExpectedType {
diff --git a/gi/arg.cpp b/gi/arg.cpp
index f8c7ccc9f..b70f20044 100644
--- a/gi/arg.cpp
+++ b/gi/arg.cpp
@@ -51,6 +51,7 @@
 #include "gjs/byteArray.h"
 #include "gjs/context-private.h"
 #include "gjs/enum-utils.h"
+#include "gjs/macros.h"
 #include "gjs/jsapi-util.h"
 #include "util/log.h"
 #include "util/misc.h"
diff --git a/gi/boxed.cpp b/gi/boxed.cpp
index bc005a540..ea146a912 100644
--- a/gi/boxed.cpp
+++ b/gi/boxed.cpp
@@ -28,7 +28,6 @@
 #include <jsapi.h>  // for IdVector
 #include <mozilla/HashTable.h>
 
-#include "gi/arg-cache.h"
 #include "gi/arg-inl.h"
 #include "gi/arg.h"
 #include "gi/boxed.h"
@@ -39,6 +38,8 @@
 #include "gjs/atoms.h"
 #include "gjs/context-private.h"
 #include "gjs/jsapi-class.h"
+#include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "gjs/mem-private.h"
 #include "util/log.h"
 
diff --git a/gi/enumeration.cpp b/gi/enumeration.cpp
index 117bfc3ec..62090ce4a 100644
--- a/gi/enumeration.cpp
+++ b/gi/enumeration.cpp
@@ -16,6 +16,7 @@
 #include "gi/enumeration.h"
 #include "gi/wrapperutils.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "util/log.h"
 
 GJS_JSAPI_RETURN_CONVENTION
diff --git a/gi/function.cpp b/gi/function.cpp
index ef8857294..abb8b2c82 100644
--- a/gi/function.cpp
+++ b/gi/function.cpp
@@ -48,6 +48,7 @@
 #include "gjs/context.h"
 #include "gjs/global.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "gjs/mem-private.h"
 #include "gjs/profiler-private.h"
 #include "util/log.h"
diff --git a/gi/fundamental.cpp b/gi/fundamental.cpp
index 956b7303c..dcaf3914d 100644
--- a/gi/fundamental.cpp
+++ b/gi/fundamental.cpp
@@ -28,6 +28,7 @@
 #include "gjs/atoms.h"
 #include "gjs/context-private.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "gjs/mem-private.h"
 #include "util/log.h"
 
diff --git a/gi/gerror.cpp b/gi/gerror.cpp
index 06ea26354..5aba318f8 100644
--- a/gi/gerror.cpp
+++ b/gi/gerror.cpp
@@ -33,6 +33,7 @@
 #include "gjs/context-private.h"
 #include "gjs/error-types.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "gjs/mem-private.h"
 #include "util/log.h"
 
diff --git a/gi/gtype.cpp b/gi/gtype.cpp
index d6589250d..7e4c39f7e 100644
--- a/gi/gtype.cpp
+++ b/gi/gtype.cpp
@@ -26,6 +26,7 @@
 #include "gjs/context-private.h"
 #include "gjs/global.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "util/log.h"
 
 /*
diff --git a/gi/interface.cpp b/gi/interface.cpp
index dc6c018dc..9d0f14f70 100644
--- a/gi/interface.cpp
+++ b/gi/interface.cpp
@@ -19,6 +19,7 @@
 #include "gi/repo.h"
 #include "gjs/atoms.h"
 #include "gjs/context-private.h"
+#include "gjs/jsapi-util.h"
 #include "gjs/mem-private.h"
 
 InterfacePrototype::InterfacePrototype(GIInterfaceInfo* info, GType gtype)
diff --git a/gi/object.cpp b/gi/object.cpp
index 6c85631c9..aa961d60b 100644
--- a/gi/object.cpp
+++ b/gi/object.cpp
@@ -61,8 +61,10 @@
 #include "gjs/context.h"
 #include "gjs/deprecation.h"
 #include "gjs/jsapi-class.h"
+#include "gjs/jsapi-util.h"
 #include "gjs/jsapi-util-args.h"
 #include "gjs/jsapi-util-root.h"
+#include "gjs/macros.h"
 #include "gjs/mem-private.h"
 #include "gjs/profiler-private.h"
 #include "util/log.h"
diff --git a/gi/param.cpp b/gi/param.cpp
index 7a3f88174..7ad313346 100644
--- a/gi/param.cpp
+++ b/gi/param.cpp
@@ -25,6 +25,7 @@
 #include "gjs/context-private.h"
 #include "gjs/jsapi-class.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "gjs/mem-private.h"
 #include "util/log.h"
 
diff --git a/gi/private.cpp b/gi/private.cpp
index a2aecfb9f..85001cb6e 100644
--- a/gi/private.cpp
+++ b/gi/private.cpp
@@ -30,6 +30,7 @@
 #include "gjs/context-private.h"
 #include "gjs/jsapi-util-args.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 
 /* gi/private.cpp - private "imports._gi" module with operations that we need
  * to use from JS in order to create GObject classes, but should not be exposed
diff --git a/gi/repo.cpp b/gi/repo.cpp
index 9f5d4e1f3..55c443e46 100644
--- a/gi/repo.cpp
+++ b/gi/repo.cpp
@@ -46,6 +46,7 @@
 #include "gjs/context-private.h"
 #include "gjs/global.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "gjs/module.h"
 #include "util/log.h"
 
diff --git a/gi/union.cpp b/gi/union.cpp
index dca235926..0b310ed18 100644
--- a/gi/union.cpp
+++ b/gi/union.cpp
@@ -19,6 +19,7 @@
 #include "gi/repo.h"
 #include "gi/union.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "gjs/mem-private.h"
 #include "util/log.h"
 
diff --git a/gi/value.cpp b/gi/value.cpp
index f53ff75e1..bd2def882 100644
--- a/gi/value.cpp
+++ b/gi/value.cpp
@@ -46,6 +46,7 @@
 #include "gjs/context-private.h"
 #include "gjs/context.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "gjs/objectbox.h"
 #include "util/log.h"
 
diff --git a/gjs/byteArray.cpp b/gjs/byteArray.cpp
index 9853ba6d5..9380c3d3d 100644
--- a/gjs/byteArray.cpp
+++ b/gjs/byteArray.cpp
@@ -26,6 +26,7 @@
 #include "gjs/deprecation.h"
 #include "gjs/jsapi-util-args.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "gjs/text-encoding.h"
 #include "util/misc.h"  // for _gjs_memdup2
 
diff --git a/gjs/global.cpp b/gjs/global.cpp
index 56fe8602b..dae759cf7 100644
--- a/gjs/global.cpp
+++ b/gjs/global.cpp
@@ -35,6 +35,7 @@
 #include "gjs/global.h"
 #include "gjs/internal.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "gjs/native.h"
 
 namespace mozilla {
diff --git a/gjs/importer.cpp b/gjs/importer.cpp
index c8bc553ef..04a4a1087 100644
--- a/gjs/importer.cpp
+++ b/gjs/importer.cpp
@@ -44,6 +44,7 @@
 #include "gjs/global.h"
 #include "gjs/importer.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "gjs/module.h"
 #include "gjs/native.h"
 #include "util/log.h"
diff --git a/gjs/jsapi-util.cpp b/gjs/jsapi-util.cpp
index 4ac9782b3..4dc442705 100644
--- a/gjs/jsapi-util.cpp
+++ b/gjs/jsapi-util.cpp
@@ -41,6 +41,7 @@
 #include "gjs/atoms.h"
 #include "gjs/context-private.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 
 namespace js {
 class SystemAllocPolicy;
diff --git a/gjs/module.cpp b/gjs/module.cpp
index 3b54a3fca..bcff321af 100644
--- a/gjs/module.cpp
+++ b/gjs/module.cpp
@@ -43,6 +43,7 @@
 #include "gjs/global.h"
 #include "gjs/jsapi-util-args.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "gjs/mem-private.h"
 #include "gjs/module.h"
 #include "gjs/native.h"
diff --git a/gjs/objectbox.cpp b/gjs/objectbox.cpp
index 99b2c6658..8a3288f9c 100644
--- a/gjs/objectbox.cpp
+++ b/gjs/objectbox.cpp
@@ -10,6 +10,7 @@
 
 #include <js/AllocPolicy.h>
 #include <js/ComparisonOperators.h>
+#include <js/ErrorReport.h>  // for JS_ReportOutOfMemory
 #include <js/GCPolicyAPI.h>  // for GCPolicy (ptr only), NonGCPointe...
 #include <js/GCVector.h>
 #include <js/RootingAPI.h>
@@ -17,6 +18,7 @@
 #include <js/TypeDecls.h>
 
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "gjs/objectbox.h"
 #include "util/log.h"
 
diff --git a/modules/console.cpp b/modules/console.cpp
index f92d63d07..33c189f9c 100644
--- a/modules/console.cpp
+++ b/modules/console.cpp
@@ -46,6 +46,7 @@
 #include "gjs/context-private.h"
 #include "gjs/global.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "modules/console.h"
 
 namespace mozilla {
diff --git a/modules/print.cpp b/modules/print.cpp
index 6454a526d..e483446c7 100644
--- a/modules/print.cpp
+++ b/modules/print.cpp
@@ -22,6 +22,7 @@
 
 #include "gjs/global.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "modules/print.h"
 
 GJS_JSAPI_RETURN_CONVENTION
diff --git a/modules/system.cpp b/modules/system.cpp
index 9152cfe38..0f4410969 100644
--- a/modules/system.cpp
+++ b/modules/system.cpp
@@ -32,6 +32,7 @@
 #include "gjs/context-private.h"
 #include "gjs/jsapi-util-args.h"
 #include "gjs/jsapi-util.h"
+#include "gjs/macros.h"
 #include "gjs/profiler-private.h"
 #include "modules/system.h"
 #include "util/log.h"
diff --git a/tools/gjs-private-iwyu.imp b/tools/gjs-private-iwyu.imp
index 502e6b432..a5695102e 100644
--- a/tools/gjs-private-iwyu.imp
+++ b/tools/gjs-private-iwyu.imp
@@ -4,6 +4,10 @@
 # IWYU mapping file for files that are part of libgjs
 [
   {"include": ["<bits/this_thread_sleep.h>", "private", "<thread>", "public"]},
+  {"include": ["<bits/sigevent-consts.h>", "private", "<signal.h>", "public"]},
+  {"include": ["<bits/siginfo-consts.h>", "private", "<signal.h>", "public"]},
+  {"include": ["<bits/signum-arch.h>", "private", "<signal.h>", "public"]},
+  {"include": ["<bits/signum-generic.h>", "private", "<signal.h>", "public"]},
   {"include": ["<bits/types/sigevent_t.h>", "private", "<signal.h>", "public"]},
   {"include": ["<bits/types/siginfo_t.h>", "private", "<signal.h>", "public"]},
   {"include": ["<bits/types/struct_itimerspec.h>", "private", "<time.h>", "public"]},
@@ -12,7 +16,41 @@
   {"include": ["@<ffi.*>", "private", "<ffi.h>", "public"]},
   {"include": ["@\"gio/.*\"", "private", "<gio/gio.h>", "public"]},
   {"include": ["@<gio/.*>", "private", "<gio/gio.h>", "public"]},
+  {"include": ["\"gitypes.h\"", "private", "<girepository.h>", "public"]},
+  {"include": ["<gitypes.h>", "private", "<girepository.h>", "public"]},
+  {"include": ["\"giversion.h\"", "private", "<girepository.h>", "public"]},
+  {"include": ["@\"gi.*info.h\"", "private", "<girepository.h>", "public"]},
+  {"include": ["\"glib/galloca.h\"", "private", "<alloca.h>", "public"]},
+  {"include": ["\"glib/garray.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gbacktrace.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gbytes.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gconvert.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/genviron.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gerror.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gfileutils.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/ghash.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/glist.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gmacros.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gmain.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gmem.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gmessages.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gquark.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/grcbox.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/grefcount.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gslist.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gstrfuncs.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gstring.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gtestutils.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gthread.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gtimer.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gtypes.h\"", "private", "<glib.h>", "public"]},
   {"include": ["<glib/gtypes.h>", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gunicode.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/guri.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gutils.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gvariant.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glib/gversion.h\"", "private", "<glib.h>", "public"]},
+  {"include": ["\"glibconfig.h\"", "private", "<glib.h>", "public"]},
   {"include": ["@\"gobject/.*\"", "private", "<glib-object.h>", "public"]},
   {"include": ["@<gobject/.*>", "private", "<glib-object.h>", "public"]},
   {"include": ["<libintl.h>", "private", "<glib/gi18n.h>", "public"]},
diff --git a/tools/process_iwyu.py b/tools/process_iwyu.py
index 56bd230f1..4d5288ecb 100755
--- a/tools/process_iwyu.py
+++ b/tools/process_iwyu.py
@@ -115,6 +115,16 @@ FALSE_POSITIVES = (
 
     # Weird false positive on some versions of IWYU
     ('gi/arg.cpp', 'struct _GVariant;', ''),
+    ('util/log.cpp', '#include <algorithm>', 'for copy'),
+
+    # For some reason IWYU wants these with angle brackets when they are
+    # already present with quotes
+    # https://github.com/include-what-you-use/include-what-you-use/issues/1087
+    ('gjs/context.cpp', '#include <gjs/context.h>', ''),
+    ('gjs/coverage.cpp', '#include <gjs/coverage.h>', ''),
+    ('gjs/error-types.cpp', '#include <gjs/error-types.h>', ''),
+    ('gjs/jsapi-util.cpp', '#include <gjs/jsapi-util.h>', ''),
+    ('gjs/mem.cpp', '#include <gjs/mem.h>', ''),
     ('gjs/profiler.cpp', '#include <gjs/profiler.h>', ''),
 )
 
diff --git a/util/log.cpp b/util/log.cpp
index 3f5b52d4a..410b6a2c7 100644
--- a/util/log.cpp
+++ b/util/log.cpp
@@ -8,6 +8,7 @@
 #include <type_traits>  // for remove_reference<>::type
 
 #include <errno.h>
+#include <fcntl.h>  // for SEEK_END
 #include <stdarg.h>
 #include <stdio.h>   // for FILE, fprintf, fflush, fopen, fputs, fseek
 #include <string.h>  // for strchr, strcmp


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]