-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
I18628 #18841
I18628 #18841
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.
LGTM, thanks a lot.
Please add the long test as a positive test (no warnings).
@liufengyun With this fix I'm afraid the long test cannot pass the checker since the environment of |
It should work --- I checked on my machine, it works as expected. The case is OK, because the recursive call is |
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.
I confirm that the long test also works for me. (It gives a warning but does not run out of memory). Please add it, but otherwise LGTM.
It is the same for me, but @liufengyun do you expect the test to pass without warning? |
Sorry, I made a mistake in my test. Yes, it produce warnings. But it shouldn't --- It seems we have a problem handling the local lazy vals. Just change the following method in the test from def ~ [U](q: => Parser[U]): Parser[~[T, U]] = { lazy val p = q // lazy argument
(for(a <- this; b <- p) yield new ~(a,b))
} to def ~ [U](q: => Parser[U]): Parser[~[T, U]] = {
(for(a <- this; b <- q) yield new ~(a,b))
} will suppress the warning. |
This PR fixes the minimized test of #18628 that previously runs infinitely on the global initialization checker.