From 2a3b4b417c54f0e57b26f18f2249cf9ea3b397ea Mon Sep 17 00:00:00 2001 From: Eric Wieser Date: Fri, 14 Feb 2025 17:46:39 +0000 Subject: [PATCH] hack: permit `foo/bar/baz:version` in toolchain names This was legal (accidentally?) in previous elan version, and let me smuggle Bazel target names into the `lean-toolchain` files. https://xkcd.com/1172 obvious applies here. --- src/elan/toolchain.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/elan/toolchain.rs b/src/elan/toolchain.rs index 6fc77d0..85ce95f 100644 --- a/src/elan/toolchain.rs +++ b/src/elan/toolchain.rs @@ -41,7 +41,7 @@ pub struct ComponentStatus { pub struct UnresolvedToolchainDesc(pub ToolchainDesc); pub fn lookup_unresolved_toolchain_desc(cfg: &Cfg, name: &str) -> Result { - let pattern = r"^(?:([a-zA-Z0-9-_]+[/][a-zA-Z0-9-_]+)[:])?([a-zA-Z0-9-.]+)$"; + let pattern = r"^(?:((?:[a-zA-Z0-9-_]+[/])*[a-zA-Z0-9-_]+)[:])?([a-zA-Z0-9-.]+)$"; let re = Regex::new(pattern).unwrap(); if let Some(c) = re.captures(name) {