From d985911c4e8783a8ef2958600d360e1efee2ee97 Mon Sep 17 00:00:00 2001 From: Seth Tisue Date: Tue, 13 Jul 2021 18:22:18 -0400 Subject: [PATCH 1/2] upgrade to ASM 9.2, for JDK 18 support --- 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 eabf6729ecde..80484746d667 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 971b4a002731..33e144c53a49 100644 --- a/versions.properties +++ b/versions.properties @@ -6,7 +6,7 @@ starr.version=2.13.6 # - scala-compiler: jline (% "optional") # Other usages: # - scala-asm: jar content included in scala-compiler -scala-asm.version=9.1.0-scala-1 +scala-asm.version=9.2.0-scala-1 # jna.version must be updated together with jline-terminal-jna jline.version=3.19.0 From 5ac7cc5c7609a27c2895a0065c703393e6334b6f Mon Sep 17 00:00:00 2001 From: Seth Tisue Date: Tue, 13 Jul 2021 18:22:34 -0400 Subject: [PATCH 2/2] make -target support JDK 18 --- 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 e3149a39c048..64d9db857982 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 17).map(_.toString).flatMap(v => v :: s"jvm-1.$v" :: s"jvm-$v" :: s"1.$v" :: Nil).toList + private val targetSettingNames = (8 to 18).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 0e6939a97fd3..b86d33a16ce2 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/analysis/BackendUtils.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/analysis/BackendUtils.scala @@ -81,6 +81,7 @@ abstract class BackendUtils extends PerRunInit { case "15" => asm.Opcodes.V15 case "16" => asm.Opcodes.V16 case "17" => asm.Opcodes.V17 + case "18" => asm.Opcodes.V18 // to be continued... }) diff --git a/src/compiler/scala/tools/nsc/settings/StandardScalaSettings.scala b/src/compiler/scala/tools/nsc/settings/StandardScalaSettings.scala index 02e6da5afe0e..7da06bb6c7bd 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 = 17 + val MaxTargetVersion = 18 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 065aa4d5a98f..4925ed6a56fe 100644 --- a/test/junit/scala/tools/nsc/settings/TargetTest.scala +++ b/test/junit/scala/tools/nsc/settings/TargetTest.scala @@ -65,8 +65,11 @@ class TargetTest { check("-target:jvm-17", "17") check("-target:17", "17") + check("-target:jvm-18", "18") + check("-target:18", "18") + checkFail("-target:jvm-6") // no longer - checkFail("-target:jvm-18") // not yet... + checkFail("-target:jvm-19") // not yet... checkFail("-target:jvm-3000") // not in our lifetime checkFail("-target:msil") // really?