Browse Source

Validate related items;

bjorn 7 years ago
parent
commit
6b80e6dba1
2 changed files with 20 additions and 2 deletions
  1. 1 1
      api/init.lua
  2. 19 1
      api/main.lua

+ 1 - 1
api/init.lua

@@ -8636,7 +8636,7 @@ return {
           },
           },
           related = {
           related = {
             "lovr.graphics.newShader",
             "lovr.graphics.newShader",
-            "lovr.graphics.newComputeShader"
+            "lovr.graphics.newComputeShaderr"
           },
           },
           examples = {
           examples = {
             {
             {

+ 19 - 1
api/main.lua

@@ -238,10 +238,22 @@ local function processModule(path)
 end
 end
 
 
 -- Validation
 -- Validation
+local function validateRelated(item)
+  for _, key in ipairs(item.related or {}) do
+    warnIf(not lookup[key], 'Related item for %s not found: %s', item.key, key)
+  end
+end
+
+local function validateEnum(enum)
+  validateRelated(enum)
+end
+
 local function validateObject(object)
 local function validateObject(object)
   for _, constructor in ipairs(object.constructors or {}) do
   for _, constructor in ipairs(object.constructors or {}) do
-    warnIf(not lookup[constructor], 'Constructor not found: %s', constructor)
+    warnIf(not lookup[constructor], 'Constructor for %s not found: %s', object.key, constructor)
   end
   end
+
+  validateRelated(object)
 end
 end
 
 
 local function validateFunction(fn)
 local function validateFunction(fn)
@@ -252,6 +264,8 @@ local function validateFunction(fn)
     end
     end
     warnIf(not found, 'Unknown tag %s for %s', fn.tag, fn.key)
     warnIf(not found, 'Unknown tag %s for %s', fn.tag, fn.key)
   end
   end
+
+  validateRelated(fn)
 end
 end
 
 
 local function validateModule(module)
 local function validateModule(module)
@@ -262,6 +276,10 @@ local function validateModule(module)
   for _, fn in ipairs(module.functions) do
   for _, fn in ipairs(module.functions) do
     validateFunction(fn)
     validateFunction(fn)
   end
   end
+
+  for _, fn in ipairs(module.enums) do
+    validateEnum(fn)
+  end
 end
 end
 
 
 function lovr.load()
 function lovr.load()