From 1c2e9061cc87926a159143fe00d0319a3b38b80a Mon Sep 17 00:00:00 2001 From: Scalameta Bot Date: Mon, 30 Sep 2024 01:09:22 +0000 Subject: [PATCH 1/3] build(deps): Update ammonite-util from 3.0.0-M2-30-486378af to 3.0.0-2-6342755f --- project/V.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/V.scala b/project/V.scala index a693f28e282..396dbd5b87e 100644 --- a/project/V.scala +++ b/project/V.scala @@ -16,7 +16,7 @@ object V { val bazelScalaVersion = "2.13.12" val ammonite3Version = "3.3.3" - val ammonite = "3.0.0-M2-30-486378af" + val ammonite = "3.0.0-2-6342755f" val betterMonadicFor = "0.3.1" val bloop = "2.0.3" val bloopConfig = "2.0.3" From 3c37a10c1b993b0216bc8ff4082ac790c55050be Mon Sep 17 00:00:00 2001 From: Tomasz Godzik Date: Tue, 8 Oct 2024 14:28:04 +0200 Subject: [PATCH 2/3] chore: Tidy up versions for testing and publishing --- build.sbt | 4 +- .../meta/internal/metals/MtagsResolver.scala | 2 + project/V.scala | 23 +- project/Welcome.scala | 2 +- .../feature/CompletionCrossLspSuite.scala | 6 +- .../feature/DefinitionCrossLspSuite.scala | 2 +- .../feature/FileDecoderProviderLspSuite.scala | 527 +++++++++--------- .../ImportMissingSymbolCrossLspSuite.scala | 6 +- .../feature/Scala3CodeActionLspSuite.scala | 4 + .../main/scala/tests/BaseAmmoniteSuite.scala | 4 +- .../scala/tests/BaseCompletionLspSuite.scala | 8 +- .../codeactions/BaseCodeActionLspSuite.scala | 4 + .../definition-scala3/example/Extension.scala | 2 +- .../example/ForComprehensions.scala | 6 +- .../example/NamedArguments.scala | 2 +- .../definition-scala3/example/Scalalib.scala | 18 +- .../example/StructuralTypes.scala | 8 +- .../example/LocalDeclarations.scala | 6 +- .../example/StructuralTypes.scala | 4 +- .../scala/tests/ToplevelLibrarySuite.scala | 5 +- .../troubleshoot/ProblemResolverSuite.scala | 7 - 21 files changed, 321 insertions(+), 329 deletions(-) diff --git a/build.sbt b/build.sbt index c1163fc0950..d58339831cc 100644 --- a/build.sbt +++ b/build.sbt @@ -244,7 +244,7 @@ lazy val mtagsShared = project crossVersion := CrossVersion.full, Compile / packageSrc / publishArtifact := true, Compile / scalacOptions ++= { - if (scalaVersion.value == V.scala3) + if (scalaVersion.value == V.lastPublishedScala3) List("-Yexplicit-nulls", "-language:unsafeNulls") else Nil }, @@ -370,7 +370,7 @@ lazy val mtags3 = project Compile / unmanagedSourceDirectories += (ThisBuild / baseDirectory).value / "mtags-shared" / "src" / "main" / "scala", Compile / unmanagedSourceDirectories += (ThisBuild / baseDirectory).value / "mtags-shared" / "src" / "main" / "scala-3", moduleName := "mtags3", - scalaVersion := V.scala3, + scalaVersion := V.lastPublishedScala3, target := (ThisBuild / baseDirectory).value / "mtags" / "target" / "target3", publish / skip := true, libraryDependencies += V.guava, diff --git a/metals/src/main/scala/scala/meta/internal/metals/MtagsResolver.scala b/metals/src/main/scala/scala/meta/internal/metals/MtagsResolver.scala index d3de41a2d88..26201f290a6 100644 --- a/metals/src/main/scala/scala/meta/internal/metals/MtagsResolver.scala +++ b/metals/src/main/scala/scala/meta/internal/metals/MtagsResolver.scala @@ -94,6 +94,8 @@ object MtagsResolver { "2.13.9" -> "1.3.3", "2.13.10" -> "1.3.3", "2.13.11" -> "1.3.5", + "3.2.2" -> "1.3.5", + "3.3.2" -> "1.3.5", ) class Default extends MtagsResolver { diff --git a/project/V.scala b/project/V.scala index 396dbd5b87e..2baf67fac87 100644 --- a/project/V.scala +++ b/project/V.scala @@ -5,16 +5,16 @@ object V { val scala211 = "2.11.12" val scala212 = "2.12.20" val scala213 = "2.13.15" - val scala3 = "3.3.3" + val lastPublishedScala3 = "3.3.3" + val scala3 = "3.3.4" // When you can add to removedScalaVersions in MtagsResolver.scala with the last released version - val scala3RC: Option[String] = None val sbtScala = "2.12.18" val ammonite212Version = "2.12.19" val ammonite213Version = "2.13.14" // Rules need to be manually updated to support val bazelScalaVersion = "2.13.12" - val ammonite3Version = "3.3.3" + val ammonite3Version = "3.3.4" val ammonite = "3.0.0-2-6342755f" val betterMonadicFor = "0.3.1" @@ -167,24 +167,16 @@ object V { // Scala 3 def nonDeprecatedScala3Versions = - Seq(scala3, "3.3.1") ++ scala3RC.toSeq - - // whenever version is removed please add it to MtagsResolver under last supported Metals version - def deprecatedScala3Versions = - Seq( - "3.3.2", // was a broken release - "3.2.2", - ) + Seq(lastPublishedScala3, "3.3.1") // NOTE if you had a new Scala Version make sure it's contained in quickPublishScalaVersions - def scala3Versions = nonDeprecatedScala3Versions ++ deprecatedScala3Versions + def scala3Versions = nonDeprecatedScala3Versions def supportedScalaVersions = scala2Versions ++ scala3Versions def nonDeprecatedScalaVersions = nonDeprecatedScala2Versions ++ nonDeprecatedScala3Versions - def deprecatedScalaVersions = - deprecatedScala2Versions ++ deprecatedScala3Versions + def deprecatedScalaVersions = deprecatedScala2Versions val quickPublishScalaVersions = Set( bazelScalaVersion, @@ -194,7 +186,6 @@ object V { ammonite212Version, scala213, ammonite213Version, - scala3, ammonite3Version, - ).toList ++ scala3RC.toList + ).toList } diff --git a/project/Welcome.scala b/project/Welcome.scala index a9bd961e4f4..c94a194779a 100644 --- a/project/Welcome.scala +++ b/project/Welcome.scala @@ -49,7 +49,7 @@ object Welcome { "publish Metals artifacts but with only limited set of Scala versions", ), UsefulTask( - s"++${V.scala3} mtags/publishLocal", + s"++${V.lastPublishedScala3} mtags/publishLocal", "publish changes for a single Scala version, especially useful if working on a feature inside mtags module." + " `publishLocal` will still need to be run before at least once.", ), diff --git a/tests/slow/src/test/scala/tests/feature/CompletionCrossLspSuite.scala b/tests/slow/src/test/scala/tests/feature/CompletionCrossLspSuite.scala index f817989eba8..bad7cd29447 100644 --- a/tests/slow/src/test/scala/tests/feature/CompletionCrossLspSuite.scala +++ b/tests/slow/src/test/scala/tests/feature/CompletionCrossLspSuite.scala @@ -191,10 +191,8 @@ class CompletionCrossLspSuite _ = assertNoDiagnostics() _ <- assertCompletion( "MyC@@", - """|MyClass1(): MyClass1 - |MyClass2(name: String): MyClass2 - |MyClass3 - foo - |MyClass3(name: String): Nothing + """|MyClass3 - foo + |MyClass3(name: String): Nothing - foo |""".stripMargin, filename = Some("a/src/main/scala/Main.scala"), ) diff --git a/tests/slow/src/test/scala/tests/feature/DefinitionCrossLspSuite.scala b/tests/slow/src/test/scala/tests/feature/DefinitionCrossLspSuite.scala index bf7fa4b1aea..94b0e6e195f 100644 --- a/tests/slow/src/test/scala/tests/feature/DefinitionCrossLspSuite.scala +++ b/tests/slow/src/test/scala/tests/feature/DefinitionCrossLspSuite.scala @@ -570,7 +570,7 @@ class DefinitionCrossLspSuite |Required: Int | val name: Int = "John" | ^^^^^^ - |a/src/main/scala/a/b/Bar.scala:4:3: error: Not found: Main + |a/src/main/scala/a/b/Bar.scala:4:3: error: Not found: Main - did you mean Math? or perhaps wait? | Main.name | ^^^^ |a/src/main/scala/a/b/c/OtherMain.scala:4:19: error: Found: ("Lemon" : String) diff --git a/tests/slow/src/test/scala/tests/feature/FileDecoderProviderLspSuite.scala b/tests/slow/src/test/scala/tests/feature/FileDecoderProviderLspSuite.scala index 498814cdc86..2a3a7ef87b7 100644 --- a/tests/slow/src/test/scala/tests/feature/FileDecoderProviderLspSuite.scala +++ b/tests/slow/src/test/scala/tests/feature/FileDecoderProviderLspSuite.scala @@ -646,54 +646,57 @@ object FileDecoderProviderLspSuite { } private val tastySingle = - s"""|Names: - | 0: ASTs - | 1: foo - | 2: bar - | 3: foo[Qualified . bar] - | 4: example - | 5: foo[Qualified . bar][Qualified . example] - | 6: Main - | 7: Main[ModuleClass] - | 8: - | 9: foo[Qualified . bar][Qualified . example][Qualified . Main] - | 10: foo[Qualified . bar][Qualified . example][Qualified . Main][ModuleClass] - | 11: [Signed Signature(List(),foo.bar.example.Main$$) @] - | 12: java - | 13: lang - | 14: java[Qualified . lang] - | 15: Object - | 16: java[Qualified . lang][Qualified . Object] - | 17: [Signed Signature(List(),java.lang.Object) @] - | 18: _ - | 19: Unit - | 20: scala - | 21: writeReplace - | 22: AnyRef - | 23: runtime - | 24: scala[Qualified . runtime] - | 25: ModuleSerializationProxy - | 26: scala[Qualified . runtime][Qualified . ModuleSerializationProxy] - | 27: Class - | 28: java[Qualified . lang][Qualified . Class] - | 29: [Signed Signature(List(java.lang.Class),scala.runtime.ModuleSerializationProxy) @] - | 30: SourceFile - | 31: annotation - | 32: scala[Qualified . annotation] - | 33: internal - | 34: scala[Qualified . annotation][Qualified . internal] - | 35: scala[Qualified . annotation][Qualified . internal][Qualified . SourceFile] - | 36: String - | 37: java[Qualified . lang][Qualified . String] - | 38: [Signed Signature(List(java.lang.String),scala.annotation.internal.SourceFile) @] - | 39: app/src/main/scala/Main.scala - | 40: Positions - | 41: Comments + s"""|Header: + | version: 28.3.0 + | tooling: Scala 3.3.4 + | UUID: 000af99d-8578-97d4-00fd-3ab11b2e95b0 | - |Trees: - |start = Addr(0), base = 344, current = Addr(0), end = Addr(101) - |101 bytes of AST, base = Addr(0) + |Names (307 bytes, starting from 35): + | 0: ASTs + | 1: foo + | 2: bar + | 3: foo[Qualified . bar] + | 4: example + | 5: foo[Qualified . bar][Qualified . example] + | 6: Main + | 7: Main[ModuleClass] + | 8: + | 9: foo[Qualified . bar][Qualified . example][Qualified . Main] + | 10: foo[Qualified . bar][Qualified . example][Qualified . Main][ModuleClass] + | 11: [Signed Signature(List(),foo.bar.example.Main$$) @] + | 12: java + | 13: lang + | 14: java[Qualified . lang] + | 15: Object + | 16: java[Qualified . lang][Qualified . Object] + | 17: [Signed Signature(List(),java.lang.Object) @] + | 18: _ + | 19: Unit + | 20: scala + | 21: writeReplace + | 22: AnyRef + | 23: runtime + | 24: scala[Qualified . runtime] + | 25: ModuleSerializationProxy + | 26: scala[Qualified . runtime][Qualified . ModuleSerializationProxy] + | 27: Class + | 28: java[Qualified . lang][Qualified . Class] + | 29: [Signed Signature(List(java.lang.Class),scala.runtime.ModuleSerializationProxy) @] + | 30: SourceFile + | 31: annotation + | 32: scala[Qualified . annotation] + | 33: internal + | 34: scala[Qualified . annotation][Qualified . internal] + | 35: scala[Qualified . annotation][Qualified . internal][Qualified . SourceFile] + | 36: String + | 37: java[Qualified . lang][Qualified . String] + | 38: [Signed Signature(List(java.lang.String),scala.annotation.internal.SourceFile) @] + | 39: app/src/main/scala/Main.scala + | 40: Positions + | 41: Comments | + | + |Trees (101 bytes, starting from 344): | 0: PACKAGE(99) | 2: TERMREFpkg 5 [foo[Qualified . bar][Qualified . example]] | 4: VALDEF(18) 6 [Main] @@ -749,69 +752,70 @@ object FileDecoderProviderLspSuite { | 99: STRINGconst 39 [app/src/main/scala/Main.scala] | 101: | - | 44 position bytes: - | lines: 3 - | line sizes: 23, 11, 0 - | positions: - | 0: 0 .. 35 - | 4: 24 .. 24 - | 7: 24 .. 24 - | 24: 24 .. 35 - | 27: 24 .. 24 - | 35: 31 .. 31 - | 44: 24 .. 24 - | 48: 24 .. 24 - | 52: 24 .. 24 - | 57: 31 .. 31 - | 61: 31 .. 31 - | 71: 31 .. 31 - | 77: 31 .. 31 - | 89: 24 .. 35 - | 95: 24 .. 24 - | 99: 24 .. 24 - | - | source paths: - | 0: app/src/main/scala/Main.scala + |Positions (44 bytes, starting from 447): + | lines: 3 + | line sizes: + | 23, 11, 0 + | positions: + | 0: 0 .. 35 + | 4: 24 .. 24 + | 7: 24 .. 24 + | 24: 24 .. 35 + | 27: 24 .. 24 + | 35: 31 .. 31 + | 44: 24 .. 24 + | 48: 24 .. 24 + | 52: 24 .. 24 + | 57: 31 .. 31 + | 61: 31 .. 31 + | 71: 31 .. 31 + | 77: 31 .. 31 + | 89: 24 .. 35 + | 95: 24 .. 24 + | 99: 24 .. 24 | - | - | 0 comment bytes: + | source paths: + | 0: 39 [app/src/main/scala/Main.scala] |""".stripMargin private val tastyMultiple = - s"""|Names: - | 0: ASTs - | 1: foo - | 2: bar - | 3: foo[Qualified . bar] - | 4: example - | 5: foo[Qualified . bar][Qualified . example] - | 6: Foo - | 7: - | 8: java - | 9: lang - | 10: java[Qualified . lang] - | 11: Object - | 12: java[Qualified . lang][Qualified . Object] - | 13: [Signed Signature(List(),java.lang.Object) @] - | 14: Unit - | 15: scala - | 16: SourceFile - | 17: annotation - | 18: scala[Qualified . annotation] - | 19: internal - | 20: scala[Qualified . annotation][Qualified . internal] - | 21: scala[Qualified . annotation][Qualified . internal][Qualified . SourceFile] - | 22: String - | 23: java[Qualified . lang][Qualified . String] - | 24: [Signed Signature(List(java.lang.String),scala.annotation.internal.SourceFile) @] - | 25: app/src/main/scala/Main.scala - | 26: Positions - | 27: Comments + s"""|Header: + | version: 28.3.0 + | tooling: Scala 3.3.4 + | UUID: 00c4e36f-58ab-50ea-00a1-598e5ec4df86 + | + |Names (208 bytes, starting from 35): + | 0: ASTs + | 1: foo + | 2: bar + | 3: foo[Qualified . bar] + | 4: example + | 5: foo[Qualified . bar][Qualified . example] + | 6: Foo + | 7: + | 8: java + | 9: lang + | 10: java[Qualified . lang] + | 11: Object + | 12: java[Qualified . lang][Qualified . Object] + | 13: [Signed Signature(List(),java.lang.Object) @] + | 14: Unit + | 15: scala + | 16: SourceFile + | 17: annotation + | 18: scala[Qualified . annotation] + | 19: internal + | 20: scala[Qualified . annotation][Qualified . internal] + | 21: scala[Qualified . annotation][Qualified . internal][Qualified . SourceFile] + | 22: String + | 23: java[Qualified . lang][Qualified . String] + | 24: [Signed Signature(List(java.lang.String),scala.annotation.internal.SourceFile) @] + | 25: app/src/main/scala/Main.scala + | 26: Positions + | 27: Comments | - |Trees: - |start = Addr(0), base = 245, current = Addr(0), end = Addr(48) - |48 bytes of AST, base = Addr(0) | + |Trees (48 bytes, starting from 245): | 0: PACKAGE(46) | 2: TERMREFpkg 5 [foo[Qualified . bar][Qualified . example]] | 4: TYPEDEF(42) 6 [Foo] @@ -838,169 +842,168 @@ object FileDecoderProviderLspSuite { | 46: STRINGconst 25 [app/src/main/scala/Main.scala] | 48: | - | 29 position bytes: - | lines: 4 - | line sizes: 23, 9, 9, 0 - | positions: - | 0: 0 .. 43 - | 4: 24 .. 33 - | 7: 24 .. 24 - | 15: 30 .. 30 - | 21: 24 .. 24 - | 25: 24 .. 24 - | 36: 24 .. 33 - | 42: 24 .. 24 - | 46: 24 .. 24 + |Positions (29 bytes, starting from 295): + | lines: 4 + | line sizes: + | 23, 9, 9, 0 + | positions: + | 0: 0 .. 43 + | 4: 24 .. 33 + | 7: 24 .. 24 + | 15: 30 .. 30 + | 21: 24 .. 24 + | 25: 24 .. 24 + | 36: 24 .. 33 + | 42: 24 .. 24 + | 46: 24 .. 24 | - | source paths: - | 0: app/src/main/scala/Main.scala - | - | - | 0 comment bytes: + | source paths: + | 0: 25 [app/src/main/scala/Main.scala] |""".stripMargin private val tastyToplevel = - s"""|Names: - | 0: ASTs - | 1: foo - | 2: bar - | 3: foo[Qualified . bar] - | 4: example - | 5: foo[Qualified . bar][Qualified . example] - | 6: Main$$package - | 7: Main$$package[ModuleClass] - | 8: - | 9: foo[Qualified . bar][Qualified . example][Qualified . Main$$package] - | 10: foo[Qualified . bar][Qualified . example][Qualified . Main$$package][ModuleClass] - | 11: [Signed Signature(List(),foo.bar.example.Main$$package$$) @] - | 12: java - | 13: lang - | 14: java[Qualified . lang] - | 15: Object - | 16: java[Qualified . lang][Qualified . Object] - | 17: [Signed Signature(List(),java.lang.Object) @] - | 18: _ - | 19: Unit - | 20: scala - | 21: writeReplace - | 22: AnyRef - | 23: runtime - | 24: scala[Qualified . runtime] - | 25: ModuleSerializationProxy - | 26: scala[Qualified . runtime][Qualified . ModuleSerializationProxy] - | 27: Class - | 28: java[Qualified . lang][Qualified . Class] - | 29: [Signed Signature(List(java.lang.Class),scala.runtime.ModuleSerializationProxy) @] - | 30: SourceFile - | 31: annotation - | 32: scala[Qualified . annotation] - | 33: internal - | 34: scala[Qualified . annotation][Qualified . internal] - | 35: scala[Qualified . annotation][Qualified . internal][Qualified . SourceFile] - | 36: String - | 37: java[Qualified . lang][Qualified . String] - | 38: [Signed Signature(List(java.lang.String),scala.annotation.internal.SourceFile) @] - | 39: app/src/main/scala/Main.scala - | 40: Positions - | 41: Comments - | - |Trees: - |start = Addr(0), base = 352, current = Addr(0), end = Addr(114) - |114 bytes of AST, base = Addr(0) - | - | 0: PACKAGE(112) - | 2: TERMREFpkg 5 [foo[Qualified . bar][Qualified . example]] - | 4: VALDEF(19) 6 [Main$$package] - | 7: IDENTtpt 7 [Main$$package[ModuleClass]] - | 9: TYPEREFsymbol 25 - | 11: TERMREFpkg 5 [foo[Qualified . bar][Qualified . example]] - | 13: APPLY(8) - | 15: SELECTin(6) 11 [[Signed Signature(List(),foo.bar.example.Main$$package$$) @]] - | 18: NEW - | 19: SHAREDterm 7 - | 21: SHAREDtype 9 - | 23: OBJECT - | 24: SYNTHETIC - | 25: TYPEDEF(87) 7 [Main$$package[ModuleClass]] - | 28: TEMPLATE(64) - | 30: APPLY(10) - | 32: SELECTin(8) 17 [[Signed Signature(List(),java.lang.Object) @]] - | 35: NEW - | 36: TYPEREF 15 [Object] - | 38: TERMREFpkg 14 [java[Qualified . lang]] - | 40: SHAREDtype 36 - | 42: SELFDEF 18 [_] - | 44: SINGLETONtpt - | 45: TERMREFsymbol 4 - | 47: SHAREDtype 11 - | 49: DEFDEF(7) 8 [] - | 52: EMPTYCLAUSE - | 53: TYPEREF 19 [Unit] - | 55: TERMREFpkg 20 [scala] - | 57: STABLE - | 58: DEFDEF(23) 21 [writeReplace] - | 61: EMPTYCLAUSE - | 62: TYPEREF 22 [AnyRef] - | 64: SHAREDtype 55 - | 66: APPLY(13) - | 68: SELECTin(8) 29 [[Signed Signature(List(java.lang.Class),scala.runtime.ModuleSerializationProxy) @]] - | 71: NEW - | 72: TYPEREF 25 [ModuleSerializationProxy] - | 74: TERMREFpkg 24 [scala[Qualified . runtime]] - | 76: SHAREDtype 72 - | 78: CLASSconst - | 79: SHAREDtype 45 - | 81: PRIVATE - | 82: SYNTHETIC - | 83: DEFDEF(9) 1 [foo] - | 86: EMPTYCLAUSE - | 87: IDENTtpt 19 [Unit] - | 89: TYPEREF 19 [Unit] - | 91: TERMREFpkg 20 [scala] - | 93: UNITconst - | 94: OBJECT - | 95: SYNTHETIC - | 96: ANNOTATION(16) - | 98: TYPEREF 30 [SourceFile] - | 100: TERMREFpkg 34 [scala[Qualified . annotation][Qualified . internal]] - | 102: APPLY(10) - | 104: SELECTin(6) 38 [[Signed Signature(List(java.lang.String),scala.annotation.internal.SourceFile) @]] - | 107: NEW - | 108: SHAREDtype 98 - | 110: SHAREDtype 98 - | 112: STRINGconst 39 [app/src/main/scala/Main.scala] - | 114: - | - | 50 position bytes: - | lines: 4 - | line sizes: 23, 11, 20, 0 - | positions: - | 0: 0 .. 56 - | 4: 36 .. 36 - | 7: 36 .. 36 - | 25: 36 .. 56 - | 28: 36 .. 56 - | 36: 36 .. 36 - | 45: 36 .. 36 - | 49: 36 .. 36 - | 53: 36 .. 36 - | 58: 36 .. 36 - | 62: 36 .. 36 - | 72: 36 .. 36 - | 78: 36 .. 36 - | 83: 36 .. 56 - | 87: 47 .. 51 - | 93: 54 .. 56 - | 102: 36 .. 56 - | 108: 36 .. 36 - | 112: 36 .. 36 - | - | source paths: - | 0: app/src/main/scala/Main.scala - | - | - | 0 comment bytes: - |""".stripMargin + """|Header: + | version: 28.3.0 + | tooling: Scala 3.3.4 + | UUID: 0086aea0-56eb-7ed4-0077-cbc6a31c7680 + | + |Names (315 bytes, starting from 35): + | 0: ASTs + | 1: foo + | 2: bar + | 3: foo[Qualified . bar] + | 4: example + | 5: foo[Qualified . bar][Qualified . example] + | 6: Main$package + | 7: Main$package[ModuleClass] + | 8: + | 9: foo[Qualified . bar][Qualified . example][Qualified . Main$package] + | 10: foo[Qualified . bar][Qualified . example][Qualified . Main$package][ModuleClass] + | 11: [Signed Signature(List(),foo.bar.example.Main$package$) @] + | 12: java + | 13: lang + | 14: java[Qualified . lang] + | 15: Object + | 16: java[Qualified . lang][Qualified . Object] + | 17: [Signed Signature(List(),java.lang.Object) @] + | 18: _ + | 19: Unit + | 20: scala + | 21: writeReplace + | 22: AnyRef + | 23: runtime + | 24: scala[Qualified . runtime] + | 25: ModuleSerializationProxy + | 26: scala[Qualified . runtime][Qualified . ModuleSerializationProxy] + | 27: Class + | 28: java[Qualified . lang][Qualified . Class] + | 29: [Signed Signature(List(java.lang.Class),scala.runtime.ModuleSerializationProxy) @] + | 30: SourceFile + | 31: annotation + | 32: scala[Qualified . annotation] + | 33: internal + | 34: scala[Qualified . annotation][Qualified . internal] + | 35: scala[Qualified . annotation][Qualified . internal][Qualified . SourceFile] + | 36: String + | 37: java[Qualified . lang][Qualified . String] + | 38: [Signed Signature(List(java.lang.String),scala.annotation.internal.SourceFile) @] + | 39: app/src/main/scala/Main.scala + | 40: Positions + | 41: Comments + | + | + |Trees (114 bytes, starting from 352): + | 0: PACKAGE(112) + | 2: TERMREFpkg 5 [foo[Qualified . bar][Qualified . example]] + | 4: VALDEF(19) 6 [Main$package] + | 7: IDENTtpt 7 [Main$package[ModuleClass]] + | 9: TYPEREFsymbol 25 + | 11: TERMREFpkg 5 [foo[Qualified . bar][Qualified . example]] + | 13: APPLY(8) + | 15: SELECTin(6) 11 [[Signed Signature(List(),foo.bar.example.Main$package$) @]] + | 18: NEW + | 19: SHAREDterm 7 + | 21: SHAREDtype 9 + | 23: OBJECT + | 24: SYNTHETIC + | 25: TYPEDEF(87) 7 [Main$package[ModuleClass]] + | 28: TEMPLATE(64) + | 30: APPLY(10) + | 32: SELECTin(8) 17 [[Signed Signature(List(),java.lang.Object) @]] + | 35: NEW + | 36: TYPEREF 15 [Object] + | 38: TERMREFpkg 14 [java[Qualified . lang]] + | 40: SHAREDtype 36 + | 42: SELFDEF 18 [_] + | 44: SINGLETONtpt + | 45: TERMREFsymbol 4 + | 47: SHAREDtype 11 + | 49: DEFDEF(7) 8 [] + | 52: EMPTYCLAUSE + | 53: TYPEREF 19 [Unit] + | 55: TERMREFpkg 20 [scala] + | 57: STABLE + | 58: DEFDEF(23) 21 [writeReplace] + | 61: EMPTYCLAUSE + | 62: TYPEREF 22 [AnyRef] + | 64: SHAREDtype 55 + | 66: APPLY(13) + | 68: SELECTin(8) 29 [[Signed Signature(List(java.lang.Class),scala.runtime.ModuleSerializationProxy) @]] + | 71: NEW + | 72: TYPEREF 25 [ModuleSerializationProxy] + | 74: TERMREFpkg 24 [scala[Qualified . runtime]] + | 76: SHAREDtype 72 + | 78: CLASSconst + | 79: SHAREDtype 45 + | 81: PRIVATE + | 82: SYNTHETIC + | 83: DEFDEF(9) 1 [foo] + | 86: EMPTYCLAUSE + | 87: IDENTtpt 19 [Unit] + | 89: TYPEREF 19 [Unit] + | 91: TERMREFpkg 20 [scala] + | 93: UNITconst + | 94: OBJECT + | 95: SYNTHETIC + | 96: ANNOTATION(16) + | 98: TYPEREF 30 [SourceFile] + | 100: TERMREFpkg 34 [scala[Qualified . annotation][Qualified . internal]] + | 102: APPLY(10) + | 104: SELECTin(6) 38 [[Signed Signature(List(java.lang.String),scala.annotation.internal.SourceFile) @]] + | 107: NEW + | 108: SHAREDtype 98 + | 110: SHAREDtype 98 + | 112: STRINGconst 39 [app/src/main/scala/Main.scala] + | 114: + | + |Positions (50 bytes, starting from 468): + | lines: 4 + | line sizes: + | 23, 11, 20, 0 + | positions: + | 0: 0 .. 56 + | 4: 36 .. 36 + | 7: 36 .. 36 + | 25: 36 .. 56 + | 28: 36 .. 56 + | 36: 36 .. 36 + | 45: 36 .. 36 + | 49: 36 .. 36 + | 53: 36 .. 36 + | 58: 36 .. 36 + | 62: 36 .. 36 + | 72: 36 .. 36 + | 78: 36 .. 36 + | 83: 36 .. 56 + | 87: 47 .. 51 + | 93: 54 .. 56 + | 102: 36 .. 56 + | 108: 36 .. 36 + | 112: 36 .. 36 + | + | source paths: + | 0: 39 [app/src/main/scala/Main.scala] + |""".stripMargin private val cfr = s"""|/* diff --git a/tests/slow/src/test/scala/tests/feature/ImportMissingSymbolCrossLspSuite.scala b/tests/slow/src/test/scala/tests/feature/ImportMissingSymbolCrossLspSuite.scala index fcb048e2721..e8588d6143e 100644 --- a/tests/slow/src/test/scala/tests/feature/ImportMissingSymbolCrossLspSuite.scala +++ b/tests/slow/src/test/scala/tests/feature/ImportMissingSymbolCrossLspSuite.scala @@ -258,7 +258,7 @@ class ImportMissingSymbolCrossLspSuite | } |} |""".stripMargin, - scalaVersion = V.scala3, + scalaVersion = "3.3.3", ) check( @@ -288,7 +288,7 @@ class ImportMissingSymbolCrossLspSuite |""".stripMargin, expectNoDiagnostics = false, filterAction = _.getTitle() == ImportMissingSymbol.title("A", "example.a"), - scalaVersion = V.scala3, + scalaVersion = "3.3.3", ) check( @@ -310,6 +310,6 @@ class ImportMissingSymbolCrossLspSuite |""".stripMargin, expectNoDiagnostics = false, filterAction = _.getTitle() == ImportMissingSymbol.title("A", "example.a"), - scalaVersion = V.scala3, + scalaVersion = "3.3.3", ) } diff --git a/tests/slow/src/test/scala/tests/feature/Scala3CodeActionLspSuite.scala b/tests/slow/src/test/scala/tests/feature/Scala3CodeActionLspSuite.scala index 325f16e0b3a..a93682e436f 100644 --- a/tests/slow/src/test/scala/tests/feature/Scala3CodeActionLspSuite.scala +++ b/tests/slow/src/test/scala/tests/feature/Scala3CodeActionLspSuite.scala @@ -710,6 +710,8 @@ class Scala3CodeActionLspSuite | |} |""".stripMargin, + // backport needed https://github.com/scalameta/metals/pull/6342 + assume = () => scalaVersion != "3.3.4", ) check( @@ -735,6 +737,8 @@ class Scala3CodeActionLspSuite | |} |""".stripMargin, + // backport needed https://github.com/scalameta/metals/pull/6342 + assume = () => scalaVersion != "3.3.4", ) check( diff --git a/tests/unit/src/main/scala/tests/BaseAmmoniteSuite.scala b/tests/unit/src/main/scala/tests/BaseAmmoniteSuite.scala index c1804b6b0ac..17fc6eed941 100644 --- a/tests/unit/src/main/scala/tests/BaseAmmoniteSuite.scala +++ b/tests/unit/src/main/scala/tests/BaseAmmoniteSuite.scala @@ -425,10 +425,10 @@ abstract class BaseAmmoniteSuite(scalaVersion: String) | ^^^^^ |""".stripMargin else - """errored.sc:15:25: error: Not found: type Fooz + """errored.sc:15:25: error: Not found: type Fooz - did you mean Foo? |val decodedFoo = decode[Fooz](json) | ^^^^ - |errored.sc:18:8: error: Not found: type Foozz + |errored.sc:18:8: error: Not found: type Foozz - did you mean Foo? |decode[Foozz](json) | ^^^^^ |""".stripMargin diff --git a/tests/unit/src/main/scala/tests/BaseCompletionLspSuite.scala b/tests/unit/src/main/scala/tests/BaseCompletionLspSuite.scala index ae5a764638f..1ac6d8de8cb 100644 --- a/tests/unit/src/main/scala/tests/BaseCompletionLspSuite.scala +++ b/tests/unit/src/main/scala/tests/BaseCompletionLspSuite.scala @@ -206,13 +206,12 @@ abstract class BaseCompletionLspSuite(name: String) extends BaseLspSuite(name) { |LongStream - java.util.stream |PrintStream - java.io |Stream - java.util.stream - |Stream - scala.collection.immutable |Stream scala.collection.immutable |StreamFilter - javax.xml.stream |StreamResult - javax.xml.transform.stream |StreamShape - scala.collection.convert.StreamExtensions |StreamSource - javax.xml.transform.stream - |Stream[A](elems: A*): CC[A] + |Stream[A](elems: A*): Stream[A] |""".stripMargin, ), scalaVersion, @@ -235,8 +234,9 @@ abstract class BaseCompletionLspSuite(name: String) extends BaseLspSuite(name) { |""".stripMargin, "3" -> """|TrieMap - scala.collection.concurrent - |TrieMap(k: K): V - |TrieMap[K, V](elems: (K, V)*): CC[K, V] + |TrieMap[K, V](elems: (K, V)*): TrieMap[K, V] - scala.collection.concurrent + |new TrieMap[K, V](hashf: Hashing[K], ef: Equiv[K]): TrieMap[K, V] - scala.collection.concurrent + |new TrieMap[K, V]: TrieMap[K, V] - scala.collection.concurrent |""".stripMargin, ), scalaVersion, diff --git a/tests/unit/src/main/scala/tests/codeactions/BaseCodeActionLspSuite.scala b/tests/unit/src/main/scala/tests/codeactions/BaseCodeActionLspSuite.scala index 078e4c0c384..f051f6a80fd 100644 --- a/tests/unit/src/main/scala/tests/codeactions/BaseCodeActionLspSuite.scala +++ b/tests/unit/src/main/scala/tests/codeactions/BaseCodeActionLspSuite.scala @@ -60,6 +60,7 @@ abstract class BaseCodeActionLspSuite( filterAction: CodeAction => Boolean = _ => true, overrideLayout: Option[String] = None, retryAction: Int = 0, + assume: () => Boolean = () => true, )(implicit loc: Location): Unit = { val scalacOptionsJson = if (scalacOptions.nonEmpty) @@ -90,6 +91,7 @@ abstract class BaseCodeActionLspSuite( expectError, filterAction, retryAction, + assume, ) } @@ -108,6 +110,7 @@ abstract class BaseCodeActionLspSuite( expectError: Boolean = false, filterAction: CodeAction => Boolean = _ => true, retryAction: Int = 0, + assumeFunc: () => Boolean = () => true, )(implicit loc: Location): Unit = { val files = FileLayout.mapFromString(layout) val (path, input) = files @@ -142,6 +145,7 @@ abstract class BaseCodeActionLspSuite( } } test(name) { + assume(assumeFunc()) cleanWorkspace() for { _ <- initialize(fullInput) diff --git a/tests/unit/src/test/resources/definition-scala3/example/Extension.scala b/tests/unit/src/test/resources/definition-scala3/example/Extension.scala index 14ee532340e..b22bee08ec9 100644 --- a/tests/unit/src/test/resources/definition-scala3/example/Extension.scala +++ b/tests/unit/src/test/resources/definition-scala3/example/Extension.scala @@ -1,6 +1,6 @@ package example -extension/**/ (i/*Extension.scala*/: Int/*Int.scala*/) def asString/*Extension.scala*/: String/*Predef.scala*/ = i/*Extension.scala*/.toString/*Object.java fallback to java.lang.Object#toString().*/ +extension/**/ (i/*Extension.scala*/: Int/*Int.scala*/) def asString/*Extension.scala*/: String/*Predef.scala*/ = i/*Extension.scala*/.toString/*Any.scala*/ extension/**/ (s/*Extension.scala*/: String/*Predef.scala*/) def asInt/*Extension.scala*/: Int/*Int.scala*/ = s/*Extension.scala*/.toInt/*StringOps.scala*/ diff --git a/tests/unit/src/test/resources/definition-scala3/example/ForComprehensions.scala b/tests/unit/src/test/resources/definition-scala3/example/ForComprehensions.scala index 53aa285f3d1..289880df2a5 100644 --- a/tests/unit/src/test/resources/definition-scala3/example/ForComprehensions.scala +++ b/tests/unit/src/test/resources/definition-scala3/example/ForComprehensions.scala @@ -7,7 +7,7 @@ class ForComprehensions/*ForComprehensions.scala*/ { if ( a/*ForComprehensions.semanticdb*/, b/*ForComprehensions.semanticdb*/,/*unexpected: local1*/ - ) == (1, 2) + ) ==/*Any.scala*/ (1, 2) ( c/*ForComprehensions.semanticdb*/, d/*ForComprehensions.semanticdb*/, @@ -17,14 +17,14 @@ class ForComprehensions/*ForComprehensions.scala*/ { b/*ForComprehensions.semanticdb*/, c/*ForComprehensions.semanticdb*/, d/*ForComprehensions.semanticdb*/,/*unexpected: local4*/ - ) == (1, 2, 3, 4) + ) ==/*Any.scala*/ (1, 2, 3, 4) e/*ForComprehensions.semanticdb*/ = ( a/*ForComprehensions.semanticdb*/, b/*ForComprehensions.semanticdb*/, c/*ForComprehensions.semanticdb*/, d/*ForComprehensions.semanticdb*/,/*unexpected: local4*/ ) - if e/*ForComprehensions.semanticdb*/ == (1, 2, 3, 4) + if e/*ForComprehensions.semanticdb*/ ==/*Any.scala*/ (1, 2, 3, 4) f/*ForComprehensions.semanticdb*/ <- List/*package.scala*/(e/*ForComprehensions.semanticdb*/) } yield { ( diff --git a/tests/unit/src/test/resources/definition-scala3/example/NamedArguments.scala b/tests/unit/src/test/resources/definition-scala3/example/NamedArguments.scala index 766f8a48768..5c4688b7993 100644 --- a/tests/unit/src/test/resources/definition-scala3/example/NamedArguments.scala +++ b/tests/unit/src/test/resources/definition-scala3/example/NamedArguments.scala @@ -3,7 +3,7 @@ package example case class User/*NamedArguments.scala*/( name/*NamedArguments.scala*/: String/*Predef.scala*/ = { // assert default values have occurrences - Map/*Predef.scala*/.toString/*Object.java fallback to java.lang.Object#toString().*/ + Map/*Predef.scala*/.toString/*Any.scala*/ } ) object NamedArguments/*NamedArguments.scala*/ { diff --git a/tests/unit/src/test/resources/definition-scala3/example/Scalalib.scala b/tests/unit/src/test/resources/definition-scala3/example/Scalalib.scala index 6b379d4299a..91255c87672 100644 --- a/tests/unit/src/test/resources/definition-scala3/example/Scalalib.scala +++ b/tests/unit/src/test/resources/definition-scala3/example/Scalalib.scala @@ -4,11 +4,11 @@ class Scalalib/*Scalalib.scala*/ { val nil/*Scalalib.scala*/ = List/*package.scala*/() val lst/*Scalalib.scala*/ = List/*package.scala*/[ ( - Nothing, - Null, - Singleton, - Any, - AnyRef, + Nothing/*Nothing.scala*/, + Null/*Null.scala*/, + Singleton/*Singleton.scala*/, + Any/*Any.scala*/, + AnyRef/*AnyRef.scala*/, AnyVal/*AnyVal.scala*/, Int/*Int.scala*/, Short/*Short.scala*/, @@ -17,10 +17,10 @@ class Scalalib/*Scalalib.scala*/ { Char/*Char.scala*/,/*unexpected: scala.Char#*/ ) ](null) - lst/*Scalalib.scala*/.isInstanceOf[Any] - lst/*Scalalib.scala*/.asInstanceOf[Any] - println/*Predef.scala*/(lst/*Scalalib.scala*/.##) + lst/*Scalalib.scala*/.isInstanceOf/*Any.scala*/[Any/*Any.scala*/] + lst/*Scalalib.scala*/.asInstanceOf/*Any.scala*/[Any/*Any.scala*/] + println/*Predef.scala*/(lst/*Scalalib.scala*/.##/*Any.scala*/) lst/*Scalalib.scala*/ ne/*Object.java fallback to java.lang.Object#*/ lst/*Scalalib.scala*/ lst/*Scalalib.scala*/ eq/*Object.java fallback to java.lang.Object#*/ lst/*Scalalib.scala*/ - lst/*Scalalib.scala*/ == lst/*Scalalib.scala*/ + lst/*Scalalib.scala*/ ==/*Any.scala*/ lst/*Scalalib.scala*/ } diff --git a/tests/unit/src/test/resources/definition-scala3/example/StructuralTypes.scala b/tests/unit/src/test/resources/definition-scala3/example/StructuralTypes.scala index 64f9e4ee738..e24f62d34bd 100644 --- a/tests/unit/src/test/resources/definition-scala3/example/StructuralTypes.scala +++ b/tests/unit/src/test/resources/definition-scala3/example/StructuralTypes.scala @@ -8,13 +8,13 @@ object StructuralTypes/*StructuralTypes.scala*/: def age/*StructuralTypes.semanticdb*/: Int/*Int.scala*/ } - val user/*StructuralTypes.scala*/ = null.asInstanceOf[User/*StructuralTypes.scala*/] - user/*StructuralTypes.scala*/./*unexpected: scala.reflect.Selectable#selectDynamic().*/name/*Selectable.scala*/ - user/*StructuralTypes.scala*/./*unexpected: scala.reflect.Selectable#selectDynamic().*/age/*Selectable.scala*/ + val user/*StructuralTypes.scala*/ = null.asInstanceOf/*Any.scala*/[User/*StructuralTypes.scala*/] + user/*StructuralTypes.scala*/.name/*Selectable.scala*/ + user/*StructuralTypes.scala*/.age/*Selectable.scala*/ val V/*StructuralTypes.scala*/: Object/*Object.java*/ { def scalameta/*StructuralTypes.semanticdb*/: String/*Predef.scala*/ } = new: def scalameta/*StructuralTypes.semanticdb*/ = "4.0" - V/*StructuralTypes.scala*/./*unexpected: scala.reflect.Selectable#selectDynamic().*/scalameta/*Selectable.scala*/ + V/*StructuralTypes.scala*/.scalameta/*Selectable.scala*/ end/**/ StructuralTypes/*StructuralTypes.scala*/ diff --git a/tests/unit/src/test/resources/semanticdb-scala3/example/LocalDeclarations.scala b/tests/unit/src/test/resources/semanticdb-scala3/example/LocalDeclarations.scala index e96cc68b63c..e12dae8f899 100644 --- a/tests/unit/src/test/resources/semanticdb-scala3/example/LocalDeclarations.scala +++ b/tests/unit/src/test/resources/semanticdb-scala3/example/LocalDeclarations.scala @@ -10,12 +10,12 @@ object LocalDeclarations/*example.nested.LocalDeclarations.*/: def create/*example.nested.LocalDeclarations.create().*/(): LocalDeclarations/*example.nested.LocalDeclarations#*/ = def bar/*local0*/(): Unit/*scala.Unit#*/ = () - val x/*local4*/ = /*local2*/new: - val x/*local1*/ = 2 + val x/*local4*/ = new: + /*local2*/val x/*local1*/ = 2 val y/*local7*/ = /*local5*/new Foo/*example.nested.Foo#*/ {} val yy/*local8*/ = y/*local7*/.y/*example.nested.Foo#y.*/ - /*local10*/new LocalDeclarations/*example.nested.LocalDeclarations#*/ with Foo/*example.nested.Foo#*/: + new /*local10*/LocalDeclarations/*example.nested.LocalDeclarations#*/ with Foo/*example.nested.Foo#*/: override def foo/*local9*/(): Unit/*scala.Unit#*/ = bar/*local0*/() diff --git a/tests/unit/src/test/resources/semanticdb-scala3/example/StructuralTypes.scala b/tests/unit/src/test/resources/semanticdb-scala3/example/StructuralTypes.scala index 75e10f85ce0..188528e7a2d 100644 --- a/tests/unit/src/test/resources/semanticdb-scala3/example/StructuralTypes.scala +++ b/tests/unit/src/test/resources/semanticdb-scala3/example/StructuralTypes.scala @@ -14,7 +14,7 @@ object StructuralTypes/*example.StructuralTypes.*/: val V/*example.StructuralTypes.V.*/: Object/*java.lang.Object#*/ { def scalameta/*local2*/: String/*scala.Predef.String#*/ - } = /*local4*/new: - def scalameta/*local3*/ = "4.0" + } = new: + /*local4*/def scalameta/*local3*/ = "4.0" V/*example.StructuralTypes.V.*/.scalameta/*scala.reflect.Selectable#selectDynamic().*/ end StructuralTypes/*example.StructuralTypes.*/ diff --git a/tests/unit/src/test/scala/tests/ToplevelLibrarySuite.scala b/tests/unit/src/test/scala/tests/ToplevelLibrarySuite.scala index a28dc94c88e..f8e66e77f10 100644 --- a/tests/unit/src/test/scala/tests/ToplevelLibrarySuite.scala +++ b/tests/unit/src/test/scala/tests/ToplevelLibrarySuite.scala @@ -17,10 +17,7 @@ class ToplevelLibrarySuite extends BaseSuite { val scala3TestClasspath: List[AbsolutePath] = Library.scala3.sources.entries val scala3ExclusionList: Set[String] = Set( - // [scalameta] erased modifier support isn't implemeneted yet - "/scala/CanThrow.scala", - // error in the parser - "/dotty/tools/dotc/transform/patmat/Space.scala", + "/scala/Singleton.scala" ) val scala2ExclusionList: Set[String] = Set( diff --git a/tests/unit/src/test/scala/tests/troubleshoot/ProblemResolverSuite.scala b/tests/unit/src/test/scala/tests/troubleshoot/ProblemResolverSuite.scala index fb2de3d3ec0..d3b4732527a 100644 --- a/tests/unit/src/test/scala/tests/troubleshoot/ProblemResolverSuite.scala +++ b/tests/unit/src/test/scala/tests/troubleshoot/ProblemResolverSuite.scala @@ -46,13 +46,6 @@ class ProblemResolverSuite extends FunSuite { UnsupportedScalaVersion("2.12.7").message, ) - checkRecommendation( - "deprecated-scala-version", - scalaVersion = "3.3.2", - DeprecatedScalaVersion("3.3.2").message, - scalacOpts = List("-Xsemanticdb"), - ) - checkRecommendation( "deprecated-removed-scala-version", scalaVersion = "2.12.9", From ddb67be5a3b751dddbd66579a7e9432fedb156fa Mon Sep 17 00:00:00 2001 From: Tomasz Godzik Date: Thu, 10 Oct 2024 13:42:11 +0200 Subject: [PATCH 3/3] improvement: Fixes for scalafix error and some warnings --- project/TestGroups.scala | 5 +-- project/V.scala | 2 +- .../ImportMissingSymbolCrossLspSuite.scala | 2 +- .../feature/WorksheetCrossLspSuite.scala | 11 ------ .../scala/tests/scalacli/ScalaCliSuite.scala | 36 +++++++++---------- .../BestEffortCompilationSuite.scala | 5 +-- .../scalafix/ScalafixProviderLspSuite.scala | 8 +++-- .../troubleshoot/ProblemResolverSuite.scala | 1 - 8 files changed, 31 insertions(+), 39 deletions(-) rename tests/unit/src/test/scala/tests/{best-effort => bestEffort}/BestEffortCompilationSuite.scala (98%) diff --git a/project/TestGroups.scala b/project/TestGroups.scala index 74668bc76b2..693beea4f5b 100644 --- a/project/TestGroups.scala +++ b/project/TestGroups.scala @@ -51,7 +51,8 @@ object TestGroups { "tests.inlayHints.InlayHintsHoverSuite", "tests.Java8Suite", "tests.RequestRegistrySuite", "tests.inlayHints.InlayHintsExpectSuite", "tests.worksheets.WorksheetInfiniteLoopSuite", "tests.TimeoutSuite", - "tests.SingleFileSuite", "tests.SupportedScalaSuite"), + "tests.SingleFileSuite", "tests.SupportedScalaSuite", + "tests.bestEffort.BestEffortCompilationSuite"), Set("tests.AmmoniteSuite", "tests.debug.BreakpointDapSuite", "tests.OnTypeFormattingSuite", "tests.ReferenceLspSuite", "tests.SuperMethodLspSuite", "tests.SyntaxErrorLspSuite", @@ -121,7 +122,7 @@ object TestGroups { "tests.decorations.SyntheticDecorationsExpectSuite", "tests.codeactions.ConvertSingleLineCommentLspSuite", "tests.ServerLivenessMonitorSuite", "tests.ResetWorkspaceLspSuite", - "tests.ToplevelWithInnerScala3Suite"), + "tests.ToplevelWithInnerScala3Suite", "tests.OutlineLspSuite"), ) } diff --git a/project/V.scala b/project/V.scala index 2baf67fac87..4f567cec787 100644 --- a/project/V.scala +++ b/project/V.scala @@ -186,6 +186,6 @@ object V { ammonite212Version, scala213, ammonite213Version, - ammonite3Version, + lastPublishedScala3, ).toList } diff --git a/tests/slow/src/test/scala/tests/feature/ImportMissingSymbolCrossLspSuite.scala b/tests/slow/src/test/scala/tests/feature/ImportMissingSymbolCrossLspSuite.scala index e8588d6143e..d1d121bbee6 100644 --- a/tests/slow/src/test/scala/tests/feature/ImportMissingSymbolCrossLspSuite.scala +++ b/tests/slow/src/test/scala/tests/feature/ImportMissingSymbolCrossLspSuite.scala @@ -164,7 +164,7 @@ class ImportMissingSymbolCrossLspSuite | val f = Future.successful(2) |} |""".stripMargin, - scalaVersion = "3.3.3", + scalaVersion = V.scala3, scalacOptions = List("-explain"), ) diff --git a/tests/slow/src/test/scala/tests/feature/WorksheetCrossLspSuite.scala b/tests/slow/src/test/scala/tests/feature/WorksheetCrossLspSuite.scala index 822c8eaa0f7..783e44da1ee 100644 --- a/tests/slow/src/test/scala/tests/feature/WorksheetCrossLspSuite.scala +++ b/tests/slow/src/test/scala/tests/feature/WorksheetCrossLspSuite.scala @@ -17,17 +17,6 @@ class Worksheet3LspSuite extends tests.BaseWorksheetLspSuite(V.scala3) { ) } -class LatestWorksheet3LspSuite - extends tests.BaseWorksheetLspSuite( - V.supportedScala3Versions - .sortWith(SemVer.isCompatibleVersion) - .reverse - .head - ) { - override def versionSpecificCodeToValidate: String = - """given str: String = """"" -} - class Worksheet3NextSuite extends tests.BaseWorksheetLspSuite(Worksheet3NextSuite.scala3Next) { override def versionSpecificCodeToValidate: String = diff --git a/tests/slow/src/test/scala/tests/scalacli/ScalaCliSuite.scala b/tests/slow/src/test/scala/tests/scalacli/ScalaCliSuite.scala index fc8a3aada43..9aacf3869c7 100644 --- a/tests/slow/src/test/scala/tests/scalacli/ScalaCliSuite.scala +++ b/tests/slow/src/test/scala/tests/scalacli/ScalaCliSuite.scala @@ -11,13 +11,13 @@ import scala.meta.internal.metals.MetalsEnrichments._ import scala.meta.internal.metals.ServerCommands import scala.meta.internal.metals.debug.TestDebugger import scala.meta.internal.metals.scalacli.ScalaCli -import scala.meta.internal.metals.{BuildInfo => V} import scala.meta.internal.mtags.CoursierComplete import org.eclipse.{lsp4j => l} import tests.FileLayout -class ScalaCliSuite extends BaseScalaCliSuite(V.scala3) { +// https://github.com/scalameta/metals/issues/6839 +class ScalaCliSuite extends BaseScalaCliSuite("3.3.3") { override protected def initializationOptions: Option[InitializationOptions] = Some( @@ -68,14 +68,14 @@ class ScalaCliSuite extends BaseScalaCliSuite(V.scala3) { completion <- server.completion( "MyTests.scala", - "//> using lib \"com.lihao@@yi::utest", + "//> using dep \"com.lihao@@yi::utest", ) _ = assertNoDiff(completion, "com.lihaoyi") completion <- server.completion( "MyTests.scala", - "//> using lib com.lihaoyi::pprin@@t", + "//> using dep com.lihaoyi::pprin@@t", ) _ = assertNoDiff( @@ -95,8 +95,8 @@ class ScalaCliSuite extends BaseScalaCliSuite(V.scala3) { s"""/MyTests.sc |#!/usr/bin/env -S scala-cli shebang --java-opt -Xms256m --java-opt -XX:MaxRAMPercentage=80 |//> using scala "$scalaVersion" - |//> using lib "com.lihaoyi::utest::0.7.10" - |//> using lib com.lihaoyi::pprint::0.6.6 + |//> using dep "com.lihaoyi::utest::0.7.10" + |//> using dep com.lihaoyi::pprint::0.6.6 | |import foo.Foo |import utest._ @@ -164,14 +164,14 @@ class ScalaCliSuite extends BaseScalaCliSuite(V.scala3) { completion <- server.completion( "MyTests.sc", - "//> using lib \"com.lihao@@yi::utest", + "//> using dep \"com.lihao@@yi::utest", ) _ = assertNoDiff(completion, "com.lihaoyi") completion <- server.completion( "MyTests.sc", - "//> using lib com.lihaoyi::pprin@@t", + "//> using dep com.lihaoyi::pprin@@t", ) _ = assertNoDiff( @@ -199,8 +199,8 @@ class ScalaCliSuite extends BaseScalaCliSuite(V.scala3) { "MyTests.sc", s"""|#!/usr/bin/env -S scala-cli shebang --java-opt -Xms256m --java-opt -XX:MaxRAMPercentage=80 |//> using scala "$scalaVersion" - |//> using lib "com.lihaoyi::utest::0.7.10" - |//> using lib com.lihaoyi::pprint::0.6.6 + |//> using dep "com.lihaoyi::utest::0.7.10" + |//> using dep com.lihaoyi::pprint::0.6.6 | |import foo.Foo |import utest._ @@ -225,8 +225,8 @@ class ScalaCliSuite extends BaseScalaCliSuite(V.scala3) { private val simpleFileLayout = s"""|/MyTests.scala |//> using scala "$scalaVersion" - |//> using lib "com.lihaoyi::utest::0.7.10" - |//> using lib com.lihaoyi::pprint::0.6.6 + |//> using dep "com.lihaoyi::utest::0.7.10" + |//> using dep com.lihaoyi::pprint::0.6.6 | |import foo.Foo |import utest._ @@ -333,7 +333,7 @@ class ScalaCliSuite extends BaseScalaCliSuite(V.scala3) { _ <- scalaCliInitialize(useBsp = false)( s"""|/inner/project.scala |//> using scala "$scalaVersion" - |//> using lib "com.lihaoyi::utest::0.8.1" + |//> using dep "com.lihaoyi::utest::0.8.1" |/inner/MyTests.scala |import utest._ | @@ -356,8 +356,8 @@ class ScalaCliSuite extends BaseScalaCliSuite(V.scala3) { _ <- scalaCliInitialize(useBsp = false)( s"""/scripts/MyTests.scala |//> using scala "$scalaVersion" - |//> using lib "com.lihaoyi::utest::0.7.10" - |//> using lib com.lihaoyi::pprint::0.6.6 + |//> using dep "com.lihaoyi::utest::0.7.10" + |//> using dep com.lihaoyi::pprint::0.6.6 | |import foo.Foo |import utest._ @@ -434,9 +434,9 @@ class ScalaCliSuite extends BaseScalaCliSuite(V.scala3) { for { _ <- initialize( s"""|/project.scala - |//> using scala "${V.scala3}" - |//> using lib "com.lihaoyi::utest::0.8.1" - |//> using lib "com.lihaoyi::pprint::0.8.1" + |//> using scala "${scalaVersion}" + |//> using dep "com.lihaoyi::utest::0.8.1" + |//> using dep "com.lihaoyi::pprint::0.8.1" | |/test/MyTests.scala | diff --git a/tests/unit/src/test/scala/tests/best-effort/BestEffortCompilationSuite.scala b/tests/unit/src/test/scala/tests/bestEffort/BestEffortCompilationSuite.scala similarity index 98% rename from tests/unit/src/test/scala/tests/best-effort/BestEffortCompilationSuite.scala rename to tests/unit/src/test/scala/tests/bestEffort/BestEffortCompilationSuite.scala index 158452f57f4..c9857d9f243 100644 --- a/tests/unit/src/test/scala/tests/best-effort/BestEffortCompilationSuite.scala +++ b/tests/unit/src/test/scala/tests/bestEffort/BestEffortCompilationSuite.scala @@ -1,4 +1,4 @@ -package tests.`best-effort` +package tests.bestEffort import scala.meta.internal.metals.MetalsServerConfig @@ -11,7 +11,8 @@ class BestEffortCompilationSuite override def serverConfig: MetalsServerConfig = super.serverConfig.copy(enableBestEffort = true) - override val scalaVersionConfig = s"\"scalaVersion\": \"${scalaVersion}\"" + override val scalaVersionConfig: String = + s"\"scalaVersion\": \"${scalaVersion}\"" override val saveAfterChanges: Boolean = true override val scala3Diagnostics: Boolean = true diff --git a/tests/unit/src/test/scala/tests/scalafix/ScalafixProviderLspSuite.scala b/tests/unit/src/test/scala/tests/scalafix/ScalafixProviderLspSuite.scala index 32764248f4f..584c9d354e3 100644 --- a/tests/unit/src/test/scala/tests/scalafix/ScalafixProviderLspSuite.scala +++ b/tests/unit/src/test/scala/tests/scalafix/ScalafixProviderLspSuite.scala @@ -310,8 +310,7 @@ class ScalafixProviderLspSuite extends BaseLspSuite("scalafix-provider") { test("amend-scalafix-conf") { cleanWorkspace() val newSettings = List( - "OrganizeImports.targetDialect = Scala3", - "OrganizeImports.removeUnused = false", + "OrganizeImports.targetDialect = Scala3" ) val amendScalafixConfRequest = Messages.ScalafixConfig.amendRequest( newSettings, @@ -322,7 +321,10 @@ class ScalafixProviderLspSuite extends BaseLspSuite("scalafix-provider") { client.showMessageRequestHandler = params => if (params.getMessage() == amendScalafixConfRequest.getMessage()) Some(Messages.ScalafixConfig.adjustScalafix) - else None + else { + scribe.error(s"Unexpected message: ${params.getMessage()}") + None + } for { _ <- initialize( diff --git a/tests/unit/src/test/scala/tests/troubleshoot/ProblemResolverSuite.scala b/tests/unit/src/test/scala/tests/troubleshoot/ProblemResolverSuite.scala index d3b4732527a..b97a64ccd00 100644 --- a/tests/unit/src/test/scala/tests/troubleshoot/ProblemResolverSuite.scala +++ b/tests/unit/src/test/scala/tests/troubleshoot/ProblemResolverSuite.scala @@ -13,7 +13,6 @@ import scala.meta.internal.metals.ScalaVersions import scala.meta.internal.metals.doctor.DeprecatedRemovedSbtVersion import scala.meta.internal.metals.doctor.DeprecatedRemovedScalaVersion import scala.meta.internal.metals.doctor.DeprecatedSbtVersion -import scala.meta.internal.metals.doctor.DeprecatedScalaVersion import scala.meta.internal.metals.doctor.FutureSbtVersion import scala.meta.internal.metals.doctor.FutureScalaVersion import scala.meta.internal.metals.doctor.MissingSourceRoot