@@ -34,6 +34,7 @@ public enum ScalaVersion {
3434 v2_12_18 ("2.12.18" ),
3535 v2_12_19 ("2.12.19" ),
3636 v2_12_20 ("2.12.20" ),
37+ v2_12_21 ("2.12.21" ),
3738
3839 //2.13.x
3940 v2_13_0 ("2.13.0" ),
@@ -53,6 +54,8 @@ public enum ScalaVersion {
5354 v2_13_14 ("2.13.14" ),
5455 v2_13_15 ("2.13.15" ),
5556 v2_13_16 ("2.13.16" ),
57+ v2_13_17 ("2.13.17" ),
58+ v2_13_18 ("2.13.18" ),
5659
5760 //3.0.x
5861 v3_0_0 ("3.0.0" ),
@@ -75,6 +78,10 @@ public enum ScalaVersion {
7578 v3_3_1 ("3.3.1" ),
7679 v3_3_2 ("3.3.2" , false ),
7780 v3_3_3 ("3.3.3" ),
81+ v3_3_4 ("3.3.4" ),
82+ v3_3_5 ("3.3.5" ),
83+ v3_3_6 ("3.3.6" ),
84+ v3_3_7 ("3.3.7" ),
7885
7986 //3.4.x
8087 v3_4_0 ("3.4.0" ),
@@ -96,7 +103,16 @@ public enum ScalaVersion {
96103
97104 //3.7.x
98105 v3_7_0 ("3.7.0" ),
99- v3_7_1 ("3.7.1" );
106+ v3_7_1 ("3.7.1" ),
107+ v3_7_2 ("3.7.2" ),
108+ v3_7_3 ("3.7.3" ),
109+ v3_7_4 ("3.7.4" ),
110+
111+ //3.8.x
112+ v3_8_0 ("3.8.0" , false ), //https://www.scala-lang.org/blog/post-mortem-3.8.0.html
113+ v3_8_1 ("3.8.1" ),
114+ v3_8_2 ("3.8.2" ),
115+ v3_8_3 ("3.8.3" );
100116
101117 // When adding new entries here, don't forget to update ScalaHashes.
102118
@@ -135,14 +151,27 @@ private static Map<String, String> urls(String scalaVersion) {
135151 mapEntry (PluginScalaVersion .SCALA2_LIBRARY_URL , mavenCentralSearchScalaLibrary (scalaVersion ))
136152 );
137153 } else if (scalaVersion .startsWith ("3." )) {
138- return mapOf (
139- mapEntry (PluginScalaVersion .SCALA2_LIBRARY_URL , mavenCentralSearchScalaLibrary (latest_2_13 .getVersion ())),
140- mapEntry (PluginScalaVersion .SCALA2_REFLECT_URL , mavenCentralSearchScalaReflect (latest_2_13 .getVersion ())),
141- mapEntry (PluginScalaVersion .SCALA3_LIBRARY_URL , mavenCentralScala3LibraryAdditions (scalaVersion )),
142- mapEntry (PluginScalaVersion .TASTY_CORE_URL , mavenCentralScala3TastyCoreAdditions (scalaVersion ))
143- );
144- //TODO if Scala 3 ever stops depending on Scala 2.13, then we need to update this code!
145- //TODO as of Scala 3.4, the standard library might get new additions. we need to check whether this logic still works then.
154+ String [] majorMinorPatch = scalaVersion .split ("\\ ." );
155+ int major = Integer .parseInt (majorMinorPatch [0 ]);
156+ int minor = Integer .parseInt (majorMinorPatch [1 ]);
157+ int patch = Integer .parseInt (majorMinorPatch [2 ]);
158+ assert major == 3 ;
159+ if (minor < 8 ) {
160+ // Logic for Scala 3.0 to 3.7:
161+ return mapOf (
162+ mapEntry (PluginScalaVersion .SCALA2_LIBRARY_URL , mavenCentralSearchScalaLibrary (latest_2_13 .getVersion ())),
163+ mapEntry (PluginScalaVersion .SCALA2_REFLECT_URL , mavenCentralSearchScalaReflect (latest_2_13 .getVersion ())),
164+ mapEntry (PluginScalaVersion .SCALA3_LIBRARY_URL , mavenCentralScala3LibraryAdditions (scalaVersion )),
165+ mapEntry (PluginScalaVersion .TASTY_CORE_URL , mavenCentralScala3TastyCoreAdditions (scalaVersion ))
166+ );
167+ } else {
168+ // Logic for Scala 3.8 onwards:
169+ return mapOf (
170+ mapEntry (PluginScalaVersion .SCALA3_LIBRARY_URL , mavenCentralScala3Library (scalaVersion )),
171+ mapEntry (PluginScalaVersion .TASTY_CORE_URL , mavenCentralScala3TastyCoreAdditions (scalaVersion ))
172+ );
173+ }
174+ // TODO could there be a change of artifacts *again* in the future?
146175 } else {
147176 assert false : "Scala 4 not yet supported" ;
148177 return null ;
@@ -239,6 +268,7 @@ private static String mavenCentralScala3LibraryAdditions(String scalaVersion) {
239268 if ("3.0.0" .equals (scalaVersion )) {
240269 return "https://search.maven.org/remotecontent?filepath=org/scala-lang/scala3-library_" + scalaVersion + "-nonbootstrapped/" + scalaVersion + "/scala3-library_" + scalaVersion + "-nonbootstrapped-" + scalaVersion + ".jar" ;
241270 } else {
271+ // Scala 3.1.x - 3.7.x:
242272 return "https://search.maven.org/remotecontent?filepath=org/scala-lang/scala3-library_3/" + scalaVersion + "/scala3-library_3-" + scalaVersion + ".jar" ;
243273 }
244274 }
@@ -251,6 +281,11 @@ private static String mavenCentralScala3TastyCoreAdditions(String scalaVersion)
251281 }
252282 }
253283
284+ private static String mavenCentralScala3Library (String scalaVersion ) {
285+ // For Scala 3.8 onwards:
286+ return "https://repo1.maven.org/maven2/org/scala-lang/scala-library/" + scalaVersion + "/scala-library-" + scalaVersion + ".jar" ;
287+ }
288+
254289 //other possible artifacts:
255290 // scala3-staging
256291 // scala3-tasty-inspector
0 commit comments