Open daurnimator opened 5 years ago
The problem is that a Typed Lua require
maps to a Lua require
, and Lua does not allow circular module references. A possible solution would be for the Typed Lua compiler to notice when a module is only being required for its types (its members are only referenced in type declarations), and not emit a require
in the generated Lua file for that case. The compiler would also need to defer the circular require
error until the module doing the offending require
has been analyzed and it knows whether this is a runtime require
or not.
I feel like require
here needs to act more like include
Do you mean source file inclusion? Lua (and by extension Typed Lua) cannot really have circular requires with the way its modules work, so the exception would really have to be for modules that are required just for their types.
This was in reference to .tld files.
Sorry, saw that part only now!
You can have interfaces that include each other:
However if I want to split that into two files (say, foo.tld and bar.tld), then tlc fails with
type error, circular require