Uh oh!
There was an error while loading. Please reload this page.
Make IMPLIED_BOUNDS_ENTAILMENT into a hard error from a lint - #117984
Conversation
I also looked into this and did it the same way you did, but then I also wondered whether we actually wanted to keep the same diagnostics, and emit a "impl method assumes more implied bounds than the corresponding trait method" error instead of a region error (i.e. make a new error code and all that...)? |
Urgau
commented
Nov 16, 2023
In think you can just remove it. |
@lqd: I have no idea how to make that possible, unless we literally just keep the same "try running compare_method_predicate_entailment twice" strategy, which is what this PR aims to remove. The problem here is that we don't really have a good way of emitting special error messages for region obligations that come from different sources, unlike @Urgau: Thanks for the clarification. Makes sense. Totally missed that |
This comment was marked as outdated.
This comment was marked as outdated.
lqd
commented
Nov 16, 2023
@compiler-errors I came to the exact same conclusion, then closed my editor and deleted my branch 😂 |
| } | ||
| } | ||
| return Err(infcx | ||
| .tainted_by_errors() |
There was a problem hiding this comment.
shouldn't tainted_by_errors always be None, given that we return in case select_all_or_error failed?
There was a problem hiding this comment.
idk, astconv might taint the infcx or something. I didn't want to unwrap here, avoids an unnecessary ICE for no cost.
lcnr
commented
Nov 17, 2023
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
bors
commented
Nov 17, 2023
…lment, r=<try> Make `IMPLIED_BOUNDS_ENTAILMENT` into a hard error from a lint closesrust-lang#105572 Removes the `IMPLIED_BOUNDS_ENTAILMENT` and makes the `compare_method_predicate_entailment` logic just run once. r? lcnr
lcnr
commented
Nov 17, 2023
want to run crater, looking at discussions referencing #105572 there are still some projects depending on |
bors
commented
Nov 17, 2023
☀️ Try build successful - checks-actions |
1 similar comment
bors
commented
Nov 17, 2023
☀️ Try build successful - checks-actions |
This comment has been minimized.
This comment has been minimized.
lcnr
commented
Nov 17, 2023
@craterbot check |
craterbot
commented
Nov 17, 2023
👌 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
rust-timer
commented
Nov 17, 2023
Finished benchmarking commit (aa7c6ba): comparison URL. Overall result: ✅ improvements - no action neededBenchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf. @bors rollup=never Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 675.609s -> 676.495s (0.13%) |
lcnr
left a comment
There was a problem hiding this comment.
the lint should be registered as a removed lint in
rust/compiler/rustc_lint/src/lib.rs
Line 509 in e24e5af
890caa1 to
5b088a4Comparecraterbot
commented
Nov 24, 2023
🚧 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
bors
commented
Nov 26, 2023
☔ The latest upstream changes (presumably #118256) made this pull request unmergeable. Please resolve the merge conflicts. |
ea0e059 to
1cb4017Comparelcnr
commented
Dec 15, 2023
@bors r+ rollup=never |
bors
commented
Dec 15, 2023
bors
commented
Dec 16, 2023
☔ The latest upstream changes (presumably #119002) made this pull request unmergeable. Please resolve the merge conflicts. |
1cb4017 to
32907c7Comparecompiler-errors
commented
Dec 16, 2023
@bors r=lcnr |
bors
commented
Dec 16, 2023
bors
commented
Dec 16, 2023
bors
commented
Dec 16, 2023
☀️ Test successful - checks-actions |
rust-timer
commented
Dec 16, 2023
Finished benchmarking commit (5c927ab): comparison URL. Overall result: ❌ regressions - no action needed@rustbot label: -perf-regression Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 671.592s -> 672.112s (0.08%) |
Pkgsrc changes: * Adapt checksums and patches. Upstream chnages: Version 1.76.0 (2024-02-08) ========================== Language -------- - [Document Rust ABI compatibility between various types] (rust-lang/rust#115476) - [Also: guarantee that char and u32 are ABI-compatible] (rust-lang/rust#118032) - [Warn against ambiguous wide pointer comparisons] (rust-lang/rust#117758) Compiler -------- - [Lint pinned `#[must_use]` pointers (in particular, `Box<T>` where `T` is `#[must_use]`) in `unused_must_use`.] (rust-lang/rust#118054) - [Soundness fix: fix computing the offset of an unsized field in a packed struct] (rust-lang/rust#118540) - [Soundness fix: fix dynamic size/align computation logic for packed types with dyn Trait tail] (rust-lang/rust#118538) - [Add `$message_type` field to distinguish json diagnostic outputs] (rust-lang/rust#115691) - [Enable Rust to use the EHCont security feature of Windows] (rust-lang/rust#118013) - [Add tier 3 {x86_64,i686}-win7-windows-msvc targets] (rust-lang/rust#118150) - [Add tier 3 aarch64-apple-watchos target] (rust-lang/rust#119074) - [Add tier 3 arm64e-apple-ios & arm64e-apple-darwin targets] (rust-lang/rust#115526) Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support. Libraries --------- - [Add a column number to `dbg!()`] (rust-lang/rust#114962) - [Add `std::hash::{DefaultHasher, RandomState}` exports] (rust-lang/rust#115694) - [Fix rounding issue with exponents in fmt] (rust-lang/rust#116301) - [Add T: ?Sized to `RwLockReadGuard` and `RwLockWriteGuard`'s Debug impls.] (rust-lang/rust#117138) - [Windows: Allow `File::create` to work on hidden files] (rust-lang/rust#116438) Stabilized APIs --------------- - [`Arc::unwrap_or_clone`] (https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.unwrap_or_clone) - [`Rc::unwrap_or_clone`] (https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.unwrap_or_clone) - [`Result::inspect`] (https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.inspect) - [`Result::inspect_err`] (https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.inspect_err) - [`Option::inspect`] (https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.inspect) - [`type_name_of_val`] (https://doc.rust-lang.org/stable/std/any/fn.type_name_of_val.html) - [`std::hash::{DefaultHasher, RandomState}`] (https://doc.rust-lang.org/stable/std/hash/index.html#structs) These were previously available only through `std::collections::hash_map`. - [`ptr::{from_ref, from_mut}`] (https://doc.rust-lang.org/stable/std/ptr/fn.from_ref.html) - [`ptr::addr_eq`](https://doc.rust-lang.org/stable/std/ptr/fn.addr_eq.html) Cargo ----- See [Cargo release notes] (https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-176-2024-02-08). Rustdoc ------- - [Don't merge cfg and doc(cfg) attributes for re-exports] (rust-lang/rust#113091) - [rustdoc: allow resizing the sidebar / hiding the top bar] (rust-lang/rust#115660) - [rustdoc-search: add support for traits and associated types] (rust-lang/rust#116085) - [rustdoc: Add highlighting for comments in items declaration] (rust-lang/rust#117869) Compatibility Notes ------------------- - [Add allow-by-default lint for unit bindings] (rust-lang/rust#112380) This is expected to be upgraded to a warning by default in a future Rust release. Some macros emit bindings with type `()` with user-provided spans, which means that this lint will warn for user code. - [Remove x86_64-sun-solaris target.] (rust-lang/rust#118091) - [Remove asmjs-unknown-emscripten target] (rust-lang/rust#117338) - [Report errors in jobserver inherited through environment variables] (rust-lang/rust#113730) This [may warn](rust-lang/rust#120515) on benign problems too. - [Update the minimum external LLVM to 16.] (rust-lang/rust#117947) - [Improve `print_tts`](rust-lang/rust#114571) This change can break some naive manual parsing of token trees in proc macro code which expect a particular structure after `.to_string()`, rather than just arbitrary Rust code. - [Make `IMPLIED_BOUNDS_ENTAILMENT` into a hard error from a lint] (rust-lang/rust#117984) - [Vec's allocation behavior was changed when collecting some iterators] (rust-lang/rust#110353) Allocation behavior is currently not specified, nevertheless changes can be surprising. See [`impl FromIterator for Vec`] (https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#impl-FromIterator%3CT%3E-for-Vec%3CT%3E) for more details. - [Properly reject `default` on free const items] (rust-lang/rust#117818)
closes#105572
Removes the
IMPLIED_BOUNDS_ENTAILMENTand makes thecompare_method_predicate_entailmentlogic just run once.r? lcnr