From 6a7c4919979f2bc2ef8dc7309f4d2def0efd175a Mon Sep 17 00:00:00 2001 From: Nicolas Stucki Date: Fri, 17 Nov 2017 15:05:42 +0100 Subject: [PATCH] Fix #3496: Insert classpath before other arguments Order expected by java command. In which all options are expected (such as -classpath) are expected to be on the left of the first class name. --- project/Build.scala | 2 +- project/scripts/sbtTests | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/project/Build.scala b/project/Build.scala index 56f49ae7dd31..9cdbd4c1c600 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -635,7 +635,7 @@ object Build { def insertClasspathInArgs(args: List[String], cp: String): List[String] = { val (beforeCp, fromCp) = args.span(_ != "-classpath") val classpath = fromCp.drop(1).headOption.fold(cp)(_ + ":" + cp) - beforeCp ::: "-classpath" :: classpath :: fromCp.drop(2) + "-classpath" :: classpath :: beforeCp ::: fromCp.drop(2) } lazy val nonBootstrapedDottyCompilerSettings = commonDottyCompilerSettings ++ Seq( diff --git a/project/scripts/sbtTests b/project/scripts/sbtTests index f1bc42113281..b151129dbe77 100755 --- a/project/scripts/sbtTests +++ b/project/scripts/sbtTests @@ -7,6 +7,7 @@ echo "testing sbt dotc and dotr" mkdir out/scriptedtest0 ./project/scripts/sbt ";dotc tests/pos/sbtDotrTest.scala -d out/scriptedtest0 ;dotr -classpath out/scriptedtest0 dotrtest.Test" > sbtdotr1.out +cat sbtdotr1.out if grep -e "dotr test ok" sbtdotr1.out; then echo "output ok" else @@ -18,8 +19,18 @@ echo "testing sbt dotc -tasty and dotr -classpath" mkdir out/scriptedtest1 mkdir out/scriptedtest2 ./project/scripts/sbt ";dotc tests/pos/sbtDotrTest.scala -d out/scriptedtest1/; dotc -tasty -classpath out/scriptedtest1/ -d out/scriptedtest2/ dotrtest.Test; dotr -classpath out/scriptedtest2/ dotrtest.Test" > sbtdotr2.out +cat sbtdotr2.out if grep -e "dotr test ok" sbtdotr2.out; then echo "output ok" else exit -1 fi +echo "testing sbt dotr with no -classpath" + +./project/scripts/sbt ";dotc tests/pos/sbtDotrTest.scala; dotr dotrtest.Test" > sbtdotp1.out +cat sbtdotp1.out +if grep -e "dotr test ok" sbtdotp1.out; then + echo "output ok" +else + exit -1 +fi