Specify 2nd argument failure case for setmetatable

This commit is contained in:
ffrostfall 2025-02-04 00:55:23 -05:00 committed by GitHub
parent 585ce6ba37
commit b88f14bf53
Signed by: DevComp
GPG key ID: B5690EEEBB952194

View file

@ -22,6 +22,8 @@ local clock = {}
type Identity = setmetatable<{ time: number }, { __index: typeof(clock) }>
```
If the second argument of the type function isn't a table, then it should error.
### `getmetatable` Type Function
[Issue #1435](https://github.com/luau-lang/luau/issues/1435) is caused by a lack of special behavior for `getmetatable` when the type's metatable has a `__metatable` field. This is fixable in a variety of ways, however a type function has multiple benefits and exposes more type-level expression for users. It fits in nicely with the new solver, as type functions are a cleaner alternative to magic functions.