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
@vue/shared generateCodeFrame
can infinite loop
#10854
Comments
sodatea
added
scope: compiler
scope: sfc
scope: script-setup
and removed
scope: sfc
labels
May 7, 2024
As the issue points out, the endless loop happens because I fixed this in PR #10883. About expecting the compiler to report errors, in Vue, always softly fail on failed runtime type inference. You can find the code here. The specific call to Hope this helps :) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Vue version
3.4.26
Link to minimal reproduction
https://github.com/aturingmachine/vue-sfc-infinite-loop
Steps to reproduce
Have a component making use of a Generic in it's Props that extends an
enum
.i.e. (this is pulled from the linked reproduction)
Have
SomeEnum
defined in another file (in this casesrc/constants.ts
)If the lengths of the 2 files match some (currently) unknown condition, the call to
generateCodeFrame
will get stuck in an infinite loop in its innerfor
loop.Link to Line in Question
What is expected?
That the compiler will report the error at the correct lines.
What is actually happening?
The Compiler gets stuck in an infinite loop and hangs indefinitely.
System Info
Any additional comments?
This issue has been brought up once and resolved seen here.
The issue can be "resolved" by reducing the number of lines in either the Component file or the file containing the Enum.
It seems the case
j >= lines.length
on line 26 leading to thecontinue
trips the infinite loop, but I may be wrong.The provided reproduction link is a simplified version of our production code that triggered the initial issue.
The text was updated successfully, but these errors were encountered: