From 1cc6be2bccf7f1f33b90d6512e03868bbf09fca8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Warcho=C5=82?= Date: Thu, 13 Aug 2026 11:48:01 +0200 Subject: [PATCH] reject `//> using toolkit toolkitAliasOrOrg` with an error` --- repl/src/dotty/tools/repl/ReplDirectives.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/repl/src/dotty/tools/repl/ReplDirectives.scala b/repl/src/dotty/tools/repl/ReplDirectives.scala index 55429c2ae1c1..6e0c36646bc0 100644 --- a/repl/src/dotty/tools/repl/ReplDirectives.scala +++ b/repl/src/dotty/tools/repl/ReplDirectives.scala @@ -61,7 +61,10 @@ private[repl] object ReplDirectives: def toolkitCoordinates(coords: String): Option[List[String]] = val flavorAndVersion = coords.split(":", -1).toList match - case version :: Nil if version.nonEmpty => Some((ScalaToolkit.alias, version)) + // e.g. //> using toolkit typelevel would otherwise be treated as version `typelevel` + // and fail during resolution with a cryptic error, so we reject it early + case version :: Nil if version.nonEmpty && !toolkitsByFlavor.keySet.contains(version) => + Some((ScalaToolkit.alias, version)) case flavor :: version :: Nil if flavor.nonEmpty && version.nonEmpty => Some((flavor, version)) case _ => None flavorAndVersion.map: (flavor, rawVersion) =>