hxasync icon indicating copy to clipboard operation
hxasync copied to clipboard

Type safety / static async check

Open fed239 opened this issue 3 years ago • 1 comments
trafficstars

Would it possible to do so that when @async is used with a function, its type is change, so if @await is not used when calling the function type checking would fail?

Example

@async function returnZero(): Int {
  return 0;
}

var i: Int = @await returnZero(); // compilation succeeds
var p: Promise<Int> = returnZero(); // compilation succeeds
var i2: Int = returnZero(); // compilation fails

fed239 avatar Feb 02 '22 09:02 fed239

I've tried to implement type checking, but did not manage to do that, unfortunately.
I guess that I am not good enough with Haxe macro system.

botsman avatar Feb 02 '22 11:02 botsman