]> git.proxmox.com Git - rustc.git/blobdiff - src/tools/rustfmt/tests/target/issue-2179/one.rs
Update upstream source from tag 'upstream/1.52.1+dfsg1'
[rustc.git] / src / tools / rustfmt / tests / target / issue-2179 / one.rs
diff --git a/src/tools/rustfmt/tests/target/issue-2179/one.rs b/src/tools/rustfmt/tests/target/issue-2179/one.rs
new file mode 100644 (file)
index 0000000..3f98acc
--- /dev/null
@@ -0,0 +1,37 @@
+// rustfmt-version: One
+// rustfmt-error_on_line_overflow: false
+
+fn issue_2179() {
+    let (opts, rustflags, clear_env_rust_log) = {
+        // We mustn't lock configuration for the whole build process
+        let rls_config = rls_config.lock().unwrap();
+
+        let opts = CargoOptions::new(&rls_config);
+        trace!("Cargo compilation options:\n{:?}", opts);
+        let rustflags = prepare_cargo_rustflags(&rls_config);
+
+        // Warn about invalid specified bin target or package depending on current mode
+        // TODO: Return client notifications along with diagnostics to inform the user
+        if !rls_config.workspace_mode {
+            let cur_pkg_targets = ws.current().unwrap().targets();
+
+            if let &Some(ref build_bin) = rls_config.build_bin.as_ref() {
+                let mut bins = cur_pkg_targets.iter().filter(|x| x.is_bin());
+                if let None = bins.find(|x| x.name() == build_bin) {
+                    warn!(
+                        "cargo - couldn't find binary `{}` specified in `build_bin` configuration",
+                        build_bin
+                    );
+                }
+            }
+        } else {
+            for package in &opts.package {
+                if let None = ws.members().find(|x| x.name() == package) {
+                    warn!("cargo - couldn't find member package `{}` specified in `analyze_package` configuration", package);
+                }
+            }
+        }
+
+        (opts, rustflags, rls_config.clear_env_rust_log)
+    };
+}