Skip to content
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

long expressions cause java.lang.StackOverflowError in typechecker #9866

Closed
scabug opened this issue Jul 21, 2016 · 4 comments
Closed

long expressions cause java.lang.StackOverflowError in typechecker #9866

scabug opened this issue Jul 21, 2016 · 4 comments
Labels
Milestone

Comments

@scabug
Copy link

scabug commented Jul 21, 2016

Long expressions like one in the example below result in java.lang.StackOverflowError in typechecker. Reproducible with scala 2.10, 2.11 and 2.12.
Adding something like -Xss32m to scalac.bat would help.

object A {
  val re = ("""(xxxxxx|xxxxx|xxxxxxxxxxx""" +
            """|xxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|x(xxxxxxxxxxxxxx|xxxxxx)xxxxxxxxxx""" +
            """|x(xxxxx|xxxxxx)xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxx(xxxxxxx|xxxxxxxxx)xxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|x(xxxxxxxxxx|xxxxxxxxxxx)xxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxx.xxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx.xxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx(xxx|xx)x""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxx""" +
            """|x(xxxxxx|xxxxxx)xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx(xx|xxx)x""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxx(xxxx|xx)x""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx(xx|xx|xx)x""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxx.xxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxx(xxxxxx|xxxxxxxxxxxxx|xxxxxxxxxx|xxxxxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxx|xxxxxxxxxxxxxxxxx|xxxxxxxxxx|xxxxxxxxxxxxxx|xxx|xxxxxxxxxxx)xxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|x(xxxxxx|xxxxxxx|xxxxxxx|xxxxxx|xxxxxxxxxxx|xxxxx|xxxxxxxx|xxxxxx|xxxxxxxxxxxx|xxxxxx|xxxxxxxxx|xxxxxxxxxxx|xxxxxxxxxxx|xxxxxxxxx|xxxxxxxxxxxxxx|)xxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxx(xxxxx|xxxxxxx|xxxxxx|xxxxxxxx|xxxxxxxx|xxxxxxxxx|xxxxxxx|xxxxxxx|xxxxxxxx|xxxxxx)xxxxxxxx(xx|xxx|xxx|xx|xxxxxxx)x""" +
            """|xxxxxx(xxx|xxxx|xxxx)xxxxxx""" +
            """|xxxxxxxxx(xxxxxxx|xxxxxx|xxxxxxx|xxxxxx|xxxxx|xxxxxx|xxxxxxxx|xxxxxxx)xxxxxx""" +
            """|xxxxxxxxxxxxxxx(xxxxxxxxxx)?xxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx(xx|xx|xx)x""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxx.*xxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx(xxxxxx|xxx|xx|xx|xx|xxxxxxx)x""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxx""" +
            """|xxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|x(xxxxxxx|xxxxx)xxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxx(xxx|xxxxxxxxxxxxxxx)xxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxx(xxxxxxx|xxxx)xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx(xxx|xx)x""" +
            """|xxxxxx(xxxxxxxxxxxxxxxxx|xxxxxxxxxx)x""" +
            """|xxxxxx(xxxxxxxxxxxxxxx|xxxxxxxxxxxx)x""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxx.xxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx(xx|xxxxx|xx|xx|xx)x""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxx""" +
            """|xxxxxxxxxxxxxxxxxxxxxxxxxxx""" +
            """|xxxxxxxxxxxxx)""").r
}
@scabug
Copy link
Author

scabug commented Jul 21, 2016

Imported From: https://issues.scala-lang.org/browse/SI-9866?orig=1
Reporter: Denis Petrov (denis)
Affected Versions: 2.10.6, 2.11.8, 2.12.0-M5

@scabug scabug added the typer label Apr 7, 2017
@scabug scabug added this to the Backlog milestone Apr 7, 2017
@SethTisue
Copy link
Member

SethTisue commented May 2, 2023

Also crashes 2.13.10 and 3.3.0-RC5.

I'm a bit tempted to close this with our usual verbiage about how we consider it normal that compiling some kinds of code may require giving the compiler additional stack.

But perhaps long varargs calls like this could actually be fixed not to require so much stack? doh I misread

@som-snytt
Copy link

This is not a long expression but a string. (Type pun alert.) If you construct x op y op z op ... then you are currently out of luck. The interpolator was improved to handle a gazillion exprs.

@SethTisue
Copy link
Member

SethTisue commented May 2, 2023

Ah, I see I looked too quickly. Ok, closing then, as the AST is in fact that deep. If this is automatically generated code, it shouldn't be too tough to find a different way to write it. And if it's handwritten code, ditto.

Or just give the compiler more stack... lots of people have needed to do that and have done it.

@SethTisue SethTisue closed this as not planned Won't fix, can't repro, duplicate, stale May 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants