diff --git a/modules/integration/src/test/scala/scala/cli/integration/SipScalaTests.scala b/modules/integration/src/test/scala/scala/cli/integration/SipScalaTests.scala index 5c996791cc..1ad17a7f54 100644 --- a/modules/integration/src/test/scala/scala/cli/integration/SipScalaTests.scala +++ b/modules/integration/src/test/scala/scala/cli/integration/SipScalaTests.scala @@ -495,4 +495,23 @@ class SipScalaTests extends ScalaCliSuite { expect(res.exitCode == 0) } } + + test("consecutive -language:* flags are not ignored") { + val sourceFileName = "example.scala" + TestInputs(os.rel / sourceFileName -> + """//> using scala 3.3.1 + |//> using options -Yexplicit-nulls -language:fewerBraces -language:strictEquality + |def repro[A](as: List[A]): List[A] = + | as match + | case Nil => Nil + | case _ => ??? + |""".stripMargin).fromRoot { root => + val res = os.proc(TestUtil.cli, "compile", sourceFileName) + .call(cwd = root, check = false, stderr = os.Pipe) + expect(res.exitCode == 1) + val expectedError = + "Values of types object scala.collection.immutable.Nil and List[A] cannot be compared with == or !=" + expect(res.err.trim().contains(expectedError)) + } + } } diff --git a/modules/options/src/main/scala/scala/build/options/ScalacOpt.scala b/modules/options/src/main/scala/scala/build/options/ScalacOpt.scala index 95cf59d292..466142bb62 100644 --- a/modules/options/src/main/scala/scala/build/options/ScalacOpt.scala +++ b/modules/options/src/main/scala/scala/build/options/ScalacOpt.scala @@ -15,7 +15,8 @@ final case class ScalacOpt(value: String) { object ScalacOpt { private val repeatingKeys = Set( "-Xplugin:", - "-P" // plugin options + "-P", // plugin options + "-language:" ) implicit val hashedType: HashedType[ScalacOpt] = {