Repository navigation
only make RustaceansAreAwesome satisfy trait clauses - #163958
rust-bors[bot] merged 1 commit into
Conversation
| //! Tests for specific instances of <https://github.com/rust-lang/rust/issues/161621> that don't | ||
| //! pass yet. See `dispatchability-placeholder-satisfies-bounds.rs` for context. | ||
| // FIXME(@dianne): this should be gone soon | ||
| //@ known-bug: unknown |
There was a problem hiding this comment.
I've left this as unknown for now since the issue is currently marked as closed and this issue is significantly more specific than what was reported there. not sure if it should be reopened until the followup to this lands or a new issue is warranted
There was a problem hiding this comment.
since you're following up immediately, this is fine
There was a problem hiding this comment.
I've dumped all the passing tests in this file since they share a significant amount of context, especially when adding in the tests I've written for the followup to this, where many tests build on concepts that were set up in previous tests. maybe some of them should be split apart though?
There was a problem hiding this comment.
Seems fine this way. A little bit more annoying to debug when only one of them breaks, but they are all very related
…ke-2-partial, r=oli-obk only make `RustaceansAreAwesome` satisfy trait clauses Fixes rust-lang#163550 but unfortunately partially un-fixes a variant of rust-lang#161621 that hadn't been reported. I have a followup to re-fix that, but I ended up deciding that it would probably be easier to review separately; I'll open a PR for that later. The variant in question: ```rust trait HasAssoc { type Assoc; } trait Parent<T> {} trait Trait where (Self,): HasAssoc<Assoc = str>, Self: Parent<<<(Self,) as HasAssoc>::Assoc as ToOwned>::Owned>, { fn f(&self); //~^ ERROR: the trait bound `<(RustaceansAreAwesome,) as HasAssoc>::Assoc: Clone` is not satisfied //~| NOTE: required for `<(RustaceansAreAwesome,) as HasAssoc>::Assoc` to implement `ToOwned` } ``` This fails to prove `<(RustaceansAreAwesome,) as HasAssoc>::Assoc: Owned` because it can't normalize that alias to `str`. The followup will re-add projections as necessary for this in a hopefully-non-breaking way.
…ke-2-partial, r=oli-obk only make `RustaceansAreAwesome` satisfy trait clauses Fixes rust-lang#163550 but unfortunately partially un-fixes a variant of rust-lang#161621 that hadn't been reported. I have a followup to re-fix that, but I ended up deciding that it would probably be easier to review separately; I'll open a PR for that later. The variant in question: ```rust trait HasAssoc { type Assoc; } trait Parent<T> {} trait Trait where (Self,): HasAssoc<Assoc = str>, Self: Parent<<<(Self,) as HasAssoc>::Assoc as ToOwned>::Owned>, { fn f(&self); //~^ ERROR: the trait bound `<(RustaceansAreAwesome,) as HasAssoc>::Assoc: Clone` is not satisfied //~| NOTE: required for `<(RustaceansAreAwesome,) as HasAssoc>::Assoc` to implement `ToOwned` } ``` This fails to prove `<(RustaceansAreAwesome,) as HasAssoc>::Assoc: Owned` because it can't normalize that alias to `str`. The followup will re-add projections as necessary for this in a hopefully-non-breaking way.
…uwer Rollup of 9 pull requests Successful merges: - #163462 (Fix COFF renaming of decorated (stdcall/fastcall/vectorcall) exports) - #163855 (Include enclosing item's context on const errors) - #163861 (Run LLDB debuginfo tests on `x86_64-mingw`) - #163538 (Add `rustc::missing_generic_type_visitable` lint) - #163617 (mips: make `Complex<T>` ABI match GCC) - #163832 (reject non-async coroutine closures as async callables) - #163958 (only make `RustaceansAreAwesome` satisfy trait clauses) - #163974 (Condense AdtDef lang item checks into one match) - #163979 (Add `bf16` to arm features) Failed merges: - #163972 (const-eval: ICE when we hit a non-const fn)
…ke-2-partial, r=oli-obk only make `RustaceansAreAwesome` satisfy trait clauses Fixes rust-lang#163550 but unfortunately partially un-fixes a variant of rust-lang#161621 that hadn't been reported. I have a followup to re-fix that, but I ended up deciding that it would probably be easier to review separately; I'll open a PR for that later. The variant in question: ```rust trait HasAssoc { type Assoc; } trait Parent<T> {} trait Trait where (Self,): HasAssoc<Assoc = str>, Self: Parent<<<(Self,) as HasAssoc>::Assoc as ToOwned>::Owned>, { fn f(&self); //~^ ERROR: the trait bound `<(RustaceansAreAwesome,) as HasAssoc>::Assoc: Clone` is not satisfied //~| NOTE: required for `<(RustaceansAreAwesome,) as HasAssoc>::Assoc` to implement `ToOwned` } ``` This fails to prove `<(RustaceansAreAwesome,) as HasAssoc>::Assoc: Owned` because it can't normalize that alias to `str`. The followup will re-add projections as necessary for this in a hopefully-non-breaking way.
…uwer Rollup of 12 pull requests Successful merges: - #163462 (Fix COFF renaming of decorated (stdcall/fastcall/vectorcall) exports) - #163855 (Include enclosing item's context on const errors) - #163861 (Run LLDB debuginfo tests on `x86_64-mingw`) - #161201 (Speed up tidy again) - #163538 (Add `rustc::missing_generic_type_visitable` lint) - #163617 (mips: make `Complex<T>` ABI match GCC) - #163772 (comptime fn error: suggest wrapping in const block) - #163832 (reject non-async coroutine closures as async callables) - #163958 (only make `RustaceansAreAwesome` satisfy trait clauses) - #163974 (Condense AdtDef lang item checks into one match) - #163979 (Add `bf16` to arm features) - #163989 (Revert "compiletest: stream output of executor process when --no-capture is set") Failed merges: - #163972 (const-eval: ICE when we hit a non-const fn)
…uwer Rollup of 19 pull requests Successful merges: - #156112 (Distinguish `repr(C)` ZSTs from others in ABI computation) - #157941 (Deny partial `-Z stack-protector` by default in all editions) - #163462 (Fix COFF renaming of decorated (stdcall/fastcall/vectorcall) exports) - #163855 (Include enclosing item's context on const errors) - #163861 (Run LLDB debuginfo tests on `x86_64-mingw`) - #163913 ( Silence redundant failed obligations on the same statement) - #161201 (Speed up tidy again) - #163380 (Tweak "name not found" resolution error when it happens from within a derive expansion) - #163538 (Add `rustc::missing_generic_type_visitable` lint) - #163617 (mips: make `Complex<T>` ABI match GCC) - #163772 (comptime fn error: suggest wrapping in const block) - #163813 (use pre-borrowck typing env for early MIR validation) - #163924 (replace instances of NonNull::new(&mut x).expect("...") with NonNull::from_mut) - #163958 (only make `RustaceansAreAwesome` satisfy trait clauses) - #163960 (vexos: clear .bss from assembly) - #163974 (Condense AdtDef lang item checks into one match) - #163979 (Add `bf16` to arm features) - #163989 (Revert "compiletest: stream output of executor process when --no-capture is set") - #163995 (m68k-unknown-none-elf: Remove code model) Failed merges: - #163832 (reject non-async coroutine closures as async callables) - #163972 (const-eval: ICE when we hit a non-const fn)
Rollup merge of #163958 - dianne:fix-rustaceansareawesome-take-2-partial, r=oli-obk only make `RustaceansAreAwesome` satisfy trait clauses Fixes #163550 but unfortunately partially un-fixes a variant of #161621 that hadn't been reported. I have a followup to re-fix that, but I ended up deciding that it would probably be easier to review separately; I'll open a PR for that later. The variant in question: ```rust trait HasAssoc { type Assoc; } trait Parent<T> {} trait Trait where (Self,): HasAssoc<Assoc = str>, Self: Parent<<<(Self,) as HasAssoc>::Assoc as ToOwned>::Owned>, { fn f(&self); //~^ ERROR: the trait bound `<(RustaceansAreAwesome,) as HasAssoc>::Assoc: Clone` is not satisfied //~| NOTE: required for `<(RustaceansAreAwesome,) as HasAssoc>::Assoc` to implement `ToOwned` } ``` This fails to prove `<(RustaceansAreAwesome,) as HasAssoc>::Assoc: Owned` because it can't normalize that alias to `str`. The followup will re-add projections as necessary for this in a hopefully-non-breaking way.
…uwer Rollup of 19 pull requests Successful merges: - rust-lang/rust#156112 (Distinguish `repr(C)` ZSTs from others in ABI computation) - rust-lang/rust#157941 (Deny partial `-Z stack-protector` by default in all editions) - rust-lang/rust#163462 (Fix COFF renaming of decorated (stdcall/fastcall/vectorcall) exports) - rust-lang/rust#163855 (Include enclosing item's context on const errors) - rust-lang/rust#163861 (Run LLDB debuginfo tests on `x86_64-mingw`) - rust-lang/rust#163913 ( Silence redundant failed obligations on the same statement) - rust-lang/rust#161201 (Speed up tidy again) - rust-lang/rust#163380 (Tweak "name not found" resolution error when it happens from within a derive expansion) - rust-lang/rust#163538 (Add `rustc::missing_generic_type_visitable` lint) - rust-lang/rust#163617 (mips: make `Complex<T>` ABI match GCC) - rust-lang/rust#163772 (comptime fn error: suggest wrapping in const block) - rust-lang/rust#163813 (use pre-borrowck typing env for early MIR validation) - rust-lang/rust#163924 (replace instances of NonNull::new(&mut x).expect("...") with NonNull::from_mut) - rust-lang/rust#163958 (only make `RustaceansAreAwesome` satisfy trait clauses) - rust-lang/rust#163960 (vexos: clear .bss from assembly) - rust-lang/rust#163974 (Condense AdtDef lang item checks into one match) - rust-lang/rust#163979 (Add `bf16` to arm features) - rust-lang/rust#163989 (Revert "compiletest: stream output of executor process when --no-capture is set") - rust-lang/rust#163995 (m68k-unknown-none-elf: Remove code model) Failed merges: - rust-lang/rust#163832 (reject non-async coroutine closures as async callables) - rust-lang/rust#163972 (const-eval: ICE when we hit a non-const fn)
Fixes #163550 but unfortunately partially un-fixes a variant of #161621 that hadn't been reported. I have a followup to re-fix that, but I ended up deciding that it would probably be easier to review separately; I'll open a PR for that later.
The variant in question:
This fails to prove
<(RustaceansAreAwesome,) as HasAssoc>::Assoc: Ownedbecause it can't normalize that alias tostr. The followup will re-add projections as necessary for this in a hopefully-non-breaking way.