diff options
| author | Eduardo Broto <ebroto@tutanota.com> | 2020-04-25 23:52:36 +0200 |
|---|---|---|
| committer | Eduardo Broto <ebroto@tutanota.com> | 2020-04-26 21:27:29 +0200 |
| commit | ce50e42ed667eb3e3fe26f05881e7d312e503970 (patch) | |
| tree | a2619dc7e9502607d3fcf24aa27b962baba94857 | |
| parent | d24a1063958f8603463526b7a61f68648daec185 (diff) | |
Use the span of the attribute for the error message
| -rw-r--r-- | clippy_lints/src/attrs.rs | 4 | ||||
| -rw-r--r-- | tests/ui/mismatched_target_os.stderr | 124 |
2 files changed, 84 insertions, 44 deletions
diff --git a/clippy_lints/src/attrs.rs b/clippy_lints/src/attrs.rs index 0f77b3731f6..6431e0d6132 100644 --- a/clippy_lints/src/attrs.rs +++ b/clippy_lints/src/attrs.rs @@ -632,11 +632,11 @@ fn check_mismatched_target_os(cx: &EarlyContext<'_>, attr: &Attribute) { if attr.check_name(sym!(cfg)); if let Some(list) = attr.meta_item_list(); let mismatched = find_mismatched_target_os(&list); - if let Some((_, span)) = mismatched.iter().peekable().peek(); + if !mismatched.is_empty(); then { let mess = "operating system used in target family position"; - span_lint_and_then(cx, MISMATCHED_TARGET_OS, *span, &mess, |diag| { + span_lint_and_then(cx, MISMATCHED_TARGET_OS, attr.span, &mess, |diag| { // Avoid showing the unix suggestion multiple times in case // we have more than one mismatch for unix-like systems let mut unix_suggested = false; diff --git a/tests/ui/mismatched_target_os.stderr b/tests/ui/mismatched_target_os.stderr index 4b18227421c..9cc1439ccc8 100644 --- a/tests/ui/mismatched_target_os.stderr +++ b/tests/ui/mismatched_target_os.stderr @@ -1,161 +1,201 @@ error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:8:7 + --> $DIR/mismatched_target_os.rs:8:1 | LL | #[cfg(linux)] - | ^^^^^ help: try: `target_os = "linux"` + | ^^^^^^-----^^ + | | + | help: try: `target_os = "linux"` | = note: `-D clippy::mismatched-target-os` implied by `-D warnings` = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:11:7 + --> $DIR/mismatched_target_os.rs:11:1 | LL | #[cfg(freebsd)] - | ^^^^^^^ help: try: `target_os = "freebsd"` + | ^^^^^^-------^^ + | | + | help: try: `target_os = "freebsd"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:14:7 + --> $DIR/mismatched_target_os.rs:14:1 | LL | #[cfg(dragonfly)] - | ^^^^^^^^^ help: try: `target_os = "dragonfly"` + | ^^^^^^---------^^ + | | + | help: try: `target_os = "dragonfly"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:17:7 + --> $DIR/mismatched_target_os.rs:17:1 | LL | #[cfg(openbsd)] - | ^^^^^^^ help: try: `target_os = "openbsd"` + | ^^^^^^-------^^ + | | + | help: try: `target_os = "openbsd"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:20:7 + --> $DIR/mismatched_target_os.rs:20:1 | LL | #[cfg(netbsd)] - | ^^^^^^ help: try: `target_os = "netbsd"` + | ^^^^^^------^^ + | | + | help: try: `target_os = "netbsd"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:23:7 + --> $DIR/mismatched_target_os.rs:23:1 | LL | #[cfg(macos)] - | ^^^^^ help: try: `target_os = "macos"` + | ^^^^^^-----^^ + | | + | help: try: `target_os = "macos"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:26:7 + --> $DIR/mismatched_target_os.rs:26:1 | LL | #[cfg(ios)] - | ^^^ help: try: `target_os = "ios"` + | ^^^^^^---^^ + | | + | help: try: `target_os = "ios"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:29:7 + --> $DIR/mismatched_target_os.rs:29:1 | LL | #[cfg(android)] - | ^^^^^^^ help: try: `target_os = "android"` + | ^^^^^^-------^^ + | | + | help: try: `target_os = "android"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:32:7 + --> $DIR/mismatched_target_os.rs:32:1 | LL | #[cfg(emscripten)] - | ^^^^^^^^^^ help: try: `target_os = "emscripten"` + | ^^^^^^----------^^ + | | + | help: try: `target_os = "emscripten"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:35:7 + --> $DIR/mismatched_target_os.rs:35:1 | LL | #[cfg(fuchsia)] - | ^^^^^^^ help: try: `target_os = "fuchsia"` + | ^^^^^^-------^^ + | | + | help: try: `target_os = "fuchsia"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:38:7 + --> $DIR/mismatched_target_os.rs:38:1 | LL | #[cfg(haiku)] - | ^^^^^ help: try: `target_os = "haiku"` + | ^^^^^^-----^^ + | | + | help: try: `target_os = "haiku"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:41:7 + --> $DIR/mismatched_target_os.rs:41:1 | LL | #[cfg(illumos)] - | ^^^^^^^ help: try: `target_os = "illumos"` + | ^^^^^^-------^^ + | | + | help: try: `target_os = "illumos"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:44:7 + --> $DIR/mismatched_target_os.rs:44:1 | LL | #[cfg(l4re)] - | ^^^^ help: try: `target_os = "l4re"` + | ^^^^^^----^^ + | | + | help: try: `target_os = "l4re"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:47:7 + --> $DIR/mismatched_target_os.rs:47:1 | LL | #[cfg(redox)] - | ^^^^^ help: try: `target_os = "redox"` + | ^^^^^^-----^^ + | | + | help: try: `target_os = "redox"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:50:7 + --> $DIR/mismatched_target_os.rs:50:1 | LL | #[cfg(solaris)] - | ^^^^^^^ help: try: `target_os = "solaris"` + | ^^^^^^-------^^ + | | + | help: try: `target_os = "solaris"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:53:7 + --> $DIR/mismatched_target_os.rs:53:1 | LL | #[cfg(vxworks)] - | ^^^^^^^ help: try: `target_os = "vxworks"` + | ^^^^^^-------^^ + | | + | help: try: `target_os = "vxworks"` | = help: Did you mean `unix`? error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:58:7 + --> $DIR/mismatched_target_os.rs:58:1 | LL | #[cfg(cloudabi)] - | ^^^^^^^^ help: try: `target_os = "cloudabi"` + | ^^^^^^--------^^ + | | + | help: try: `target_os = "cloudabi"` error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:61:7 + --> $DIR/mismatched_target_os.rs:61:1 | LL | #[cfg(hermit)] - | ^^^^^^ help: try: `target_os = "hermit"` + | ^^^^^^------^^ + | | + | help: try: `target_os = "hermit"` error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:64:7 + --> $DIR/mismatched_target_os.rs:64:1 | LL | #[cfg(wasi)] - | ^^^^ help: try: `target_os = "wasi"` + | ^^^^^^----^^ + | | + | help: try: `target_os = "wasi"` error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:67:7 + --> $DIR/mismatched_target_os.rs:67:1 | LL | #[cfg(none)] - | ^^^^ help: try: `target_os = "none"` + | ^^^^^^----^^ + | | + | help: try: `target_os = "none"` error: operating system used in target family position - --> $DIR/mismatched_target_os.rs:71:28 + --> $DIR/mismatched_target_os.rs:71:1 | LL | #[cfg(all(not(any(windows, linux)), freebsd))] - | ^^^^^ + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: Did you mean `unix`? help: try |
