-
Couldn't load subscription status.
- Fork 13.9k
resolve: Give derive helpers highest priority during resolution #66529
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
r? @davidtwco (rust_highfive has picked a reviewer for you, use r? to override) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, r=me when CI passes
|
@bors r=davidtwco |
|
📌 Commit f74fe81 has been approved by |
|
cc @rust-lang/lang for awareness |
resolve: Give derive helpers highest priority during resolution So they just shadow everything else and don't create ambiguity errors. This matches the old pre-rust-lang#64694 behavior most closely. --- The change doesn't apply to this "compatibility" case ```rust #[trait_helper] // The helper attribute is used before it introduced. // Sadly, compiles on stable, supported via hacks. // I plan to make a compatibility warning for this. #[derive(Trait)] struct S; ``` , such attributes still create ambiguities, but rust-lang#64694 didn't change anything for this case. Fixes rust-lang#66508 Fixes rust-lang#66525
|
thanks @petrochenkov for looking into this |
Rollup of 13 pull requests Successful merges: - #66090 (Misc CI improvements) - #66239 (Suggest calling async closure when needed) - #66430 ([doc] Fix the source code highlighting on source comments) - #66431 (Fix 'type annotations needed' error with opaque types) - #66461 (Add explanation message for E0641) - #66468 (Cleanup Miri SIMD intrinsics) - #66478 (rustc_plugin: Remove the compatibility shim) - #66493 (Add JohnTitor to rustc-guide toolstate notification list) - #66511 (std::error::Chain: remove Copy) - #66512 (Add unix::process::CommandExt::arg0) - #66520 (Disable gdb pretty printer global section on wasm targets) - #66529 (resolve: Give derive helpers highest priority during resolution) - #66536 (Move the definition of `QueryResult` into `plumbing.rs`.) Failed merges: r? @ghost
resolve: Give derive helpers highest priority during resolution So they just shadow everything else and don't create ambiguity errors. This matches the old pre-rust-lang#64694 behavior most closely. --- The change doesn't apply to this "compatibility" case ```rust #[trait_helper] // The helper attribute is used before it introduced. // Sadly, compiles on stable, supported via hacks. // I plan to make a compatibility warning for this. #[derive(Trait)] struct S; ``` , such attributes still create ambiguities, but rust-lang#64694 didn't change anything for this case. Fixes rust-lang#66508 Fixes rust-lang#66525
Rollup of 11 pull requests Successful merges: - #66090 (Misc CI improvements) - #66155 (Add long error explanation for E0594) - #66239 (Suggest calling async closure when needed) - #66430 ([doc] Fix the source code highlighting on source comments) - #66431 (Fix 'type annotations needed' error with opaque types) - #66461 (Add explanation message for E0641) - #66493 (Add JohnTitor to rustc-guide toolstate notification list) - #66511 (std::error::Chain: remove Copy) - #66529 (resolve: Give derive helpers highest priority during resolution) - #66536 (Move the definition of `QueryResult` into `plumbing.rs`.) - #66538 (Remove compiler_builtins_lib feature from libstd) Failed merges: r? @ghost
So they just shadow everything else and don't create ambiguity errors.
This matches the old pre-#64694 behavior most closely.
The change doesn't apply to this "compatibility" case
, such attributes still create ambiguities, but #64694 didn't change anything for this case.
Fixes #66508
Fixes #66525