From d29058784a6b994acfb33be11d5c5fcecd8f8ea2 Mon Sep 17 00:00:00 2001 From: Seth Tisue Date: Mon, 8 Feb 2021 19:56:00 -0800 Subject: [PATCH 1/2] upgrade to asm 9.1, for JDK 17 support fixes scala/bug#12332 on 2.13.x (2.12.x PR is #9488) --- src/intellij/scala.ipr.SAMPLE | 28 ++++++++++++++-------------- versions.properties | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/intellij/scala.ipr.SAMPLE b/src/intellij/scala.ipr.SAMPLE index d4e0ee56732e..b545ddd3f227 100644 --- a/src/intellij/scala.ipr.SAMPLE +++ b/src/intellij/scala.ipr.SAMPLE @@ -232,7 +232,7 @@ - + @@ -243,7 +243,7 @@ - + @@ -252,7 +252,7 @@ - + @@ -266,7 +266,7 @@ - + @@ -287,7 +287,7 @@ - + @@ -296,14 +296,14 @@ - + - + @@ -312,7 +312,7 @@ - + @@ -456,7 +456,7 @@ - + @@ -465,7 +465,7 @@ - + @@ -475,7 +475,7 @@ - + @@ -506,7 +506,7 @@ - + @@ -522,7 +522,7 @@ - + @@ -533,7 +533,7 @@ - + diff --git a/versions.properties b/versions.properties index 199fa9df7301..7ece1c784286 100644 --- a/versions.properties +++ b/versions.properties @@ -6,7 +6,7 @@ starr.version=2.13.4 # - scala-compiler: jline (% "optional") # Other usages: # - scala-asm: jar content included in scala-compiler -scala-asm.version=9.0.0-scala-1 +scala-asm.version=9.1.0-scala-1 # jna.version must be updated together with jline-terminal-jna jline.version=3.19.0 From 49d7ecf52639120cf95237c227650cd1fab90263 Mon Sep 17 00:00:00 2001 From: Seth Tisue Date: Mon, 8 Feb 2021 20:01:41 -0800 Subject: [PATCH 2/2] make -target support JVM 17 --- project/ScalaOptionParser.scala | 2 +- .../scala/tools/nsc/backend/jvm/analysis/BackendUtils.scala | 1 + .../scala/tools/nsc/settings/StandardScalaSettings.scala | 2 +- test/junit/scala/tools/nsc/settings/TargetTest.scala | 5 ++++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/project/ScalaOptionParser.scala b/project/ScalaOptionParser.scala index fe0ca1ea3608..7243fa9f631d 100644 --- a/project/ScalaOptionParser.scala +++ b/project/ScalaOptionParser.scala @@ -140,5 +140,5 @@ object ScalaOptionParser { private def scaladocPathSettingNames = List("-doc-root-content", "-diagrams-dot-path") private def scaladocMultiStringSettingNames = List("-doc-external-doc") - private val targetSettingNames = (8 to 16).map(_.toString).flatMap(v => v :: s"jvm-1.$v" :: s"jvm-$v" :: s"1.$v" :: Nil).toList + private val targetSettingNames = (8 to 17).map(_.toString).flatMap(v => v :: s"jvm-1.$v" :: s"jvm-$v" :: s"1.$v" :: Nil).toList } diff --git a/src/compiler/scala/tools/nsc/backend/jvm/analysis/BackendUtils.scala b/src/compiler/scala/tools/nsc/backend/jvm/analysis/BackendUtils.scala index 5422064e89a8..0e6939a97fd3 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/analysis/BackendUtils.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/analysis/BackendUtils.scala @@ -80,6 +80,7 @@ abstract class BackendUtils extends PerRunInit { case "14" => asm.Opcodes.V14 case "15" => asm.Opcodes.V15 case "16" => asm.Opcodes.V16 + case "17" => asm.Opcodes.V17 // to be continued... }) diff --git a/src/compiler/scala/tools/nsc/settings/StandardScalaSettings.scala b/src/compiler/scala/tools/nsc/settings/StandardScalaSettings.scala index 05bc2cdce5ac..02e6da5afe0e 100644 --- a/src/compiler/scala/tools/nsc/settings/StandardScalaSettings.scala +++ b/src/compiler/scala/tools/nsc/settings/StandardScalaSettings.scala @@ -73,7 +73,7 @@ trait StandardScalaSettings { _: MutableSettings => object StandardScalaSettings { // not final in case some separately compiled client code wanted to depend on updated values val MinTargetVersion = 8 - val MaxTargetVersion = 16 + val MaxTargetVersion = 17 private val AllTargetVersions = (MinTargetVersion to MaxTargetVersion).map(_.toString).to(List) } diff --git a/test/junit/scala/tools/nsc/settings/TargetTest.scala b/test/junit/scala/tools/nsc/settings/TargetTest.scala index eb8bb87bb6ce..065aa4d5a98f 100644 --- a/test/junit/scala/tools/nsc/settings/TargetTest.scala +++ b/test/junit/scala/tools/nsc/settings/TargetTest.scala @@ -62,8 +62,11 @@ class TargetTest { check("-target:jvm-16", "16") check("-target:16", "16") + check("-target:jvm-17", "17") + check("-target:17", "17") + checkFail("-target:jvm-6") // no longer - checkFail("-target:jvm-17") // not yet... + checkFail("-target:jvm-18") // not yet... checkFail("-target:jvm-3000") // not in our lifetime checkFail("-target:msil") // really?