Skip to content

Re-exporting types, values, and/or macros with the same names can cause false-positives #343

@tonowak

Description

@tonowak

Steps to reproduce the bug with the above code

Clone clap, git checkout v3.2.0, cargo semver-checks check-release --baseline-rev=v3.1.18

Actual Behaviour

     Parsing clap v3.2.0 (current)
     Parsing clap v3.1.18 (baseline)
    Checking clap v3.1.18 -> v3.2.0 (minor change)
   Completed [   3.620s] 35 checks; 33 passed, 2 failed, 5 unnecessary

--- failure auto_trait_impl_removed: auto trait no longer implemented ---

Description:
A public type has stopped implementing one or more auto traits. This can break downstream code that depends on the traits being implemented.
        ref: https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits
       impl: https://github.com/obi1kenobi/cargo-semver-check/tree/v0.17.1/src/queries/auto_trait_impl_removed.ron

Failed in:
  type Arg is no longer UnwindSafe, in src/builder/arg.rs:61
  type Arg is no longer RefUnwindSafe, in src/builder/arg.rs:61
  type ArgMatches is no longer UnwindSafe, in src/parser/matches/arg_matches.rs:68
  type ArgMatches is no longer RefUnwindSafe, in src/parser/matches/arg_matches.rs:68
  type App is no longer UnwindSafe, in src/builder/command.rs:75
  type App is no longer RefUnwindSafe, in src/builder/command.rs:75
  type App is no longer UnwindSafe, in src/builder/command.rs:75
  type App is no longer RefUnwindSafe, in src/builder/command.rs:75
  type Values is no longer UnwindSafe, in src/parser/matches/arg_matches.rs:1466
  type Values is no longer RefUnwindSafe, in src/parser/matches/arg_matches.rs:1466
  type OsValues is no longer UnwindSafe, in src/parser/matches/arg_matches.rs:1548
  type OsValues is no longer RefUnwindSafe, in src/parser/matches/arg_matches.rs:1548

--- failure trait_missing: pub trait removed or renamed ---

Description:
A publicly-visible trait cannot be imported by its prior path. A `pub use` may have been removed, or the trait itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-check/tree/v0.17.1/src/queries/trait_missing.ron

Failed in:
  trait clap::ArgEnum, previously in file src/derive.rs:420
       Final [   3.735s] semver requires new major version: 2 major and 0 minor checks failed

Expected Behaviour

     Parsing clap v3.2.0 (current)
     Parsing clap v3.1.18 (baseline)
    Checking clap v3.1.18 -> v3.2.0 (minor change)
   Completed [   4.668s] 35 checks; 34 passed, 1 failed, 5 unnecessary

--- failure auto_trait_impl_removed: auto trait no longer implemented ---

Description:
A public type has stopped implementing one or more auto traits. This can break downstream code that depends on the traits being implemented.
        ref: https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits
       impl: https://github.com/obi1kenobi/cargo-semver-check/tree/v0.17.1/src/queries/auto_trait_impl_removed.ron

Failed in:
  type OsValues is no longer UnwindSafe, in src/parser/matches/arg_matches.rs:1548
  type OsValues is no longer RefUnwindSafe, in src/parser/matches/arg_matches.rs:1548
  type Values is no longer UnwindSafe, in src/parser/matches/arg_matches.rs:1466
  type Values is no longer RefUnwindSafe, in src/parser/matches/arg_matches.rs:1466
  type App is no longer UnwindSafe, in src/builder/command.rs:75
  type App is no longer RefUnwindSafe, in src/builder/command.rs:75
  type App is no longer UnwindSafe, in src/builder/command.rs:75
  type App is no longer RefUnwindSafe, in src/builder/command.rs:75
  type Arg is no longer UnwindSafe, in src/builder/arg.rs:61
  type Arg is no longer RefUnwindSafe, in src/builder/arg.rs:61
  type ArgMatches is no longer UnwindSafe, in src/parser/matches/arg_matches.rs:68
  type ArgMatches is no longer RefUnwindSafe, in src/parser/matches/arg_matches.rs:68
       Final [   4.790s] semver requires new major version: 1 major and 0 minor checks failed

Generated System Information

Software version

cargo-semver-checks 0.17.1

Operating system

Linux 6.1.9-arch1-1

Command-line

/home/tonowak/.cargo/bin/cargo-semver-checks semver-checks --bugreport

cargo version

> cargo -V
cargo 1.67.0-beta.2 (f6e737b1e 2022-12-02)

Compile time information

  • Profile: release
  • Target triple: x86_64-unknown-linux-gnu
  • Family: unix
  • OS: linux
  • Architecture: x86_64
  • Pointer width: 64
  • Endian: little
  • CPU features: fxsr,sse,sse2
  • Host: x86_64-unknown-linux-gnu

Build Configuration

No response

Additional Context

The false positive is present in stable, beta and nightly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: doesn't meet expectations

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions