teal-language / tl

The compiler for Teal, a typed dialect of Lua
MIT License
2.03k stars 101 forks source link

Custom type checking for custom types #661

Open OrfeasZ opened 1 year ago

OrfeasZ commented 1 year ago

Is it possible to make teal generate custom type checking code when using the is operator instead of checking using type()?

For example, in my lua implementation, all custom types have an Is method which can be used to determine their type if needed, like this:

if x:Is('SomeType') then
  -- Do something with x
end

Is there a way (eg. using some annotation) to make it so the following teal code gets transpiled to the code above, when x is declared as some record userdata type?


if x is SomeType then
  -- Do something with x
end
hishamhm commented 1 year ago

@OrfeasZ not yet, but this is something I want to implement. Something along these lines should come with the interfaces implementation, which should cover this, as well as #655 (and possibly other related feature requests).