More robustly deal with relaxed bounds and improve their diagnostics#142693
Conversation
8d31700 to
4634541
Compare
69e237d to
03d01fa
Compare
8a6f65d to
04dad4e
Compare
|
@bors2 try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (bfa10de): comparison URL. Overall result: ❌ regressions - please read the text belowBenchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf. Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @bors rollup=never Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (secondary -2.7%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 2.9%, secondary 4.4%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary 1.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 692.606s -> 692.191s (-0.06%) |
|
☔ The latest upstream changes (presumably #143091) made this pull request unmergeable. Please resolve the merge conflicts. |
|
Looks spurious? |
|
@bors rollup- alleviate pressure |
…er-errors More robustly deal with relaxed bounds and improve their diagnostics Scaffolding for rust-lang#135229 (CC rust-lang#135331) Fixes rust-lang#136944 (6th commit). Fixes rust-lang#142718 (8th commit).
Rollup of 9 pull requests Successful merges: - #138554 (Distinguish delim kind to decide whether to emit unexpected closing delimiter) - #142673 (Show the offset, length and memory of uninit read errors) - #142693 (More robustly deal with relaxed bounds and improve their diagnostics) - #143382 (stabilize `const_slice_reverse`) - #143928 (opt-dist: make llvm builds optional) - #143961 (Correct which exploit mitigations are enabled by default) - #144050 (Fix encoding of link_section and no_mangle cross crate) - #144059 (Refactor `CrateLoader` into the `CStore`) - #144123 (Generalize `unsize` and `unsize_into` destinations) r? `@ghost` `@rustbot` modify labels: rollup
Rollup of 9 pull requests Successful merges: - #138554 (Distinguish delim kind to decide whether to emit unexpected closing delimiter) - #142673 (Show the offset, length and memory of uninit read errors) - #142693 (More robustly deal with relaxed bounds and improve their diagnostics) - #143382 (stabilize `const_slice_reverse`) - #143928 (opt-dist: make llvm builds optional) - #143961 (Correct which exploit mitigations are enabled by default) - #144050 (Fix encoding of link_section and no_mangle cross crate) - #144059 (Refactor `CrateLoader` into the `CStore`) - #144123 (Generalize `unsize` and `unsize_into` destinations) r? `@ghost` `@rustbot` modify labels: rollup
Rollup of 9 pull requests Successful merges: - #138554 (Distinguish delim kind to decide whether to emit unexpected closing delimiter) - #142673 (Show the offset, length and memory of uninit read errors) - #142693 (More robustly deal with relaxed bounds and improve their diagnostics) - #143382 (stabilize `const_slice_reverse`) - #143928 (opt-dist: make llvm builds optional) - #143961 (Correct which exploit mitigations are enabled by default) - #144050 (Fix encoding of link_section and no_mangle cross crate) - #144059 (Refactor `CrateLoader` into the `CStore`) - #144123 (Generalize `unsize` and `unsize_into` destinations) r? `@ghost` `@rustbot` modify labels: rollup
Rollup of 9 pull requests Successful merges: - rust-lang/rust#138554 (Distinguish delim kind to decide whether to emit unexpected closing delimiter) - rust-lang/rust#142673 (Show the offset, length and memory of uninit read errors) - rust-lang/rust#142693 (More robustly deal with relaxed bounds and improve their diagnostics) - rust-lang/rust#143382 (stabilize `const_slice_reverse`) - rust-lang/rust#143928 (opt-dist: make llvm builds optional) - rust-lang/rust#143961 (Correct which exploit mitigations are enabled by default) - rust-lang/rust#144050 (Fix encoding of link_section and no_mangle cross crate) - rust-lang/rust#144059 (Refactor `CrateLoader` into the `CStore`) - rust-lang/rust#144123 (Generalize `unsize` and `unsize_into` destinations) r? `@ghost` `@rustbot` modify labels: rollup
…er-errors More robustly deal with relaxed bounds and improve their diagnostics Scaffolding for rust-lang#135229 (CC rust-lang#135331) Fixes rust-lang#136944 (6th commit). Fixes rust-lang#142718 (8th commit).
…iaskrgr Rollup of 9 pull requests Successful merges: - rust-lang#138554 (Distinguish delim kind to decide whether to emit unexpected closing delimiter) - rust-lang#142673 (Show the offset, length and memory of uninit read errors) - rust-lang#142693 (More robustly deal with relaxed bounds and improve their diagnostics) - rust-lang#143382 (stabilize `const_slice_reverse`) - rust-lang#143928 (opt-dist: make llvm builds optional) - rust-lang#143961 (Correct which exploit mitigations are enabled by default) - rust-lang#144050 (Fix encoding of link_section and no_mangle cross crate) - rust-lang#144059 (Refactor `CrateLoader` into the `CStore`) - rust-lang#144123 (Generalize `unsize` and `unsize_into` destinations) r? `@ghost` `@rustbot` modify labels: rollup
Further tighten up relaxed bounds Follow-up to #142693, #135331 and #135841. Fixes #143122. * Reject relaxed bounds `?Trait` in the bounds of trait aliases. Just like `trait Trait {}` doesn't mean `trait Trait: Sized {}` and we therefore reject `trait Trait: ?Sized {}`, `trait Trait =;` (sic!) doesn't mean `trait Trait = Sized;` (never did!) and as a logical consequence `trait Trait = ?Sized;` is meaningless and should be forbidden. * Don't permit `?Sized` in more places (e.g., supertrait bounds, trait object types) if feature `more_maybe_bounds` is enabled. That internal feature is only meant to allow the user to define & use *new* default traits (that have fewer rules to follow for now to ease experimentation). * Unconditionally check that the `Trait` in `?Trait` is a default trait. Previously, we would only perform this check in selected places which was very brittle and led to bugs slipping through. * Slightly improve diagnostics.
Further tighten up relaxed bounds Follow-up to rust-lang#142693, rust-lang#135331 and rust-lang#135841. Fixes rust-lang#143122. * Reject relaxed bounds `?Trait` in the bounds of trait aliases. Just like `trait Trait {}` doesn't mean `trait Trait: Sized {}` and we therefore reject `trait Trait: ?Sized {}`, `trait Trait =;` (sic!) doesn't mean `trait Trait = Sized;` (never did!) and as a logical consequence `trait Trait = ?Sized;` is meaningless and should be forbidden. * Don't permit `?Sized` in more places (e.g., supertrait bounds, trait object types) if feature `more_maybe_bounds` is enabled. That internal feature is only meant to allow the user to define & use *new* default traits (that have fewer rules to follow for now to ease experimentation). * Unconditionally check that the `Trait` in `?Trait` is a default trait. Previously, we would only perform this check in selected places which was very brittle and led to bugs slipping through. * Slightly improve diagnostics.
Rollup merge of #147734 - fmease:tighten-relaxed, r=lcnr Further tighten up relaxed bounds Follow-up to #142693, #135331 and #135841. Fixes #143122. * Reject relaxed bounds `?Trait` in the bounds of trait aliases. Just like `trait Trait {}` doesn't mean `trait Trait: Sized {}` and we therefore reject `trait Trait: ?Sized {}`, `trait Trait =;` (sic!) doesn't mean `trait Trait = Sized;` (never did!) and as a logical consequence `trait Trait = ?Sized;` is meaningless and should be forbidden. * Don't permit `?Sized` in more places (e.g., supertrait bounds, trait object types) if feature `more_maybe_bounds` is enabled. That internal feature is only meant to allow the user to define & use *new* default traits (that have fewer rules to follow for now to ease experimentation). * Unconditionally check that the `Trait` in `?Trait` is a default trait. Previously, we would only perform this check in selected places which was very brittle and led to bugs slipping through. * Slightly improve diagnostics.
Further tighten up relaxed bounds Follow-up to rust-lang/rust#142693, rust-lang/rust#135331 and rust-lang/rust#135841. Fixes rust-lang/rust#143122. * Reject relaxed bounds `?Trait` in the bounds of trait aliases. Just like `trait Trait {}` doesn't mean `trait Trait: Sized {}` and we therefore reject `trait Trait: ?Sized {}`, `trait Trait =;` (sic!) doesn't mean `trait Trait = Sized;` (never did!) and as a logical consequence `trait Trait = ?Sized;` is meaningless and should be forbidden. * Don't permit `?Sized` in more places (e.g., supertrait bounds, trait object types) if feature `more_maybe_bounds` is enabled. That internal feature is only meant to allow the user to define & use *new* default traits (that have fewer rules to follow for now to ease experimentation). * Unconditionally check that the `Trait` in `?Trait` is a default trait. Previously, we would only perform this check in selected places which was very brittle and led to bugs slipping through. * Slightly improve diagnostics.
Rollup of 9 pull requests Successful merges: - rust-lang/rust#138554 (Distinguish delim kind to decide whether to emit unexpected closing delimiter) - rust-lang/rust#142673 (Show the offset, length and memory of uninit read errors) - rust-lang/rust#142693 (More robustly deal with relaxed bounds and improve their diagnostics) - rust-lang/rust#143382 (stabilize `const_slice_reverse`) - rust-lang/rust#143928 (opt-dist: make llvm builds optional) - rust-lang/rust#143961 (Correct which exploit mitigations are enabled by default) - rust-lang/rust#144050 (Fix encoding of link_section and no_mangle cross crate) - rust-lang/rust#144059 (Refactor `CrateLoader` into the `CStore`) - rust-lang/rust#144123 (Generalize `unsize` and `unsize_into` destinations) r? `@ghost` `@rustbot` modify labels: rollup
…ease Eagerly decide whether relaxed bounds are allowed or not r? @davidtwco or @fmease Previously introduced in rust-lang#142693 by @fmease I am trying to resolve https://github.com/rust-lang/rust/blob/d7986943e496ccb07987f4ad83c6f7033d725861/compiler/rustc_hir_analysis/src/hir_ty_lowering/bounds.rs#L196, but then got into a rabbit hole somehwere. I think this PR further unblocks resolving that FIXME, because it makes it easier to reason about whether we should be reporting an error about duplicate bounds or about relaxed bounds in general
Rollup merge of #157305 - oli-obk:relaxed-bounds-maybe, r=fmease Eagerly decide whether relaxed bounds are allowed or not r? @davidtwco or @fmease Previously introduced in #142693 by @fmease I am trying to resolve https://github.com/rust-lang/rust/blob/d7986943e496ccb07987f4ad83c6f7033d725861/compiler/rustc_hir_analysis/src/hir_ty_lowering/bounds.rs#L196, but then got into a rabbit hole somehwere. I think this PR further unblocks resolving that FIXME, because it makes it easier to reason about whether we should be reporting an error about duplicate bounds or about relaxed bounds in general
Scaffolding for #135229 (CC #135331)
Fixes #136944 (6th commit).
Fixes #142718 (8th commit).