-
-
Notifications
You must be signed in to change notification settings - Fork 667
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixed stdlib builtins not working with typedoc #1894
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
Hmm, interesting. Unreachable is currently typed as declare function unreachable(): never; and in AS itself is an expression of any type. I guess the following doesn't work either? static new(value: i32): i31ref { return <i31ref>unreachable(); }
static get(i31expr: i31ref): i32 { return <i32>unreachable(); } Ah, I see now. In this particular file, it picks up the AS-internal builtin definition of // @ts-ignore: decorator
@unsafe @builtin
export declare function unreachable(): void; Changing the static new(value: i32): i31ref { return changetype<i31ref>(unreachable()); }
static get(i31expr: i31ref): i32 { return unreachable(); } Wondering if that would be a preferable fix? (other than that it's kinda hilarious where just naming an instruction |
Hello!
This is just something I noticed when working on the Fastly AS SDK.
It seems like in version
0.18.13
, we introduced a change in which caused a type error, as we try to assignvoid
to ani32
, andi31ref
:I got the error above when running typedoc on version
0.19.1
, but it works again on0.18.12
. So, I assume unreachable is the instruction that causes things to crash. So instead of returning void, I still call the function, but return a "void number" (0), which I assume is the expected behavior?With this fix, things start working again in the type system:
Thanks to whoever picks up this review! 😄 🎉
cc @dcodeIO @MaxGraey 😄