From f1ab893f986c1ed337c3c9f1723e3e1f9d2c4b62 Mon Sep 17 00:00:00 2001 From: "andrzej.jozwik@gmail.com" Date: Mon, 13 Oct 2014 22:49:26 +0200 Subject: [PATCH] Fixed #1666 - check from last end of line. --- .../scala/sbt/internals/parser/SbtParser.scala | 14 ++++++++++---- .../parser/SplitExpressionsFilesTest.scala | 2 ++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/main/src/main/scala/sbt/internals/parser/SbtParser.scala b/main/src/main/scala/sbt/internals/parser/SbtParser.scala index 785492e7b..59f0d9ac4 100644 --- a/main/src/main/scala/sbt/internals/parser/SbtParser.scala +++ b/main/src/main/scala/sbt/internals/parser/SbtParser.scala @@ -439,8 +439,15 @@ private[sbt] object XmlContent { */ private def areBracketsNecessary(statement: String): Boolean = { val doubleSlash = statement.indexOf(DOUBLE_SLASH) - val endOfLine = statement.indexOf(END_OF_LINE) - if (doubleSlash == NOT_FOUND_INDEX || (doubleSlash < endOfLine)) { + + if (doubleSlash != NOT_FOUND_INDEX) { + val endOfLine = statement.indexOf(END_OF_LINE, doubleSlash) + if (endOfLine == NOT_FOUND_INDEX) { + false + } else { + areBracketsNecessary(statement.substring(endOfLine)) + } + } else { val roundBrackets = statement.lastIndexOf(OPEN_CURLY_BRACKET) val braces = statement.lastIndexOf(OPEN_PARENTHESIS) val max = roundBrackets.max(braces) @@ -450,8 +457,7 @@ private[sbt] object XmlContent { val trimmed = statement.substring(max + 1).trim trimmed.nonEmpty } - } else { - false + } } } \ No newline at end of file diff --git a/main/src/test/scala/sbt/internals/parser/SplitExpressionsFilesTest.scala b/main/src/test/scala/sbt/internals/parser/SplitExpressionsFilesTest.scala index 704e12366..bf566aa54 100644 --- a/main/src/test/scala/sbt/internals/parser/SplitExpressionsFilesTest.scala +++ b/main/src/test/scala/sbt/internals/parser/SplitExpressionsFilesTest.scala @@ -12,6 +12,8 @@ import scala.tools.reflect.ToolBoxError class SplitExpressionsFilesTest extends AbstractSplitExpressionsFilesTest("/old-format/") +//class SplitExpressionsFilesFailedTest extends AbstractSplitExpressionsFilesTest("/fail-format/") + abstract class AbstractSplitExpressionsFilesTest(pathName: String) extends Specification { case class SplitterComparison(oldSplitterResult: util.Try[(Seq[(String, Int)], Seq[LineRange])], newSplitterResult: util.Try[(Seq[(String, Int)], Seq[LineRange])])