| Age | Commit message (Collapse) | Author | Lines |
|
Avoid calling report_forbidden_specialization for RPITITs
Fixes #113438
r? ``@compiler-errors``
|
|
Remove unused from_method from rustc_on_unimplemented
Fixes #113439
`on_unimplemented_note` was calling `item_name` for RPITITs and that produced ICEs. I've added a regression test for that but also have removed `from_method` symbol entirely because it wasn't even used and by doing that the `item_name` call was also removed.
r? ``@compiler-errors``
|
|
miri: check that assignments do not self-overlap
r? `````@oli-obk`````
|
|
r=spastorino
Remove `variances_of` on RPITIT GATs, remove its one use-case
It doesn't make sense to implement variances on a GAT anyways, since we don't relate GATs with variance:
https://github.com/rust-lang/rust/blob/85bf07972a1041b9e25393b803d0e006bec3eaaf/compiler/rustc_middle/src/ty/relate.rs#L569-L579
r? ``@spastorino``
|
|
Don't ICE in `resolve_bound_vars` when associated return-type bounds are in bad positions
I couldn't find a better way to avoid hitting this ICE, so let's just delay it.
The problem is that we really shouldn't even be *trying* to visit associated type bounds in `resolve_bound_vars` when they show up in impl headers, but we don't have enough context to do this.
Fixes #113423
|
|
Add needs-triage to all new issues
Closes #113261
The label: https://github.com/rust-lang/rust/labels/needs-triage
|
|
Fix failing clippy tests
Comments out the C string literals due to https://github.com/rust-lang/rust/pull/113334
Fixes https://github.com/rust-lang/rust-clippy/issues/11121
Opened against `rust-lang/rust` in order to unblock https://github.com/rust-lang/rust/pull/113450
r? `@Nilstrieb`
|
|
bad positions
|
|
|
|
|
|
|
|
Comments out the C string literals due to https://github.com/rust-lang/rust/pull/113334
Fixes https://github.com/rust-lang/rust-clippy/issues/11121
|
|
sanity check field offsets in unsizeable structs
As promised in https://github.com/rust-lang/rust/pull/112062#issuecomment-1567494994, this PR extends the layout sanity checks to ensure that structs fields don't move around when unsizing and prevent issues like https://github.com/rust-lang/rust/issues/112048 in the future. Like most other layout sanity checks, this only runs on compilers with debug assertions enabled.
Here is how it looks when it fails:
```text
error: internal compiler error: compiler/rustc_ty_utils/src/layout.rs:533:21: unsizing GcNode<std::boxed::Box<i32>> changed field order!
Layout { size: Size(32 bytes), align: AbiAndPrefAlign { abi: Align(8 bytes), pref: Align(8 bytes) }, abi: Aggregate { sized: true }, fields: Arbitrary { offsets: [Size(0 bytes), Size(8 bytes), Size(24 bytes)], memory_index: [0, 1, 2] }, largest_niche: Some(Niche { offset: Size(24 bytes), value: Pointer(AddressSpace(0)), valid_range: 1..=18446744073709551615 }), variants: Single { index: 0 } }
Layout { size: Size(24 bytes), align: AbiAndPrefAlign { abi: Align(8 bytes), pref: Align(8 bytes) }, abi: Aggregate { sized: false }, fields: Arbitrary { offsets: [Size(16 bytes), Size(0 bytes), Size(24 bytes)], memory_index: [1, 0, 2] }, largest_niche: None, variants: Single { index: 0 } }
```
r? `@the8472`
|
|
|
|
Sync portable-simd to 2023 July 07
r? `@ghost`
|
|
Old fn were slightly divergent.
|
|
Sync up to rust-lang/portable-simd@7c7dbe0c505ccbc02ff30c1e37381ab1d47bf46f
|
|
|
|
|
|
|
|
Split `SelectionContext::select` into fns that take a binder and don't
*most* usages of `SelectionContext::select` don't need to use a binder, but wrap them in a dummy because of the signature. Let's split this out into `SelectionContext::{select,poly_select}` and limit the usages of the latter.
Right now, we only have 3 places where we're calling `poly_select` -- fulfillment, internally within the old solver, and the auto-trait finder.
r? `@lcnr`
|
|
Sync upstream
|
|
perform TokenStream replacement in-place when possible in expand_macro
|
|
Rollup of 8 pull requests
Successful merges:
- #111917 (Simplify duplicate checks for mir validator)
- #112008 (Fix incorrect documented default bufsize in bufreader/writer)
- #112825 (Don't call `type_of` on TAIT in defining scope in new solver)
- #113164 (Add a regression test for #109054)
- #113318 (Revert "alloc: Allow comparing Boxs over different allocators", add regression test)
- #113397 (Prefer object candidates in new selection)
- #113419 (Avoid calling item_name for RPITIT)
- #113421 (Do not assert >1 RPITITs on collect_return_position_impl_trait_in_trait_tys)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Do not assert >1 RPITITs on collect_return_position_impl_trait_in_trait_tys
Fixes #113403
Assert on collect_return_position_impl_trait_in_trait_tys is not correct when we call it from type_of(GAT). The included test is an example of a situation that collector collects 0 types.
r? `@compiler-errors`
|
|
Avoid calling item_name for RPITIT
Fixes #113405
r? `@compiler-errors`
|
|
Prefer object candidates in new selection
`dyn Any` shouldn't be using [this implementation](https://doc.rust-lang.org/std/any/trait.Any.html#impl-Any-for-T) during codegen.
Prefer object candidates over other candidates, except for other object candidates.
|
|
Revert "alloc: Allow comparing Boxs over different allocators", add regression test
Temporary fix for #113283
Adds a test to fix the regression introduced in 001b081cc1b and revert that commit. The test fails without the revert.
|
|
Add a regression test for #109054
Closes #109054
r? ``@compiler-errors``
|
|
Don't call `type_of` on TAIT in defining scope in new solver
It's *never* productive to call `consider_auto_trait_candidate` on a TAIT in the defining scope, since it will always lead to a query cycle since we call `type_of` on the TAIT. So let's just don't.
I've reserved this behavior just to `SolverMode::Normal` just to avoid any future problems, since this is *technically* incomplete since we're discarding a candidate that could *theoretically* apply. But given such candidate assembly *always* leads to a query cycle, I think it's relatively low risk, and I could be convinced otherwise and make this apply to both solver mode. I assume it's far less likely to be encountered in coherence, though.
This is much more likely to encounter in the new solver, though it can also be encountered in the old solver too, so I'm happy to discuss whether this new behavior we even want in the first place...
I encountered this in a couple of failing UI tests:
* `tests/ui/type-alias-impl-trait/issue-62000-associate-impl-trait-lifetimes.rs`
* `tests/ui/type-alias-impl-trait/issue-93411.rs`
r? `@lcnr`
|
|
Fix incorrect documented default bufsize in bufreader/writer
|
|
Simplify duplicate checks for mir validator
This removes unnecessary allocations & is less code.
|
|
Update LLVM submodule
This adds https://github.com/rust-lang/llvm-project/pull/147.
|
|
|
|
CI: merge msvc cargo and tools jobs
The `x86_64-msvc-cargo` and `x86_64-msvc-tools` jobs both run for ~1 hour, but most of that time is actually spent in building LLVM and `rustc`, so I want to try merging them.

|
|
|
|
|
|
|
|
Update compiler builtins
cc https://github.com/rust-lang/compiler-builtins/pull/532#discussion_r1249354225
in particular this pulls in https://github.com/rust-lang/compiler-builtins/pull/532 and https://github.com/rust-lang/compiler-builtins/pull/535.
Fixes https://github.com/rust-lang/rust/issues/93166. Fixes https://github.com/rust-lang/git2-rs/issues/706. Fixes https://github.com/rust-lang/rust/issues/109064. Fixes https://github.com/rust-lang/wg-cargo-std-aware/issues/74.
|
|
|
|
|
|
|
|
|
|
CI: merge x86_64-gnu-llvm-14 and x86_64-gnu-llvm-14-stage1 CI jobs
Another attempt to shorten CI job times. Suggested by `@the8472` [here](https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/CI.20usage/near/367172221).
|
|
Closes #113261
|
|
|
|
|
|
|
|
Use `llvm-config` instead of `download-ci-llvm` in PGO script
This should avoid CI breakage when the LLVM stamp is updated, and also it will avoid an unnecessary LLVM download from CI.
r? `@jyn514`
|
|
Rollup of 4 pull requests
Successful merges:
- #112295 (Fix the tests-listing-format-json test on Windows)
- #113246 (fix compiletest crash)
- #113395 (Dont ICE for `dyn* Trait: Trait` (built-in object) goals during selection in new trait solver)
- #113402 (Diagnose unsorted CGUs.)
r? `@ghost`
`@rustbot` modify labels: rollup
|