@@ -247,13 +247,15 @@ analyzer function rawget(tbl: {[any] = any} | {}, key: any)
247247 return analyzer:AssertFallback(types.Nil(), analyzer:IndexOperator(tbl, key, true))
248248end
249249
250- analyzer function assert(obj: any, msg: string | nil, level: number | nil)
250+ analyzer function assert(...: ...any)
251+ local obj = select(1, ...)
252+ local potential_msg = select(2, ...)
251253 if not analyzer:IsDefinetlyReachable() then
252254 analyzer:ThrowSilentError(obj)
253255
254- if obj.Type == "union" then return obj:RemoveCertainlyFalsy() end
256+ if obj.Type == "union" then return obj:RemoveCertainlyFalsy(), select(2, ...) end
255257
256- return obj
258+ return ...
257259 end
258260
259261 if obj.Type == "union" then
@@ -263,21 +265,21 @@ analyzer function assert(obj: any, msg: string | nil, level: number | nil)
263265 end
264266
265267 if obj:IsTruthy() and not obj:IsFalsy() then
266- if obj.Type == "union" then return obj:RemoveCertainlyFalsy() end
268+ if obj.Type == "union" then return obj:RemoveCertainlyFalsy(), select(2, ...) end
267269 end
268270
269271 if obj:IsFalsy() then
270272 analyzer:AssertError(
271273 obj,
272- type_errors.plain_error(msg and msg :GetData() or "assertion failed!"),
273- level and level:GetData() or nil,
274+ type_errors.plain_error(potential_msg and potential_msg :GetData() or "assertion failed!"),
275+ nil,
274276 obj:IsTruthy()
275277 )
276278
277- if obj.Type == "union" then return obj:RemoveCertainlyFalsy() end
279+ if obj.Type == "union" then return obj:RemoveCertainlyFalsy(), select(2, ...) end
278280 end
279281
280- return obj
282+ return ...
281283end
282284
283285analyzer function error(msg: string, level: number | nil)
0 commit comments