nelua-lang
nelua-lang copied to clipboard
Can't namespace generics
Bug description
If you define a working generic type inside a record (being used as a namespace), it throws an assertion error.
Code example
## local make_something = generalize(function(T)
local MyGeneric = @record{
value: #[T]#
}
function MyGeneric:get_value()
return self.value
end
## return MyGeneric
## end)
local Something = #[make_something]#
local MyNamespace = @record{}
local MyNamespace.Something = @Something
---
-- local GenericNum = @Something(integer) -- works
local GenericNum = @MyNamespace.Something(integer) -- assertion failed
local num: GenericNum = { 5 }
print(num:get_value())
Expected behavior
The same behavior when using the generic directly
Workaround
Just alias to the generic and use it directly:
local SomethingAlias = @MyNamespace.Something
local GenericNum = @SomethingAlias(integer) -- works
Environment
- Nelua version: 0.2.0-dev.1535+5fea7336
- Platform: Linux (Pop!_OS)
- Architecture: x86_64
It's something I've been aware, it's a limitation for now, will take a look at this eventually.