Skip to content

Commit b397fe4

Browse files
authored
Ensure --cli-default-scala-version is respected by --scalac-help (#3048)
1 parent 9b666ba commit b397fe4

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

modules/cli/src/main/scala/scala/cli/commands/ScalaCommand.scala

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,14 +192,17 @@ abstract class ScalaCommand[T <: HasGlobalOptions](implicit myParser: Parser[T],
192192
updatedScalacOptions = scalacOptions.withScalacExtraOptions(shared.scalacExtra)
193193
if updatedScalacOptions.exists(ScalacOptions.ScalacPrintOptions)
194194
logger = shared.logger
195-
artifacts <- buildOptions.artifacts(logger, Scope.Main).toOption
195+
fixedBuildOptions = buildOptions.copy(scalaOptions =
196+
buildOptions.scalaOptions.copy(defaultScalaVersion = Some(ScalaCli.getDefaultScalaVersion))
197+
)
198+
artifacts <- fixedBuildOptions.artifacts(logger, Scope.Main).toOption
196199
scalaArtifacts <- artifacts.scalaOpt
197200
compilerClassPath = scalaArtifacts.compilerClassPath
198201
scalaVersion = scalaArtifacts.params.scalaVersion
199202
compileClassPath = artifacts.compileClassPath
200203
simpleScalaCompiler = SimpleScalaCompiler("java", Nil, scaladoc = false)
201-
javacOptions = buildOptions.javaOptions.javacOptions.map(_.value)
202-
javaHome = buildOptions.javaHomeLocation().value
204+
javacOptions = fixedBuildOptions.javaOptions.javacOptions.map(_.value)
205+
javaHome = fixedBuildOptions.javaHomeLocation().value
203206
} {
204207
val exitCode = simpleScalaCompiler.runSimpleScalacLike(
205208
scalaVersion,

modules/integration/src/test/scala/scala/cli/integration/SipScalaTests.scala

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -906,4 +906,19 @@ class SipScalaTests extends ScalaCliSuite with SbtTestHelper with MillTestHelper
906906
expect(r.out.trim() == sv)
907907
}
908908
}
909+
910+
test("scalac help respects --cli-default-scala-version") {
911+
TestInputs.empty.fromRoot { root =>
912+
val sv = Constants.scala3NextRc
913+
val launcherVersionOverrideHelp =
914+
os.proc(TestUtil.cli, "--cli-default-scala-version", sv, "--scalac-help")
915+
.call(cwd = root).out.trim()
916+
val standardVersionOverrideHelp =
917+
os.proc(TestUtil.cli, "--scalac-help", "-S", sv)
918+
.call(cwd = root).out.trim()
919+
val migrationPrefix = sv.take(2) + (sv.charAt(2).asDigit + 1).toString
920+
expect(launcherVersionOverrideHelp.contains(s"$migrationPrefix-migration"))
921+
expect(launcherVersionOverrideHelp == standardVersionOverrideHelp)
922+
}
923+
}
909924
}

0 commit comments

Comments
 (0)