@@ -317,69 +317,82 @@ final case class BuildOptions(
317
317
scalaOptions.defaultScalaVersion.getOrElse(Constants .defaultScalaVersion)
318
318
)
319
319
320
- val svOpt : Option [String ] = scalaOptions.scalaVersion match {
321
- case Some (MaybeScalaVersion (None )) =>
322
- None
323
- // Do not validate Scala version in offline mode
324
- case Some (MaybeScalaVersion (Some (svInput))) if internal.offline.getOrElse(false ) =>
325
- Some (svInput)
326
- // Do not validate Scala version if it is a default one
327
- case Some (MaybeScalaVersion (Some (svInput))) if defaultVersions.contains(svInput) =>
328
- Some (svInput)
329
- case Some (MaybeScalaVersion (Some (svInput))) =>
330
- val sv = value {
331
- svInput match {
332
- case sv if ScalaVersionUtil .scala3Lts.contains(sv) =>
333
- ScalaVersionUtil .validateStable(
334
- Constants .scala3LtsPrefix,
335
- cache,
336
- repositories
337
- )
338
- case sv if ScalaVersionUtil .scala2Lts.contains(sv) =>
339
- Left (new ScalaVersionError (
340
- s " Invalid Scala version: $sv. There is no official LTS version for Scala 2. "
341
- ))
342
- case sv if sv == ScalaVersionUtil .scala3Nightly =>
343
- ScalaVersionUtil .GetNightly .scala3(cache)
344
- case scala3NightlyNicknameRegex(threeSubBinaryNum) =>
345
- ScalaVersionUtil .GetNightly .scala3X(
346
- threeSubBinaryNum,
347
- cache
348
- )
349
- case vs if ScalaVersionUtil .scala213Nightly.contains(vs) =>
350
- ScalaVersionUtil .GetNightly .scala2(" 2.13" , cache)
351
- case sv if sv == ScalaVersionUtil .scala212Nightly =>
352
- ScalaVersionUtil .GetNightly .scala2(" 2.12" , cache)
353
- case versionString if ScalaVersionUtil .isScala3Nightly(versionString) =>
354
- ScalaVersionUtil .CheckNightly .scala3(
355
- versionString,
356
- cache
357
- )
358
- .map(_ => versionString)
359
- case versionString if ScalaVersionUtil .isScala2Nightly(versionString) =>
360
- ScalaVersionUtil .CheckNightly .scala2(
361
- versionString,
362
- cache
363
- )
364
- .map(_ => versionString)
365
- case versionString if versionString.exists(_.isLetter) =>
366
- ScalaVersionUtil .validateNonStable(
367
- versionString,
368
- cache,
369
- repositories
370
- )
371
- case versionString =>
372
- ScalaVersionUtil .validateStable(
373
- versionString,
374
- cache,
375
- repositories
376
- )
320
+ val svOpt : Option [String ] =
321
+ scalaOptions.scalaVersion -> scalaOptions.defaultScalaVersion match {
322
+ case (Some (MaybeScalaVersion (None )), _) =>
323
+ None
324
+ // Do not validate Scala version in offline mode
325
+ case (Some (MaybeScalaVersion (Some (svInput))), _) if internal.offline.getOrElse(false ) =>
326
+ Some (svInput)
327
+ // Do not validate Scala version if it is a default one
328
+ case (Some (MaybeScalaVersion (Some (svInput))), _) if defaultVersions.contains(svInput) =>
329
+ Some (svInput)
330
+ case (Some (MaybeScalaVersion (Some (svInput))), Some (predefinedScalaVersion))
331
+ if predefinedScalaVersion.startsWith(svInput) &&
332
+ (svInput == " 3" || svInput == Constants .scala3NextPrefix ||
333
+ svInput == " 2.13" || svInput == " 2.12" ) =>
334
+ Some (predefinedScalaVersion)
335
+ case (Some (MaybeScalaVersion (Some (svInput))), None )
336
+ if svInput == " 3" || svInput == Constants .scala3NextPrefix =>
337
+ Some (Constants .defaultScalaVersion)
338
+ case (Some (MaybeScalaVersion (Some (svInput))), None ) if svInput == " 2.13" =>
339
+ Some (Constants .defaultScala213Version)
340
+ case (Some (MaybeScalaVersion (Some (svInput))), None ) if svInput == " 2.12" =>
341
+ Some (Constants .defaultScala212Version)
342
+ case (Some (MaybeScalaVersion (Some (svInput))), _) =>
343
+ val sv = value {
344
+ svInput match {
345
+ case sv if ScalaVersionUtil .scala3Lts.contains(sv) =>
346
+ ScalaVersionUtil .validateStable(
347
+ Constants .scala3LtsPrefix,
348
+ cache,
349
+ repositories
350
+ )
351
+ case sv if ScalaVersionUtil .scala2Lts.contains(sv) =>
352
+ Left (new ScalaVersionError (
353
+ s " Invalid Scala version: $sv. There is no official LTS version for Scala 2. "
354
+ ))
355
+ case sv if sv == ScalaVersionUtil .scala3Nightly =>
356
+ ScalaVersionUtil .GetNightly .scala3(cache)
357
+ case scala3NightlyNicknameRegex(threeSubBinaryNum) =>
358
+ ScalaVersionUtil .GetNightly .scala3X(
359
+ threeSubBinaryNum,
360
+ cache
361
+ )
362
+ case vs if ScalaVersionUtil .scala213Nightly.contains(vs) =>
363
+ ScalaVersionUtil .GetNightly .scala2(" 2.13" , cache)
364
+ case sv if sv == ScalaVersionUtil .scala212Nightly =>
365
+ ScalaVersionUtil .GetNightly .scala2(" 2.12" , cache)
366
+ case versionString if ScalaVersionUtil .isScala3Nightly(versionString) =>
367
+ ScalaVersionUtil .CheckNightly .scala3(
368
+ versionString,
369
+ cache
370
+ )
371
+ .map(_ => versionString)
372
+ case versionString if ScalaVersionUtil .isScala2Nightly(versionString) =>
373
+ ScalaVersionUtil .CheckNightly .scala2(
374
+ versionString,
375
+ cache
376
+ )
377
+ .map(_ => versionString)
378
+ case versionString if versionString.exists(_.isLetter) =>
379
+ ScalaVersionUtil .validateNonStable(
380
+ versionString,
381
+ cache,
382
+ repositories
383
+ )
384
+ case versionString =>
385
+ ScalaVersionUtil .validateStable(
386
+ versionString,
387
+ cache,
388
+ repositories
389
+ )
390
+ }
377
391
}
378
- }
379
- Some (sv)
380
-
381
- case None => Some (scalaOptions.defaultScalaVersion.getOrElse(Constants .defaultScalaVersion))
382
- }
392
+ Some (sv)
393
+ case (None , Some (predefinedScalaVersion)) => Some (predefinedScalaVersion)
394
+ case _ => Some (Constants .defaultScalaVersion)
395
+ }
383
396
384
397
svOpt match {
385
398
case Some (scalaVersion) =>
0 commit comments