From 79fa15b304d36f24fa9dd9c9d9552a6c598c5739 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Sun, 16 Nov 2014 21:17:23 -0800 Subject: Minimized another perf problem from ParserTests.scala also related to too-much-nesting probably being exponential --- scalatexApi/src/main/scala/scalaparser/ScalaSyntax.scala | 10 +++------- scalatexApi/src/test/scala/scalaparser/SyntaxTest.scala | 8 ++++++++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/scalatexApi/src/main/scala/scalaparser/ScalaSyntax.scala b/scalatexApi/src/main/scala/scalaparser/ScalaSyntax.scala index 71e87bd..989e6d9 100644 --- a/scalatexApi/src/main/scala/scalaparser/ScalaSyntax.scala +++ b/scalatexApi/src/main/scala/scalaparser/ScalaSyntax.scala @@ -103,10 +103,8 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif } def SimpleType(G: B = t): R0 = rule { BasicType(false) ~ - optional(WL ~ - '#' ~ Id(false)) ~ - optional(WL ~ - TypeArgs(false)) ~ + optional(WL ~ '#' ~ Id(false)) ~ + optional(WL ~ TypeArgs(false)) ~ W(G) } def BasicType(G: B = t): R0 = rule { @@ -148,9 +146,7 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif def SimpleExpr(G: B = t): R0 = rule { SimpleExpr1(false) ~ - zeroOrMore( - WL ~ ('.' ~ Id(false) | TypeArgs(false) | ArgumentExprs(false)) - ) ~ + zeroOrMore(WL ~ ('.' ~ Id(false) | TypeArgs(false) | ArgumentExprs(false))) ~ optional(WL ~ StrW("_", false)) ~ W(G) } diff --git a/scalatexApi/src/test/scala/scalaparser/SyntaxTest.scala b/scalatexApi/src/test/scala/scalaparser/SyntaxTest.scala index a174e63..8036896 100644 --- a/scalatexApi/src/test/scala/scalaparser/SyntaxTest.scala +++ b/scalatexApi/src/test/scala/scalaparser/SyntaxTest.scala @@ -203,6 +203,14 @@ object SyntaxTest extends TestSuite{ | """.stripMargin ) + * - check( + """ + |object O{ + | A(A(A(A(A(A(A(A(A(A(A(A(A(A(A(A()))))))))))))))) + |} + """.stripMargin + + ) } println("Checking") 'file{ -- cgit v1.2.3