rust-analyzer/crates
bors 38fa47fd79 Auto merge of #13290 - poliorcetics:multiple-targets, r=Veykril
Support multiple targets for checkOnSave (in conjunction with cargo 1.64.0+)

This PR adds support for the ability to pass multiple `--target` flags when using
`cargo` 1.64.0+.

## Questions

I needed to change the type of two configurations options, but I did not plurialize the names to
avoid too much churn, should I ?

## Zulip thread

https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/Issue.2013282.20.28supporting.20multiple.20targets.20with.201.2E64.2B.29

## Example

To see it working, on a macOS machine:

```sh
$ cd /tmp
$ cargo new cargo-multiple-targets-support-ra-test
$ cd !$
$ mkdir .cargo
$ echo '
[build]
target = [
    "aarch64-apple-darwin",
    "x86_64-apple-darwin",
]
' > .cargo/config.toml
$ echo '
fn main() {
    #[cfg(all(target_arch = "aarch64", target_os = "macos"))]
    {
        let a = std::fs::read_to_string("/tmp/test-read");
    }

    #[cfg(all(target_arch = "x86_64", target_os = "macos"))]
    {
        let a = std::fs::read_to_string("/tmp/test-read");
    }

    #[cfg(all(target_arch = "x86_64", target_os = "windows"))]
    {
        let a = std::fs::read_to_string("/tmp/test-read");
    }
}
' > src/main.rs
# launch your favorite editor with the version of RA from this PR
#
# You should see warnings under the first two `let a = ...` but not the third
```

## Screen

![Two panes of a terminal emulator, on the left pane is the main.rs file described above, with warnings for the first two let a = declaration, on the right pane is a display of the .cargo/config.toml, an ls of the current files in the directory and a call to cargo build to show the same warnings as in the editor on the left pane](https://user-images.githubusercontent.com/7951708/192122707-7a00606a-e581-4534-b9d5-b81c92694e8e.png)

Helps with #13282
2022-11-19 13:09:37 +00:00
..
base-db Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
cfg Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
flycheck feat: Support passing multiple targets to cargo (for Rust 1.64.0+) 2022-11-11 14:36:07 +01:00
hir Don't canonicalize self type when querying FnOnce signature 2022-11-08 18:05:07 +01:00
hir-def fix: Add trait alias grammar to rust.ungram 2022-11-11 15:25:15 +01:00
hir-expand Auto merge of #13548 - lowr:fix/tt-punct-spacing, r=Veykril 2022-11-11 12:19:30 +00:00
hir-ty fix: resolve inference variable before applying adjustments 2022-11-16 20:01:55 +09:00
ide Auto merge of #13604 - Veykril:hover-attr, r=Veykril 2022-11-11 12:48:48 +00:00
ide-assists Auto merge of #13641 - DesmondWillowbrook:fix-move-format-string, r=Veykril 2022-11-19 12:46:29 +00:00
ide-completion Strip comments and attributes off of all trait item completions 2022-11-15 12:41:39 +01:00
ide-db run cargo fmt 2022-11-19 15:08:32 +05:30
ide-diagnostics fix: Fix nested macro diagnostics pointing at macro expansion files 2022-11-19 10:32:32 +01:00
ide-ssr Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
limit Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
mbe Auto merge of #13548 - lowr:fix/tt-punct-spacing, r=Veykril 2022-11-11 12:19:30 +00:00
parser Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
paths Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
proc-macro-api Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
proc-macro-srv Update proc-macro-srv tests 2022-11-17 01:42:56 +09:00
proc-macro-srv-cli Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
proc-macro-test Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
profile Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
project-model Auto merge of #13290 - poliorcetics:multiple-targets, r=Veykril 2022-11-19 13:09:37 +00:00
rust-analyzer Auto merge of #13290 - poliorcetics:multiple-targets, r=Veykril 2022-11-19 13:09:37 +00:00
sourcegen Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
stdx Update several crates to bring support for the new Tier 3 Windows targets 2022-11-13 22:45:09 +01:00
syntax fix: Add trait alias grammar to rust.ungram 2022-11-11 15:25:15 +01:00
test-utils Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
text-edit Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
toolchain Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
tt Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
vfs Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00
vfs-notify Bump Cargo rust-version fields to latest stable 2022-11-07 12:59:51 +01:00