From ebde1245cd0173b3ea7263e35a9710967e9e4b3f Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Mon, 16 Aug 2021 14:34:50 +0200
Subject: [PATCH] SCRIPT: Check for used but not imported scripts

---
 src/Lib/Script/CRTPLuaScriptObject.cc | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/Lib/Script/CRTPLuaScriptObject.cc b/src/Lib/Script/CRTPLuaScriptObject.cc
index 522adad5..49889be7 100644
--- a/src/Lib/Script/CRTPLuaScriptObject.cc
+++ b/src/Lib/Script/CRTPLuaScriptObject.cc
@@ -174,6 +174,20 @@ ModuleDeclaration::validateModule(lua_State *const L) const noexcept
         Utils::uniqAndSort<std::string>(usedImports);
         std::vector<std::string> unusedImports =
             Utils::sortedSetDifference(usedImports, importNames);
+
+        if (!unusedImports.empty()) {
+            std::string listStrImports = "";
+            std::size_t stringSize     = 0;
+            for (const auto &str : unusedImports)
+                stringSize += 1 + str.size();
+            listStrImports.reserve(stringSize);
+            for (const auto &str : unusedImports)
+                listStrImports += " " + str;
+
+            context->setFailed("There are imported modules that are used without being declared:" +
+                               listStrImports + "\n");
+            return false;
+        }
     }
 
     return true;
-- 
GitLab