about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2024-08-07 14:36:22 +0200
committerLukas Wirth <lukastw97@gmail.com>2024-08-07 14:36:22 +0200
commitf1f048c9c9c7fe88de91f9759adc284f4bf6b1cf (patch)
tree337441e9d31e31269c606f97528e8fbbe3beb9eb
parentdbf2c126a30508fabb75eb03c8147efccd3ba11d (diff)
downloadrust-f1f048c9c9c7fe88de91f9759adc284f4bf6b1cf.tar.gz
rust-f1f048c9c9c7fe88de91f9759adc284f4bf6b1cf.zip
Fix cargo config get env parsing
-rw-r--r--src/tools/rust-analyzer/crates/project-model/src/env.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/tools/rust-analyzer/crates/project-model/src/env.rs b/src/tools/rust-analyzer/crates/project-model/src/env.rs
index 049acc290bb..ac7246acc59 100644
--- a/src/tools/rust-analyzer/crates/project-model/src/env.rs
+++ b/src/tools/rust-analyzer/crates/project-model/src/env.rs
@@ -90,10 +90,13 @@ fn parse_output_cargo_config_env(stdout: String) -> FxHashMap<String, String> {
     stdout
         .lines()
         .filter_map(|l| l.strip_prefix("env."))
-        .filter_map(|l| {
-            l.split_once(" = ")
-                // cargo used to report it with this, keep it for a couple releases around
-                .or_else(|| l.split_once(".value = "))
+        .filter_map(|l| l.split_once(" = "))
+        .filter_map(|(k, v)| {
+            if k.contains('.') {
+                k.strip_suffix(".value").zip(Some(v))
+            } else {
+                Some((k, v))
+            }
         })
         .map(|(key, value)| (key.to_owned(), value.trim_matches('"').to_owned()))
         .collect()