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])])