extension-teal icon indicating copy to clipboard operation
extension-teal copied to clipboard

Unable to compile Teal code with definitions for regular Lua modules

Open Lerg opened this issue 1 year ago • 3 comments

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

Lerg avatar Jul 07 '24 20:07 Lerg

Does your tlconfig.lua have this code?

return {
     gen_target = "5.1",
     gen_compat = "off",
     include = {"**/*.tl"}
}

vlaaad avatar Jul 08 '24 12:07 vlaaad

Does your tlconfig.lua have this code?

@vlaaad Yes

Lerg avatar Jul 08 '24 14:07 Lerg

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

vlaaad avatar Jul 15 '24 13:07 vlaaad