Skip to content

v0.15.0

Compare
Choose a tag to compare
@github-actions github-actions released this 05 Jan 04:33
· 563 commits to main since this release
2bdc041

What's Changed

  • Added 11 new lints:

    • constructible_struct_adds_field
    • constructible_struct_adds_private_field
    • enum_struct_variant_field_added
    • function_const_removed
    • function_unsafe_added
    • inherent_method_const_removed
    • inherent_method_unsafe_added
    • trait_missing
    • trait_unsafe_added
    • trait_unsafe_removed
    • tuple_struct_to_plain_struct
  • Eliminated false-positives in 3 lints:

    • struct_missing: "Struct missing" lint shouldn't care about the kind of struct. by @obi1kenobi in #218
    • struct_marked_non_exhaustive: Document private items to fix non-exhaustive false-positives. by @obi1kenobi in #222
    • method_parameter_count_changed: Do not report removed methods as changing their number of parameters. by @obi1kenobi in #220
  • Eliminated false-negatives in 5 lints

    • Improved attribute parsing can now handle repr combinations like #[repr(C, u8)]: New schema for attributes by @SmolSir in #171
    • Affected lints:
      • enum_repr_c_removed
      • enum_repr_int_changed
      • enum_repr_int_removed
      • struct_repr_c_removed
      • struct_repr_transparent_removed
  • Support for rustdoc JSON format v24, the most recent nightly version as of this release

    • via updated dependency on trustfall_rustdoc
  • Prebuilt binaries now available

  • Other bugfixes

    • Exclude yanked releases when choosing baseline version by @mgr0dzicki in #255
    • Bugfix of printed baseline version when ran on given Manifest by @tonowak in #248
    • Fix for rustdoc no longer inlining foreign traits, including built-in traits — via updated dependency on trustfall-rustdoc
  • Internal improvements

    • A massive revamp of the test suite, led by @tonowak. This is what allowed us to build so many new lints in so little time.
    • Streamlined workflow for adding new lints: just run scripts/make_new_lint.sh <new-lint-name> to generate all needed stubs

New Contributors

All Merged PRs

  • Add Rust caching steps to a few more test stages. by @obi1kenobi in #212
  • Suggest installing with --locked in the README by @obi1kenobi in #213
  • Updated CONTRIBUTING.md after the test directory renames by @tonowak in #216
  • One macro to include lints by @tonowak in #204
  • Split each source code in test_crates/ into pair of crates by @tonowak in #203
  • Eliminate new lints raised by new clippy version. by @obi1kenobi in #219
  • Do not report removed methods as changing their number of parameters. by @obi1kenobi in #220
  • "Struct missing" lint shouldn't care about the kind of struct. by @obi1kenobi in #218
  • Document private items to fix non-exhaustive false-positives. by @obi1kenobi in #222
  • Remove accidentally-committed dead code. by @obi1kenobi in #221
  • Add lints for removing const from functions and methods. by @obi1kenobi in #224
  • Ignore directories in test_crates that don't have Cargo.toml. by @obi1kenobi in #228
  • Ensure inherent_method_const_removed disregards method deletions. by @obi1kenobi in #227
  • Add lints for adding unsafe to methods and functions. by @obi1kenobi in #226
  • Protect against more possible false-positives in the const/unsafe lints. by @obi1kenobi in #229
  • Upload binaries to github release in actions by @staniewzki in #208
  • Add the trait_missing lint. by @obi1kenobi in #230
  • Add lints for structs that are no longer externally-constructible as before. by @obi1kenobi in #233
  • Ensure the lint files are part of the binary file itself. by @obi1kenobi in #234
  • Add script for creating everything needed to add a new lint. by @obi1kenobi in #236
  • Make the "new lint" script idempotent for each step separately. by @obi1kenobi in #237
  • Add lint for exhaustive struct variants gaining new fields. by @obi1kenobi in #238
  • Minor polish items for the make_new_lint.sh script. by @obi1kenobi in #239
  • Run lints on nonchanged crates by @tonowak in #206
  • Clippy lint "variables can be used directly in the format! string" by @tonowak in #244
  • Bugfix of printed baseline version when ran on given Manifest by @tonowak in #248
  • Run cargo build and test built binary to ensure it works by @tonowak in #246
  • Describe the new more-automated process for adding new lints. by @obi1kenobi in #240
  • Make the make_new_lint.sh script executable. by @obi1kenobi in #251
  • New lint: exhaustive tuple struct changed to plain struct by @staniewzki in #249
  • Exclude yanked releases when choosing baseline version by @mgr0dzicki in #255
  • New schema for attributes by @SmolSir in #171
  • Generate CI test rustdocs with the toolchain being tested. by @obi1kenobi in #245
  • New lints: Trait becomes/stops being unsafe by @staniewzki in #252
  • Release v0.15.0 with 11 new lints and support for latest nightly. by @obi1kenobi in #258

Full Changelog: v0.14.0...v0.15.0