File

teal-src/util/promise.d.tl @ 12749:eb9814372c54

util.promise: Remove some redundant checks, add tests confirming redundancy This lines don't appear to do anything useful, and all tests pass when they are removed. Discovered via mutation testing. I added extra tests to exercise this code, because I wasn't certain that there were no side-effects caused by removal. Everything appears to be fine, thanks to the "pending" check at the start of promise_settle().
author Matthew Wild <mwild1@gmail.com>
date Fri, 07 Oct 2022 17:43:26 +0100
parent 12612:588b1d175838
line wrap: on
line source


local record lib
	type resolve_func = function (any)
	type promise_body = function (resolve_func, resolve_func)

	record Promise<A, B>
		type on_resolved = function (A) : any
		type on_rejected = function (B) : any
		next : function (Promise, on_resolved, on_rejected) : Promise<any, any>
	end

	new : function (promise_body) : Promise
	resolve : function (any) : Promise
	reject : function (any) : Promise
	all : function ({ Promise }) : Promise
	all_settled : function ({ Promise }) : Promise
	race : function ({ Promise }) : Promise
	try : function
	is_promise : function(any) : boolean
end

return lib