defold / extension-teal

Defold transpilation support for Teal
MIT License
26 stars 2 forks source link

Unable to compile Teal code with definitions for regular Lua modules #4

Open Lerg opened 4 months ago

Lerg commented 4 months ago

Teal supports requiring regular Lua file given that a special definition file is created.

For instance test.lua

local M = {}

local a
local b

a = 5
b = a + 2

M.c = b

return M

Definition file test.d.tl

local record test
    c: number
end

return test

When invoking command line tl it doesn't give any errors:

TealBug % tl check main/main.tl
========================================
Type checked main/main.tl
0 errors detected -- you can use:

   tl run main/main.tl

       to run main/main.tl as a program

   tl gen main/main.tl

       to generate main.lua

tl gen also works.

But when trying to build with Defold an error appears

/tlconfig.lua
    Line 3: variable 'a' has no type or initial value
    Line 4: variable 'b' has no type or initial value
Screenshot 2024-07-07 at 22 46 58

Somehow the original Lua module (test.lua) gets treated as a Teal source which results in compilation errors

Test project: TealBug.zip

vlaaad commented 4 months ago

Does your tlconfig.lua have this code?

return {
     gen_target = "5.1",
     gen_compat = "off",
     include = {"**/*.tl"}
}
Lerg commented 4 months ago

Does your tlconfig.lua have this code?

@vlaaad Yes

vlaaad commented 4 months ago

Hmm, I can reproduce the issue. Reported to cyan: https://github.com/teal-language/cyan/issues/43 The issue can also be solved with https://github.com/defold/defold/issues/8928