commit 851f38e1ff3b0ac4a96fcb0ea94c79a7071f3777
Author: Zack Newman <zack@philomathiclife.com>
Date: Mon, 26 Jan 2026 14:37:21 -0700
init
Diffstat:
| A | .gitignore | | | 2 | ++ |
| A | Cargo.toml | | | 161 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | LICENSE-APACHE | | | 177 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | LICENSE-MIT | | | 20 | ++++++++++++++++++++ |
| A | README.md | | | 139 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.0.0.txt | | | 73 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.1.0.txt | | | 73 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.10.0.txt | | | 89 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.11.0.txt | | | 90 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.12.0.txt | | | 90 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.12.1.txt | | | 90 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.13.0.txt | | | 89 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.14.0.txt | | | 91 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.15.0.txt | | | 93 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.15.1.txt | | | 93 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.16.0.txt | | | 94 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.17.0.txt | | | 96 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.18.0.txt | | | 96 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.19.0.txt | | | 92 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.2.0.txt | | | 73 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.20.0.txt | | | 93 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.21.0.txt | | | 95 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.22.0.txt | | | 95 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.22.1.txt | | | 95 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.23.0.txt | | | 94 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.24.0.txt | | | 99 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.24.1.txt | | | 99 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.25.0.txt | | | 99 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.26.0.txt | | | 103 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.26.1.txt | | | 103 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.26.2.txt | | | 103 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.27.0.txt | | | 104 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.27.1.txt | | | 104 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.27.2.txt | | | 104 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.28.0.txt | | | 109 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.29.0.txt | | | 117 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.29.1.txt | | | 117 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.29.2.txt | | | 117 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.3.0.txt | | | 72 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.30.0.txt | | | 118 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.30.1.txt | | | 118 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.31.0.txt | | | 117 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.31.1.txt | | | 117 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.32.0.txt | | | 117 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.33.0.txt | | | 120 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.34.0.txt | | | 124 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.34.1.txt | | | 124 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.34.2.txt | | | 124 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.35.0.txt | | | 126 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.36.0.txt | | | 124 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.37.0.txt | | | 123 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.38.0.txt | | | 129 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.39.0.txt | | | 130 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.4.0.txt | | | 72 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.40.0.txt | | | 130 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.41.0.txt | | | 124 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.41.1.txt | | | 124 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.42.0.txt | | | 127 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.43.0.txt | | | 130 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.43.1.txt | | | 130 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.44.0.txt | | | 132 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.44.1.txt | | | 132 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.45.0.txt | | | 138 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.45.1.txt | | | 138 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.45.2.txt | | | 138 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.46.0.txt | | | 143 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.47.0.txt | | | 143 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.48.0.txt | | | 147 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.49.0.txt | | | 155 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.5.0.txt | | | 73 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.50.0.txt | | | 158 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.51.0.txt | | | 162 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.52.0.txt | | | 156 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.52.1.txt | | | 156 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.53.0.txt | | | 159 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.54.0.txt | | | 161 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.55.0.txt | | | 165 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.56.0.txt | | | 168 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.56.1.txt | | | 169 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.57.0.txt | | | 174 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.58.0.txt | | | 174 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.58.1.txt | | | 174 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.59.0.txt | | | 176 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.6.0.txt | | | 75 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.60.0.txt | | | 177 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.61.0.txt | | | 180 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.62.0.txt | | | 182 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.62.1.txt | | | 182 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.63.0.txt | | | 182 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.64.0.txt | | | 186 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.65.0.txt | | | 191 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.66.0.txt | | | 192 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.66.1.txt | | | 192 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.67.0.txt | | | 194 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.67.1.txt | | | 194 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.68.0.txt | | | 194 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.68.1.txt | | | 194 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.68.2.txt | | | 194 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.69.0.txt | | | 196 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.7.0.txt | | | 79 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.70.0.txt | | | 197 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.71.0.txt | | | 205 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.71.1.txt | | | 205 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.72.0.txt | | | 216 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.72.1.txt | | | 216 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.73.0.txt | | | 221 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.74.0.txt | | | 223 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.74.1.txt | | | 223 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.75.0.txt | | | 223 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.76.0.txt | | | 225 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.77.0.txt | | | 226 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.77.1.txt | | | 226 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.77.2.txt | | | 226 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.78.0.txt | | | 224 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.79.0.txt | | | 231 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.8.0.txt | | | 80 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.80.0.txt | | | 235 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.80.1.txt | | | 235 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.81.0.txt | | | 241 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.82.0.txt | | | 245 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.83.0.txt | | | 249 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.84.0.txt | | | 249 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.84.1.txt | | | 249 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.85.0.txt | | | 251 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.85.1.txt | | | 251 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.86.0.txt | | | 254 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.87.0.txt | | | 253 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.88.0.txt | | | 254 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.89.0.txt | | | 254 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.9.0.txt | | | 86 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.90.0.txt | | | 257 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.91.0.txt | | | 260 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.91.1.txt | | | 260 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.92.0.txt | | | 259 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | outputs/1.93.0.txt | | | 264 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | src/args.rs | | | 260 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | src/cmd.rs | | | 240 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | src/main.rs | | | 187 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | src/parse.rs | | | 688 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
139 files changed, 22114 insertions(+), 0 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -0,0 +1,2 @@
+Cargo.lock
+target/**
diff --git a/Cargo.toml b/Cargo.toml
@@ -0,0 +1,161 @@
+[package]
+authors = ["Zack Newman <zack@philomathiclife.com>"]
+categories = ["command-line-utilities", "development-tools", "rust-patterns"]
+description = "Writes [lints.rust] to stdout such that all lints are denied or allowed."
+documentation = "https://crates.io/crates/lints/"
+edition = "2024"
+keywords = ["lints", "rust"]
+license = "MIT OR Apache-2.0"
+name = "lints"
+readme = "README.md"
+repository = "https://git.philomathiclife.com/repos/lints/"
+rust-version = "1.89.0"
+version = "0.1.0"
+
+[lints.rust]
+deprecated-safe = { level = "deny", priority = -1 }
+future-incompatible = { level = "deny", priority = -1 }
+keyword-idents = { level = "deny", priority = -1 }
+let-underscore = { level = "deny", priority = -1 }
+nonstandard-style = { level = "deny", priority = -1 }
+refining-impl-trait = { level = "deny", priority = -1 }
+rust-2018-compatibility = { level = "deny", priority = -1 }
+rust-2018-idioms = { level = "deny", priority = -1 }
+rust-2021-compatibility = { level = "deny", priority = -1 }
+rust-2024-compatibility = { level = "deny", priority = -1 }
+unknown-or-malformed-diagnostic-attributes = { level = "deny", priority = -1 }
+unused = { level = "deny", priority = -1 }
+warnings = { level = "deny", priority = -1 }
+ambiguous-negative-literals = { level = "deny", priority = -1 }
+closure-returning-async-block = { level = "deny", priority = -1 }
+deprecated-in-future = { level = "deny", priority = -1 }
+deref-into-dyn-supertrait = { level = "deny", priority = -1 }
+ffi-unwind-calls = { level = "deny", priority = -1 }
+#fuzzy-provenance-casts = { level = "deny", priority = -1 }
+impl-trait-redundant-captures = { level = "deny", priority = -1 }
+linker-messages = { level = "deny", priority = -1 }
+#lossy-provenance-casts = { level = "deny", priority = -1 }
+macro-use-extern-crate = { level = "deny", priority = -1 }
+meta-variable-misuse = { level = "deny", priority = -1 }
+missing-copy-implementations = { level = "deny", priority = -1 }
+missing-debug-implementations = { level = "deny", priority = -1 }
+missing-docs = { level = "deny", priority = -1 }
+#multiple-supertrait-upcastable = { level = "deny", priority = -1 }
+#must-not-suspend = { level = "deny", priority = -1 }
+non-ascii-idents = { level = "deny", priority = -1 }
+#non-exhaustive-omitted-patterns = { level = "deny", priority = -1 }
+redundant-imports = { level = "deny", priority = -1 }
+redundant-lifetimes = { level = "deny", priority = -1 }
+#resolving-to-items-shadowing-supertrait-items = { level = "deny", priority = -1 }
+#shadowing-supertrait-items = { level = "deny", priority = -1 }
+single-use-lifetimes = { level = "deny", priority = -1 }
+trivial-casts = { level = "deny", priority = -1 }
+trivial-numeric-casts = { level = "deny", priority = -1 }
+unit-bindings = { level = "deny", priority = -1 }
+unnameable-types = { level = "deny", priority = -1 }
+#unqualified-local-imports = { level = "deny", priority = -1 }
+unreachable-pub = { level = "deny", priority = -1 }
+unsafe-code = { level = "deny", priority = -1 }
+unstable-features = { level = "deny", priority = -1 }
+unused-crate-dependencies = { level = "deny", priority = -1 }
+unused-import-braces = { level = "deny", priority = -1 }
+unused-lifetimes = { level = "deny", priority = -1 }
+unused-qualifications = { level = "deny", priority = -1 }
+unused-results = { level = "deny", priority = -1 }
+variant-size-differences = { level = "deny", priority = -1 }
+# Before publishing to crates.io, comment above and uncomment below.
+#warnings = { level = "allow", priority = -1 }
+#ambiguous-associated-items = { level = "allow", priority = -1 }
+#ambiguous-glob-imports = { level = "allow", priority = -1 }
+#arithmetic-overflow = { level = "allow", priority = -1 }
+#binary-asm-labels = { level = "allow", priority = -1 }
+#bindings-with-variant-name = { level = "allow", priority = -1 }
+#conflicting-repr-hints = { level = "allow", priority = -1 }
+#dangerous-implicit-autorefs = { level = "allow", priority = -1 }
+#default-overrides-default-fields = { level = "allow", priority = -1 }
+#dependency-on-unit-never-type-fallback = { level = "allow", priority = -1 }
+#deref-nullptr = { level = "allow", priority = -1 }
+#elided-lifetimes-in-associated-constant = { level = "allow", priority = -1 }
+#enum-intrinsics-non-enums = { level = "allow", priority = -1 }
+#explicit-builtin-cfgs-in-flags = { level = "allow", priority = -1 }
+#ill-formed-attribute-input = { level = "allow", priority = -1 }
+#incomplete-include = { level = "allow", priority = -1 }
+#ineffective-unstable-trait-impl = { level = "allow", priority = -1 }
+#invalid-atomic-ordering = { level = "allow", priority = -1 }
+#invalid-doc-attributes = { level = "allow", priority = -1 }
+#invalid-from-utf8-unchecked = { level = "allow", priority = -1 }
+#invalid-macro-export-arguments = { level = "allow", priority = -1 }
+#invalid-null-arguments = { level = "allow", priority = -1 }
+#invalid-reference-casting = { level = "allow", priority = -1 }
+#invalid-type-param-default = { level = "allow", priority = -1 }
+#legacy-derive-helpers = { level = "allow", priority = -1 }
+#let-underscore-lock = { level = "allow", priority = -1 }
+#long-running-const-eval = { level = "allow", priority = -1 }
+#macro-expanded-macro-exports-accessed-by-absolute-paths = { level = "allow", priority = -1 }
+#mutable-transmutes = { level = "allow", priority = -1 }
+#named-asm-labels = { level = "allow", priority = -1 }
+#never-type-fallback-flowing-into-unsafe = { level = "allow", priority = -1 }
+#no-mangle-const-items = { level = "allow", priority = -1 }
+#out-of-scope-macro-calls = { level = "allow", priority = -1 }
+#overflowing-literals = { level = "allow", priority = -1 }
+#patterns-in-fns-without-body = { level = "allow", priority = -1 }
+#proc-macro-derive-resolution-fallback = { level = "allow", priority = -1 }
+#pub-use-of-private-extern-crate = { level = "allow", priority = -1 }
+#repr-transparent-non-zst-fields = { level = "allow", priority = -1 }
+#semicolon-in-expressions-from-macros = { level = "allow", priority = -1 }
+#soft-unstable = { level = "allow", priority = -1 }
+#test-unstable-lint = { level = "allow", priority = -1 }
+#text-direction-codepoint-in-comment = { level = "allow", priority = -1 }
+#text-direction-codepoint-in-literal = { level = "allow", priority = -1 }
+#unconditional-panic = { level = "allow", priority = -1 }
+#undropped-manually-drops = { level = "allow", priority = -1 }
+#unknown-crate-types = { level = "allow", priority = -1 }
+#useless-deprecated = { level = "allow", priority = -1 }
+
+# Before publishing to crates.io, comment below.
+[lints.clippy]
+cargo = { level = "deny", priority = -1 }
+complexity = { level = "deny", priority = -1 }
+correctness = { level = "deny", priority = -1 }
+nursery = { level = "deny", priority = -1 }
+pedantic = { level = "deny", priority = -1 }
+perf = { level = "deny", priority = -1 }
+restriction = { level = "deny", priority = -1 }
+style = { level = "deny", priority = -1 }
+suspicious = { level = "deny", priority = -1 }
+# Noisy, opinionated, and likely don't prevent bugs or improve APIs.
+arbitrary_source_item_ordering = "allow"
+blanket_clippy_restriction_lints = "allow"
+implicit_return = "allow"
+min_ident_chars = "allow"
+missing_trait_methods = "allow"
+pub_with_shorthand = "allow"
+redundant_pub_crate = "allow"
+return_and_then = "allow"
+single_call_fn = "allow"
+single_char_lifetime_names = "allow"
+unseparated_literal_suffix = "allow"
+
+[package.metadata.docs.rs]
+default-target = "x86_64-unknown-linux-gnu"
+targets = [
+ "aarch64-apple-darwin",
+ "aarch64-pc-windows-msvc",
+ "aarch64-unknown-linux-gnu",
+ "i686-pc-windows-msvc",
+ "i686-unknown-linux-gnu",
+ "x86_64-pc-windows-gnu",
+ "x86_64-pc-windows-msvc",
+ "x86_64-unknown-freebsd",
+ "x86_64-unknown-linux-musl",
+ "x86_64-unknown-netbsd"
+]
+
+[target.'cfg(target_os = "openbsd")'.dependencies]
+priv_sep = { version = "3.0.0-alpha.4.0", default-features = false, features = ["std"] }
+
+[profile.release]
+codegen-units = 1
+lto = true
+panic = 'abort'
+strip = true
diff --git a/LICENSE-APACHE b/LICENSE-APACHE
@@ -0,0 +1,177 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
diff --git a/LICENSE-MIT b/LICENSE-MIT
@@ -0,0 +1,20 @@
+Copyright © 2026 Zack Newman
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+“Software”), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md
@@ -0,0 +1,139 @@
+CLI app for `rustc` lints
+=========================
+
+[<img alt="git" src="https://git.philomathiclife.com/badges/lints.svg" height="20">](https://git.philomathiclife.com/lints/log.html)
+[<img alt="crates.io" src="https://img.shields.io/crates/v/lints.svg?style=for-the-badge&color=fc8d62&logo=rust" height="20">](https://crates.io/crates/lints)
+
+`lints` is a CLI application that parses the output of [`rustc -Whelp`](https://doc.rust-lang.org/stable/rustc/)
+before writing the lints to `stdout` in a format that can be added to a TOML table, `lint.rustc` in `Cargo.toml`.
+
+## Why is this useful?
+
+Unlike [Clippy](https://doc.rust-lang.org/stable/clippy/index.html), many `rustc` lints are not members of at
+least one lint group which makes it easy for one to not enjoy the benefit of a lint they didn't know about it.
+`rustc` lints and lint groups change rather frequently, so it can be "annoying" to maintain a list of up-to-date
+lints.
+
+## Usage
+
+`lints [COMMAND] [OPTIONS]`
+
+## Commands
+
+* `allow`: Allows all lints.
+* `deny`: Denies all lints.
+* `help`: This message.
+* `version`: Prints version info.
+
+## Options
+
+* `--all`: Writes all individual lints even if they're already part of a lint group.
+* `--allow-undefined-lints`: Lint groups that contain undefined lints are allowed.
+
+When nothing or `deny` is passed, all lint groups and `allow`-by-default lints that are not part of a group
+are set to `deny`.
+When `allow` is passed, `"warnings"` and all `deny`-by-default lints are set to `allow`.
+`stdout` is written to in the format of the TOML table, `lints.rust`, which can be added to `Cargo.toml`.
+
+`--allow-undefined-lints` should rarely be necessary since the lints defined in a lint group per `rustc -Whelp`
+are almost always one of the lints listed. There have been exceptions though (e.g., `rustc 1.48.0` lists the
+lint group `"rustdoc"` containing the lint `"private-intra-doc-links"` despite that lint not being list in
+the table of lints).
+
+## `lints` in action
+
+```bash
+[zack@laptop ~]$ rustc -V
+rustc 1.93.0 (254b59607 2026-01-19)
+[zack@laptop ~]$ lints version
+lints 0.1.0
+[zack@laptop ~]$ lints
+deprecated-safe = { level = "deny", priority = -1 }
+future-incompatible = { level = "deny", priority = -1 }
+keyword-idents = { level = "deny", priority = -1 }
+let-underscore = { level = "deny", priority = -1 }
+nonstandard-style = { level = "deny", priority = -1 }
+refining-impl-trait = { level = "deny", priority = -1 }
+rust-2018-compatibility = { level = "deny", priority = -1 }
+rust-2018-idioms = { level = "deny", priority = -1 }
+rust-2021-compatibility = { level = "deny", priority = -1 }
+rust-2024-compatibility = { level = "deny", priority = -1 }
+unknown-or-malformed-diagnostic-attributes = { level = "deny", priority = -1 }
+unused = { level = "deny", priority = -1 }
+warnings = { level = "deny", priority = -1 }
+ambiguous-negative-literals = { level = "deny", priority = -1 }
+closure-returning-async-block = { level = "deny", priority = -1 }
+deprecated-in-future = { level = "deny", priority = -1 }
+deref-into-dyn-supertrait = { level = "deny", priority = -1 }
+ffi-unwind-calls = { level = "deny", priority = -1 }
+fuzzy-provenance-casts = { level = "deny", priority = -1 }
+impl-trait-redundant-captures = { level = "deny", priority = -1 }
+linker-messages = { level = "deny", priority = -1 }
+lossy-provenance-casts = { level = "deny", priority = -1 }
+macro-use-extern-crate = { level = "deny", priority = -1 }
+meta-variable-misuse = { level = "deny", priority = -1 }
+missing-copy-implementations = { level = "deny", priority = -1 }
+missing-debug-implementations = { level = "deny", priority = -1 }
+missing-docs = { level = "deny", priority = -1 }
+multiple-supertrait-upcastable = { level = "deny", priority = -1 }
+must-not-suspend = { level = "deny", priority = -1 }
+non-ascii-idents = { level = "deny", priority = -1 }
+non-exhaustive-omitted-patterns = { level = "deny", priority = -1 }
+redundant-imports = { level = "deny", priority = -1 }
+redundant-lifetimes = { level = "deny", priority = -1 }
+resolving-to-items-shadowing-supertrait-items = { level = "deny", priority = -1 }
+shadowing-supertrait-items = { level = "deny", priority = -1 }
+single-use-lifetimes = { level = "deny", priority = -1 }
+trivial-casts = { level = "deny", priority = -1 }
+trivial-numeric-casts = { level = "deny", priority = -1 }
+unit-bindings = { level = "deny", priority = -1 }
+unnameable-types = { level = "deny", priority = -1 }
+unqualified-local-imports = { level = "deny", priority = -1 }
+unreachable-pub = { level = "deny", priority = -1 }
+unsafe-code = { level = "deny", priority = -1 }
+unstable-features = { level = "deny", priority = -1 }
+unused-crate-dependencies = { level = "deny", priority = -1 }
+unused-import-braces = { level = "deny", priority = -1 }
+unused-lifetimes = { level = "deny", priority = -1 }
+unused-qualifications = { level = "deny", priority = -1 }
+unused-results = { level = "deny", priority = -1 }
+variant-size-differences = { level = "deny", priority = -1 }
+```
+
+## Minimum Supported Rust Version (MSRV)
+
+This will frequently be updated to be the same as stable. Specifically, any time stable is updated and that
+update has "useful" features or compilation no longer succeeds (e.g., due to new compiler lints), then MSRV
+will be updated.
+
+MSRV changes will correspond to a SemVer patch version bump pre-`1.0.0`; otherwise a minor version bump.
+
+## SemVer Policy
+
+* All on-by-default features of this library are covered by SemVer
+* MSRV is considered exempt from SemVer as noted above
+
+## License
+
+Licensed under either of
+
+* Apache License, Version 2.0 ([LICENSE-APACHE](https://www.apache.org/licenses/LICENSE-2.0))
+* MIT license ([LICENSE-MIT](https://opensource.org/licenses/MIT))
+
+at your option.
+
+## Contribution
+
+Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you,
+as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
+
+Before any PR is sent, `cargo clippy --all-targets` and `cargo test --all-targets` should be run using the stable
+and MSRV toolchains. One easy way to achieve this is by invoking [`ci-cargo`](https://crates.io/crates/ci-cargo)
+as `ci-cargo clippy --all-targets test --benches --bins --examples --tests` in the `lints` directory.
+
+Last, `cargo +nightly doc` should be run to ensure documentation can be built.
+
+### Status
+
+The crate is only tested on the `x86_64-unknown-linux-gnu`, `x86_64-unknown-openbsd`, and `aarch64-apple-darwin`
+targets; but it should work on most platforms.
diff --git a/outputs/1.0.0.txt b/outputs/1.0.0.txt
@@ -0,0 +1,73 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of #[deprecated] items
+ drop-with-repr-extern warn use of #[repr(C)] on a type that implements Drop
+ improper-ctypes warn proper use of libc types in foreign modules
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unsigned-negation warn using an unary minus operator on unsigned type
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.1.0.txt b/outputs/1.1.0.txt
@@ -0,0 +1,73 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of #[deprecated] items
+ drop-with-repr-extern warn use of #[repr(C)] on a type that implements Drop
+ improper-ctypes warn proper use of libc types in foreign modules
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unsigned-negation warn using an unary minus operator on unsigned type
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.10.0.txt b/outputs/1.10.0.txt
@@ -0,0 +1,89 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ drop-with-repr-extern warn use of #[repr(C)] on a type that implements Drop
+ hr-lifetime-in-assoc-type warn binding for associated type references higher-ranked lifetime that does not appear in the trait input types
+ illegal-floating-point-constant-pattern warn floating-point constants cannot be used in patterns
+ illegal-struct-or-enum-constant-pattern warn constants of struct or enum type can only be used in a pattern if the struct or enum has `#[derive(PartialEq, Eq)]`
+ improper-ctypes warn proper use of libc types in foreign modules
+ inaccessible-extern-crate warn use of inaccessible extern crate erroneously allowed
+ invalid-type-param-default warn type parameter default erroneously allowed in invalid location
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ object-unsafe-fragment warn object-unsafe non-principal fragments in object types were erroneously allowed
+ overflowing-literals warn literal out of range for its type
+ overlapping-inherent-impls warn two overlapping inherent impls define an item with the same name were erroneously allowed
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ stable-features warn stable features found in #[feature] directive
+ super-or-self-in-global-path warn detects super or self keywords at the beginning of global path
+ transmute-from-fn-item-types warn transmute from function item type to pointer-sized type erroneously allowed
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unsized-in-tuple warn unsized types in the interior of a tuple were erroneously allowed
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ match-of-unit-variant-via-paren-dotdot deny unit struct or enum variant erroneously allowed to match via path::ident(..)
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, inaccessible-extern-crate, invalid-type-param-default, super-or-self-in-global-path, match-of-unit-variant-via-paren-dotdot, transmute-from-fn-item-types, overlapping-inherent-impls, illegal-floating-point-constant-pattern, illegal-struct-or-enum-constant-pattern, unsized-in-tuple, object-unsafe-fragment, hr-lifetime-in-assoc-type
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.11.0.txt b/outputs/1.11.0.txt
@@ -0,0 +1,90 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ drop-with-repr-extern warn use of #[repr(C)] on a type that implements Drop
+ hr-lifetime-in-assoc-type warn binding for associated type references higher-ranked lifetime that does not appear in the trait input types
+ illegal-floating-point-constant-pattern warn floating-point constants cannot be used in patterns
+ illegal-struct-or-enum-constant-pattern warn constants of struct or enum type can only be used in a pattern if the struct or enum has `#[derive(PartialEq, Eq)]`
+ improper-ctypes warn proper use of libc types in foreign modules
+ inaccessible-extern-crate warn use of inaccessible extern crate erroneously allowed
+ invalid-type-param-default warn type parameter default erroneously allowed in invalid location
+ lifetime-underscore warn lifetimes or labels named `'_` were erroneously allowed
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ object-unsafe-fragment warn object-unsafe non-principal fragments in object types were erroneously allowed
+ overflowing-literals warn literal out of range for its type
+ overlapping-inherent-impls warn two overlapping inherent impls define an item with the same name were erroneously allowed
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ stable-features warn stable features found in #[feature] directive
+ super-or-self-in-global-path warn detects super or self keywords at the beginning of global path
+ transmute-from-fn-item-types warn transmute from function item type to pointer-sized type erroneously allowed
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unsized-in-tuple warn unsized types in the interior of a tuple were erroneously allowed
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ match-of-unit-variant-via-paren-dotdot deny unit struct or enum variant erroneously allowed to match via path::ident(..)
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, inaccessible-extern-crate, invalid-type-param-default, super-or-self-in-global-path, match-of-unit-variant-via-paren-dotdot, transmute-from-fn-item-types, overlapping-inherent-impls, illegal-floating-point-constant-pattern, illegal-struct-or-enum-constant-pattern, unsized-in-tuple, object-unsafe-fragment, hr-lifetime-in-assoc-type, lifetime-underscore
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.12.0.txt b/outputs/1.12.0.txt
@@ -0,0 +1,90 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ drop-with-repr-extern warn use of #[repr(C)] on a type that implements Drop
+ hr-lifetime-in-assoc-type warn binding for associated type references higher-ranked lifetime that does not appear in the trait input types
+ illegal-floating-point-constant-pattern warn floating-point constants cannot be used in patterns
+ illegal-struct-or-enum-constant-pattern warn constants of struct or enum type can only be used in a pattern if the struct or enum has `#[derive(PartialEq, Eq)]`
+ improper-ctypes warn proper use of libc types in foreign modules
+ inaccessible-extern-crate warn use of inaccessible extern crate erroneously allowed
+ invalid-type-param-default warn type parameter default erroneously allowed in invalid location
+ lifetime-underscore warn lifetimes or labels named `'_` were erroneously allowed
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ object-unsafe-fragment warn object-unsafe non-principal fragments in object types were erroneously allowed
+ overflowing-literals warn literal out of range for its type
+ overlapping-inherent-impls warn two overlapping inherent impls define an item with the same name were erroneously allowed
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ stable-features warn stable features found in #[feature] directive
+ super-or-self-in-global-path warn detects super or self keywords at the beginning of global path
+ transmute-from-fn-item-types warn transmute from function item type to pointer-sized type erroneously allowed
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unsized-in-tuple warn unsized types in the interior of a tuple were erroneously allowed
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ match-of-unit-variant-via-paren-dotdot deny unit struct or enum variant erroneously allowed to match via path::ident(..)
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, inaccessible-extern-crate, invalid-type-param-default, super-or-self-in-global-path, match-of-unit-variant-via-paren-dotdot, transmute-from-fn-item-types, overlapping-inherent-impls, illegal-floating-point-constant-pattern, illegal-struct-or-enum-constant-pattern, unsized-in-tuple, object-unsafe-fragment, hr-lifetime-in-assoc-type, lifetime-underscore
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.12.1.txt b/outputs/1.12.1.txt
@@ -0,0 +1,90 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ drop-with-repr-extern warn use of #[repr(C)] on a type that implements Drop
+ hr-lifetime-in-assoc-type warn binding for associated type references higher-ranked lifetime that does not appear in the trait input types
+ illegal-floating-point-constant-pattern warn floating-point constants cannot be used in patterns
+ illegal-struct-or-enum-constant-pattern warn constants of struct or enum type can only be used in a pattern if the struct or enum has `#[derive(PartialEq, Eq)]`
+ improper-ctypes warn proper use of libc types in foreign modules
+ inaccessible-extern-crate warn use of inaccessible extern crate erroneously allowed
+ invalid-type-param-default warn type parameter default erroneously allowed in invalid location
+ lifetime-underscore warn lifetimes or labels named `'_` were erroneously allowed
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ object-unsafe-fragment warn object-unsafe non-principal fragments in object types were erroneously allowed
+ overflowing-literals warn literal out of range for its type
+ overlapping-inherent-impls warn two overlapping inherent impls define an item with the same name were erroneously allowed
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ stable-features warn stable features found in #[feature] directive
+ super-or-self-in-global-path warn detects super or self keywords at the beginning of global path
+ transmute-from-fn-item-types warn transmute from function item type to pointer-sized type erroneously allowed
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unsized-in-tuple warn unsized types in the interior of a tuple were erroneously allowed
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ match-of-unit-variant-via-paren-dotdot deny unit struct or enum variant erroneously allowed to match via path::ident(..)
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, inaccessible-extern-crate, invalid-type-param-default, super-or-self-in-global-path, match-of-unit-variant-via-paren-dotdot, transmute-from-fn-item-types, overlapping-inherent-impls, illegal-floating-point-constant-pattern, illegal-struct-or-enum-constant-pattern, unsized-in-tuple, object-unsafe-fragment, hr-lifetime-in-assoc-type, lifetime-underscore
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.13.0.txt b/outputs/1.13.0.txt
@@ -0,0 +1,89 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ hr-lifetime-in-assoc-type warn binding for associated type references higher-ranked lifetime that does not appear in the trait input types
+ illegal-floating-point-constant-pattern warn floating-point constants cannot be used in patterns
+ illegal-struct-or-enum-constant-pattern warn constants of struct or enum type can only be used in a pattern if the struct or enum has `#[derive(PartialEq, Eq)]`
+ improper-ctypes warn proper use of libc types in foreign modules
+ inaccessible-extern-crate warn use of inaccessible extern crate erroneously allowed
+ invalid-type-param-default warn type parameter default erroneously allowed in invalid location
+ lifetime-underscore warn lifetimes or labels named `'_` were erroneously allowed
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ overlapping-inherent-impls warn two overlapping inherent impls define an item with the same name were erroneously allowed
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-extern-statics warn safe access to extern statics was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ super-or-self-in-global-path warn detects super or self keywords at the beginning of global path
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ match-of-unit-variant-via-paren-dotdot deny unit struct or enum variant erroneously allowed to match via path::ident(..)
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ transmute-from-fn-item-types deny transmute from function item type to pointer-sized type erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, inaccessible-extern-crate, invalid-type-param-default, super-or-self-in-global-path, match-of-unit-variant-via-paren-dotdot, transmute-from-fn-item-types, overlapping-inherent-impls, illegal-floating-point-constant-pattern, illegal-struct-or-enum-constant-pattern, hr-lifetime-in-assoc-type, lifetime-underscore, safe-extern-statics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.14.0.txt b/outputs/1.14.0.txt
@@ -0,0 +1,91 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-attr warn detects use of deprecated attributes
+ extra-requirement-in-impl warn detects extra requirements in impls that were erroneously allowed
+ hr-lifetime-in-assoc-type warn binding for associated type references higher-ranked lifetime that does not appear in the trait input types
+ improper-ctypes warn proper use of libc types in foreign modules
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-extern-statics warn safe access to extern statics was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ illegal-floating-point-constant-pattern deny floating-point constants cannot be used in patterns
+ illegal-struct-or-enum-constant-pattern deny constants of struct or enum type can only be used in a pattern if the struct or enum has `#[derive(PartialEq, Eq)]`
+ inaccessible-extern-crate deny use of inaccessible extern crate erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ lifetime-underscore deny lifetimes or labels named `'_` were erroneously allowed
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ overlapping-inherent-impls deny two overlapping inherent impls define an item with the same name were erroneously allowed
+ super-or-self-in-global-path deny detects super or self keywords at the beginning of global path
+ transmute-from-fn-item-types deny transmute from function item type to pointer-sized type erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, inaccessible-extern-crate, invalid-type-param-default, super-or-self-in-global-path, transmute-from-fn-item-types, overlapping-inherent-impls, illegal-floating-point-constant-pattern, illegal-struct-or-enum-constant-pattern, hr-lifetime-in-assoc-type, lifetime-underscore, safe-extern-statics, patterns-in-fns-without-body, extra-requirement-in-impl
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.15.0.txt b/outputs/1.15.0.txt
@@ -0,0 +1,93 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-attr warn detects use of deprecated attributes
+ extra-requirement-in-impl warn detects extra requirements in impls that were erroneously allowed
+ improper-ctypes warn proper use of libc types in foreign modules
+ legacy-directory-ownership warn non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports warn detects names that resolve to ambiguous glob imports with RFC 1560
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-extern-statics warn safe access to extern statics was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ hr-lifetime-in-assoc-type deny binding for associated type references higher-ranked lifetime that does not appear in the trait input types
+ illegal-floating-point-constant-pattern deny floating-point constants cannot be used in patterns
+ illegal-struct-or-enum-constant-pattern deny constants of struct or enum type can only be used in a pattern if the struct or enum has `#[derive(PartialEq, Eq)]`
+ inaccessible-extern-crate deny use of inaccessible extern crate erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ lifetime-underscore deny lifetimes or labels named `'_` were erroneously allowed
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ overlapping-inherent-impls deny two overlapping inherent impls define an item with the same name were erroneously allowed
+ super-or-self-in-global-path deny detects super or self keywords at the beginning of global path
+ transmute-from-fn-item-types deny transmute from function item type to pointer-sized type erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, inaccessible-extern-crate, invalid-type-param-default, super-or-self-in-global-path, transmute-from-fn-item-types, overlapping-inherent-impls, illegal-floating-point-constant-pattern, illegal-struct-or-enum-constant-pattern, hr-lifetime-in-assoc-type, lifetime-underscore, safe-extern-statics, patterns-in-fns-without-body, extra-requirement-in-impl, legacy-directory-ownership, legacy-imports
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.15.1.txt b/outputs/1.15.1.txt
@@ -0,0 +1,93 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-attr warn detects use of deprecated attributes
+ extra-requirement-in-impl warn detects extra requirements in impls that were erroneously allowed
+ improper-ctypes warn proper use of libc types in foreign modules
+ legacy-directory-ownership warn non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports warn detects names that resolve to ambiguous glob imports with RFC 1560
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-extern-statics warn safe access to extern statics was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ hr-lifetime-in-assoc-type deny binding for associated type references higher-ranked lifetime that does not appear in the trait input types
+ illegal-floating-point-constant-pattern deny floating-point constants cannot be used in patterns
+ illegal-struct-or-enum-constant-pattern deny constants of struct or enum type can only be used in a pattern if the struct or enum has `#[derive(PartialEq, Eq)]`
+ inaccessible-extern-crate deny use of inaccessible extern crate erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ lifetime-underscore deny lifetimes or labels named `'_` were erroneously allowed
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ overlapping-inherent-impls deny two overlapping inherent impls define an item with the same name were erroneously allowed
+ super-or-self-in-global-path deny detects super or self keywords at the beginning of global path
+ transmute-from-fn-item-types deny transmute from function item type to pointer-sized type erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, inaccessible-extern-crate, invalid-type-param-default, super-or-self-in-global-path, transmute-from-fn-item-types, overlapping-inherent-impls, illegal-floating-point-constant-pattern, illegal-struct-or-enum-constant-pattern, hr-lifetime-in-assoc-type, lifetime-underscore, safe-extern-statics, patterns-in-fns-without-body, extra-requirement-in-impl, legacy-directory-ownership, legacy-imports
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.16.0.txt b/outputs/1.16.0.txt
@@ -0,0 +1,94 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-attr warn detects use of deprecated attributes
+ improper-ctypes warn proper use of libc types in foreign modules
+ legacy-directory-ownership warn non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports warn detects names that resolve to ambiguous glob imports with RFC 1560
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-extern-statics warn safe access to extern statics was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ extra-requirement-in-impl deny detects extra requirements in impls that were erroneously allowed
+ hr-lifetime-in-assoc-type deny binding for associated type references higher-ranked lifetime that does not appear in the trait input types
+ illegal-floating-point-constant-pattern deny floating-point constants cannot be used in patterns
+ illegal-struct-or-enum-constant-pattern deny constants of struct or enum type can only be used in a pattern if the struct or enum has `#[derive(PartialEq, Eq)]`
+ inaccessible-extern-crate deny use of inaccessible extern crate erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ lifetime-underscore deny lifetimes or labels named `'_` were erroneously allowed
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ overlapping-inherent-impls deny two overlapping inherent impls define an item with the same name were erroneously allowed
+ super-or-self-in-global-path deny detects super or self keywords at the beginning of global path
+ transmute-from-fn-item-types deny transmute from function item type to pointer-sized type erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, inaccessible-extern-crate, invalid-type-param-default, super-or-self-in-global-path, transmute-from-fn-item-types, overlapping-inherent-impls, illegal-floating-point-constant-pattern, illegal-struct-or-enum-constant-pattern, hr-lifetime-in-assoc-type, lifetime-underscore, safe-extern-statics, patterns-in-fns-without-body, extra-requirement-in-impl, legacy-directory-ownership, legacy-imports
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.17.0.txt b/outputs/1.17.0.txt
@@ -0,0 +1,96 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-attr warn detects use of deprecated attributes
+ improper-ctypes warn proper use of libc types in foreign modules
+ legacy-directory-ownership warn non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports warn detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier warn detects missing fragment specifiers in unused `macro_rules!` patterns
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ resolve-trait-on-defaulted-unit warn attempt to resolve a trait on an expression whose type cannot be inferred but which currently defaults to ()
+ safe-extern-statics warn safe access to extern statics was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ extra-requirement-in-impl deny detects extra requirements in impls that were erroneously allowed
+ hr-lifetime-in-assoc-type deny binding for associated type references higher-ranked lifetime that does not appear in the trait input types
+ illegal-floating-point-constant-pattern deny floating-point constants cannot be used in patterns
+ illegal-struct-or-enum-constant-pattern deny constants of struct or enum type can only be used in a pattern if the struct or enum has `#[derive(PartialEq, Eq)]`
+ inaccessible-extern-crate deny use of inaccessible extern crate erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ lifetime-underscore deny lifetimes or labels named `'_` were erroneously allowed
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ overlapping-inherent-impls deny two overlapping inherent impls define an item with the same name were erroneously allowed
+ super-or-self-in-global-path deny detects super or self keywords at the beginning of global path
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, inaccessible-extern-crate, invalid-type-param-default, super-or-self-in-global-path, overlapping-inherent-impls, illegal-floating-point-constant-pattern, illegal-struct-or-enum-constant-pattern, hr-lifetime-in-assoc-type, lifetime-underscore, resolve-trait-on-defaulted-unit, safe-extern-statics, patterns-in-fns-without-body, extra-requirement-in-impl, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, missing-fragment-specifier
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.18.0.txt b/outputs/1.18.0.txt
@@ -0,0 +1,96 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-attr warn detects use of deprecated attributes
+ improper-ctypes warn proper use of libc types in foreign modules
+ legacy-directory-ownership warn non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports warn detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier warn detects missing fragment specifiers in unused `macro_rules!` patterns
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ resolve-trait-on-defaulted-unit warn attempt to resolve a trait on an expression whose type cannot be inferred but which currently defaults to ()
+ safe-extern-statics warn safe access to extern statics was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ extra-requirement-in-impl deny detects extra requirements in impls that were erroneously allowed
+ hr-lifetime-in-assoc-type deny binding for associated type references higher-ranked lifetime that does not appear in the trait input types
+ illegal-floating-point-constant-pattern deny floating-point constants cannot be used in patterns
+ illegal-struct-or-enum-constant-pattern deny constants of struct or enum type can only be used in a pattern if the struct or enum has `#[derive(PartialEq, Eq)]`
+ inaccessible-extern-crate deny use of inaccessible extern crate erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ lifetime-underscore deny lifetimes or labels named `'_` were erroneously allowed
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ overlapping-inherent-impls deny two overlapping inherent impls define an item with the same name were erroneously allowed
+ super-or-self-in-global-path deny detects super or self keywords at the beginning of global path
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, inaccessible-extern-crate, invalid-type-param-default, super-or-self-in-global-path, illegal-floating-point-constant-pattern, illegal-struct-or-enum-constant-pattern, hr-lifetime-in-assoc-type, lifetime-underscore, resolve-trait-on-defaulted-unit, safe-extern-statics, patterns-in-fns-without-body, extra-requirement-in-impl, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, missing-fragment-specifier
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.19.0.txt b/outputs/1.19.0.txt
@@ -0,0 +1,92 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-attr warn detects use of deprecated attributes
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ legacy-directory-ownership warn non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports warn detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier warn detects missing fragment specifiers in unused `macro_rules!` patterns
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ parenthesized-params-in-types-and-modules warn detects parenthesized generic parameters in type and module names
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ resolve-trait-on-defaulted-unit warn attempt to resolve a trait on an expression whose type cannot be inferred but which currently defaults to ()
+ safe-extern-statics warn safe access to extern statics was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ extra-requirement-in-impl deny detects extra requirements in impls that were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, extra-requirement-in-impl, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, resolve-trait-on-defaulted-unit, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.2.0.txt b/outputs/1.2.0.txt
@@ -0,0 +1,73 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of #[deprecated] items
+ drop-with-repr-extern warn use of #[repr(C)] on a type that implements Drop
+ improper-ctypes warn proper use of libc types in foreign modules
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unsigned-negation warn using an unary minus operator on unsigned type
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.20.0.txt b/outputs/1.20.0.txt
@@ -0,0 +1,93 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-attr warn detects use of deprecated attributes
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ extra-requirement-in-impl deny detects extra requirements in impls that were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports deny detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public reexports of private extern crates
+ resolve-trait-on-defaulted-unit deny attempt to resolve a trait on an expression whose type cannot be inferred but which currently defaults to ()
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, extra-requirement-in-impl, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, resolve-trait-on-defaulted-unit, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.21.0.txt b/outputs/1.21.0.txt
@@ -0,0 +1,95 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-attr warn detects use of deprecated attributes
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comment warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ extra-requirement-in-impl deny detects extra requirements in impls that were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports deny detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public reexports of private extern crates
+ resolve-trait-on-defaulted-unit deny attempt to resolve a trait on an expression whose type cannot be inferred but which currently defaults to ()
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, extra-requirement-in-impl, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, resolve-trait-on-defaulted-unit, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.22.0.txt b/outputs/1.22.0.txt
@@ -0,0 +1,95 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-attr warn detects use of deprecated attributes
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comment warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ extra-requirement-in-impl deny detects extra requirements in impls that were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports deny detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public reexports of private extern crates
+ resolve-trait-on-defaulted-unit deny attempt to resolve a trait on an expression whose type cannot be inferred but which currently defaults to ()
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, extra-requirement-in-impl, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, resolve-trait-on-defaulted-unit, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.22.1.txt b/outputs/1.22.1.txt
@@ -0,0 +1,95 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-attr warn detects use of deprecated attributes
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comment warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ extra-requirement-in-impl deny detects extra requirements in impls that were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports deny detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public reexports of private extern crates
+ resolve-trait-on-defaulted-unit deny attempt to resolve a trait on an expression whose type cannot be inferred but which currently defaults to ()
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, extra-requirement-in-impl, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, resolve-trait-on-defaulted-unit, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.23.0.txt b/outputs/1.23.0.txt
@@ -0,0 +1,94 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comment warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ auto-impl deny The form `impl Foo for .. {}` will be removed, please use `auto trait Foo {}`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports deny detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public reexports of private extern crates
+ resolve-trait-on-defaulted-unit deny attempt to resolve a trait on an expression whose type cannot be inferred but which currently defaults to ()
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible auto-impl, private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, resolve-trait-on-defaulted-unit, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comment, unused-extern-crates, unused-features, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.24.0.txt b/outputs/1.24.0.txt
@@ -0,0 +1,99 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ single-use-lifetime allow detects single use lifetimes
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incoherent-fundamental-impls warn potentially-conflicting impls were erroneously allowed
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comment warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ auto-impl deny The form `impl Foo for .. {}` will be removed, please use `auto trait Foo {}`
+ coerce-never deny detect coercion to !
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports deny detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public reexports of private extern crates
+ resolve-trait-on-defaulted-unit deny attempt to resolve a trait on an expression whose type cannot be inferred but which currently defaults to ()
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible auto-impl, private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, resolve-trait-on-defaulted-unit, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, coerce-never, tyvar-behind-raw-pointer
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comment, unused-extern-crates, unused-features, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.24.1.txt b/outputs/1.24.1.txt
@@ -0,0 +1,99 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ single-use-lifetime allow detects single use lifetimes
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incoherent-fundamental-impls warn potentially-conflicting impls were erroneously allowed
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comment warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ auto-impl deny The form `impl Foo for .. {}` will be removed, please use `auto trait Foo {}`
+ coerce-never deny detect coercion to !
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports deny detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public reexports of private extern crates
+ resolve-trait-on-defaulted-unit deny attempt to resolve a trait on an expression whose type cannot be inferred but which currently defaults to ()
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible auto-impl, private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, resolve-trait-on-defaulted-unit, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, coerce-never, tyvar-behind-raw-pointer
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comment, unused-extern-crates, unused-features, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.25.0.txt b/outputs/1.25.0.txt
@@ -0,0 +1,99 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetime-in-path allow hidden lifetime parameters are deprecated, try `Foo<'_>`
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ single-use-lifetime allow detects single use lifetimes
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incoherent-fundamental-impls warn potentially-conflicting impls were erroneously allowed
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comment warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ coerce-never deny detect coercion to !
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports deny detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ resolve-trait-on-defaulted-unit deny attempt to resolve a trait on an expression whose type cannot be inferred but which currently defaults to ()
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, resolve-trait-on-defaulted-unit, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, coerce-never, tyvar-behind-raw-pointer
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comment, unused-extern-crates, unused-features, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.26.0.txt b/outputs/1.26.0.txt
@@ -0,0 +1,103 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-object allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetime-in-path allow hidden lifetime parameters are deprecated, try `Foo<'_>`
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ single-use-lifetime allow detects single use lifetimes
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incoherent-fundamental-impls warn potentially-conflicting impls were erroneously allowed
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collision warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comment warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports deny detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ edition-2018 tyvar-behind-raw-pointer
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collision
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-idioms bare-trait-object, unreachable-pub
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comment, unused-extern-crates, unused-features, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.26.1.txt b/outputs/1.26.1.txt
@@ -0,0 +1,103 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-object allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetime-in-path allow hidden lifetime parameters are deprecated, try `Foo<'_>`
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ single-use-lifetime allow detects single use lifetimes
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incoherent-fundamental-impls warn potentially-conflicting impls were erroneously allowed
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collision warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comment warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports deny detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ edition-2018 tyvar-behind-raw-pointer
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collision
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-idioms bare-trait-object, unreachable-pub
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comment, unused-extern-crates, unused-features, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.26.2.txt b/outputs/1.26.2.txt
@@ -0,0 +1,103 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-object allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetime-in-path allow hidden lifetime parameters are deprecated, try `Foo<'_>`
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ single-use-lifetime allow detects single use lifetimes
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incoherent-fundamental-impls warn potentially-conflicting impls were erroneously allowed
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collision warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comment warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports deny detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ edition-2018 tyvar-behind-raw-pointer
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collision
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-idioms bare-trait-object, unreachable-pub
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comment, unused-extern-crates, unused-features, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.27.0.txt b/outputs/1.27.0.txt
@@ -0,0 +1,104 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetimes-in-paths allow hidden lifetime parameters are deprecated, try `Foo<'_>`
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ single-use-lifetimes allow detects single use lifetimes
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incoherent-fundamental-impls warn potentially-conflicting impls were erroneously allowed
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports deny detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-breakage tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-migration bare-trait-objects, unreachable-pub
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.27.1.txt b/outputs/1.27.1.txt
@@ -0,0 +1,104 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetimes-in-paths allow hidden lifetime parameters are deprecated, try `Foo<'_>`
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ single-use-lifetimes allow detects single use lifetimes
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incoherent-fundamental-impls warn potentially-conflicting impls were erroneously allowed
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports deny detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-breakage tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-migration bare-trait-objects, unreachable-pub
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.27.2.txt b/outputs/1.27.2.txt
@@ -0,0 +1,104 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetimes-in-paths allow hidden lifetime parameters are deprecated, try `Foo<'_>`
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ single-use-lifetimes allow detects single use lifetimes
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incoherent-fundamental-impls warn potentially-conflicting impls were erroneously allowed
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ legacy-imports deny detects names that resolve to ambiguous glob imports with RFC 1560
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-imports, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-breakage tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-migration bare-trait-objects, unreachable-pub
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.28.0.txt b/outputs/1.28.0.txt
@@ -0,0 +1,109 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetimes-in-paths allow hidden lifetime parameters are deprecated, try `Foo<'_>`
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ duplicate-associated-type-bindings warn warns about duplicate associated type bindings in generics
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn warn about documentation intra links resolution failure
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ incoherent-fundamental-impls deny potentially-conflicting impls were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, duplicate-associated-type-bindings
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unreachable-pub, unused-extern-crates
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.29.0.txt b/outputs/1.29.0.txt
@@ -0,0 +1,117 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ async-idents allow detects `async` being used as an identifier
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ ellipsis-inclusive-range-patterns allow `...` range patterns are deprecated
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ question-mark-macro-sep allow detects the use of `?` as a macro separator
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ duplicate-associated-type-bindings warn warns about duplicate associated type bindings in generics
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn warn about documentation intra links resolution failure
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-functions warn detects an function that cannot be named being marked as #[test]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ incoherent-fundamental-impls deny potentially-conflicting impls were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ irrefutable-let-patterns deny detects irrefutable patterns in if-let and while-let statements
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, async-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, duplicate-associated-type-bindings, proc-macro-derive-resolution-fallback, question-mark-macro-sep
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, async-idents, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, question-mark-macro-sep
+ rust-2018-idioms bare-trait-objects, unreachable-pub, unused-extern-crates, macro-use-extern-crate, elided-lifetimes-in-paths, ellipsis-inclusive-range-patterns
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.29.1.txt b/outputs/1.29.1.txt
@@ -0,0 +1,117 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ async-idents allow detects `async` being used as an identifier
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ ellipsis-inclusive-range-patterns allow `...` range patterns are deprecated
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ question-mark-macro-sep allow detects the use of `?` as a macro separator
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ duplicate-associated-type-bindings warn warns about duplicate associated type bindings in generics
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn warn about documentation intra links resolution failure
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-functions warn detects an function that cannot be named being marked as #[test]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ incoherent-fundamental-impls deny potentially-conflicting impls were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ irrefutable-let-patterns deny detects irrefutable patterns in if-let and while-let statements
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, async-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, duplicate-associated-type-bindings, proc-macro-derive-resolution-fallback, question-mark-macro-sep
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, async-idents, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, question-mark-macro-sep
+ rust-2018-idioms bare-trait-objects, unreachable-pub, unused-extern-crates, macro-use-extern-crate, elided-lifetimes-in-paths, ellipsis-inclusive-range-patterns
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.29.2.txt b/outputs/1.29.2.txt
@@ -0,0 +1,117 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ async-idents allow detects `async` being used as an identifier
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ ellipsis-inclusive-range-patterns allow `...` range patterns are deprecated
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ question-mark-macro-sep allow detects the use of `?` as a macro separator
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ duplicate-associated-type-bindings warn warns about duplicate associated type bindings in generics
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn warn about documentation intra links resolution failure
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-functions warn detects an function that cannot be named being marked as #[test]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ incoherent-fundamental-impls deny potentially-conflicting impls were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ irrefutable-let-patterns deny detects irrefutable patterns in if-let and while-let statements
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, async-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, duplicate-associated-type-bindings, proc-macro-derive-resolution-fallback, question-mark-macro-sep
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, async-idents, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, question-mark-macro-sep
+ rust-2018-idioms bare-trait-objects, unreachable-pub, unused-extern-crates, macro-use-extern-crate, elided-lifetimes-in-paths, ellipsis-inclusive-range-patterns
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.3.0.txt b/outputs/1.3.0.txt
@@ -0,0 +1,72 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of #[deprecated] items
+ drop-with-repr-extern warn use of #[repr(C)] on a type that implements Drop
+ improper-ctypes warn proper use of libc types in foreign modules
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.30.0.txt b/outputs/1.30.0.txt
@@ -0,0 +1,118 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ ellipsis-inclusive-range-patterns allow `...` range patterns are deprecated
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ question-mark-macro-sep allow detects the use of `?` as a macro separator
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ duplicate-associated-type-bindings warn warns about duplicate associated type bindings in generics
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn warn about documentation intra links resolution failure
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as #[test_case]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ incoherent-fundamental-impls deny potentially-conflicting impls were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ irrefutable-let-patterns deny detects irrefutable patterns in if-let and while-let statements
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, keyword-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, duplicate-associated-type-bindings, proc-macro-derive-resolution-fallback, question-mark-macro-sep, macro-expanded-macro-exports-accessed-by-absolute-paths
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, question-mark-macro-sep
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.30.1.txt b/outputs/1.30.1.txt
@@ -0,0 +1,118 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ ellipsis-inclusive-range-patterns allow `...` range patterns are deprecated
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ question-mark-macro-sep allow detects the use of `?` as a macro separator
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ duplicate-associated-type-bindings warn warns about duplicate associated type bindings in generics
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn warn about documentation intra links resolution failure
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as #[test_case]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ incoherent-fundamental-impls deny potentially-conflicting impls were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ irrefutable-let-patterns deny detects irrefutable patterns in if-let and while-let statements
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, keyword-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, duplicate-associated-type-bindings, proc-macro-derive-resolution-fallback, question-mark-macro-sep, macro-expanded-macro-exports-accessed-by-absolute-paths
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, question-mark-macro-sep
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.31.0.txt b/outputs/1.31.0.txt
@@ -0,0 +1,117 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ ellipsis-inclusive-range-patterns allow `...` range patterns are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow warn about missing code example in an item's documentation
+ question-mark-macro-sep allow detects the use of `?` as a macro separator
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ duplicate-associated-type-bindings warn warns about duplicate associated type bindings in generics
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn warn about documentation intra links resolution failure
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as #[test_case]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ incoherent-fundamental-impls deny potentially-conflicting impls were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ irrefutable-let-patterns deny detects irrefutable patterns in if-let and while-let statements
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, keyword-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, duplicate-associated-type-bindings, proc-macro-derive-resolution-fallback, question-mark-macro-sep, macro-expanded-macro-exports-accessed-by-absolute-paths
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, question-mark-macro-sep
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.31.1.txt b/outputs/1.31.1.txt
@@ -0,0 +1,117 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ ellipsis-inclusive-range-patterns allow `...` range patterns are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow warn about missing code example in an item's documentation
+ question-mark-macro-sep allow detects the use of `?` as a macro separator
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ duplicate-associated-type-bindings warn warns about duplicate associated type bindings in generics
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn warn about documentation intra links resolution failure
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as #[test_case]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ incoherent-fundamental-impls deny potentially-conflicting impls were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ irrefutable-let-patterns deny detects irrefutable patterns in if-let and while-let statements
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, keyword-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, duplicate-associated-type-bindings, proc-macro-derive-resolution-fallback, question-mark-macro-sep, macro-expanded-macro-exports-accessed-by-absolute-paths
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, question-mark-macro-sep
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.32.0.txt b/outputs/1.32.0.txt
@@ -0,0 +1,117 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ ellipsis-inclusive-range-patterns allow `...` range patterns are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow warn about missing code example in an item's documentation
+ private-doc-tests allow warn about doc test in private item
+ question-mark-macro-sep allow detects the use of `?` as a macro separator
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn warn about documentation intra links resolution failure
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as #[test_case]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ incoherent-fundamental-impls deny potentially-conflicting impls were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ irrefutable-let-patterns deny detects irrefutable patterns in if-let and while-let statements
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g. `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, keyword-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, proc-macro-derive-resolution-fallback, question-mark-macro-sep, macro-expanded-macro-exports-accessed-by-absolute-paths
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, question-mark-macro-sep
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.33.0.txt b/outputs/1.33.0.txt
@@ -0,0 +1,120 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ ellipsis-inclusive-range-patterns allow `...` range patterns are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ question-mark-macro-sep allow detects the use of `?` as a macro separator
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as #[test_case]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ incoherent-fundamental-impls deny potentially-conflicting impls were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g., `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, keyword-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, order-dependent-trait-objects, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, proc-macro-derive-resolution-fallback, question-mark-macro-sep, macro-expanded-macro-exports-accessed-by-absolute-paths
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, question-mark-macro-sep
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.34.0.txt b/outputs/1.34.0.txt
@@ -0,0 +1,124 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ ellipsis-inclusive-range-patterns allow `...` range patterns are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ question-mark-macro-sep allow detects the use of `?` as a macro separator
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-associated-items warn ambiguous associated items
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ ill-formed-attribute-input warn ill-formed attribute inputs that were previously accepted and used in practice
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ nested-impl-trait warn nested occurrence of `impl Trait` type
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as #[test_case]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ incoherent-fundamental-impls deny potentially-conflicting impls were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g., `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, keyword-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, order-dependent-trait-objects, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, proc-macro-derive-resolution-fallback, question-mark-macro-sep, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, ambiguous-associated-items, duplicate-matcher-binding-name, nested-impl-trait
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, question-mark-macro-sep
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.34.1.txt b/outputs/1.34.1.txt
@@ -0,0 +1,124 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ ellipsis-inclusive-range-patterns allow `...` range patterns are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ question-mark-macro-sep allow detects the use of `?` as a macro separator
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-associated-items warn ambiguous associated items
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ ill-formed-attribute-input warn ill-formed attribute inputs that were previously accepted and used in practice
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ nested-impl-trait warn nested occurrence of `impl Trait` type
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as #[test_case]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ incoherent-fundamental-impls deny potentially-conflicting impls were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g., `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, keyword-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, order-dependent-trait-objects, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, proc-macro-derive-resolution-fallback, question-mark-macro-sep, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, ambiguous-associated-items, duplicate-matcher-binding-name, nested-impl-trait
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, question-mark-macro-sep
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.34.2.txt b/outputs/1.34.2.txt
@@ -0,0 +1,124 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ ellipsis-inclusive-range-patterns allow `...` range patterns are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ question-mark-macro-sep allow detects the use of `?` as a macro separator
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-associated-items warn ambiguous associated items
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ ill-formed-attribute-input warn ill-formed attribute inputs that were previously accepted and used in practice
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ nested-impl-trait warn nested occurrence of `impl Trait` type
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as #[test_case]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ incoherent-fundamental-impls deny potentially-conflicting impls were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g., `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, keyword-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, order-dependent-trait-objects, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, proc-macro-derive-resolution-fallback, question-mark-macro-sep, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, ambiguous-associated-items, duplicate-matcher-binding-name, nested-impl-trait
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, question-mark-macro-sep
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.35.0.txt b/outputs/1.35.0.txt
@@ -0,0 +1,126 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ ellipsis-inclusive-range-patterns allow `...` range patterns are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ question-mark-macro-sep allow detects the use of `?` as a macro separator
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-associated-items warn ambiguous associated items
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ ill-formed-attribute-input warn ill-formed attribute inputs that were previously accepted and used in practice
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nested-impl-trait warn nested occurrence of `impl Trait` type
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as #[test_case]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ duplicate-matcher-binding-name deny duplicate macro matcher binding name
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ incoherent-fundamental-impls deny potentially-conflicting impls were erroneously allowed
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g., `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, keyword-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, incoherent-fundamental-impls, order-dependent-trait-objects, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, proc-macro-derive-resolution-fallback, question-mark-macro-sep, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, ambiguous-associated-items, duplicate-matcher-binding-name, nested-impl-trait, mutable-borrow-reservation-conflict
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, question-mark-macro-sep
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.36.0.txt b/outputs/1.36.0.txt
@@ -0,0 +1,124 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ bare-trait-objects allow suggest using `dyn Trait` for trait objects
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ ellipsis-inclusive-range-patterns allow `...` range patterns are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ question-mark-macro-sep allow detects the use of `?` as a macro separator
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ ill-formed-attribute-input warn ill-formed attribute inputs that were previously accepted and used in practice
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nested-impl-trait warn nested occurrence of `impl Trait` type
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as #[test_case]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g., `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, keyword-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, order-dependent-trait-objects, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, proc-macro-derive-resolution-fallback, question-mark-macro-sep, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, ambiguous-associated-items, nested-impl-trait, mutable-borrow-reservation-conflict
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, question-mark-macro-sep
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.37.0.txt b/outputs/1.37.0.txt
@@ -0,0 +1,123 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ ill-formed-attribute-input warn ill-formed attribute inputs that were previously accepted and used in practice
+ improper-ctypes warn proper use of libc types in foreign modules
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nested-impl-trait warn nested occurrence of `impl Trait` type
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in #[feature] directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as #[test_case]
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g., `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, keyword-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, order-dependent-trait-objects, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, ambiguous-associated-items, nested-impl-trait, mutable-borrow-reservation-conflict
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.38.0.txt b/outputs/1.38.0.txt
@@ -0,0 +1,129 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-`#[structural_match]` type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ ill-formed-attribute-input warn ill-formed attribute inputs that were previously accepted and used in practice
+ improper-ctypes warn proper use of libc types in foreign modules
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nested-impl-trait warn nested occurrence of `impl Trait` type
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g., `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, keyword-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, order-dependent-trait-objects, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, ambiguous-associated-items, nested-impl-trait, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.39.0.txt b/outputs/1.39.0.txt
@@ -0,0 +1,130 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-`#[structural_match]` type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ ill-formed-attribute-input warn ill-formed attribute inputs that were previously accepted and used in practice
+ improper-ctypes warn proper use of libc types in foreign modules
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nested-impl-trait warn nested occurrence of `impl Trait` type
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolon warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unions-with-drop-fields warn use of unions that contain fields with possibly non-trivial drop code
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g., `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible private-in-public, pub-use-of-private-extern-crate, patterns-in-fns-without-body, duplicate-macro-exports, keyword-idents, safe-extern-statics, invalid-type-param-default, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, illegal-floating-point-literal-pattern, anonymous-parameters, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, safe-packed-borrows, order-dependent-trait-objects, tyvar-behind-raw-pointer, unstable-name-collisions, absolute-paths-not-starting-with-crate, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, ambiguous-associated-items, nested-impl-trait, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility duplicate-macro-exports, keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.4.0.txt b/outputs/1.4.0.txt
@@ -0,0 +1,72 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of #[deprecated] items
+ drop-with-repr-extern warn use of #[repr(C)] on a type that implements Drop
+ improper-ctypes warn proper use of libc types in foreign modules
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.40.0.txt b/outputs/1.40.0.txt
@@ -0,0 +1,130 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-`#[structural_match]` type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-labels allow detects labels that are never used
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ ill-formed-attribute-input warn ill-formed attribute inputs that were previously accepted and used in practice
+ improper-ctypes warn proper use of libc types in foreign modules
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nested-impl-trait warn nested occurrence of `impl Trait` type
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ patterns-in-fns-without-body warn patterns in functions without body were erroneously allowed
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolon warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ const-err deny constant evaluation detected erroneous expression
+ duplicate-macro-exports deny detects duplicate macro exports
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-constructor-visibility deny detects use of struct constructors that would be invisible with new visibility rules
+ legacy-directory-ownership deny non-inline, non-`#[path]` modules (e.g., `mod foo;`) were erroneously allowed in some files not named `mod.rs`
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ parenthesized-params-in-types-and-modules deny detects parenthesized generic parameters in type and module names
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ safe-extern-statics deny safe access to extern statics was erroneously allowed
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-extern-statics, safe-packed-borrows, patterns-in-fns-without-body, legacy-directory-ownership, legacy-constructor-visibility, missing-fragment-specifier, parenthesized-params-in-types-and-modules, late-bound-lifetime-arguments, order-dependent-trait-objects, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, duplicate-macro-exports, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, ambiguous-associated-items, nested-impl-trait, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, duplicate-macro-exports
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.41.0.txt b/outputs/1.41.0.txt
@@ -0,0 +1,124 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-`#[structural_match]` type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolon warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ const-err deny constant evaluation detected erroneous expression
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.41.1.txt b/outputs/1.41.1.txt
@@ -0,0 +1,124 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-`#[structural_match]` type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolon warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ const-err deny constant evaluation detected erroneous expression
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.42.0.txt b/outputs/1.42.0.txt
@@ -0,0 +1,127 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-`#[structural_match]` type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolon warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation detected erroneous expression
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.43.0.txt b/outputs/1.43.0.txt
@@ -0,0 +1,130 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-`#[structural_match]` type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation detected erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, redundant-semicolons
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.43.1.txt b/outputs/1.43.1.txt
@@ -0,0 +1,130 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-`#[structural_match]` type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation detected erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, redundant-semicolons
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.44.0.txt b/outputs/1.44.0.txt
@@ -0,0 +1,132 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-structural-match type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-crate-level-docs allow detects crates with no crate-level documentation
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation detected erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.44.1.txt b/outputs/1.44.1.txt
@@ -0,0 +1,132 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-structural-match type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-crate-level-docs allow detects crates with no crate-level documentation
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were was erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation detected erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.45.0.txt b/outputs/1.45.0.txt
@@ -0,0 +1,138 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ confusable-idents allow detects visually confusable pairs between identifiers
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-structural-match type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-crate-level-docs allow detects crates with no crate-level documentation
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unaligned-references allow detects unaligned references to fields of packed structs
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ invalid-codeblock-attributes warn codeblock attribute looks a lot like a known one
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation detected erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, invalid-codeblock-attributes, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.45.1.txt b/outputs/1.45.1.txt
@@ -0,0 +1,138 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ confusable-idents allow detects visually confusable pairs between identifiers
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-structural-match type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-crate-level-docs allow detects crates with no crate-level documentation
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unaligned-references allow detects unaligned references to fields of packed structs
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ invalid-codeblock-attributes warn codeblock attribute looks a lot like a known one
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation detected erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, invalid-codeblock-attributes, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.45.2.txt b/outputs/1.45.2.txt
@@ -0,0 +1,138 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ confusable-idents allow detects visually confusable pairs between identifiers
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-structural-match type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-crate-level-docs allow detects crates with no crate-level documentation
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unaligned-references allow detects unaligned references to fields of packed structs
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ invalid-codeblock-attributes warn codeblock attribute looks a lot like a known one
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation detected erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, invalid-codeblock-attributes, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.46.0.txt b/outputs/1.46.0.txt
@@ -0,0 +1,143 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ clashing-extern-declarations allow detects when an extern fn has been declared with the same name but different types
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-structural-match type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-crate-level-docs allow detects crates with no crate-level documentation
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unaligned-references allow detects unaligned references to fields of packed structs
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ intra-doc-link-resolution-failure warn failures in resolving intra-doc link targets
+ invalid-codeblock-attributes warn codeblock attribute looks a lot like a known one
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation detected erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable, cenum-impl-drop-cast, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc intra-doc-link-resolution-failure, invalid-codeblock-attributes, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.47.0.txt b/outputs/1.47.0.txt
@@ -0,0 +1,143 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ indirect-structural-match allow pattern with const indirectly referencing non-structural-match type
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-crate-level-docs allow detects crates with no crate-level documentation
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unaligned-references allow detects unaligned references to fields of packed structs
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ broken-intra-doc-links warn failures in resolving intra-doc link targets
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-codeblock-attributes warn codeblock attribute looks a lot like a known one
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation detected erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, soft-unstable, cenum-impl-drop-cast, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc broken-intra-doc-links, invalid-codeblock-attributes, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.48.0.txt b/outputs/1.48.0.txt
@@ -0,0 +1,147 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-crate-level-docs allow detects crates with no crate-level documentation
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ pointer-structural-match allow pointers are not structural-match
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unaligned-references allow detects unaligned references to fields of packed structs
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ broken-intra-doc-links warn failures in resolving intra-doc link targets
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-codeblock-attributes warn codeblock attribute looks a lot like a known one
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation detected erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, missing-fragment-specifier, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc broken-intra-doc-links, private-intra-doc-links, invalid-codeblock-attributes, missing-doc-code-examples, private-doc-tests
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.49.0.txt b/outputs/1.49.0.txt
@@ -0,0 +1,155 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ invalid-html-tags allow detects invalid HTML tags in doc comments
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-crate-level-docs allow detects crates with no crate-level documentation
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ pointer-structural-match allow pointers are not structural-match
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unaligned-references allow detects unaligned references to fields of packed structs
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ broken-intra-doc-links warn failures in resolving intra-doc link targets
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ drop-bounds warn bounds of the form `T: Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-codeblock-attributes warn codeblock attribute looks a lot like a known one
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-autolinks warn detects URLs that could be written using only angle brackets
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-patterns warn detects overlapping patterns
+ path-statements warn path statements with no effect
+ private-intra-doc-links warn linking from a public item to a private one
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation detected erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc non-autolinks, broken-intra-doc-links, private-intra-doc-links, invalid-codeblock-attributes, missing-doc-code-examples, private-doc-tests, invalid-html-tags
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, overlapping-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.5.0.txt b/outputs/1.5.0.txt
@@ -0,0 +1,73 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of #[deprecated] items
+ drop-with-repr-extern warn use of #[repr(C)] on a type that implements Drop
+ improper-ctypes warn proper use of libc types in foreign modules
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.50.0.txt b/outputs/1.50.0.txt
@@ -0,0 +1,158 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ invalid-html-tags allow detects invalid HTML tags in doc comments
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-crate-level-docs allow detects crates with no crate-level documentation
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ pointer-structural-match allow pointers are not structural-match
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unaligned-references allow detects unaligned references to fields of packed structs
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ broken-intra-doc-links warn failures in resolving intra-doc link targets
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ drop-bounds warn bounds of the form `T: Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-codeblock-attributes warn codeblock attribute looks a lot like a known one
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-autolinks warn detects URLs that could be written using only angle brackets
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panic warn detect braces in single-argument panic!() invocations
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-intra-doc-links warn linking from a public item to a private one
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-naked-functions warn unsupported naked function definitions
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation detected erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, unsupported-naked-functions, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc non-autolinks, broken-intra-doc-links, private-intra-doc-links, invalid-codeblock-attributes, missing-doc-code-examples, private-doc-tests, invalid-html-tags
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.51.0.txt b/outputs/1.51.0.txt
@@ -0,0 +1,162 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ disjoint-capture-drop-reorder allow Drop reorder because of `capture_disjoint_fields`
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ invalid-html-tags allow detects invalid HTML tags in doc comments
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-crate-level-docs allow detects crates with no crate-level documentation
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-doc-code-examples allow detects publicly-exported items without code samples in their documentation
+ non-ascii-idents allow detects non-ASCII identifiers
+ pointer-structural-match allow pointers are not structural-match
+ private-doc-tests allow detects code samples in docs of private items not documented by rustdoc
+ semicolon-in-expressions-from-macros allow trailing semicolon in macro body used as expression
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unaligned-references allow detects unaligned references to fields of packed structs
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ broken-intra-doc-links warn failures in resolving intra-doc link targets
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ drop-bounds warn bounds of the form `T: Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-codeblock-attributes warn codeblock attribute looks a lot like a known one
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in if-let and while-let statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-autolinks warn detects URLs that could be written using only angle brackets
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panic warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-intra-doc-links warn linking from a public item to a private one
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-naked-functions warn unsupported naked function definitions
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, unsupported-naked-functions, semicolon-in-expressions-from-macros, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rustdoc non-autolinks, broken-intra-doc-links, private-intra-doc-links, invalid-codeblock-attributes, missing-doc-code-examples, private-doc-tests, invalid-html-tags
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.52.0.txt b/outputs/1.52.0.txt
@@ -0,0 +1,156 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ disjoint-capture-drop-reorder allow Drop reorder because of `capture_disjoint_fields`
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ non-ascii-idents allow detects non-ASCII identifiers
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ semicolon-in-expressions-from-macros allow trailing semicolon in macro body used as expression
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unaligned-references allow detects unaligned references to fields of packed structs
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ drop-bounds warn bounds of the form `T: Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panic warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-back-compat warn detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-naked-functions warn unsupported naked function definitions
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, unsupported-naked-functions, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.52.1.txt b/outputs/1.52.1.txt
@@ -0,0 +1,156 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ anonymous-parameters allow detects anonymous parameters
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ disjoint-capture-drop-reorder allow Drop reorder because of `capture_disjoint_fields`
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ non-ascii-idents allow detects non-ASCII identifiers
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ semicolon-in-expressions-from-macros allow trailing semicolon in macro body used as expression
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unaligned-references allow detects unaligned references to fields of packed structs
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ array-into-iter warn detects calling `into_iter` on arrays
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ drop-bounds warn bounds of the form `T: Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panic warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-back-compat warn detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ safe-packed-borrows warn safe borrows of fields of packed structs were erroneously allowed
+ stable-features warn stable features found in `#[feature]` directive
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-naked-functions warn unsupported naked function definitions
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, safe-packed-borrows, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, unsupported-naked-functions, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.53.0.txt b/outputs/1.53.0.txt
@@ -0,0 +1,159 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ disjoint-capture-drop-reorder allow Drop reorder because of `capture_disjoint_fields`
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ non-ascii-idents allow detects non-ASCII identifiers
+ noop-method-call allow detects the use of well-known noop methods
+ or-patterns-back-compat allow detects usage of old versions of or-patterns
+ pointer-structural-match allow pointers are not structural-match
+ semicolon-in-expressions-from-macros allow trailing semicolon in macro body used as expression
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-value warn an invalid value is being created (such as a NULL reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panic warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-back-compat warn detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ stable-features warn stable features found in `#[feature]` directive
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unaligned-references warn detects unaligned references to fields of packed structs
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-naked-functions warn unsupported naked function definitions
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, unsupported-naked-functions, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.54.0.txt b/outputs/1.54.0.txt
@@ -0,0 +1,161 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ disjoint-capture-migration allow Drop reorder and auto traits error because of `capture_disjoint_fields`
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ non-ascii-idents allow detects non-ASCII identifiers
+ noop-method-call allow detects the use of well-known noop methods
+ or-patterns-back-compat allow detects usage of old versions of or-patterns
+ pointer-structural-match allow pointers are not structural-match
+ semicolon-in-expressions-from-macros allow trailing semicolon in macro body used as expression
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panic warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-back-compat warn detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ stable-features warn stable features found in `#[feature]` directive
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unaligned-references warn detects unaligned references to fields of packed structs
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-naked-functions warn unsupported naked function definitions
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible keyword-idents, anonymous-parameters, ellipsis-inclusive-range-patterns, forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, tyvar-behind-raw-pointer, bare-trait-objects, absolute-paths-not-starting-with-crate, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, unsupported-naked-functions, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, array-into-iter
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.55.0.txt b/outputs/1.55.0.txt
@@ -0,0 +1,165 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ non-ascii-idents allow detects non-ASCII identifiers
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ semicolon-in-expressions-from-macros allow trailing semicolon in macro body used as expression
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are useless
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-back-compat warn detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ stable-features warn stable features found in `#[feature]` directive
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unaligned-references warn detects unaligned references to fields of packed structs
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unsupported-naked-functions warn unsupported naked function definitions
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, unsupported-naked-functions, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.56.0.txt b/outputs/1.56.0.txt
@@ -0,0 +1,168 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ non-ascii-idents allow detects non-ASCII identifiers
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-back-compat warn detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ stable-features warn stable features found in `#[feature]` directive
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unaligned-references warn detects unaligned references to fields of packed structs
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unsupported-naked-functions warn unsupported naked function definitions
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, unsupported-naked-functions, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.56.1.txt b/outputs/1.56.1.txt
@@ -0,0 +1,169 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ non-ascii-idents allow detects non-ASCII identifiers
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-back-compat warn detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ stable-features warn stable features found in `#[feature]` directive
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unaligned-references warn detects unaligned references to fields of packed structs
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unsupported-naked-functions warn unsupported naked function definitions
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, unsupported-naked-functions, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.57.0.txt b/outputs/1.57.0.txt
@@ -0,0 +1,174 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ proc-macro-back-compat warn detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback warn detects proc macro derives using inaccessible names from parent modules
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ stable-features warn stable features found in `#[feature]` directive
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unaligned-references warn detects unaligned references to fields of packed structs
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unsupported-naked-functions warn unsupported naked function definitions
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, unsupported-naked-functions, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deref-into-dyn-supertrait
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.58.0.txt b/outputs/1.58.0.txt
@@ -0,0 +1,174 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ stable-features warn stable features found in `#[feature]` directive
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unaligned-references warn detects unaligned references to fields of packed structs
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unsupported-naked-functions warn unsupported naked function definitions
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, unsupported-naked-functions, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deref-into-dyn-supertrait
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.58.1.txt b/outputs/1.58.1.txt
@@ -0,0 +1,174 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ stable-features warn stable features found in `#[feature]` directive
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unaligned-references warn detects unaligned references to fields of packed structs
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unsupported-naked-functions warn unsupported naked function definitions
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, unsupported-naked-functions, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deref-into-dyn-supertrait
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.59.0.txt b/outputs/1.59.0.txt
@@ -0,0 +1,176 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-cfg-attr-crate-type-name warn detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ stable-features warn stable features found in `#[feature]` directive
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unaligned-references warn detects unaligned references to fields of packed structs
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unsupported-naked-functions warn unsupported naked function definitions
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, unsupported-naked-functions, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deref-into-dyn-supertrait, deprecated-cfg-attr-crate-type-name
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.6.0.txt b/outputs/1.6.0.txt
@@ -0,0 +1,75 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of #[rustc_deprecated] items
+ drop-with-repr-extern warn use of #[repr(C)] on a type that implements Drop
+ improper-ctypes warn proper use of libc types in foreign modules
+ match-of-unit-variant-via-paren-dotdot warn unit struct or enum variant erroneously allowed to match via path::ident(..)
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible match-of-unit-variant-via-paren-dotdot
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.60.0.txt b/outputs/1.60.0.txt
@@ -0,0 +1,177 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-cfg-attr-crate-type-name warn detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unaligned-references warn detects unaligned references to fields of packed structs
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deref-into-dyn-supertrait, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.61.0.txt b/outputs/1.61.0.txt
@@ -0,0 +1,180 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ keyword-idents allow detects edition keywords being used as an identifier
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-cfg-attr-crate-type-name warn detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ mutable-borrow-reservation-conflict warn reservation of a two-phased borrow conflicts with other shared borrows
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ unaligned-references warn detects unaligned references to fields of packed structs
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, mutable-borrow-reservation-conflict, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deref-into-dyn-supertrait, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.62.0.txt b/outputs/1.62.0.txt
@@ -0,0 +1,182 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-cfg-attr-crate-type-name warn detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unaligned-references deny detects unaligned references to fields of packed structs
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deref-into-dyn-supertrait, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.62.1.txt b/outputs/1.62.1.txt
@@ -0,0 +1,182 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ cenum-impl-drop-cast warn a C-like enum implementing Drop is cast
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-cfg-attr-crate-type-name warn detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unaligned-references deny detects unaligned references to fields of packed structs
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deref-into-dyn-supertrait, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.63.0.txt b/outputs/1.63.0.txt
@@ -0,0 +1,182 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-cfg-attr-crate-type-name warn detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unaligned-references deny detects unaligned references to fields of packed structs
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deref-into-dyn-supertrait, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.64.0.txt b/outputs/1.64.0.txt
@@ -0,0 +1,186 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-cfg-attr-crate-type-name warn detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn tranparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unaligned-references deny detects unaligned references to fields of packed structs
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deref-into-dyn-supertrait, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls, repr-transparent-external-private-fields
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.65.0.txt b/outputs/1.65.0.txt
@@ -0,0 +1,191 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ const-err deny constant evaluation encountered erroneous expression
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unaligned-references deny detects unaligned references to fields of packed structs
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, const-err, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, unstable-syntax-pre-expansion, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deref-into-dyn-supertrait, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls, repr-transparent-external-private-fields
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.66.0.txt b/outputs/1.66.0.txt
@@ -0,0 +1,192 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unaligned-references deny detects unaligned references to fields of packed structs
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, unstable-syntax-pre-expansion, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deref-into-dyn-supertrait, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls, repr-transparent-external-private-fields
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.66.1.txt b/outputs/1.66.1.txt
@@ -0,0 +1,192 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unaligned-references deny detects unaligned references to fields of packed structs
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, unstable-syntax-pre-expansion, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deref-into-dyn-supertrait, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls, repr-transparent-external-private-fields
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.67.0.txt b/outputs/1.67.0.txt
@@ -0,0 +1,194 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ implied-bounds-entailment warn impl method assumes more implied bounds than its corresponding trait method
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the closure_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unaligned-references deny detects unaligned references to fields of packed structs
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, unstable-syntax-pre-expansion, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls, repr-transparent-external-private-fields, implied-bounds-entailment
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.67.1.txt b/outputs/1.67.1.txt
@@ -0,0 +1,194 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ bindings-with-variant-name warn detects pattern bindings with the same name as one of the matched variants
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ implied-bounds-entailment warn impl method assumes more implied bounds than its corresponding trait method
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the closure_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unaligned-references deny detects unaligned references to fields of packed structs
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, unstable-syntax-pre-expansion, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls, repr-transparent-external-private-fields, implied-bounds-entailment
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.68.0.txt b/outputs/1.68.0.txt
@@ -0,0 +1,194 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the closure_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ implied-bounds-entailment deny impl method assumes more implied bounds than its corresponding trait method
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unaligned-references deny detects unaligned references to fields of packed structs
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, unstable-syntax-pre-expansion, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls, repr-transparent-external-private-fields, implied-bounds-entailment
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.68.1.txt b/outputs/1.68.1.txt
@@ -0,0 +1,194 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the closure_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ implied-bounds-entailment deny impl method assumes more implied bounds than its corresponding trait method
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unaligned-references deny detects unaligned references to fields of packed structs
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, unstable-syntax-pre-expansion, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls, repr-transparent-external-private-fields, implied-bounds-entailment
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.68.2.txt b/outputs/1.68.2.txt
@@ -0,0 +1,194 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the closure_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ implied-bounds-entailment deny impl method assumes more implied bounds than its corresponding trait method
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unaligned-references deny detects unaligned references to fields of packed structs
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, unaligned-references, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, unstable-syntax-pre-expansion, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls, repr-transparent-external-private-fields, implied-bounds-entailment
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.69.0.txt b/outputs/1.69.0.txt
@@ -0,0 +1,196 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the closure_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ implied-bounds-entailment deny impl method assumes more implied bounds than its corresponding trait method
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, unstable-syntax-pre-expansion, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls, repr-transparent-external-private-fields, implied-bounds-entailment, byte-slice-in-packed-struct-with-derive
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.7.0.txt b/outputs/1.7.0.txt
@@ -0,0 +1,79 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ drop-with-repr-extern warn use of #[repr(C)] on a type that implements Drop
+ improper-ctypes warn proper use of libc types in foreign modules
+ invalid-type-param-default warn type parameter default erroneously allowed in invalid location
+ match-of-unit-variant-via-paren-dotdot warn unit struct or enum variant erroneously allowed to match via path::ident(..)
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, invalid-type-param-default, match-of-unit-variant-via-paren-dotdot
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.70.0.txt b/outputs/1.70.0.txt
@@ -0,0 +1,197 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the closure_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ implied-bounds-entailment deny impl method assumes more implied bounds than its corresponding trait method
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, forbidden-lint-groups, illegal-floating-point-literal-pattern, private-in-public, pub-use-of-private-extern-crate, invalid-type-param-default, patterns-in-fns-without-body, missing-fragment-specifier, late-bound-lifetime-arguments, order-dependent-trait-objects, coherence-leak-check, unstable-name-collisions, where-clauses-object-safety, proc-macro-derive-resolution-fallback, macro-expanded-macro-exports-accessed-by-absolute-paths, ill-formed-attribute-input, conflicting-repr-hints, ambiguous-associated-items, indirect-structural-match, pointer-structural-match, nontrivial-structural-match, soft-unstable, unstable-syntax-pre-expansion, cenum-impl-drop-cast, const-evaluatable-unchecked, uninhabited-static, invalid-doc-attributes, semicolon-in-expressions-from-macros, legacy-derive-helpers, proc-macro-back-compat, unsupported-calling-conventions, deprecated-cfg-attr-crate-type-name, suspicious-auto-trait-impls, repr-transparent-external-private-fields, implied-bounds-entailment, byte-slice-in-packed-struct-with-derive
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, tyvar-behind-raw-pointer, absolute-paths-not-starting-with-crate
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prelude-collisions, rust-2021-prefixes-incompatible-syntax, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.71.0.txt b/outputs/1.71.0.txt
@@ -0,0 +1,205 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the closure_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ implied-bounds-entailment deny impl method assumes more implied bounds than its corresponding trait method
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-alignment deny raw pointers must be aligned before dereferencing
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, deprecated-cfg-attr-crate-type-name, forbidden-lint-groups, ill-formed-attribute-input, illegal-floating-point-literal-pattern, implied-bounds-entailment, indirect-structural-match, invalid-alignment, invalid-doc-attributes, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, nontrivial-structural-match, order-dependent-trait-objects, patterns-in-fns-without-body, pointer-structural-match, private-in-public, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, suspicious-auto-trait-impls, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.71.1.txt b/outputs/1.71.1.txt
@@ -0,0 +1,205 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the closure_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ implied-bounds-entailment deny impl method assumes more implied bounds than its corresponding trait method
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-alignment deny raw pointers must be aligned before dereferencing
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, deprecated-cfg-attr-crate-type-name, forbidden-lint-groups, ill-formed-attribute-input, illegal-floating-point-literal-pattern, implied-bounds-entailment, indirect-structural-match, invalid-alignment, invalid-doc-attributes, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, nontrivial-structural-match, order-dependent-trait-objects, patterns-in-fns-without-body, pointer-structural-match, private-in-public, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, suspicious-auto-trait-impls, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.72.0.txt b/outputs/1.72.0.txt
@@ -0,0 +1,216 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ invalid-reference-casting allow casts of `&T` to `&mut T` without interior mutability
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ private-bounds allow private type in secondary interface of an item
+ private-interfaces allow private type in primary interface of an item
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the closure_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ implied-bounds-entailment deny impl method assumes more implied bounds than its corresponding trait method
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-alignment deny raw pointers must be aligned before dereferencing
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, deprecated-cfg-attr-crate-type-name, forbidden-lint-groups, ill-formed-attribute-input, illegal-floating-point-literal-pattern, implied-bounds-entailment, indirect-structural-match, invalid-alignment, invalid-doc-attributes, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, nontrivial-structural-match, order-dependent-trait-objects, patterns-in-fns-without-body, pointer-structural-match, private-in-public, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, suspicious-auto-trait-impls, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.72.1.txt b/outputs/1.72.1.txt
@@ -0,0 +1,216 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ invalid-reference-casting allow casts of `&T` to `&mut T` without interior mutability
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ noop-method-call allow detects the use of well-known noop methods
+ pointer-structural-match allow pointers are not structural-match
+ private-bounds allow private type in secondary interface of an item
+ private-interfaces allow private type in primary interface of an item
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits will change in the future
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the closure_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ implied-bounds-entailment deny impl method assumes more implied bounds than its corresponding trait method
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-alignment deny raw pointers must be aligned before dereferencing
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, deprecated-cfg-attr-crate-type-name, forbidden-lint-groups, ill-formed-attribute-input, illegal-floating-point-literal-pattern, implied-bounds-entailment, indirect-structural-match, invalid-alignment, invalid-doc-attributes, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, nontrivial-structural-match, order-dependent-trait-objects, patterns-in-fns-without-body, pointer-structural-match, private-in-public, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, suspicious-auto-trait-impls, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.73.0.txt b/outputs/1.73.0.txt
@@ -0,0 +1,221 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ pointer-structural-match allow pointers are not structural-match
+ private-bounds allow private type in secondary interface of an item
+ private-interfaces allow private type in primary interface of an item
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ coinductive-overlap-in-coherence warn impls that are not considered to overlap may be considered to overlap in the future
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits have recently changed resulting in potential breakage
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-diagnostic-attributes warn unrecognized diagnostic attribute
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ implied-bounds-entailment deny impl method assumes more implied bounds than its corresponding trait method
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-alignment deny raw pointers must be aligned before dereferencing
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, coinductive-overlap-in-coherence, conflicting-repr-hints, const-evaluatable-unchecked, deprecated-cfg-attr-crate-type-name, forbidden-lint-groups, ill-formed-attribute-input, illegal-floating-point-literal-pattern, implied-bounds-entailment, indirect-structural-match, invalid-alignment, invalid-doc-attributes, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, nontrivial-structural-match, order-dependent-trait-objects, patterns-in-fns-without-body, pointer-structural-match, private-in-public, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, suspicious-auto-trait-impls, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.74.0.txt b/outputs/1.74.0.txt
@@ -0,0 +1,223 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ coinductive-overlap-in-coherence warn impls that are not considered to overlap may be considered to overlap in the future
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ const-patterns-without-partial-eq warn constant in pattern does not implement `PartialEq`
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-lifetimes-in-associated-constant warn elided lifetimes cannot be used in associated constants in impls
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits have recently changed resulting in potential breakage
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ implied-bounds-entailment deny impl method assumes more implied bounds than its corresponding trait method
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-alignment deny raw pointers must be aligned before dereferencing
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, coinductive-overlap-in-coherence, conflicting-repr-hints, const-evaluatable-unchecked, const-patterns-without-partial-eq, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, illegal-floating-point-literal-pattern, implied-bounds-entailment, indirect-structural-match, invalid-alignment, invalid-doc-attributes, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, nontrivial-structural-match, order-dependent-trait-objects, patterns-in-fns-without-body, pointer-structural-match, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, suspicious-auto-trait-impls, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.74.1.txt b/outputs/1.74.1.txt
@@ -0,0 +1,223 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ pointer-structural-match allow pointers are not structural-match
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ coinductive-overlap-in-coherence warn impls that are not considered to overlap may be considered to overlap in the future
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ const-patterns-without-partial-eq warn constant in pattern does not implement `PartialEq`
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-lifetimes-in-associated-constant warn elided lifetimes cannot be used in associated constants in impls
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits have recently changed resulting in potential breakage
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ implied-bounds-entailment deny impl method assumes more implied bounds than its corresponding trait method
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-alignment deny raw pointers must be aligned before dereferencing
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, coinductive-overlap-in-coherence, conflicting-repr-hints, const-evaluatable-unchecked, const-patterns-without-partial-eq, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, illegal-floating-point-literal-pattern, implied-bounds-entailment, indirect-structural-match, invalid-alignment, invalid-doc-attributes, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, nontrivial-structural-match, order-dependent-trait-objects, patterns-in-fns-without-body, pointer-structural-match, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, suspicious-auto-trait-impls, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can provide additional lints and lint groups.
diff --git a/outputs/1.75.0.txt b/outputs/1.75.0.txt
@@ -0,0 +1,223 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ const-patterns-without-partial-eq warn constant in pattern does not implement `PartialEq`
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-lifetimes-in-associated-constant warn elided lifetimes cannot be used in associated constants in impls
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ pointer-structural-match warn pointers are not structural-match
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits have recently changed resulting in potential breakage
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ coinductive-overlap-in-coherence deny impls that are not considered to overlap may be considered to overlap in the future
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ implied-bounds-entailment deny impl method assumes more implied bounds than its corresponding trait method
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, coinductive-overlap-in-coherence, conflicting-repr-hints, const-evaluatable-unchecked, const-patterns-without-partial-eq, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, illegal-floating-point-literal-pattern, implied-bounds-entailment, indirect-structural-match, invalid-doc-attributes, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, nontrivial-structural-match, order-dependent-trait-objects, patterns-in-fns-without-body, pointer-structural-match, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, suspicious-auto-trait-impls, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.76.0.txt b/outputs/1.76.0.txt
@@ -0,0 +1,225 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ unused-tuple-struct-fields allow detects tuple struct fields that are never read
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ const-patterns-without-partial-eq warn constant in pattern does not implement `PartialEq`
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-lifetimes-in-associated-constant warn elided lifetimes cannot be used in associated constants in impls
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ pointer-structural-match warn pointers are not structural-match
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ suspicious-auto-trait-impls warn the rules governing auto traits have recently changed resulting in potential breakage
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ writes-through-immutable-pointer warn shared references are immutable, and pointers derived from them must not be written to
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ coinductive-overlap-in-coherence deny impls that are not considered to overlap may be considered to overlap in the future
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, coinductive-overlap-in-coherence, conflicting-repr-hints, const-evaluatable-unchecked, const-patterns-without-partial-eq, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, illegal-floating-point-literal-pattern, indirect-structural-match, invalid-doc-attributes, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, nontrivial-structural-match, order-dependent-trait-objects, patterns-in-fns-without-body, pointer-structural-match, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, suspicious-auto-trait-impls, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety, writes-through-immutable-pointer
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.77.0.txt b/outputs/1.77.0.txt
@@ -0,0 +1,226 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-eval-mutable-ptr-in-final-value warn detects a mutable pointer that has leaked into final value of a const expression
+ const-item-mutation warn detects attempts to mutate a `const` item
+ const-patterns-without-partial-eq warn constant in pattern does not implement `PartialEq`
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-lifetimes-in-associated-constant warn elided lifetimes cannot be used in associated constants in impls
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ pointer-structural-match warn pointers are not structural-match
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-auto-trait-impls warn the rules governing auto traits have recently changed resulting in potential breakage
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ writes-through-immutable-pointer warn shared references are immutable, and pointers derived from them must not be written to
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-eval-mutable-ptr-in-final-value, const-evaluatable-unchecked, const-patterns-without-partial-eq, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, illegal-floating-point-literal-pattern, indirect-structural-match, invalid-doc-attributes, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, nontrivial-structural-match, order-dependent-trait-objects, patterns-in-fns-without-body, pointer-structural-match, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, suspicious-auto-trait-impls, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety, writes-through-immutable-pointer
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ rust-2024-compatibility static-mut-refs, unsafe-op-in-unsafe-fn
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.77.1.txt b/outputs/1.77.1.txt
@@ -0,0 +1,226 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-eval-mutable-ptr-in-final-value warn detects a mutable pointer that has leaked into final value of a const expression
+ const-item-mutation warn detects attempts to mutate a `const` item
+ const-patterns-without-partial-eq warn constant in pattern does not implement `PartialEq`
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-lifetimes-in-associated-constant warn elided lifetimes cannot be used in associated constants in impls
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ pointer-structural-match warn pointers are not structural-match
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-auto-trait-impls warn the rules governing auto traits have recently changed resulting in potential breakage
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ writes-through-immutable-pointer warn shared references are immutable, and pointers derived from them must not be written to
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-eval-mutable-ptr-in-final-value, const-evaluatable-unchecked, const-patterns-without-partial-eq, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, illegal-floating-point-literal-pattern, indirect-structural-match, invalid-doc-attributes, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, nontrivial-structural-match, order-dependent-trait-objects, patterns-in-fns-without-body, pointer-structural-match, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, suspicious-auto-trait-impls, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety, writes-through-immutable-pointer
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ rust-2024-compatibility static-mut-refs, unsafe-op-in-unsafe-fn
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.77.2.txt b/outputs/1.77.2.txt
@@ -0,0 +1,226 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-eval-mutable-ptr-in-final-value warn detects a mutable pointer that has leaked into final value of a const expression
+ const-item-mutation warn detects attempts to mutate a `const` item
+ const-patterns-without-partial-eq warn constant in pattern does not implement `PartialEq`
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-lifetimes-in-associated-constant warn elided lifetimes cannot be used in associated constants in impls
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ illegal-floating-point-literal-pattern warn floating-point literals cannot be used in patterns
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-doc-attributes warn detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ nontrivial-structural-match warn constant used in pattern of non-structural-match type and the constant's initializer expression contains values of non-structural-match types
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ pointer-structural-match warn pointers are not structural-match
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-auto-trait-impls warn the rules governing auto traits have recently changed resulting in potential breakage
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ writes-through-immutable-pointer warn shared references are immutable, and pointers derived from them must not be written to
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-eval-mutable-ptr-in-final-value, const-evaluatable-unchecked, const-patterns-without-partial-eq, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, illegal-floating-point-literal-pattern, indirect-structural-match, invalid-doc-attributes, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, nontrivial-structural-match, order-dependent-trait-objects, patterns-in-fns-without-body, pointer-structural-match, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, suspicious-auto-trait-impls, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety, writes-through-immutable-pointer
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ rust-2024-compatibility static-mut-refs, unsafe-op-in-unsafe-fn
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.78.0.txt b/outputs/1.78.0.txt
@@ -0,0 +1,224 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ non-local-definitions allow checks for non-local definitions
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-eval-mutable-ptr-in-final-value warn detects a mutable pointer that has leaked into final value of a const expression
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-lifetimes-in-associated-constant warn elided lifetimes cannot be used in associated constants in impls
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ pointer-structural-match warn pointers are not structural-match
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ writes-through-immutable-pointer warn shared references are immutable, and pointers derived from them must not be written to
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-eval-mutable-ptr-in-final-value, const-evaluatable-unchecked, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, indirect-structural-match, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, order-dependent-trait-objects, patterns-in-fns-without-body, pointer-structural-match, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, where-clauses-object-safety, writes-through-immutable-pointer
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ rust-2018-compatibility keyword-idents, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ rust-2024-compatibility static-mut-refs, unsafe-op-in-unsafe-fn
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.79.0.txt b/outputs/1.79.0.txt
@@ -0,0 +1,231 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ dereferencing-mut-binding allow detects `mut x` bindings that change the type of `x`
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ non-local-definitions allow checks for non-local definitions
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-eval-mutable-ptr-in-final-value warn detects a mutable pointer that has leaked into final value of a const expression
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-lifetimes-in-associated-constant warn elided lifetimes cannot be used in associated constants in impls
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ indirect-structural-match warn constant used in pattern contains value of non-structural-match type in a field or a variant
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ pointer-structural-match warn pointers are not structural-match
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ wasm-c-abi warn detects dependencies that are incompatible with the Wasm C ABI
+ where-clauses-object-safety warn checks the object safety of where clauses
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ writes-through-immutable-pointer warn shared references are immutable, and pointers derived from them must not be written to
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-back-compat deny detects usage of old versions of certain proc-macro crates
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-eval-mutable-ptr-in-final-value, const-evaluatable-unchecked, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, indirect-structural-match, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, order-dependent-trait-objects, patterns-in-fns-without-body, pointer-structural-match, proc-macro-back-compat, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, semicolon-in-expressions-from-macros, soft-unstable, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, wasm-c-abi, where-clauses-object-safety, writes-through-immutable-pointer
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ rust-2024-compatibility keyword-idents-2024, static-mut-refs, unsafe-op-in-unsafe-fn
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.8.0.txt b/outputs/1.8.0.txt
@@ -0,0 +1,80 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ drop-with-repr-extern warn use of #[repr(C)] on a type that implements Drop
+ improper-ctypes warn proper use of libc types in foreign modules
+ inaccessible-extern-crate warn use of inaccessible extern crate erroneously allowed
+ invalid-type-param-default warn type parameter default erroneously allowed in invalid location
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ stable-features warn stable features found in #[feature] directive
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ match-of-unit-variant-via-paren-dotdot deny unit struct or enum variant erroneously allowed to match via path::ident(..)
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, inaccessible-extern-crate, invalid-type-param-default, match-of-unit-variant-via-paren-dotdot
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.80.0.txt b/outputs/1.80.0.txt
@@ -0,0 +1,235 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe allow detects unsafe functions being used as safe functions
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ non-local-definitions allow checks for non-local definitions
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-eval-mutable-ptr-in-final-value warn detects a mutable pointer that has leaked into final value of a const expression
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-lifetimes-in-associated-constant warn elided lifetimes cannot be used in associated constants in impls
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ impl-trait-redundant-captures warn redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ wasm-c-abi warn detects dependencies that are incompatible with the Wasm C ABI
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ writes-through-immutable-pointer warn shared references are immutable, and pointers derived from them must not be written to
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-eval-mutable-ptr-in-final-value, const-evaluatable-unchecked, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, never-type-fallback-flowing-into-unsafe, order-dependent-trait-objects, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, wasm-c-abi, writes-through-immutable-pointer
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ rust-2024-compatibility keyword-idents-2024, deprecated-safe, missing-unsafe-on-extern, static-mut-refs, unsafe-op-in-unsafe-fn, boxed-slice-into-iter
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.80.1.txt b/outputs/1.80.1.txt
@@ -0,0 +1,235 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ box-pointers allow use of owned (Box type) heap memory
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe allow detects unsafe functions being used as safe functions
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ non-local-definitions allow checks for non-local definitions
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-eval-mutable-ptr-in-final-value warn detects a mutable pointer that has leaked into final value of a const expression
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-lifetimes-in-associated-constant warn elided lifetimes cannot be used in associated constants in impls
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ impl-trait-redundant-captures warn redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ wasm-c-abi warn detects dependencies that are incompatible with the Wasm C ABI
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ writes-through-immutable-pointer warn shared references are immutable, and pointers derived from them must not be written to
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-eval-mutable-ptr-in-final-value, const-evaluatable-unchecked, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, never-type-fallback-flowing-into-unsafe, order-dependent-trait-objects, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, wasm-c-abi, writes-through-immutable-pointer
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ rust-2024-compatibility keyword-idents-2024, deprecated-safe, missing-unsafe-on-extern, static-mut-refs, unsafe-op-in-unsafe-fn, boxed-slice-into-iter
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.81.0.txt b/outputs/1.81.0.txt
@@ -0,0 +1,241 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe allow detects unsafe functions being used as safe functions
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ non-local-definitions allow checks for non-local definitions
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ byte-slice-in-packed-struct-with-derive warn `[u8]` or `str` used in a packed struct with `derive`
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-eval-mutable-ptr-in-final-value warn detects a mutable pointer that has leaked into final value of a const expression
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ dependency-on-unit-never-type-fallback warn never type fallback affecting unsafe function calls
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ impl-trait-redundant-captures warn redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ out-of-scope-macro-calls warn detects out of scope calls to `macro_rules` in key-value attributes
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-cast-add-auto-to-object warn detects `as` casts from pointers to `dyn Trait` to pointers to `dyn Trait + Auto`
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ wasm-c-abi warn detects dependencies that are incompatible with the Wasm C ABI
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ writes-through-immutable-pointer warn shared references are immutable, and pointers derived from them must not be written to
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, byte-slice-in-packed-struct-with-derive, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-eval-mutable-ptr-in-final-value, const-evaluatable-unchecked, dependency-on-unit-never-type-fallback, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, never-type-fallback-flowing-into-unsafe, order-dependent-trait-objects, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, ptr-cast-add-auto-to-object, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, wasm-c-abi, writes-through-immutable-pointer
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, deprecated-safe, missing-unsafe-on-extern, static-mut-refs, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn, boxed-slice-into-iter
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.82.0.txt b/outputs/1.82.0.txt
@@ -0,0 +1,245 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that implements `Drop`
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when an object-safe trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ non-local-definitions allow checks for non-local definitions
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-eval-mutable-ptr-in-final-value warn detects a mutable pointer that has leaked into final value of a const expression
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ dependency-on-unit-never-type-fallback warn never type fallback affecting unsafe function calls
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ impl-trait-redundant-captures warn redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ out-of-scope-macro-calls warn detects out of scope calls to `macro_rules` in key-value attributes
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-cast-add-auto-to-object warn detects `as` casts from pointers to `dyn Trait` to pointers to `dyn Trait + Auto`
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ deprecated-cfg-attr-crate-type-name deny detects usage of `#![cfg_attr(..., crate_type/crate_name = "...")]`
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+ wasm-c-abi deny detects dependencies that are incompatible with the Wasm C ABI
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-eval-mutable-ptr-in-final-value, const-evaluatable-unchecked, dependency-on-unit-never-type-fallback, deprecated-cfg-attr-crate-type-name, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, never-type-fallback-flowing-into-unsafe, order-dependent-trait-objects, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, ptr-cast-add-auto-to-object, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, wasm-c-abi
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, deprecated-safe-2024, missing-unsafe-on-extern, rust-2024-prelude-collisions, static-mut-refs, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn, boxed-slice-into-iter, impl-trait-overcaptures, tail-expr-drop-order
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.83.0.txt b/outputs/1.83.0.txt
@@ -0,0 +1,249 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ if-let-rescope allow `if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that has a destructor
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when a dyn-compatible trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-guarded-string-incompatible-syntax allow will be parsed as a guarded string in Rust 2024
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unqualified-local-imports allow `use` of a local item without leading `self::`, `super::`, or `crate::`
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dead-code warn detect unused, unexported items
+ dependency-on-unit-never-type-fallback warn never type fallback affecting unsafe function calls
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-named-lifetimes warn detects when an elided lifetime gets resolved to be `'static` or some named parameter
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ impl-trait-redundant-captures warn redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-local-definitions warn checks for non-local definitions
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ out-of-scope-macro-calls warn detects out of scope calls to `macro_rules` in key-value attributes
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-cast-add-auto-to-object warn detects `as` casts from pointers to `dyn Trait` to pointers to `dyn Trait + Auto`
+ ptr-to-integer-transmute-in-consts warn detects pointer to integer transmutes in const functions and associated constants
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ temporary-cstring-as-ptr warn detects getting the inner pointer of a temporary `CString`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unsupported-fn-ptr-calling-conventions warn use of unsupported calling convention for function pointer
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+ wasm-c-abi deny detects dependencies that are incompatible with the Wasm C ABI
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible deref-into-dyn-supertrait, ambiguous-associated-items, ambiguous-glob-imports, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, dependency-on-unit-never-type-fallback, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, never-type-fallback-flowing-into-unsafe, order-dependent-trait-objects, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, ptr-cast-add-auto-to-object, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, unsupported-fn-ptr-calling-conventions, wasm-c-abi
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions, array-into-iter, non-fmt-panics
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, deprecated-safe-2024, missing-unsafe-on-extern, rust-2024-guarded-string-incompatible-syntax, rust-2024-prelude-collisions, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn, boxed-slice-into-iter, impl-trait-overcaptures, tail-expr-drop-order, if-let-rescope, static-mut-refs
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.84.0.txt b/outputs/1.84.0.txt
@@ -0,0 +1,249 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ if-let-rescope allow `if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that has a destructor
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when a dyn-compatible trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-guarded-string-incompatible-syntax allow will be parsed as a guarded string in Rust 2024
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unqualified-local-imports allow `use` of a local item without leading `self::`, `super::`, or `crate::`
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ abi-unsupported-vector-types warn this function call or definition uses a vector type which is not enabled
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dangling-pointers-from-temporaries warn detects getting a pointer from a temporary
+ dead-code warn detect unused, unexported items
+ dependency-on-unit-never-type-fallback warn never type fallback affecting unsafe function calls
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-named-lifetimes warn detects when an elided lifetime gets resolved to be `'static` or some named parameter
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ impl-trait-redundant-captures warn redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-local-definitions warn checks for non-local definitions
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ out-of-scope-macro-calls warn detects out of scope calls to `macro_rules` in key-value attributes
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-cast-add-auto-to-object warn detects `as` casts from pointers to `dyn Trait` to pointers to `dyn Trait + Auto`
+ ptr-to-integer-transmute-in-consts warn detects pointer to integer transmutes in const functions and associated constants
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-fn-ptr-calling-conventions warn use of unsupported calling convention for function pointer
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+ wasm-c-abi deny detects dependencies that are incompatible with the Wasm C ABI
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible deref-into-dyn-supertrait, abi-unsupported-vector-types, ambiguous-associated-items, ambiguous-glob-imports, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, order-dependent-trait-objects, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, ptr-cast-add-auto-to-object, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-fn-ptr-calling-conventions, wasm-c-abi
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.84.1.txt b/outputs/1.84.1.txt
@@ -0,0 +1,249 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ if-let-rescope allow `if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that has a destructor
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when a dyn-compatible trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-guarded-string-incompatible-syntax allow will be parsed as a guarded string in Rust 2024
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unqualified-local-imports allow `use` of a local item without leading `self::`, `super::`, or `crate::`
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ abi-unsupported-vector-types warn this function call or definition uses a vector type which is not enabled
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dangling-pointers-from-temporaries warn detects getting a pointer from a temporary
+ dead-code warn detect unused, unexported items
+ dependency-on-unit-never-type-fallback warn never type fallback affecting unsafe function calls
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-named-lifetimes warn detects when an elided lifetime gets resolved to be `'static` or some named parameter
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ impl-trait-redundant-captures warn redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-local-definitions warn checks for non-local definitions
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ out-of-scope-macro-calls warn detects out of scope calls to `macro_rules` in key-value attributes
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-cast-add-auto-to-object warn detects `as` casts from pointers to `dyn Trait` to pointers to `dyn Trait + Auto`
+ ptr-to-integer-transmute-in-consts warn detects pointer to integer transmutes in const functions and associated constants
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-fn-ptr-calling-conventions warn use of unsupported calling convention for function pointer
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+ wasm-c-abi deny detects dependencies that are incompatible with the Wasm C ABI
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible deref-into-dyn-supertrait, abi-unsupported-vector-types, ambiguous-associated-items, ambiguous-glob-imports, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, order-dependent-trait-objects, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, ptr-cast-add-auto-to-object, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-fn-ptr-calling-conventions, wasm-c-abi
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.85.0.txt b/outputs/1.85.0.txt
@@ -0,0 +1,251 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ if-let-rescope allow `if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ impl-trait-redundant-captures allow redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that has a destructor
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when a dyn-compatible trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-guarded-string-incompatible-syntax allow will be parsed as a guarded string in Rust 2024
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unqualified-local-imports allow `use` of a local item without leading `self::`, `super::`, or `crate::`
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ abi-unsupported-vector-types warn this function call or definition uses a vector type which is not enabled
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dangling-pointers-from-temporaries warn detects getting a pointer from a temporary
+ dead-code warn detect unused, unexported items
+ dependency-on-unit-never-type-fallback warn never type fallback affecting unsafe function calls
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-named-lifetimes warn detects when an elided lifetime gets resolved to be `'static` or some named parameter
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-local-definitions warn checks for non-local definitions
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ out-of-scope-macro-calls warn detects out of scope calls to `macro_rules` in key-value attributes
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-cast-add-auto-to-object warn detects `as` casts from pointers to `dyn Trait` to pointers to `dyn Trait + Auto`
+ ptr-to-integer-transmute-in-consts warn detects pointer to integer transmutes in const functions and associated constants
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unpredictable-function-pointer-comparisons warn detects unpredictable function pointer comparisons
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-fn-ptr-calling-conventions warn use of unsupported calling convention for function pointer
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ default-overrides-default-fields deny detect `Default` impl that should use the type's default field values
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+ wasm-c-abi deny detects dependencies that are incompatible with the Wasm C ABI
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible deref-into-dyn-supertrait, abi-unsupported-vector-types, ambiguous-associated-items, ambiguous-glob-imports, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, order-dependent-trait-objects, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, ptr-cast-add-auto-to-object, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-fn-ptr-calling-conventions, wasm-c-abi
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.85.1.txt b/outputs/1.85.1.txt
@@ -0,0 +1,251 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ if-let-rescope allow `if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ impl-trait-redundant-captures allow redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that has a destructor
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-abi allow No declared ABI for extern declaration
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when a dyn-compatible trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-guarded-string-incompatible-syntax allow will be parsed as a guarded string in Rust 2024
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unqualified-local-imports allow `use` of a local item without leading `self::`, `super::`, or `crate::`
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ abi-unsupported-vector-types warn this function call or definition uses a vector type which is not enabled
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dangling-pointers-from-temporaries warn detects getting a pointer from a temporary
+ dead-code warn detect unused, unexported items
+ dependency-on-unit-never-type-fallback warn never type fallback affecting unsafe function calls
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-into-dyn-supertrait warn `Deref` implementation usage with a supertrait trait object for output might be shadowed in the future
+ deref-nullptr warn detects when an null pointer is dereferenced
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-named-lifetimes warn detects when an elided lifetime gets resolved to be `'static` or some named parameter
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-local-definitions warn checks for non-local definitions
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ out-of-scope-macro-calls warn detects out of scope calls to `macro_rules` in key-value attributes
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-cast-add-auto-to-object warn detects `as` casts from pointers to `dyn Trait` to pointers to `dyn Trait + Auto`
+ ptr-to-integer-transmute-in-consts warn detects pointer to integer transmutes in const functions and associated constants
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unpredictable-function-pointer-comparisons warn detects unpredictable function pointer comparisons
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-fn-ptr-calling-conventions warn use of unsupported calling convention for function pointer
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ cenum-impl-drop-cast deny a C-like enum implementing Drop is cast
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ default-overrides-default-fields deny detect `Default` impl that should use the type's default field values
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+ wasm-c-abi deny detects dependencies that are incompatible with the Wasm C ABI
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible deref-into-dyn-supertrait, abi-unsupported-vector-types, ambiguous-associated-items, ambiguous-glob-imports, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, order-dependent-trait-objects, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, ptr-cast-add-auto-to-object, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-fn-ptr-calling-conventions, wasm-c-abi
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.86.0.txt b/outputs/1.86.0.txt
@@ -0,0 +1,254 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ deref-into-dyn-supertrait allow `Deref` implementation with a supertrait trait object for output is shadowed by trait upcasting
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ if-let-rescope allow `if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ impl-trait-redundant-captures allow redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that has a destructor
+ linker-messages allow warnings emitted at runtime by the target-specific linker program
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when a dyn-compatible trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-guarded-string-incompatible-syntax allow will be parsed as a guarded string in Rust 2024
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ supertrait-item-shadowing-definition allow detects when a supertrait item is shadowed by a subtrait item
+ supertrait-item-shadowing-usage allow detects when a supertrait item is shadowed by a subtrait item
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unqualified-local-imports allow `use` of a local item without leading `self::`, `super::`, or `crate::`
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ abi-unsupported-vector-types warn this function call or definition uses a vector type which is not enabled
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dangling-pointers-from-temporaries warn detects getting a pointer from a temporary
+ dead-code warn detect unused, unexported items
+ dependency-on-unit-never-type-fallback warn never type fallback affecting unsafe function calls
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-nullptr warn detects when an null pointer is dereferenced
+ double-negations warn detects expressions of the form `--x`
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-named-lifetimes warn detects when an elided lifetime gets resolved to be `'static` or some named parameter
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ missing-abi warn No declared ABI for extern declaration
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-local-definitions warn checks for non-local definitions
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ out-of-scope-macro-calls warn detects out of scope calls to `macro_rules` in key-value attributes
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-cast-add-auto-to-object warn detects `as` casts from pointers to `dyn Trait` to pointers to `dyn Trait + Auto`
+ ptr-to-integer-transmute-in-consts warn detects pointer to integer transmutes in const functions and associated constants
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unpredictable-function-pointer-comparisons warn detects unpredictable function pointer comparisons
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-fn-ptr-calling-conventions warn use of unsupported calling convention for function pointer
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ uses-power-alignment warn Structs do not follow the power alignment rule under repr(C)
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ default-overrides-default-fields deny detect `Default` impl that should use the type's default field values
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ order-dependent-trait-objects deny trait-object types were treated as different depending on marker-trait order
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible abi-unsupported-vector-types, ambiguous-associated-items, ambiguous-glob-imports, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, order-dependent-trait-objects, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, ptr-cast-add-auto-to-object, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-fn-ptr-calling-conventions
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.87.0.txt b/outputs/1.87.0.txt
@@ -0,0 +1,253 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ deref-into-dyn-supertrait allow `Deref` implementation with a supertrait trait object for output is shadowed by trait upcasting
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ if-let-rescope allow `if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ impl-trait-redundant-captures allow redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that has a destructor
+ linker-messages allow warnings emitted at runtime by the target-specific linker program
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when a dyn-compatible trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-guarded-string-incompatible-syntax allow will be parsed as a guarded string in Rust 2024
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ supertrait-item-shadowing-definition allow detects when a supertrait item is shadowed by a subtrait item
+ supertrait-item-shadowing-usage allow detects when a supertrait item is shadowed by a subtrait item
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unqualified-local-imports allow `use` of a local item without leading `self::`, `super::`, or `crate::`
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ abi-unsupported-vector-types warn this function call or definition uses a vector type which is not enabled
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dangling-pointers-from-temporaries warn detects getting a pointer from a temporary
+ dead-code warn detect unused, unexported items
+ dependency-on-unit-never-type-fallback warn never type fallback affecting unsafe function calls
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-nullptr warn detects when an null pointer is dereferenced
+ double-negations warn detects expressions of the form `--x`
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-named-lifetimes warn detects when an elided lifetime gets resolved to be `'static` or some named parameter
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ missing-abi warn No declared ABI for extern declaration
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-local-definitions warn checks for non-local definitions
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ out-of-scope-macro-calls warn detects out of scope calls to `macro_rules` in key-value attributes
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-to-integer-transmute-in-consts warn detects pointer to integer transmutes in const functions and associated constants
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn shared references or mutable references of mutable static is discouraged
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ undefined-naked-function-abi warn undefined naked function ABI
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unpredictable-function-pointer-comparisons warn detects unpredictable function pointer comparisons
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-fn-ptr-calling-conventions warn use of unsupported calling convention for function pointer
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ uses-power-alignment warn Structs do not follow the power alignment rule under repr(C)
+ warnings warn mass-change the level for lints which produce warnings
+ wasm-c-abi warn detects code relying on rustc's non-spec-compliant wasm C ABI
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ default-overrides-default-fields deny detect `Default` impl that should use the type's default field values
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible abi-unsupported-vector-types, ambiguous-associated-items, ambiguous-glob-imports, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-fn-ptr-calling-conventions, wasm-c-abi
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.88.0.txt b/outputs/1.88.0.txt
@@ -0,0 +1,254 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ deref-into-dyn-supertrait allow `Deref` implementation with a supertrait trait object for output is shadowed by trait upcasting
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ if-let-rescope allow `if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ impl-trait-redundant-captures allow redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that has a destructor
+ linker-messages allow warnings emitted at runtime by the target-specific linker program
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when a dyn-compatible trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-guarded-string-incompatible-syntax allow will be parsed as a guarded string in Rust 2024
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ supertrait-item-shadowing-definition allow detects when a supertrait item is shadowed by a subtrait item
+ supertrait-item-shadowing-usage allow detects when a supertrait item is shadowed by a subtrait item
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unqualified-local-imports allow `use` of a local item without leading `self::`, `super::`, or `crate::`
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dangerous-implicit-autorefs warn implicit reference to a dereference of a raw pointer
+ dangling-pointers-from-temporaries warn detects getting a pointer from a temporary
+ dead-code warn detect unused, unexported items
+ dependency-on-unit-never-type-fallback warn never type fallback affecting unsafe function calls
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-nullptr warn detects when an null pointer is dereferenced
+ double-negations warn detects expressions of the form `--x`
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ elided-named-lifetimes warn detects when an elided lifetime gets resolved to be `'static` or some named parameter
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ missing-abi warn No declared ABI for extern declaration
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-local-definitions warn checks for non-local definitions
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ out-of-scope-macro-calls warn detects out of scope calls to `macro_rules` in key-value attributes
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-to-integer-transmute-in-consts warn detects pointer to integer transmutes in const functions and associated constants
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn creating a shared reference to mutable static
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unnecessary-transmutes warn detects transmutes that are shadowed by std methods
+ unpredictable-function-pointer-comparisons warn detects unpredictable function pointer comparisons
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-fn-ptr-calling-conventions warn use of unsupported calling convention for function pointer
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ uses-power-alignment warn Structs do not follow the power alignment rule under repr(C)
+ warnings warn mass-change the level for lints which produce warnings
+ wasm-c-abi warn detects code relying on rustc's non-spec-compliant wasm C ABI
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ default-overrides-default-fields deny detect `Default` impl that should use the type's default field values
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-null-arguments deny invalid null pointer in arguments
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ missing-fragment-specifier deny detects missing fragment specifiers in unused `macro_rules!` patterns
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible ambiguous-associated-items, ambiguous-glob-imports, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-fn-ptr-calling-conventions, wasm-c-abi
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.89.0.txt b/outputs/1.89.0.txt
@@ -0,0 +1,254 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ deref-into-dyn-supertrait allow `Deref` implementation with a supertrait trait object for output is shadowed by trait upcasting
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ if-let-rescope allow `if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ impl-trait-redundant-captures allow redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that has a destructor
+ linker-messages allow warnings emitted at runtime by the target-specific linker program
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when a dyn-compatible trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-guarded-string-incompatible-syntax allow will be parsed as a guarded string in Rust 2024
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ supertrait-item-shadowing-definition allow detects when a supertrait item is shadowed by a subtrait item
+ supertrait-item-shadowing-usage allow detects when a supertrait item is shadowed by a subtrait item
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unqualified-local-imports allow `use` of a local item without leading `self::`, `super::`, or `crate::`
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ aarch64-softfloat-neon warn detects code that could be affected by ABI issues on aarch64 softfloat targets
+ ambiguous-glob-imports warn detects certain glob imports that require reporting an ambiguity error
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dangling-pointers-from-temporaries warn detects getting a pointer from a temporary
+ dead-code warn detect unused, unexported items
+ dependency-on-unit-never-type-fallback warn never type fallback affecting unsafe function calls
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-nullptr warn detects when an null pointer is dereferenced
+ double-negations warn detects expressions of the form `--x`
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mismatched-lifetime-syntaxes warn detects when a lifetime uses different syntax between arguments and return values
+ missing-abi warn No declared ABI for extern declaration
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-local-definitions warn checks for non-local definitions
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ out-of-scope-macro-calls warn detects out of scope calls to `macro_rules` in key-value attributes
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-to-integer-transmute-in-consts warn detects pointer to integer transmutes in const functions and associated constants
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn creating a shared reference to mutable static
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-lints warn unrecognized lint attribute
+ unknown-or-malformed-diagnostic-attributes warn unrecognized or malformed diagnostic attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unnecessary-transmutes warn detects transmutes that can also be achieved by other operations
+ unpredictable-function-pointer-comparisons warn detects unpredictable function pointer comparisons
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unsupported-fn-ptr-calling-conventions warn use of unsupported calling convention for function pointer
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ uses-power-alignment warn Structs do not follow the power alignment rule under repr(C)
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ dangerous-implicit-autorefs deny implicit reference to a dereference of a raw pointer
+ default-overrides-default-fields deny detect `Default` impl that should use the type's default field values
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-null-arguments deny invalid null pointer in arguments
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible aarch64-softfloat-neon, ambiguous-associated-items, ambiguous-glob-imports, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, unsupported-fn-ptr-calling-conventions
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.9.0.txt b/outputs/1.9.0.txt
@@ -0,0 +1,86 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny, and deny all overrides)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ box-pointers allow use of owned (Box type) heap memory
+ fat-ptr-transmutes allow detects transmutes of fat pointers
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of fmt::Debug
+ missing-docs allow detects missing documentation for public members
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unsafe-code allow usage of `unsafe` code
+ unstable-features allow enabling unstable features (deprecated. do not use)
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ const-err warn constant evaluation detected erroneous expression
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ drop-with-repr-extern warn use of #[repr(C)] on a type that implements Drop
+ illegal-floating-point-constant-pattern warn floating-point constants cannot be used in patterns
+ illegal-struct-or-enum-constant-pattern warn constants of struct or enum type can only be used in a pattern if the struct or enum has `#[derive(PartialEq, Eq)]`
+ improper-ctypes warn proper use of libc types in foreign modules
+ inaccessible-extern-crate warn use of inaccessible extern crate erroneously allowed
+ invalid-type-param-default warn type parameter default erroneously allowed in invalid location
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }`
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ no-mangle-generic-items warn generic items must be mangled
+ overflowing-literals warn literal out of range for its type
+ overlapping-inherent-impls warn two overlapping inherent impls define an item with the same name were erroneously allowed
+ path-statements warn path statements with no effect
+ plugin-as-library warn compiler plugin used as ordinary library in non-plugin crate
+ private-in-public warn detect private items in public interfaces not caught by the old implementation
+ private-no-mangle-fns warn functions marked #[no_mangle] should be exported
+ private-no-mangle-statics warn statics marked #[no_mangle] should be exported
+ raw-pointer-derive warn uses of #[derive] with raw pointers are rarely correct
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ stable-features warn stable features found in #[feature] directive
+ super-or-self-in-global-path warn detects super or self keywords at the beginning of global path
+ transmute-from-fn-item-types warn transmute from function item type to pointer-sized type erroneously allowed
+ unconditional-recursion warn functions that cannot return without calling themselves
+ unknown-lints warn unrecognized lint attribute
+ unreachable-code warn detects unreachable code paths
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-features warn unused or unknown features found in crate-level #[feature] directives
+ unused-imports warn imports that are never used
+ unused-must-use warn unused result of a type flagged as #[must_use]
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ exceeding-bitshifts deny shift exceeds the type's number of bits
+ match-of-unit-variant-via-paren-dotdot deny unit struct or enum variant erroneously allowed to match via path::ident(..)
+ mutable-transmutes deny mutating transmuted &mut T from &T may cause undefined behavior
+ no-mangle-const-items deny const items will not have their symbols exported
+ unknown-crate-types deny unknown crate type found in #[crate_type] directive
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all built-in lints
+ bad-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ future-incompatible private-in-public, inaccessible-extern-crate, invalid-type-param-default, super-or-self-in-global-path, match-of-unit-variant-via-paren-dotdot, transmute-from-fn-item-types, overlapping-inherent-impls, illegal-floating-point-constant-pattern, illegal-struct-or-enum-constant-pattern
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unused-must-use, unused-unsafe, path-statements, unused-attributes
+
+
+Compiler plugins can provide additional lints and lint groups. To see a listing of these, re-run `rustc -W help` with a crate filename.
diff --git a/outputs/1.90.0.txt b/outputs/1.90.0.txt
@@ -0,0 +1,257 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ deref-into-dyn-supertrait allow `Deref` implementation with a supertrait trait object for output is shadowed by trait upcasting
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ if-let-rescope allow `if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ impl-trait-redundant-captures allow redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that has a destructor
+ linker-messages allow warnings emitted at runtime by the target-specific linker program
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when a dyn-compatible trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-guarded-string-incompatible-syntax allow will be parsed as a guarded string in Rust 2024
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ supertrait-item-shadowing-definition allow detects when a supertrait item is shadowed by a subtrait item
+ supertrait-item-shadowing-usage allow detects when a supertrait item is shadowed by a subtrait item
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unqualified-local-imports allow `use` of a local item without leading `self::`, `super::`, or `crate::`
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ aarch64-softfloat-neon warn detects code that could be affected by ABI issues on aarch64 softfloat targets
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dangling-pointers-from-temporaries warn detects getting a pointer from a temporary
+ dead-code warn detect unused, unexported items
+ dependency-on-unit-never-type-fallback warn never type fallback affecting unsafe function calls
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-nullptr warn detects when an null pointer is dereferenced
+ double-negations warn detects expressions of the form `--x`
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[no_sanitize(...)]`
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ legacy-derive-helpers warn detects derive helper attributes that are used before they are introduced
+ malformed-diagnostic-attributes warn detects malformed diagnostic attributes
+ malformed-diagnostic-format-literals warn detects diagnostic attribute with malformed diagnostic format literals
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mismatched-lifetime-syntaxes warn detects when a lifetime uses different syntax between arguments and return values
+ misplaced-diagnostic-attributes warn detects diagnostic attributes that are placed on the wrong item
+ missing-abi warn No declared ABI for extern declaration
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-local-definitions warn checks for non-local definitions
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ out-of-scope-macro-calls warn detects out of scope calls to `macro_rules` in key-value attributes
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-to-integer-transmute-in-consts warn detects pointer to integer transmutes in const functions and associated constants
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ semicolon-in-expressions-from-macros warn trailing semicolon in macro body used as expression
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn creating a shared reference to mutable static
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-diagnostic-attributes warn detects unknown diagnostic attributes
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unnecessary-transmutes warn detects transmutes that can also be achieved by other operations
+ unpredictable-function-pointer-comparisons warn detects unpredictable function pointer comparisons
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ uses-power-alignment warn Structs do not follow the power alignment rule under repr(C)
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ ambiguous-glob-imports deny detects certain glob imports that require reporting an ambiguity error
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ dangerous-implicit-autorefs deny implicit reference to a dereference of a raw pointer
+ default-overrides-default-fields deny detect `Default` impl that should use the type's default field values
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-null-arguments deny invalid null pointer in arguments
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible aarch64-softfloat-neon, ambiguous-associated-items, ambiguous-glob-imports, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn
+ unknown-or-malformed-diagnostic-attributes malformed-diagnostic-attributes, malformed-diagnostic-format-literals, misplaced-diagnostic-attributes, unknown-diagnostic-attributes
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.91.0.txt b/outputs/1.91.0.txt
@@ -0,0 +1,260 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ deref-into-dyn-supertrait allow `Deref` implementation with a supertrait trait object for output is shadowed by trait upcasting
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ if-let-rescope allow `if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ impl-trait-redundant-captures allow redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that has a destructor
+ linker-messages allow warnings emitted at runtime by the target-specific linker program
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when a dyn-compatible trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-guarded-string-incompatible-syntax allow will be parsed as a guarded string in Rust 2024
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ supertrait-item-shadowing-definition allow detects when a supertrait item is shadowed by a subtrait item
+ supertrait-item-shadowing-usage allow detects when a supertrait item is shadowed by a subtrait item
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unqualified-local-imports allow `use` of a local item without leading `self::`, `super::`, or `crate::`
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ aarch64-softfloat-neon warn detects code that could be affected by ABI issues on aarch64 softfloat targets
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dangling-pointers-from-locals warn detects returning a pointer from a local variable
+ dangling-pointers-from-temporaries warn detects getting a pointer from a temporary
+ dead-code warn detect unused, unexported items
+ dependency-on-unit-never-type-fallback warn never type fallback affecting unsafe function calls
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-nullptr warn detects when an null pointer is dereferenced
+ double-negations warn detects expressions of the form `--x`
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[sanitize(... = "off")]`
+ integer-to-ptr-transmutes warn detects integer to pointer transmutes
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ macro-extended-temporary-scopes warn detects when a lifetime-extended temporary borrowed in a macro argument has a future-incompatible scope.
+ malformed-diagnostic-attributes warn detects malformed diagnostic attributes
+ malformed-diagnostic-format-literals warn detects diagnostic attribute with malformed diagnostic format literals
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mismatched-lifetime-syntaxes warn detects when a lifetime uses different syntax between arguments and return values
+ misplaced-diagnostic-attributes warn detects diagnostic attributes that are placed on the wrong item
+ missing-abi warn No declared ABI for extern declaration
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-local-definitions warn checks for non-local definitions
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-to-integer-transmute-in-consts warn detects pointer to integer transmutes in const functions and associated constants
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn creating a shared reference to mutable static
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-diagnostic-attributes warn detects unknown diagnostic attributes
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unnecessary-transmutes warn detects transmutes that can also be achieved by other operations
+ unpredictable-function-pointer-comparisons warn detects unpredictable function pointer comparisons
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ uses-power-alignment warn Structs do not follow the power alignment rule under repr(C)
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ ambiguous-glob-imports deny detects certain glob imports that require reporting an ambiguity error
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ dangerous-implicit-autorefs deny implicit reference to a dereference of a raw pointer
+ default-overrides-default-fields deny detect `Default` impl that should use the type's default field values
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-null-arguments deny invalid null pointer in arguments
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-derive-helpers deny detects derive helper attributes that are used before they are introduced
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ out-of-scope-macro-calls deny detects out of scope calls to `macro_rules` in key-value attributes
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ semicolon-in-expressions-from-macros deny trailing semicolon in macro body used as expression
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible aarch64-softfloat-neon, ambiguous-associated-items, ambiguous-glob-imports, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, macro-extended-temporary-scopes, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn
+ unknown-or-malformed-diagnostic-attributes malformed-diagnostic-attributes, malformed-diagnostic-format-literals, misplaced-diagnostic-attributes, unknown-diagnostic-attributes
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.91.1.txt b/outputs/1.91.1.txt
@@ -0,0 +1,260 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ deref-into-dyn-supertrait allow `Deref` implementation with a supertrait trait object for output is shadowed by trait upcasting
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ if-let-rescope allow `if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ impl-trait-redundant-captures allow redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that has a destructor
+ linker-messages allow warnings emitted at runtime by the target-specific linker program
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when a dyn-compatible trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-guarded-string-incompatible-syntax allow will be parsed as a guarded string in Rust 2024
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ supertrait-item-shadowing-definition allow detects when a supertrait item is shadowed by a subtrait item
+ supertrait-item-shadowing-usage allow detects when a supertrait item is shadowed by a subtrait item
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unqualified-local-imports allow `use` of a local item without leading `self::`, `super::`, or `crate::`
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ aarch64-softfloat-neon warn detects code that could be affected by ABI issues on aarch64 softfloat targets
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dangling-pointers-from-locals warn detects returning a pointer from a local variable
+ dangling-pointers-from-temporaries warn detects getting a pointer from a temporary
+ dead-code warn detect unused, unexported items
+ dependency-on-unit-never-type-fallback warn never type fallback affecting unsafe function calls
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-nullptr warn detects when an null pointer is dereferenced
+ double-negations warn detects expressions of the form `--x`
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[sanitize(... = "off")]`
+ integer-to-ptr-transmutes warn detects integer to pointer transmutes
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-macro-export-arguments warn "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ macro-extended-temporary-scopes warn detects when a lifetime-extended temporary borrowed in a macro argument has a future-incompatible scope.
+ malformed-diagnostic-attributes warn detects malformed diagnostic attributes
+ malformed-diagnostic-format-literals warn detects diagnostic attribute with malformed diagnostic format literals
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mismatched-lifetime-syntaxes warn detects when a lifetime uses different syntax between arguments and return values
+ misplaced-diagnostic-attributes warn detects diagnostic attributes that are placed on the wrong item
+ missing-abi warn No declared ABI for extern declaration
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ never-type-fallback-flowing-into-unsafe warn never type fallback affecting unsafe function calls
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-local-definitions warn checks for non-local definitions
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-to-integer-transmute-in-consts warn detects pointer to integer transmutes in const functions and associated constants
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn creating a shared reference to mutable static
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-diagnostic-attributes warn detects unknown diagnostic attributes
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unnecessary-transmutes warn detects transmutes that can also be achieved by other operations
+ unpredictable-function-pointer-comparisons warn detects unpredictable function pointer comparisons
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ uses-power-alignment warn Structs do not follow the power alignment rule under repr(C)
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ ambiguous-glob-imports deny detects certain glob imports that require reporting an ambiguity error
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ dangerous-implicit-autorefs deny implicit reference to a dereference of a raw pointer
+ default-overrides-default-fields deny detect `Default` impl that should use the type's default field values
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-null-arguments deny invalid null pointer in arguments
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-derive-helpers deny detects derive helper attributes that are used before they are introduced
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ no-mangle-const-items deny const items will not have their symbols exported
+ out-of-scope-macro-calls deny detects out of scope calls to `macro_rules` in key-value attributes
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ semicolon-in-expressions-from-macros deny trailing semicolon in macro body used as expression
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible aarch64-softfloat-neon, ambiguous-associated-items, ambiguous-glob-imports, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, macro-extended-temporary-scopes, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn
+ unknown-or-malformed-diagnostic-attributes malformed-diagnostic-attributes, malformed-diagnostic-format-literals, misplaced-diagnostic-attributes, unknown-diagnostic-attributes
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.92.0.txt b/outputs/1.92.0.txt
@@ -0,0 +1,259 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ deref-into-dyn-supertrait allow `Deref` implementation with a supertrait trait object for output is shadowed by trait upcasting
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ if-let-rescope allow `if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ impl-trait-redundant-captures allow redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that has a destructor
+ linker-messages allow warnings emitted at runtime by the target-specific linker program
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when a dyn-compatible trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-guarded-string-incompatible-syntax allow will be parsed as a guarded string in Rust 2024
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ supertrait-item-shadowing-definition allow detects when a supertrait item is shadowed by a subtrait item
+ supertrait-item-shadowing-usage allow detects when a supertrait item is shadowed by a subtrait item
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unqualified-local-imports allow `use` of a local item without leading `self::`, `super::`, or `crate::`
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ aarch64-softfloat-neon warn detects code that could be affected by ABI issues on aarch64 softfloat targets
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dangling-pointers-from-locals warn detects returning a pointer from a local variable
+ dangling-pointers-from-temporaries warn detects getting a pointer from a temporary
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ deref-nullptr warn detects when an null pointer is dereferenced
+ double-negations warn detects expressions of the form `--x`
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[sanitize(... = "off")]`
+ integer-to-ptr-transmutes warn detects integer to pointer transmutes
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ malformed-diagnostic-attributes warn detects malformed diagnostic attributes
+ malformed-diagnostic-format-literals warn detects diagnostic attribute with malformed diagnostic format literals
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mismatched-lifetime-syntaxes warn detects when a lifetime uses different syntax between arguments and return values
+ misplaced-diagnostic-attributes warn detects diagnostic attributes that are placed on the wrong item
+ missing-abi warn No declared ABI for extern declaration
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-local-definitions warn checks for non-local definitions
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-to-integer-transmute-in-consts warn detects pointer to integer transmutes in const functions and associated constants
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-transparent-external-private-fields warn transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn creating a shared reference to mutable static
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-diagnostic-attributes warn detects unknown diagnostic attributes
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unnecessary-transmutes warn detects transmutes that can also be achieved by other operations
+ unpredictable-function-pointer-comparisons warn detects unpredictable function pointer comparisons
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ uses-power-alignment warn Structs do not follow the power alignment rule under repr(C)
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ ambiguous-glob-imports deny detects certain glob imports that require reporting an ambiguity error
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ dangerous-implicit-autorefs deny implicit reference to a dereference of a raw pointer
+ default-overrides-default-fields deny detect `Default` impl that should use the type's default field values
+ dependency-on-unit-never-type-fallback deny never type fallback affecting unsafe function calls
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-macro-export-arguments deny "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-null-arguments deny invalid null pointer in arguments
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-derive-helpers deny detects derive helper attributes that are used before they are introduced
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ never-type-fallback-flowing-into-unsafe deny never type fallback affecting unsafe function calls
+ no-mangle-const-items deny const items will not have their symbols exported
+ out-of-scope-macro-calls deny detects out of scope calls to `macro_rules` in key-value attributes
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ semicolon-in-expressions-from-macros deny trailing semicolon in macro body used as expression
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible aarch64-softfloat-neon, ambiguous-associated-items, ambiguous-glob-imports, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-macro-export-arguments, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn
+ unknown-or-malformed-diagnostic-attributes malformed-diagnostic-attributes, malformed-diagnostic-format-literals, misplaced-diagnostic-attributes, unknown-diagnostic-attributes
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/outputs/1.93.0.txt b/outputs/1.93.0.txt
@@ -0,0 +1,264 @@
+
+Available lint options:
+ -W <foo> Warn about <foo>
+ -A <foo> Allow <foo>
+ -D <foo> Deny <foo>
+ -F <foo> Forbid <foo> (deny <foo> and all attempts to override)
+
+
+Lint checks provided by rustc:
+
+ name default meaning
+ ---- ------- -------
+ absolute-paths-not-starting-with-crate allow fully qualified paths that start with a module name instead of `crate`, `self`, or an extern crate name
+ ambiguous-negative-literals allow ambiguous negative literals operations
+ closure-returning-async-block allow closure that returns `async {}` could be rewritten as an async closure
+ deprecated-in-future allow detects use of items that will be deprecated in a future version
+ deprecated-safe-2024 allow detects unsafe functions being used as safe functions
+ deref-into-dyn-supertrait allow `Deref` implementation with a supertrait trait object for output is shadowed by trait upcasting
+ edition-2024-expr-fragment-specifier allow The `expr` fragment specifier will accept more expressions in the 2024 edition. To keep the existing behavior, use the `expr_2021` fragment specifier.
+ elided-lifetimes-in-paths allow hidden lifetime parameters in types are deprecated
+ explicit-outlives-requirements allow outlives requirements can be inferred
+ ffi-unwind-calls allow call to foreign functions or function pointers with FFI-unwind ABI
+ fuzzy-provenance-casts allow a fuzzy integer to pointer cast is used
+ if-let-rescope allow `if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and rewriting in `match` is an option to preserve the semantics up to Edition 2021
+ impl-trait-overcaptures allow `impl Trait` will capture more lifetimes than possibly intended in edition 2024
+ impl-trait-redundant-captures allow redundant precise-capturing `use<...>` syntax on an `impl Trait`
+ keyword-idents-2018 allow detects edition keywords being used as an identifier
+ keyword-idents-2024 allow detects edition keywords being used as an identifier
+ let-underscore-drop allow non-binding let on a type that has a destructor
+ linker-messages allow warnings emitted at runtime by the target-specific linker program
+ lossy-provenance-casts allow a lossy pointer to integer cast is used
+ macro-use-extern-crate allow the `#[macro_use]` attribute is now deprecated in favor of using macros via the module system
+ meta-variable-misuse allow possible meta-variable misuse at macro definition
+ missing-copy-implementations allow detects potentially-forgotten implementations of `Copy`
+ missing-debug-implementations allow detects missing implementations of Debug
+ missing-docs allow detects missing documentation for public members
+ missing-unsafe-on-extern allow detects missing unsafe keyword on extern declarations
+ multiple-supertrait-upcastable allow detect when a dyn-compatible trait has multiple supertraits
+ must-not-suspend allow use of a `#[must_not_suspend]` value across a yield point
+ non-ascii-idents allow detects non-ASCII identifiers
+ non-exhaustive-omitted-patterns allow detect when patterns of types marked `non_exhaustive` are missed
+ redundant-imports allow imports that are redundant due to being imported already
+ redundant-lifetimes allow detects lifetime parameters that are redundant because they are equal to some other named lifetime
+ resolving-to-items-shadowing-supertrait-items allow detects when a supertrait item is shadowed by a subtrait item
+ rust-2021-incompatible-closure-captures allow detects closures affected by Rust 2021 changes
+ rust-2021-incompatible-or-patterns allow detects usage of old versions of or-patterns
+ rust-2021-prefixes-incompatible-syntax allow identifiers that will be parsed as a prefix in Rust 2021
+ rust-2021-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ rust-2024-guarded-string-incompatible-syntax allow will be parsed as a guarded string in Rust 2024
+ rust-2024-incompatible-pat allow detects patterns whose meaning will change in Rust 2024
+ rust-2024-prelude-collisions allow detects the usage of trait methods which are ambiguous with traits added to the prelude in future editions
+ shadowing-supertrait-items allow detects when a supertrait item is shadowed by a subtrait item
+ single-use-lifetimes allow detects lifetime parameters that are only used once
+ tail-expr-drop-order allow Detect and warn on significant change in drop order in tail expression location
+ trivial-casts allow detects trivial casts which could be removed
+ trivial-numeric-casts allow detects trivial casts of numeric types which could be removed
+ unit-bindings allow binding is useless because it has the unit `()` type
+ unnameable-types allow effective visibility of a type is larger than the area in which it can be named
+ unqualified-local-imports allow `use` of a local item without leading `self::`, `super::`, or `crate::`
+ unreachable-pub allow `pub` items not reachable from crate root
+ unsafe-attr-outside-unsafe allow detects unsafe attributes outside of unsafe
+ unsafe-code allow usage of `unsafe` code and other potentially unsound constructs
+ unsafe-op-in-unsafe-fn allow unsafe operations in unsafe functions without an explicit unsafe block are deprecated
+ unstable-features allow enabling unstable features
+ unused-crate-dependencies allow crate dependencies that are never used
+ unused-extern-crates allow extern crates that are never used
+ unused-import-braces allow unnecessary braces around an imported item
+ unused-lifetimes allow detects lifetime parameters that are never used
+ unused-macro-rules allow detects macro rules that were not used
+ unused-qualifications allow detects unnecessarily qualified names
+ unused-results allow unused result of an expression in a statement
+ variant-size-differences allow detects enums with widely varying variant sizes
+ aarch64-softfloat-neon warn detects code that could be affected by ABI issues on aarch64 softfloat targets
+ ambiguous-glob-reexports warn ambiguous glob re-exports
+ ambiguous-wide-pointer-comparisons warn detects ambiguous wide pointer comparisons
+ anonymous-parameters warn detects anonymous parameters
+ array-into-iter warn detects calling `into_iter` on arrays in Rust 2015 and 2018
+ asm-sub-register warn using only a subset of a register for inline asm inputs
+ async-fn-in-trait warn use of `async fn` in definition of a publicly-reachable trait
+ bad-asm-style warn incorrect use of inline assembly
+ bare-trait-objects warn suggest using `dyn Trait` for trait objects
+ boxed-slice-into-iter warn detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021
+ break-with-label-and-loop warn `break` expression with label and unlabeled loop as value expression
+ clashing-extern-declarations warn detects when an extern fn has been declared with the same name but different types
+ coherence-leak-check warn distinct impls distinguished only by the leak-check code
+ confusable-idents warn detects visually confusable pairs between identifiers
+ const-evaluatable-unchecked warn detects a generic constant is used in a type without a emitting a warning
+ const-item-interior-mutations warn checks for calls which mutates a interior mutable const-item
+ const-item-mutation warn detects attempts to mutate a `const` item
+ dangling-pointers-from-locals warn detects returning a pointer from a local variable
+ dangling-pointers-from-temporaries warn detects getting a pointer from a temporary
+ dead-code warn detect unused, unexported items
+ deprecated warn detects use of deprecated items
+ deprecated-where-clause-location warn deprecated where clause location
+ double-negations warn detects expressions of the form `--x`
+ dropping-copy-types warn calls to `std::mem::drop` with a value that implements Copy
+ dropping-references warn calls to `std::mem::drop` with a reference instead of an owned value
+ drop-bounds warn bounds of the form `T: Drop` are most likely incorrect
+ duplicate-macro-attributes warn duplicated attribute
+ dyn-drop warn trait objects of the form `dyn Drop` are useless
+ ellipsis-inclusive-range-patterns warn `...` range patterns are deprecated
+ exported-private-dependencies warn public interface leaks type from a private dependency
+ forbidden-lint-groups warn applying forbid to lint-groups
+ forgetting-copy-types warn calls to `std::mem::forget` with a value that implements Copy
+ forgetting-references warn calls to `std::mem::forget` with a reference instead of an owned value
+ for-loops-over-fallibles warn for-looping over an `Option` or a `Result`, which is more clearly expressed as an `if let`
+ function-casts-as-integer warn casting a function into an integer
+ function-item-references warn suggest casting to a function pointer when attempting to take references to function items
+ hidden-glob-reexports warn name introduced by a private item shadows a name introduced by a public glob re-export
+ improper-ctypes warn proper use of libc types in foreign modules
+ improper-ctypes-definitions warn proper use of libc types in foreign item definitions
+ incomplete-features warn incomplete features that may function improperly in some or all cases
+ inline-no-sanitize warn detects incompatible use of `#[inline(always)]` and `#[sanitize(... = "off")]`
+ integer-to-ptr-transmutes warn detects integer to pointer transmutes
+ internal-features warn internal features are not supposed to be used
+ invalid-from-utf8 warn using a non UTF-8 literal in `std::str::from_utf8`
+ invalid-nan-comparisons warn detects invalid floating point NaN comparisons
+ invalid-value warn an invalid value is being created (such as a null reference)
+ irrefutable-let-patterns warn detects irrefutable patterns in `if let` and `while let` statements
+ large-assignments warn detects large moves or copies
+ late-bound-lifetime-arguments warn detects generic lifetime arguments in path segments with late bound lifetime parameters
+ malformed-diagnostic-attributes warn detects malformed diagnostic attributes
+ malformed-diagnostic-format-literals warn detects diagnostic attribute with malformed diagnostic format literals
+ map-unit-fn warn `Iterator::map` call that discard the iterator's values
+ mismatched-lifetime-syntaxes warn detects when a lifetime uses different syntax between arguments and return values
+ misplaced-diagnostic-attributes warn detects diagnostic attributes that are placed on the wrong item
+ missing-abi warn No declared ABI for extern declaration
+ mixed-script-confusables warn detects Unicode scripts whose mixed script confusables codepoints are solely used
+ named-arguments-used-positionally warn named arguments in format used positionally
+ non-camel-case-types warn types, variants, traits and type parameters should have camel case names
+ non-contiguous-range-endpoints warn detects off-by-one errors with exclusive range patterns
+ non-fmt-panics warn detect single-argument panic!() invocations in which the argument is not a format string
+ non-local-definitions warn checks for non-local definitions
+ non-shorthand-field-patterns warn using `Struct { x: x }` instead of `Struct { x }` in a pattern
+ non-snake-case warn variables, methods, functions, lifetime parameters and modules should have snake case names
+ non-upper-case-globals warn static constants should have uppercase identifiers
+ noop-method-call warn detects the use of well-known noop methods
+ no-mangle-generic-items warn generic items must be mangled
+ opaque-hidden-inferred-bound warn detects the use of nested `impl Trait` types in associated type bounds that are not general enough
+ overlapping-range-endpoints warn detects range patterns with overlapping endpoints
+ path-statements warn path statements with no effect
+ private-bounds warn private type in secondary interface of an item
+ private-interfaces warn private type in primary interface of an item
+ ptr-to-integer-transmute-in-consts warn detects pointer to integer transmutes in const functions and associated constants
+ redundant-semicolons warn detects unnecessary trailing semicolons
+ refining-impl-trait-internal warn impl trait in impl method signature does not match trait method signature
+ refining-impl-trait-reachable warn impl trait in impl method signature does not match trait method signature
+ renamed-and-removed-lints warn lints that have been renamed or removed
+ repr-c-enums-larger-than-int warn repr(C) enums with discriminant values that do not fit into a C int
+ rtsan-nonblocking-async warn detects incompatible uses of `#[sanitize(realtime = "nonblocking")]` on async functions
+ self-constructor-from-outer-item warn detect unsupported use of `Self` from outer item
+ special-module-name warn module declarations for files with a special meaning
+ stable-features warn stable features found in `#[feature]` directive
+ static-mut-refs warn creating a shared reference to mutable static
+ suspicious-double-ref-op warn suspicious call of trait method on `&&T`
+ trivial-bounds warn these bounds don't depend on an type parameters
+ type-alias-bounds warn bounds in type aliases are not enforced
+ tyvar-behind-raw-pointer warn raw pointer to an inference variable
+ uncommon-codepoints warn detects uncommon Unicode codepoints in identifiers
+ unconditional-recursion warn functions that cannot return without calling themselves
+ uncovered-param-in-projection warn impl contains type parameters that are not covered
+ unexpected-cfgs warn detects unexpected names and values in `#[cfg]` conditions
+ unfulfilled-lint-expectations warn unfulfilled lint expectation
+ ungated-async-fn-track-caller warn enabling track_caller on an async fn is a no-op unless the async_fn_track_caller feature is enabled
+ uninhabited-static warn uninhabited static
+ unknown-diagnostic-attributes warn detects unknown diagnostic attributes
+ unknown-lints warn unrecognized lint attribute
+ unnameable-test-items warn detects an item that cannot be named being marked as `#[test_case]`
+ unnecessary-transmutes warn detects transmutes that can also be achieved by other operations
+ unpredictable-function-pointer-comparisons warn detects unpredictable function pointer comparisons
+ unreachable-code warn detects unreachable code paths
+ unreachable-patterns warn detects unreachable patterns
+ unstable-name-collisions warn detects name collision with an existing but unstable method
+ unstable-syntax-pre-expansion warn unstable syntax can change at any point in the future, causing a hard error!
+ unsupported-calling-conventions warn use of unsupported calling convention
+ unused-allocation warn detects unnecessary allocations that can be eliminated
+ unused-assignments warn detect assignments that will never be read
+ unused-associated-type-bounds warn detects unused `Foo = Bar` bounds in `dyn Trait<Foo = Bar>`
+ unused-attributes warn detects attributes that were not used by the compiler
+ unused-braces warn unnecessary braces around an expression
+ unused-comparisons warn comparisons made useless by limits of the types involved
+ unused-doc-comments warn detects doc comments that aren't used by rustdoc
+ unused-features warn unused features found in crate-level `#[feature]` directives
+ unused-imports warn imports that are never used
+ unused-labels warn detects labels that are never used
+ unused-macros warn detects macros that were not used
+ unused-must-use warn unused result of a type flagged as `#[must_use]`
+ unused-mut warn detect mut variables which don't need to be mutable
+ unused-parens warn `if`, `match`, `while` and `return` do not need parentheses
+ unused-unsafe warn unnecessary use of an `unsafe` block
+ unused-variables warn detect variables which are not used in any way
+ useless-ptr-null-checks warn useless checking of non-null-typed pointer
+ uses-power-alignment warn Structs do not follow the power alignment rule under repr(C)
+ varargs-without-pattern warn detects usage of `...` arguments without a pattern in non-foreign items
+ warnings warn mass-change the level for lints which produce warnings
+ while-true warn suggest using `loop { }` instead of `while true { }`
+ ambiguous-associated-items deny ambiguous associated items
+ ambiguous-glob-imports deny detects certain glob imports that require reporting an ambiguity error
+ arithmetic-overflow deny arithmetic operation overflows
+ binary-asm-labels deny labels in inline assembly containing only 0 or 1 digits
+ bindings-with-variant-name deny detects pattern bindings with the same name as one of the matched variants
+ conflicting-repr-hints deny conflicts between `#[repr(..)]` hints that were previously accepted and used in practice
+ dangerous-implicit-autorefs deny implicit reference to a dereference of a raw pointer
+ default-overrides-default-fields deny detect `Default` impl that should use the type's default field values
+ dependency-on-unit-never-type-fallback deny never type fallback affecting unsafe function calls
+ deref-nullptr deny detects when an null pointer is dereferenced
+ elided-lifetimes-in-associated-constant deny elided lifetimes cannot be used in associated constants in impls
+ enum-intrinsics-non-enums deny detects calls to `core::mem::discriminant` and `core::mem::variant_count` with non-enum types
+ explicit-builtin-cfgs-in-flags deny detects builtin cfgs set via the `--cfg`
+ ill-formed-attribute-input deny ill-formed attribute inputs that were previously accepted and used in practice
+ incomplete-include deny trailing content in included file
+ ineffective-unstable-trait-impl deny detects `#[unstable]` on stable trait implementations for stable types
+ invalid-atomic-ordering deny usage of invalid atomic ordering in atomic operations and memory fences
+ invalid-doc-attributes deny detects invalid `#[doc(...)]` attributes
+ invalid-from-utf8-unchecked deny using a non UTF-8 literal in `std::str::from_utf8_unchecked`
+ invalid-macro-export-arguments deny "invalid_parameter" isn't a valid argument for `#[macro_export]`
+ invalid-null-arguments deny invalid null pointer in arguments
+ invalid-reference-casting deny casts of `&T` to `&mut T` without interior mutability
+ invalid-type-param-default deny type parameter default erroneously allowed in invalid location
+ legacy-derive-helpers deny detects derive helper attributes that are used before they are introduced
+ let-underscore-lock deny non-binding let on a synchronization lock
+ long-running-const-eval deny detects long const eval operations
+ macro-expanded-macro-exports-accessed-by-absolute-paths deny macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
+ mutable-transmutes deny transmuting &T to &mut T is undefined behavior, even if the reference is unused
+ named-asm-labels deny named labels in inline assembly
+ never-type-fallback-flowing-into-unsafe deny never type fallback affecting unsafe function calls
+ no-mangle-const-items deny const items will not have their symbols exported
+ out-of-scope-macro-calls deny detects out of scope calls to `macro_rules` in key-value attributes
+ overflowing-literals deny literal out of range for its type
+ patterns-in-fns-without-body deny patterns in functions without body were erroneously allowed
+ proc-macro-derive-resolution-fallback deny detects proc macro derives using inaccessible names from parent modules
+ pub-use-of-private-extern-crate deny detect public re-exports of private extern crates
+ repr-transparent-non-zst-fields deny transparent type contains an external ZST that is marked #[non_exhaustive] or contains private fields
+ semicolon-in-expressions-from-macros deny trailing semicolon in macro body used as expression
+ soft-unstable deny a feature gate that doesn't break dependent crates
+ test-unstable-lint deny this unstable lint is only for testing
+ text-direction-codepoint-in-comment deny invisible directionality-changing codepoints in comment
+ text-direction-codepoint-in-literal deny detect special Unicode codepoints that affect the visual representation of text on screen, changing the direction in which text flows
+ unconditional-panic deny operation will cause a panic at runtime
+ undropped-manually-drops deny calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of it's inner value
+ unknown-crate-types deny unknown crate type found in `#[crate_type]` directive
+ useless-deprecated deny detects deprecation attributes with no effect
+
+
+Lint groups provided by rustc:
+
+ name sub-lints
+ ---- ---------
+ warnings all lints that are set to issue warnings
+ deprecated-safe deprecated-safe-2024
+ future-incompatible aarch64-softfloat-neon, ambiguous-associated-items, ambiguous-glob-imports, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-macro-export-arguments, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, pub-use-of-private-extern-crate, repr-c-enums-larger-than-int, repr-transparent-non-zst-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-calling-conventions, varargs-without-pattern
+ keyword-idents keyword-idents-2018, keyword-idents-2024
+ let-underscore let-underscore-drop, let-underscore-lock
+ nonstandard-style non-camel-case-types, non-snake-case, non-upper-case-globals
+ refining-impl-trait refining-impl-trait-reachable, refining-impl-trait-internal
+ rust-2018-compatibility keyword-idents-2018, anonymous-parameters, absolute-paths-not-starting-with-crate, tyvar-behind-raw-pointer
+ rust-2018-idioms bare-trait-objects, unused-extern-crates, ellipsis-inclusive-range-patterns, elided-lifetimes-in-paths, explicit-outlives-requirements
+ rust-2021-compatibility ellipsis-inclusive-range-patterns, array-into-iter, non-fmt-panics, bare-trait-objects, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions
+ rust-2024-compatibility keyword-idents-2024, edition-2024-expr-fragment-specifier, boxed-slice-into-iter, impl-trait-overcaptures, if-let-rescope, static-mut-refs, dependency-on-unit-never-type-fallback, deprecated-safe-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn
+ unknown-or-malformed-diagnostic-attributes malformed-diagnostic-attributes, malformed-diagnostic-format-literals, misplaced-diagnostic-attributes, unknown-diagnostic-attributes
+ unused unused-imports, unused-variables, unused-assignments, dead-code, unused-mut, unreachable-code, unreachable-patterns, unused-must-use, unused-unsafe, path-statements, unused-attributes, unused-macros, unused-macro-rules, unused-allocation, unused-doc-comments, unused-extern-crates, unused-features, unused-labels, unused-parens, unused-braces, redundant-semicolons, map-unit-fn
+
+
+Lint tools like Clippy can load additional lints and lint groups.
diff --git a/src/args.rs b/src/args.rs
@@ -0,0 +1,260 @@
+use super::{
+ ExitCode,
+ io::{self, Write as _},
+};
+use std::ffi::OsString;
+/// Error from parsing CLI arguments.
+#[cfg_attr(test, derive(Debug, PartialEq))]
+pub(crate) enum E {
+ /// No arguments exist including the name of the program which is assumed to be the first argument.
+ NoArgs,
+ /// The contained string is not an argument that is supported.
+ UnknownArg(OsString),
+}
+impl E {
+ /// Writes `self` to `stderr`.
+ pub(crate) fn into_exit_code(self) -> ExitCode {
+ let mut stderr = io::stderr().lock();
+ match self {
+ Self::NoArgs => writeln!(
+ stderr,
+ "No arguments were passed including the first argument which is assumed to be the name of the program. See lints help for more information."
+ ),
+ Self::UnknownArg(arg) => writeln!(
+ stderr,
+ "Unrecognized argument '{}' was passed. See lints help for more information.",
+ arg.display()
+ ),
+ }.map_or(ExitCode::FAILURE, |()| ExitCode::FAILURE)
+ }
+}
+/// The command passed.
+#[cfg_attr(test, derive(Debug, PartialEq))]
+pub(crate) enum Cmd {
+ /// `"allow"` all lints.
+ ///
+ /// The first contained `bool` is `true` iff all lint groups and individual lints should be `allow`ed
+ /// instead of just `"warnings"` lint group and `deny`-by-default lints.
+ /// The second contained `bool` is `true` iff lint groups are allowed to contain undefined lints.
+ Allow(bool, bool),
+ /// `"deny"`.
+ ///
+ /// The first contained `bool` is `true` iff all individual lints should be `deny`ed instead of just
+ /// the lint groups and `allow`-by-default lints that are not part of any group.
+ /// The second contained `bool` is `true` iff lint groups are allowed to contain undefined lints.
+ Deny(bool, bool),
+ /// `"help"`.
+ Help,
+ /// `"version"`.
+ Version,
+}
+/// Options we allow.
+#[derive(Clone, Copy)]
+enum Opt {
+ /// No option.
+ None,
+ /// `"--all"`.
+ All,
+ /// `"--allow-undefined-lints"`.
+ AllowUndefined,
+ /// `"--all"` and `"--allow-undefined-lints"`.
+ AllAndAllowUndefined,
+}
+impl Cmd {
+ /// Extracts options from `opts`.
+ fn get_opts<I: Iterator<Item = OsString>>(
+ mut opts: I,
+ opt: Opt,
+ arg: OsString,
+ ) -> Result<Opt, E> {
+ /// `b"--all"`.
+ const ALL: &[u8] = b"--all".as_slice();
+ /// `b"--allow-undefined-lints"`.
+ const ALLOW_UNDEFINED_LINTS: &[u8] = b"--allow-undefined-lints".as_slice();
+ match arg.as_encoded_bytes() {
+ ALL => match opt {
+ Opt::None => Ok(Opt::All),
+ Opt::All | Opt::AllAndAllowUndefined => Err(E::UnknownArg(arg)),
+ Opt::AllowUndefined => Ok(Opt::AllAndAllowUndefined),
+ },
+ ALLOW_UNDEFINED_LINTS => match opt {
+ Opt::None => Ok(Opt::AllowUndefined),
+ Opt::AllowUndefined | Opt::AllAndAllowUndefined => Err(E::UnknownArg(arg)),
+ Opt::All => Ok(Opt::AllAndAllowUndefined),
+ },
+ _ => Err(E::UnknownArg(arg)),
+ }
+ .and_then(|opt2| {
+ opts.next()
+ .map_or(Ok(opt2), |nxt| Self::get_opts(opts, opt2, nxt))
+ })
+ }
+ /// Parses the CLI arguments.
+ #[expect(clippy::unreachable, reason = "want to crash when there is a bug")]
+ pub(crate) fn try_from_args<I: IntoIterator<Item = OsString>>(iter: I) -> Result<Self, E> {
+ let mut args = iter.into_iter();
+ args.next().ok_or(E::NoArgs).and_then(|_| {
+ args.next().map_or(Ok(Self::Deny(false, false)), |cmd| {
+ match cmd.as_encoded_bytes() {
+ b"allow" => args.next().map_or(Ok(Self::Allow(false, false)), |arg| {
+ Self::get_opts(args, Opt::None, arg).map(|opt| match opt {
+ Opt::None => unreachable!("bug in args::Cmd::get_ops"),
+ Opt::All => Self::Allow(true, false),
+ Opt::AllowUndefined => Self::Allow(false, true),
+ Opt::AllAndAllowUndefined => Self::Allow(true, true),
+ })
+ }),
+ b"deny" => args.next().map_or(Ok(Self::Deny(false, false)), |arg| {
+ Self::get_opts(args, Opt::None, arg).map(|opt| match opt {
+ Opt::None => unreachable!("bug in args::Cmd::get_ops"),
+ Opt::All => Self::Deny(true, false),
+ Opt::AllowUndefined => Self::Deny(false, true),
+ Opt::AllAndAllowUndefined => Self::Deny(true, true),
+ })
+ }),
+ b"help" => args
+ .next()
+ .map_or(Ok(Self::Help), |opt| Err(E::UnknownArg(opt))),
+ b"version" => args
+ .next()
+ .map_or(Ok(Self::Version), |opt| Err(E::UnknownArg(opt))),
+ _ => Self::get_opts(args, Opt::None, cmd).map(|opt| match opt {
+ Opt::None => unreachable!("bug in args::Cmd::get_ops"),
+ Opt::All => Self::Deny(true, false),
+ Opt::AllowUndefined => Self::Deny(false, true),
+ Opt::AllAndAllowUndefined => Self::Deny(true, true),
+ }),
+ }
+ })
+ })
+ }
+}
+#[cfg(test)]
+mod tests {
+ use super::{Cmd, E};
+ #[test]
+ fn successes() {
+ assert_eq!(Cmd::try_from_args(["".into()]), Ok(Cmd::Deny(false, false)));
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "--all".into()]),
+ Ok(Cmd::Deny(true, false))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "--allow-undefined-lints".into()]),
+ Ok(Cmd::Deny(false, true))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "--all".into(), "--allow-undefined-lints".into()]),
+ Ok(Cmd::Deny(true, true))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "allow".into()]),
+ Ok(Cmd::Allow(false, false))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "allow".into(), "--all".into()]),
+ Ok(Cmd::Allow(true, false))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "allow".into(), "--allow-undefined-lints".into()]),
+ Ok(Cmd::Allow(false, true))
+ );
+ assert_eq!(
+ Cmd::try_from_args([
+ "".into(),
+ "allow".into(),
+ "--allow-undefined-lints".into(),
+ "--all".into()
+ ]),
+ Ok(Cmd::Allow(true, true))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "deny".into()]),
+ Ok(Cmd::Deny(false, false))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "deny".into(), "--all".into()]),
+ Ok(Cmd::Deny(true, false))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "deny".into(), "--allow-undefined-lints".into()]),
+ Ok(Cmd::Deny(false, true))
+ );
+ assert_eq!(
+ Cmd::try_from_args([
+ "".into(),
+ "deny".into(),
+ "--all".into(),
+ "--allow-undefined-lints".into()
+ ]),
+ Ok(Cmd::Deny(true, true))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "help".into()]),
+ Ok(Cmd::Help)
+ );
+ assert_eq!(
+ Cmd::try_from_args(["doesn't matter what this is".into(), "version".into()]),
+ Ok(Cmd::Version)
+ );
+ }
+ #[test]
+ fn errs() {
+ assert_eq!(Cmd::try_from_args([]), Err(E::NoArgs));
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "".into()]),
+ Err(E::UnknownArg("".into()))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "foo".into()]),
+ Err(E::UnknownArg("foo".into()))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "help".into(), "version".into()]),
+ Err(E::UnknownArg("version".into()))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "version".into(), "allow".into()]),
+ Err(E::UnknownArg("allow".into()))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "allow".into(), "allow".into()]),
+ Err(E::UnknownArg("allow".into()))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "deny".into(), "allow".into()]),
+ Err(E::UnknownArg("allow".into()))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "--all".into(), "allow".into()]),
+ Err(E::UnknownArg("allow".into()))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "--allow-undefined-lints".into(), "deny".into()]),
+ Err(E::UnknownArg("deny".into()))
+ );
+ assert_eq!(
+ Cmd::try_from_args(["".into(), "deny".into(), "--all".into(), "".into()]),
+ Err(E::UnknownArg("".into()))
+ );
+ assert_eq!(
+ Cmd::try_from_args([
+ "".into(),
+ "--all".into(),
+ "--allow-undefined-lints".into(),
+ "--all".into()
+ ]),
+ Err(E::UnknownArg("--all".into()))
+ );
+ assert_eq!(
+ Cmd::try_from_args([
+ "".into(),
+ "deny".into(),
+ "--all".into(),
+ "--allow-undefined-lints".into(),
+ "foo".into()
+ ]),
+ Err(E::UnknownArg("foo".into()))
+ );
+ }
+}
diff --git a/src/cmd.rs b/src/cmd.rs
@@ -0,0 +1,240 @@
+extern crate alloc;
+use super::{
+ Error, ExitCode,
+ io::{self, Write as _},
+};
+#[cfg(target_os = "openbsd")]
+use super::{Permissions, Promises, env};
+use alloc::string::FromUtf8Error;
+#[cfg(target_os = "openbsd")]
+use std::{ffi::OsStr, fs, io::ErrorKind};
+use std::{
+ path::{Path, PathBuf},
+ process::{Command, Stdio},
+};
+/// Error when executing `rustc -Whelp`.
+pub(crate) enum E {
+ /// I/O error.
+ Io(Error),
+ /// Error when there is no `$PATH` variable.
+ #[cfg(target_os = "openbsd")]
+ NoPathVariable,
+ /// Error when `"rustc"` is unable to be located in `$PATH`.
+ #[cfg(target_os = "openbsd")]
+ NoRustcInPath,
+ /// `rustc -Whelp` didn't return a status code, and nothing was written to `stderr`.
+ RustcNoStatusNoErr,
+ /// `rustc -Whelp` didn't return a status code, and invalid UTF-8 was written to `stderr`.
+ RustcNoStatusInvalidUtf8(FromUtf8Error),
+ /// `rustc -Whelp` didn't return a status code, and the contained `String` was written to `stderr`.
+ RustcNoStatusErr(String),
+ /// `rustc -Whelp` returned an error code, but nothing was written to `stderr`.
+ RustcErrStatusNoErr(i32),
+ /// `rustc -Whelp` returned an error code, but `stderr` contained invalid UTF-8.
+ RustcErrStatusInvalidUtf8(i32, FromUtf8Error),
+ /// `rustc -Whelp` returned an error code, and the contained `String` was written to `stderr`.
+ RustcErrStatus(i32, String),
+ /// `rustc -Whelp` returned a success code, but `stderr` contained invalid UTF-8.
+ RustcSuccessErrInvalidUtf8(FromUtf8Error),
+ /// `rustc -Whelp` returned a success code, but the contained `String` was written to `stderr`.
+ RustcSuccessErr(String),
+}
+impl E {
+ /// Writes `self` into `stderr`.
+ pub(crate) fn into_exit_code(self) -> ExitCode {
+ let mut stderr = io::stderr().lock();
+ match self {
+ Self::Io(err) => writeln!(stderr, "I/O issue: {err}."),
+ #[cfg(target_os = "openbsd")]
+ Self::NoPathVariable => writeln!(
+ stderr,
+ "No PATH variable."
+ ),
+ #[cfg(target_os = "openbsd")]
+ Self::NoRustcInPath => writeln!(
+ stderr,
+ "rustc could not be found based on the PATH variable."
+ ),
+ Self::RustcNoStatusNoErr => writeln!(
+ stderr,
+ "rustc -Whelp didn't return a status code but didn't write anything to stderr."
+ ),
+ Self::RustcNoStatusInvalidUtf8(err) => writeln!(
+ stderr,
+ "rustc -Whelp didn't return a status code, but stderr contained invalid UTF-8: {err}."
+ ),
+ Self::RustcNoStatusErr(err) => writeln!(
+ stderr,
+ "rustc -Whelp didn't return a status code, and the following was written to stderr: {err}."
+ ),
+ Self::RustcErrStatusNoErr(code) => writeln!(
+ stderr,
+ "rustc -Whelp returned status {code}, but didn't write anything to stderr."
+ ),
+ Self::RustcErrStatusInvalidUtf8(code, err) => writeln!(
+ stderr,
+ "rustc -Whelp returned status {code}, but stderr contained invalid UTF-8: {err}."
+ ),
+ Self::RustcErrStatus(code, err) => writeln!(
+ stderr,
+ "rustc -Whelp returned status {code}, and the following was written to stderr: {err}."
+ ),
+ Self::RustcSuccessErrInvalidUtf8(err) => writeln!(
+ stderr,
+ "rustc -Whelp returned a successful status code, but stderr contained invalid UTF-8: {err}."
+ ),
+ Self::RustcSuccessErr(err) => writeln!(
+ stderr,
+ "rustc -Whelp returned a successful status code, but the following was written to stderr: {err}."
+ ),
+ }.map_or(ExitCode::FAILURE, |()| ExitCode::FAILURE)
+ }
+}
+/// `"rustc"`.
+const RUSTC: &str = "rustc";
+/// Returns [`RUSTC`] as a `PathBuf`.
+#[expect(clippy::unnecessary_wraps, reason = "unify with OpenBSD")]
+#[cfg(not(target_os = "openbsd"))]
+fn priv_sep<Never>() -> Result<PathBuf, Never> {
+ Ok(RUSTC.into())
+}
+/// `unveil(2)`s the file system for read-only permissions.
+/// Traverses `$PATH` to find `"rustc"`; when found, removes read permissions on the file system before
+/// `unveil(2)`ing `"rustc"` with execute permissions. Last, `pledge(2)`s `c"exec proc stdio unveil"`.
+#[expect(unsafe_code, reason = "comment justifies correctness")]
+#[expect(clippy::option_if_let_else, reason = "false positive")]
+#[cfg(target_os = "openbsd")]
+fn priv_sep() -> Result<PathBuf, E> {
+ Permissions::unveil_raw(c"/", c"r")
+ .map_err(|e| E::Io(e.into()))
+ .and_then(|()| {
+ env::var_os("PATH").map_or(Err(E::NoPathVariable), |path| {
+ path.as_encoded_bytes()
+ .split(|b| *b == b':')
+ .try_fold((), |(), dir| {
+ // SAFETY:
+ // `dir` is obtained directly from `path.as_encoded_bytes` with at most a single
+ // `b':'` removed ensuring any valid UTF-8 that existed before still does.
+ let dir_os = unsafe { OsStr::from_encoded_bytes_unchecked(dir) };
+ fs::read_dir(dir_os).map_or_else(
+ |e| {
+ if matches!(e.kind(), ErrorKind::NotADirectory) {
+ let val = PathBuf::from(dir_os);
+ match val.file_name() {
+ None => Ok(()),
+ Some(file) => {
+ if file == RUSTC {
+ Err(val)
+ } else {
+ Ok(())
+ }
+ }
+ }
+ } else {
+ Ok(())
+ }
+ },
+ |mut ents| {
+ ents.try_fold((), |(), ent_res| {
+ ent_res.map_or(Ok(()), |ent| {
+ if ent.file_name() == RUSTC {
+ Err(PathBuf::from(dir_os).join(RUSTC))
+ } else {
+ Ok(())
+ }
+ })
+ })
+ },
+ )
+ })
+ .map_or_else(
+ |rustc| {
+ Permissions::unveil_raw(c"/", c"")
+ .and_then(|()| {
+ Permissions::unveil_raw(&rustc, c"x").and_then(|()| {
+ Promises::pledge_raw(c"exec proc stdio unveil")
+ .map(|()| rustc)
+ })
+ })
+ .map_err(|e| E::Io(e.into()))
+ },
+ |()| Err(E::NoRustcInPath),
+ )
+ })
+ })
+}
+/// No-op.
+#[expect(clippy::unnecessary_wraps, reason = "unify with OpenBSD")]
+#[cfg(not(target_os = "openbsd"))]
+const fn priv_sep_final<Never>(_: &Path) -> Result<(), Never> {
+ Ok(())
+}
+/// Removes execute permissions on `path` before `pledge(2)`ing `c"stdio"`.
+#[cfg(target_os = "openbsd")]
+fn priv_sep_final(path: &Path) -> Result<(), E> {
+ Permissions::unveil_raw(path, c"")
+ .and_then(|()| Promises::pledge_raw(c"stdio"))
+ .map_err(|e| E::Io(e.into()))
+}
+/// Gets output of `rustc -Whelp`.
+pub(crate) fn execute_rustc() -> Result<Vec<u8>, E> {
+ priv_sep().and_then(|path| {
+ Command::new(&path)
+ .arg("-Whelp")
+ .stderr(Stdio::piped())
+ .stdin(Stdio::null())
+ .stdout(Stdio::piped())
+ .output()
+ .map_err(E::Io)
+ .and_then(|output| {
+ priv_sep_final(&path).and_then(|()| match output.status.code() {
+ None => {
+ if output.stderr.is_empty() {
+ Err(E::RustcNoStatusNoErr)
+ } else {
+ String::from_utf8(output.stderr)
+ .map_err(E::RustcNoStatusInvalidUtf8)
+ .and_then(|err| Err(E::RustcNoStatusErr(err)))
+ }
+ }
+ Some(code) => {
+ if code == 0i32 {
+ if output.stderr.is_empty() {
+ Ok(output.stdout)
+ } else {
+ String::from_utf8(output.stderr)
+ .map_err(E::RustcSuccessErrInvalidUtf8)
+ .and_then(|err| Err(E::RustcSuccessErr(err)))
+ }
+ } else if output.stderr.is_empty() {
+ Err(E::RustcErrStatusNoErr(code))
+ } else {
+ String::from_utf8(output.stderr)
+ .map_err(|err| E::RustcErrStatusInvalidUtf8(code, err))
+ .and_then(|err| Err(E::RustcErrStatus(code, err)))
+ }
+ }
+ })
+ })
+ })
+}
+#[cfg(test)]
+mod tests {
+ #[cfg(not(target_os = "openbsd"))]
+ use core::convert::Infallible;
+ #[cfg(target_os = "openbsd")]
+ use std::ffi::OsString;
+ #[test]
+ #[cfg(not(target_os = "openbsd"))]
+ fn priv_sep() {
+ assert_eq!(super::priv_sep::<Infallible>(), Ok("rustc".into()));
+ }
+ #[ignore = "interferes with testing. should run separately to avoid issues."]
+ #[test]
+ #[cfg(target_os = "openbsd")]
+ fn priv_sep() {
+ assert!(super::priv_sep().is_ok_and(
+ |path| path.is_absolute() && path.file_name() == Some(&OsString::from("rustc"))
+ ));
+ }
+}
diff --git a/src/main.rs b/src/main.rs
@@ -0,0 +1,187 @@
+//! Consult [`README.md`](https://crates.io/crates/lints/).
+/// CLI-argument parsing.
+mod args;
+/// `rustc` execution.
+mod cmd;
+/// Parsing of `rustc -Whelp` output.
+mod parse;
+use args::{Cmd, E as ArgsErr};
+use cmd::E as CmdErr;
+use core::{convert, str};
+use parse::{Data, E as ParseErr, LintGroup, WARNINGS};
+#[cfg(target_os = "openbsd")]
+use priv_sep::{Permissions, Promises};
+use std::{
+ collections::HashSet,
+ env,
+ io::{self, Error, Write as _},
+ process::ExitCode,
+};
+/// Writes `err` to `stderr`.
+#[expect(
+ clippy::needless_pass_by_value,
+ reason = "Error is small and makes the signature more pleasant when dealing with Result::map_or_else"
+)]
+fn into_exit_code(err: Error) -> ExitCode {
+ writeln!(io::stderr().lock(), "{err}").map_or(ExitCode::FAILURE, |()| ExitCode::FAILURE)
+}
+/// Help message.
+const HELP_MSG: &str =
+ "Denies or allows all lints based on rustc -Whelp and what command is passed
+
+Usage: lints [COMMAND] [OPTIONS]
+
+Commands:
+ allow Allows all lints
+ deny Denies all lints
+ help This message
+ version Prints version info
+
+Options:
+ --all Writes all individual lints even if they're already part of a lint group
+ --allow-undefined-lints Lint groups that contain undefined lints are allowed
+
+When nothing or deny is passed, all lint groups and allow-by-default lints that are not part of a group
+are set to deny.
+When allow is passed, \"warnings\" and all deny-by-default lints are set to allow.
+stdout is written to in the format of the TOML table, lints.rust, which can be added to Cargo.toml.";
+/// Version of `lints`.
+const VERSION: &str = concat!("lints ", env!("CARGO_PKG_VERSION"));
+/// No-op.
+#[expect(clippy::unnecessary_wraps, reason = "unify with OpenBSD")]
+#[cfg(not(target_os = "openbsd"))]
+const fn priv_sep<Never>() -> Result<(), Never> {
+ Ok(())
+}
+/// `pledge(2)`s `c"exec proc rpath stdio unveil"` before `unveil(2)`ing no file-system access.
+#[cfg(target_os = "openbsd")]
+fn priv_sep() -> Result<(), Error> {
+ Promises::pledge_raw(c"exec proc rpath stdio unveil")
+ .and_then(|()| Permissions::unveil_raw(c"/", c""))
+ .map_err(Error::from)
+}
+/// Transforms `ascii` into a `str` based on the assumption that it's already been verified to be valid
+/// UTF-8.
+#[expect(clippy::unreachable, reason = "want to crash when there is a bug")]
+fn as_str(ascii: &[u8]) -> &str {
+ str::from_utf8(ascii).unwrap_or_else(|_e| {
+ unreachable!("names of lints and lint groups are verified to be a subset of ASCII")
+ })
+}
+/// Entry to application.
+#[expect(clippy::too_many_lines, reason = "101 lines is OK")]
+fn main() -> ExitCode {
+ priv_sep().map_or_else(into_exit_code, |()| {
+ Cmd::try_from_args(env::args_os()).map_or_else(ArgsErr::into_exit_code, |cmd| match cmd {
+ Cmd::Allow(all, allow_undefined) | Cmd::Deny(all, allow_undefined) => {
+ cmd::execute_rustc().map_or_else(CmdErr::into_exit_code, |output| {
+ Data::new(&output, allow_undefined)
+ .map_err(ParseErr::into_exit_code)
+ .and_then(|mut data| {
+ let mut stdout = io::stdout().lock();
+ if all {
+ let level = if matches!(cmd, Cmd::Allow(_, _)) {
+ "allow"
+ } else {
+ "deny"
+ };
+ // Since `"warnings"` is both a lint and lint group, `data.groups`
+ // does not contain it; instead `data.warn` is the set of all
+ // `warn`-by-default lints sans the lint `"warnings"`.
+ // We write groups first, so we add an empty `"warnings"` group.
+ data.groups.push(LintGroup {
+ name: WARNINGS.as_bytes(),
+ lints: HashSet::new(),
+ });
+ data.groups.sort_unstable();
+ data.groups
+ .into_iter()
+ .try_fold((), |(), group| {
+ writeln!(
+ stdout,
+ "{} = {{ level = \"{level}\", priority = -1 }}",
+ as_str(group.name)
+ )
+ })
+ .and_then(|()| {
+ // There are likely more `warn`-by-default lints, so
+ // we use its memory allocation to append the other lints.
+ data.warn.extend_from_slice(&data.allow);
+ // Reduce memory when we can.
+ drop(data.allow);
+ data.warn.extend_from_slice(&data.deny);
+ // Reduce memory when we can.
+ drop(data.deny);
+ data.warn.sort_unstable();
+ data.warn.iter().try_fold((), |(), lint| {
+ writeln!(
+ stdout,
+ "{} = {{ level = \"{level}\", priority = -1 }}",
+ as_str(lint)
+ )
+ })
+ })
+ } else if matches!(cmd, Cmd::Allow(_, _)) {
+ writeln!(
+ stdout,
+ "{WARNINGS} = {{ level = \"allow\", priority = -1 }}"
+ )
+ .and_then(|()| {
+ data.deny.iter().try_fold((), |(), lint| {
+ writeln!(
+ stdout,
+ "{} = {{ level = \"allow\", priority = -1 }}",
+ as_str(lint)
+ )
+ })
+ })
+ } else {
+ // Since `"warnings"` is both a lint and lint group, `data.groups`
+ // does not contain it; instead `data.warn` is the set of all
+ // `warn`-by-default lints sans the lint `"warnings"`.
+ // We write groups first, so we add an empty `"warnings"` group.
+ data.groups.push(LintGroup {
+ name: WARNINGS.as_bytes(),
+ lints: HashSet::new(),
+ });
+ data.groups.sort_unstable();
+ data.groups
+ .iter()
+ .try_fold((), |(), group| {
+ writeln!(
+ stdout,
+ "{} = {{ level = \"deny\", priority = -1 }}",
+ as_str(group.name)
+ )
+ })
+ .and_then(|()| {
+ data.allow.iter().try_fold((), |(), lint| {
+ if data.groups.iter().any(|group| {
+ group
+ .lints
+ .iter()
+ .any(|group_lint| group_lint == lint)
+ }) {
+ Ok(())
+ } else {
+ writeln!(
+ stdout,
+ "{} = {{ level = \"deny\", priority = -1 }}",
+ as_str(lint)
+ )
+ }
+ })
+ })
+ }
+ .map_err(into_exit_code)
+ })
+ .map_or_else(convert::identity, |()| ExitCode::SUCCESS)
+ })
+ }
+ Cmd::Help => writeln!(io::stdout().lock(), "{HELP_MSG}")
+ .map_or_else(into_exit_code, |()| ExitCode::SUCCESS),
+ Cmd::Version => writeln!(io::stdout().lock(), "{VERSION}")
+ .map_or_else(into_exit_code, |()| ExitCode::SUCCESS),
+ })
+ })
+}
diff --git a/src/parse.rs b/src/parse.rs
@@ -0,0 +1,688 @@
+use super::{
+ ExitCode, HashSet, convert,
+ io::{self, Write as _},
+};
+use core::{
+ cmp::Ordering,
+ hash::{Hash, Hasher},
+};
+// We skip all lines until: "name default meaning" trimming leading spaces.
+// We verify the next line is "---- ------- -------" trimming leading spaces.
+//
+// Next we grab the lints.
+// The regex for lints is verified to be `^ *[\-0-9A-Za-z]+ +(allow|warn|deny) +.*$`.
+//
+// We verify all three kinds of lints are non-empty and no lint exists more than once. We verify the
+// `warn` lints contain a lint called "warnings" which does not count towards the emptiness of
+// `warn` lints.
+//
+// Next we skip all lines until: "name sub-lints" trimming leading spaces.
+// We verify the next line is "---- ---------" trimming leading spaces.
+//
+// Next we grab the lint groups.
+// The regex for lint groups is verified to be `^ +[\-0-9A-Za-z]+ +[ ,\-0-9A-Za-z]+$`.
+//
+// We verify lint group names are unique among themselves and the individual lints sans `"warnings"`
+// which is allowed to exist.
+// We verify the lint groups are non-empty except "warnings" if it is defined.
+// We verify each lint in a lint group is unique.
+// We verify each lint is the name of one of the lints unless `--allow-undefined-lints` was passed.
+// We verify when there is multiple lints, each lint is separated with a single comma and space.
+/// Error from parsing.
+#[cfg_attr(test, derive(Debug, PartialEq))]
+pub(crate) enum E<'a> {
+ /// Output doesn't start as expected.
+ Start,
+ /// The contained line is not the format of a lint.
+ UnexpectedLintLine(&'a [u8]),
+ /// The contained lint appeared more than once.
+ DuplicateLint(&'a [u8]),
+ /// There wasn't a `warn`-by-default lint called `"warnings"`.
+ MissingWarningLint,
+ /// There were no `allow`-by-default lints.
+ NoAllowLints,
+ /// There were no `warn`-by-default lints except for `"warnings"`.
+ NoWarnLints,
+ /// There were no `deny`-by-default lints.
+ NoDenyLints,
+ /// Output doesn't contain what it should between the lints and lint groups.
+ Middle,
+ /// The contained line is not the format of a lint group.
+ UnexpectedLintGroupLine(&'a [u8]),
+ /// The contained lint group name appeared more than once.
+ DuplicateLintGroup(&'a [u8]),
+ /// The contained lint group name is the same as the name of a lint.
+ LintSameNameAsLintGroup(&'a [u8]),
+ /// The contained lint group name contained a lint more than once.
+ LintGroupContainsDuplicateLint(&'a [u8], &'a [u8]),
+ /// The contained lint group name contained an unknown lint.
+ LintGroupContainsUnknownLint(&'a [u8], &'a [u8]),
+ /// The contained lint group name has no lints.
+ EmptyLintGroup(&'a [u8]),
+ /// There were no lint groups.
+ NoLintGroups,
+ /// Output doesn't end as expected.
+ End,
+}
+/// Lines before lints.
+const START: &str = "name default meaning
+---- ------- -------";
+/// Lines between lints and lint groups.
+const MIDDLE: &str = "name sub-lints
+---- ---------";
+impl E<'_> {
+ /// Writes `self` into `stderr`.
+ pub(crate) fn into_exit_code(self) -> ExitCode {
+ let mut stderr = io::stderr().lock();
+ match self {
+ Self::Start => writeln!(stderr, "rustc -Whelp doesn't contain '{START}' ignoring leading spaces"),
+ Self::UnexpectedLintLine(line) => writeln!(
+ stderr,
+ "rustc -Whelp contained the following line that is not the expected format of a lint: {}.",
+ String::from_utf8_lossy(line),
+ ),
+ Self::DuplicateLint(lint) => writeln!(
+ stderr,
+ "rustc -Whelp contained the lint '{}' more than once.",
+ super::as_str(lint)
+ ),
+ Self::MissingWarningLint => writeln!(
+ stderr,
+ "rustc -Whelp didn't contain a warn-by-default lint called 'warnings'."
+ ),
+ Self::NoAllowLints => writeln!(
+ stderr,
+ "rustc -Whelp didn't contain any allow-by-default lints."
+ ),
+ Self::NoWarnLints => writeln!(
+ stderr,
+ "rustc -Whelp didn't contain any warn-by-default lints except for 'warnings'."
+ ),
+ Self::NoDenyLints => writeln!(
+ stderr,
+ "rustc -Whelp didn't contain any deny-by-default lints."
+ ),
+ Self::Middle => writeln!(
+ stderr,
+ "rustc -Whelp doesn't contain '{MIDDLE}' ignoring leading spaces after the lints."
+ ),
+ Self::UnexpectedLintGroupLine(line) => writeln!(
+ stderr,
+ "rustc -Whelp contained the following line that is not the expected format of a lint group: {}.",
+ String::from_utf8_lossy(line),
+ ),
+ Self::DuplicateLintGroup(group) => {
+ writeln!(
+ stderr,
+ "rustc -Whelp contained multiple lint groups called '{}'.",
+ super::as_str(group)
+ )
+ }
+ Self::LintSameNameAsLintGroup(group) => {
+ writeln!(
+ stderr,
+ "rustc -Whelp contained a lint and lint group both named '{}'.",
+ super::as_str(group)
+ )
+ }
+ Self::LintGroupContainsDuplicateLint(group, lint) => writeln!(
+ stderr,
+ "rustc -Whelp contained the lint group '{}' which has the lint '{}' more than once.",
+ super::as_str(group),
+ super::as_str(lint),
+ ),
+ Self::LintGroupContainsUnknownLint(group, lint) => writeln!(
+ stderr,
+ "rustc -Whelp contained the lint group '{}' which has the unknown lint '{}'.",
+ super::as_str(group),
+ super::as_str(lint),
+ ),
+ Self::EmptyLintGroup(group) => {
+ writeln!(
+ stderr,
+ "rustc -Whelp contained the empty lint group '{}'.",
+ super::as_str(group),
+ )
+ }
+ Self::NoLintGroups => writeln!(
+ stderr,
+ "rustc -Whelp didn't contain any lint groups."
+ ),
+ Self::End => writeln!(stderr, "rustc -Whelp did not have at least one empty line after the lint groups."),
+ }.map_or(ExitCode::FAILURE, |()| ExitCode::FAILURE)
+ }
+}
+/// Moves `line` to start at the first non-space.
+#[expect(
+ clippy::arithmetic_side_effects,
+ clippy::indexing_slicing,
+ reason = "comments justifies correctness"
+)]
+fn skip_leading_space(line: &mut &[u8]) {
+ // The `usize` contained in the `Result` is at most `line.len()`, we indexing is fine.
+ *line = &line[line
+ .iter()
+ .try_fold(0, |idx, b| {
+ if *b == b' ' {
+ // `idx < line.len()`, so overflow is not possible.
+ Ok(idx + 1)
+ } else {
+ Err(idx)
+ }
+ })
+ .map_or_else(convert::identity, convert::identity)..];
+}
+/// [`Iterator`] of lines.
+///
+/// In the event a `b'\n'` doesn't exist, `None` will be returned. This means in the event the last
+/// "line" does not end with `b'\n'`, it won't be returned.
+struct Lines<'a>(&'a [u8]);
+impl<'a> Iterator for Lines<'a> {
+ type Item = &'a [u8];
+ #[expect(
+ clippy::arithmetic_side_effects,
+ clippy::indexing_slicing,
+ reason = "comments justify correctness"
+ )]
+ fn next(&mut self) -> Option<Self::Item> {
+ self.0
+ .iter()
+ .try_fold(0, |idx, b| {
+ if *b == b'\n' {
+ Err(idx)
+ } else {
+ // `idx < self.0.len()`, so overflow is not possible.
+ Ok(idx + 1)
+ }
+ })
+ .map_or_else(
+ |idx| {
+ // `idx <= self.0.len()`, so this won't `panic`.
+ let (val, rem) = self.0.split_at(idx);
+ // `rem` starts with a newline, so this won't `panic`.
+ self.0 = &rem[1..];
+ Some(val)
+ },
+ |_| None,
+ )
+ }
+}
+/// Extracts the lint or lint group name from `line`.
+///
+/// Returns `Some` iff a valid lint or lint group name is found ignoring leading spaces and
+/// if there is non-spaces after. The first `slice` is the name and the second slice is
+/// the remaining portion of `line` with leading spaces removed.
+#[expect(
+ clippy::arithmetic_side_effects,
+ reason = "comment justifies correctness"
+)]
+fn get_lint_name(mut line: &[u8]) -> Option<(&[u8], &[u8])> {
+ skip_leading_space(&mut line);
+ line.iter()
+ .try_fold(0, |idx, b| {
+ if *b == b' ' {
+ Err(Some(idx))
+ } else if *b == b'-' || b.is_ascii_alphanumeric() {
+ // `idx < line.len()`, so overflow is not possible.
+ Ok(idx + 1)
+ } else {
+ Err(None)
+ }
+ })
+ .map_or_else(
+ |opt| {
+ opt.and_then(|idx| {
+ let (name, mut rem) = line.split_at(idx);
+ let len = rem.len();
+ skip_leading_space(&mut rem);
+ if len == rem.len() {
+ None
+ } else {
+ Some((name, rem))
+ }
+ })
+ },
+ |_| None,
+ )
+}
+/// The lints.
+///
+/// All `HashSet`s are non-empty with no overlap. `warn` doesn't contain `"warnings"`.
+struct Lints<'a> {
+ /// `allow`-by-default lints.
+ allow: HashSet<&'a [u8]>,
+ /// `warn`-by-default lints.
+ warn: HashSet<&'a [u8]>,
+ /// `deny`-by-default lints.
+ deny: HashSet<&'a [u8]>,
+}
+/// `"warnings"`.
+pub(crate) const WARNINGS: &str = "warnings";
+impl<'a> Lints<'a> {
+ /// Gets the lints from `lines` erring when there are duplicates, there is no `warn`-by-default
+ /// lint called `"warnings"`, or the lints are empty (ignoring the `"warnings"` lint).
+ #[expect(
+ clippy::arithmetic_side_effects,
+ clippy::indexing_slicing,
+ reason = "comments justify correctness"
+ )]
+ fn new(lines: &mut Lines<'a>) -> Result<Self, E<'a>> {
+ /// Get the lint from `line`.
+ ///
+ /// Returns `Some` iff a valid lint name is found after removing leading spaces.
+ /// The first `slice` is the name, and the second `slice` is the next "word".
+ fn get_lint(line: &[u8]) -> Option<(&[u8], &[u8])> {
+ get_lint_name(line).and_then(|(lint, rem)| {
+ rem.iter()
+ // `idx < rem.len()`, so overflow is not possible.
+ .try_fold(0, |idx, b| if *b == b' ' { Err(idx) } else { Ok(idx + 1) })
+ // `idx <= rem.len()`, so this won't `panic`.
+ .map_or_else(|idx| Some((lint, &rem[..idx])), |_| None)
+ })
+ }
+ let mut allow = HashSet::with_capacity(128);
+ let mut warn = HashSet::with_capacity(128);
+ let mut deny = HashSet::with_capacity(128);
+ lines
+ .try_fold((), |(), line| {
+ if line.is_empty() {
+ Err(None)
+ } else {
+ get_lint(line)
+ .ok_or(Some(E::UnexpectedLintLine(line)))
+ .and_then(|(lint, status)| match status {
+ b"allow" => {
+ if !allow.insert(lint) || warn.contains(lint) || deny.contains(lint)
+ {
+ Err(Some(E::DuplicateLint(lint)))
+ } else {
+ Ok(())
+ }
+ }
+ b"warn" => {
+ if !warn.insert(lint) || allow.contains(lint) || deny.contains(lint)
+ {
+ Err(Some(E::DuplicateLint(lint)))
+ } else {
+ Ok(())
+ }
+ }
+ b"deny" => {
+ if !deny.insert(lint) || allow.contains(lint) || warn.contains(lint)
+ {
+ Err(Some(E::DuplicateLint(lint)))
+ } else {
+ Ok(())
+ }
+ }
+ _ => Err(Some(E::UnexpectedLintLine(line))),
+ })
+ }
+ })
+ .map_or_else(
+ |opt| {
+ opt.map_or_else(
+ || {
+ if warn.remove(WARNINGS.as_bytes()) {
+ if allow.is_empty() {
+ Err(E::NoAllowLints)
+ } else if warn.is_empty() {
+ Err(E::NoWarnLints)
+ } else if deny.is_empty() {
+ Err(E::NoDenyLints)
+ } else {
+ Ok(Self { allow, warn, deny })
+ }
+ } else {
+ Err(E::MissingWarningLint)
+ }
+ },
+ Err,
+ )
+ },
+ |()| Err(E::Middle),
+ )
+ }
+}
+/// [`Iterator`] of values separated by commas and spaces.
+///
+/// In the event a value comes after a comma, a single leading space is assumed to exist and will be removed.
+struct Csv<'a>(&'a [u8]);
+impl<'a> Iterator for Csv<'a> {
+ type Item = Result<&'a [u8], ()>;
+ #[expect(
+ clippy::arithmetic_side_effects,
+ reason = "comments justify correctness"
+ )]
+ fn next(&mut self) -> Option<Self::Item> {
+ /// `b", "`.
+ const COMMA_SPACE: &[u8; 2] = b", ";
+ (!self.0.is_empty()).then(|| {
+ match self.0.iter().try_fold(0, |idx, b| {
+ if *b == b',' {
+ Err(idx)
+ } else {
+ // `idx < self.0.len()`, so overflow is not possible.
+ Ok(idx + 1)
+ }
+ }) {
+ Ok(_) => {
+ let val = self.0;
+ self.0 = &[];
+ Ok(val)
+ }
+ Err(idx) => {
+ // `idx <= self.0.len()`, so this won't `panic`.
+ let (val, rem) = self.0.split_at(idx);
+ rem.split_at_checked(COMMA_SPACE.len())
+ .ok_or(())
+ .and_then(|(fst, fst_rem)| {
+ if fst == COMMA_SPACE {
+ self.0 = fst_rem;
+ Ok(val)
+ } else {
+ Err(())
+ }
+ })
+ }
+ }
+ })
+ }
+}
+/// Group of lints.
+pub(crate) struct LintGroup<'a> {
+ /// Name of the group.
+ pub name: &'a [u8],
+ /// Lints that make up the group.
+ pub lints: HashSet<&'a [u8]>,
+}
+impl Eq for LintGroup<'_> {}
+impl PartialEq for LintGroup<'_> {
+ fn eq(&self, other: &Self) -> bool {
+ self.name == other.name
+ }
+}
+impl Hash for LintGroup<'_> {
+ fn hash<H: Hasher>(&self, state: &mut H) {
+ self.name.hash(state);
+ }
+}
+impl PartialOrd for LintGroup<'_> {
+ fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
+ Some(self.cmp(other))
+ }
+}
+impl Ord for LintGroup<'_> {
+ fn cmp(&self, other: &Self) -> Ordering {
+ self.name.cmp(other.name)
+ }
+}
+/// Data from `rustc -Whelp`.
+pub(crate) struct Data<'a> {
+ /// `allow`-by-default lints.
+ pub allow: Vec<&'a [u8]>,
+ /// `warn`-by-default lints.
+ pub warn: Vec<&'a [u8]>,
+ /// `deny`-by-default lints.
+ pub deny: Vec<&'a [u8]>,
+ /// Lint groups.
+ pub groups: Vec<LintGroup<'a>>,
+}
+impl<'a> Data<'a> {
+ /// Moves until the lints.
+ ///
+ /// Returns `true` iff the header was found.
+ fn move_to_lints(lines: &mut Lines<'_>) -> bool {
+ lines
+ .try_fold((), |(), mut line| {
+ skip_leading_space(&mut line);
+ if line == b"name default meaning" {
+ Err(())
+ } else {
+ Ok(())
+ }
+ })
+ .map_or_else(
+ |()| {
+ lines.next().is_some_and(|mut line| {
+ skip_leading_space(&mut line);
+ line == b"---- ------- -------"
+ })
+ },
+ |()| false,
+ )
+ }
+ /// Moves until the lint groups.
+ ///
+ /// Returns `true` iff the header was found.
+ fn move_to_lint_groups(lines: &mut Lines<'_>) -> bool {
+ lines
+ .try_fold((), |(), mut line| {
+ skip_leading_space(&mut line);
+ if line == b"name sub-lints" {
+ Err(())
+ } else {
+ Ok(())
+ }
+ })
+ .map_or_else(
+ |()| {
+ lines.next().is_some_and(|mut line| {
+ skip_leading_space(&mut line);
+ line == b"---- ---------"
+ })
+ },
+ |()| false,
+ )
+ }
+ /// Gets the lint groups from `lines` erring when there are duplicate lint group names or if a lint group
+ /// name is the name of a lint (with the exception of `"warnings"`), or if a group contains duplicate lints.
+ /// In the event `allow_undefined_lints` is `false`, every lint in a lint group must exist in `single_lints`.
+ fn get_lint_groups(
+ output: &mut Lines<'a>,
+ single_lints: &Lints<'_>,
+ allow_undefined_lints: bool,
+ ) -> Result<HashSet<LintGroup<'a>>, E<'a>> {
+ let mut groups = HashSet::with_capacity(16);
+ output
+ .try_fold((), |(), line| {
+ if line.is_empty() {
+ Err(None)
+ } else {
+ get_lint_name(line)
+ .ok_or(Some(E::UnexpectedLintGroupLine(line)))
+ .and_then(|(name, group_lints)| {
+ if name == WARNINGS.as_bytes() {
+ Ok(())
+ } else if single_lints.allow.contains(name)
+ || single_lints.warn.contains(name)
+ || single_lints.deny.contains(name)
+ {
+ Err(Some(E::LintSameNameAsLintGroup(name)))
+ } else {
+ let mut lints = HashSet::with_capacity(32);
+ Csv(group_lints)
+ .try_fold((), |(), res| {
+ res.map_err(|()| Some(E::UnexpectedLintGroupLine(line)))
+ .and_then(|lint| {
+ if allow_undefined_lints
+ || single_lints.allow.contains(lint)
+ || single_lints.warn.contains(lint)
+ || single_lints.deny.contains(lint)
+ {
+ if lints.insert(lint) {
+ Ok(())
+ } else {
+ Err(Some(
+ E::LintGroupContainsDuplicateLint(
+ name, lint,
+ ),
+ ))
+ }
+ } else {
+ Err(Some(E::LintGroupContainsUnknownLint(
+ name, lint,
+ )))
+ }
+ })
+ })
+ .and_then(|()| {
+ if lints.is_empty() {
+ Err(Some(E::EmptyLintGroup(name)))
+ } else if groups.insert(LintGroup { name, lints }) {
+ Ok(())
+ } else {
+ Err(Some(E::DuplicateLintGroup(name)))
+ }
+ })
+ }
+ })
+ }
+ })
+ .map_or_else(
+ |opt| {
+ opt.map_or_else(
+ || {
+ if groups.is_empty() {
+ Err(E::NoLintGroups)
+ } else {
+ Ok(groups)
+ }
+ },
+ Err,
+ )
+ },
+ |()| Err(E::End),
+ )
+ }
+ /// Parses output and returns lints and lint groups.
+ pub(crate) fn new(output: &'a [u8], allow_undefined_lints: bool) -> Result<Self, E<'a>> {
+ let mut lines = Lines(output);
+ if Self::move_to_lints(&mut lines) {
+ Lints::new(&mut lines).and_then(|lints| {
+ if Self::move_to_lint_groups(&mut lines) {
+ Self::get_lint_groups(&mut lines, &lints, allow_undefined_lints).map(
+ |group_set| {
+ let mut allow = Vec::with_capacity(lints.allow.len());
+ lints.allow.into_iter().fold((), |(), lint| {
+ allow.push(lint);
+ });
+ allow.sort_unstable();
+ let mut warn = Vec::with_capacity(lints.warn.len());
+ lints.warn.into_iter().fold((), |(), lint| {
+ warn.push(lint);
+ });
+ warn.sort_unstable();
+ let mut deny = Vec::with_capacity(lints.deny.len());
+ lints.deny.into_iter().fold((), |(), lint| {
+ deny.push(lint);
+ });
+ deny.sort_unstable();
+ let mut groups = Vec::with_capacity(group_set.len());
+ group_set.into_iter().fold((), |(), group| {
+ groups.push(group);
+ });
+ groups.sort_unstable();
+ Self {
+ allow,
+ warn,
+ deny,
+ groups,
+ }
+ },
+ )
+ } else {
+ Err(E::Middle)
+ }
+ })
+ } else {
+ Err(E::Start)
+ }
+ }
+}
+#[cfg(test)]
+mod tests {
+ use super::{Data, E, io::Read as _};
+ use std::fs::{self, File};
+ #[expect(
+ clippy::assertions_on_constants,
+ reason = "want to pretty-print problematic file"
+ )]
+ #[expect(clippy::verbose_file_reads, reason = "want to lock file")]
+ #[test]
+ fn outputs() {
+ assert!(
+ fs::read_dir("./outputs/").is_ok_and(|mut dir| {
+ dir.try_fold((), |(), ent_res| {
+ if ent_res.is_ok_and(|ent| {
+ File::options()
+ .read(true)
+ .open(ent.path())
+ .is_ok_and(|mut file| {
+ file.lock_shared().is_ok_and(|()| {
+ file.metadata().is_ok_and(|meta| {
+ let mut output = Vec::with_capacity(
+ meta.len().try_into().unwrap_or(usize::MAX),
+ );
+ file.read_to_end(&mut output).is_ok_and(|_| {
+ // Release lock.
+ drop(file);
+ let file_name = ent.file_name();
+ let file_name_bytes = file_name.as_encoded_bytes();
+ Data::new(&output, false).map_or_else(
+ |e| match file_name_bytes {
+ b"1.34.0.txt" | b"1.34.1.txt" | b"1.34.2.txt" => {
+ assert_eq!(
+ e,
+ E::LintGroupContainsUnknownLint(
+ b"future-incompatible",
+ b"duplicate-matcher-binding-name"
+ ),
+ "1.34.0.txt, 1.34.1.txt, and 1.34.2.txt can't be parsed for a reason other than the expected reason"
+ );
+ Data::new(&output, true).is_ok()
+ }
+ b"1.48.0.txt" => {
+ assert_eq!(
+ e,
+ E::LintGroupContainsUnknownLint(
+ b"rustdoc",
+ b"private-intra-doc-links"
+ ),
+ "1.48.0.txt can't be parsed for a reason other than the expected reason"
+ );
+ Data::new(&output, true).is_ok()
+ }
+ _ => {
+ assert!(
+ false,
+ "{} cannot be parsed due to {e:?}.",
+ String::from_utf8_lossy(file_name_bytes),
+ );
+ false
+ }
+ },
+ |_| {
+ if matches!(file_name_bytes, b"1.34.0.txt" | b"1.34.1.txt" | b"1.34.2.txt" | b"1.48.0.txt") {
+ assert!(false, "{} shouldn't be parsable", String::from_utf8_lossy(file_name_bytes));
+ false
+ } else {
+ true
+ }
+ },
+ )
+ })
+ })
+ })
+ })
+ }) {
+ Ok(())
+ } else {
+ Err(())
+ }
+ })
+ .is_ok()
+ })
+ );
+ }
+}