summaryrefslogtreecommitdiffstats
path: root/src/tools/rustfmt/tests/target/issue-2179/two.rs
blob: 96531509ea2dd336cd8e4d7d688d6c9adf3b035b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// rustfmt-version: Two
// 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)
    };
}