bors
cb80ff132a
Auto merge of #113245 - lukas-code:unsizing-sanity-check, r=the8472
...
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`
2023-07-07 15:42:29 +00:00
Michael Goulet
3f8919c09b
get rid of a bit more calls to poly_select
2023-07-06 16:50:12 +00:00
Michael Goulet
52f7384995
Separate select calls that don't need a binder
2023-07-06 16:50:12 +00:00
Lukas Markeffsky
7aa5f39d3b
add helper methods for accessing struct tail
2023-07-06 13:15:05 +00:00
Boxy
3fdb443e4e
Add a new trait to Debug
things with an infcx available
2023-07-06 11:36:39 +01:00
bors
4dd1719b34
Auto merge of #113377 - BoxyUwU:move_ty_ctors_to_ty, r=compiler-errors
...
Move `TyCtxt::mk_x` to `Ty::new_x` where applicable
Part of rust-lang/compiler-team#616
turns out there's a lot of places we construct `Ty` this is a ridiculously huge PR :S
r? `@oli-obk`
2023-07-06 08:10:42 +00:00
Oli Scherer
deda49e7b7
Fix up doc links
2023-07-06 07:32:08 +00:00
bors
bd8aabef31
Auto merge of #113291 - oli-obk:pretty_print_mir_const, r=RalfJung
...
Specialize `try_destructure_mir_constant` for its sole user (pretty printing)
We can't remove the query, as we need to invoke it from rustc_middle, but can only implement it in mir interpretation/const eval.
r? `@RalfJung` for a first round.
While we could move all the logic into pretty printing, that would end up duplicating a bit of code with const eval, which doesn't seem great either.
2023-07-06 00:00:38 +00:00
Michael Goulet
6ce1c89d64
Change comment on TyCtxt::mk_ty_from_kind
2023-07-05 13:58:04 -07:00
Boxy
12138b8e5e
Move TyCtxt::mk_x
to Ty::new_x
where applicable
2023-07-05 20:27:07 +01:00
bors
5dac6b320b
Auto merge of #113370 - compiler-errors:rollup-8gvyy8e, r=compiler-errors
...
Rollup of 8 pull requests
Successful merges:
- #113010 (rust-installer & rls: remove exclusion from rustfmt & tidy )
- #113317 ( -Ztrait-solver=next: stop depending on old solver)
- #113319 (`TypeParameterDefinition` always require a `DefId`)
- #113320 (Add some extra information to opaque type cycle errors)
- #113321 (Move `ty::ConstKind` to `rustc_type_ir`)
- #113337 (Winnow specialized impls during selection in new solver)
- #113355 (Move most coverage code out of `rustc_codegen_ssa`)
- #113356 (Add support for NetBSD/riscv64 aka. riscv64gc-unknown-netbsd.)
r? `@ghost`
`@rustbot` modify labels: rollup
2023-07-05 16:08:43 +00:00
Oli Scherer
e1e04a8bee
Document magic boolean
2023-07-05 15:58:19 +00:00
Oli Scherer
8ac1a67d11
Name the destructure_mir_constant query appropriately
2023-07-05 15:54:43 +00:00
Oli Scherer
09b89efa70
Remove a function argument that is always passed with the same value.
2023-07-05 15:54:43 +00:00
Oli Scherer
a0eb348d38
Specialize DestructuredConstant
to its one user (pretty printing)
2023-07-05 15:54:43 +00:00
Oli Scherer
4dcf988360
Specialize try_destructure_mir_constant
for its sole user
2023-07-05 15:54:43 +00:00
Michael Goulet
c31fe41453
Rollup merge of #113337 - compiler-errors:next-solver-winnow-specializing, r=lcnr
...
Winnow specialized impls during selection in new solver
We need to be able to winnow impls that are specialized by more specific impls in order for codegen to be able to proceed.
r? ``@lcnr``
2023-07-05 08:45:45 -07:00
Michael Goulet
b2b1a50751
Rollup merge of #113321 - BoxyUwU:move_constkind_to_typeir, r=oli-obk
...
Move `ty::ConstKind` to `rustc_type_ir`
Needed this in another PR for custom debug impls, and this will also be required to move the new solver into a separate crate that does not use `TyCtxt` so that r-a and friends can depend on the trait solver.
Rebased on top of #113325 , only the second and third commits needs reviewing
2023-07-05 08:45:45 -07:00
Michael Goulet
0334b64cbb
Rollup merge of #113320 - oli-obk:eval_obligation_query, r=petrochenkov,BoxyUwU
...
Add some extra information to opaque type cycle errors
Plus a bunch of cleanups.
This should help users debug query cycles due to auto trait checking. We'll probably want to fix cycle errors in most (or all?) cases by looking at the current item's hidden types (new solver does this), and by delaying the auto trait checks to after typeck.
2023-07-05 08:45:44 -07:00
bors
e4cd161006
Auto merge of #113210 - fee1-dead-contrib:effects-mvp, r=oli-obk
...
Effects/keyword generics MVP
This adds `feature(effects)`, which adds `const host: bool` to the generics of const functions, const traits and const impls. This will be used to replace the current logic around const traits.
r? `@oli-obk`
2023-07-05 13:42:00 +00:00
Boxy
62174bfe72
Deal with fallout
2023-07-05 09:46:30 +01:00
Boxy
8ac3ffe834
move ConstKind
to typeir and move inherent impls to Const
2023-07-05 09:46:30 +01:00
Oli Scherer
9e98feb84c
Add some extra information to opaque type cycle errors
2023-07-05 07:43:35 +00:00
Oli Scherer
ca581f9161
Don't require associated types with Self: Sized
bounds in dyn Trait
objects
2023-07-05 07:42:53 +00:00
Michael Goulet
d2a1803d6f
Winnow specializing impls
2023-07-05 06:18:48 +00:00
Deadbeef
58c105af04
include host_effect_index
in Generics
2023-07-04 17:21:52 +00:00
Boxy
d30f56dbf2
Replace const_error
methods with Const::new_error
2023-07-04 14:46:32 +01:00
Boxy
ddbc774e74
Replace mk_const
with Const::new_x
methods
2023-07-04 14:26:33 +01:00
Deadbeef
8eb3e0bf30
enforce context effects in typeck
2023-07-04 11:47:46 +00:00
Michael Goulet
0c73b41cd6
remove TypeWellFormedFromEnv
2023-07-03 21:40:04 +00:00
Michael Goulet
810fbf086d
Remove chalk from the compiler
2023-07-03 21:40:04 +00:00
lcnr
5378f07d64
use deeply_normalize
for assumed_wf_types
2023-07-03 09:12:14 +02:00
lcnr
bd0d533d23
fix structurally relate for weak aliases
2023-07-03 09:12:14 +02:00
bors
4c3f8c728b
Auto merge of #113256 - matthiaskrgr:rollup-poex8w2, r=matthiaskrgr
...
Rollup of 8 pull requests
Successful merges:
- #113147 (Fix document examples of Vec::from_raw_parts and Vec::from_raw_parts_in)
- #113202 (std docs: factorize literal in Barrier example)
- #113228 (Migrate GUI colors test to original CSS color format)
- #113231 (Fix `dropping_copy_types` lint from linting in match-arm with side-effects)
- #113233 (Update chalk)
- #113234 (Don't pass --test-args to `python -m unitest`)
- #113244 (Make Rust Analyzer tests faster by compiling less code)
- #113249 (Document tracking issue for rustdoc `show-type-layout`)
r? `@ghost`
`@rustbot` modify labels: rollup
2023-07-02 10:22:49 +00:00
Matthias Krüger
fda22efbf0
Rollup merge of #113233 - Nilstrieb:chaaalk, r=jackh726
...
Update chalk
For #109302
r? jackh726
2023-07-02 10:27:21 +02:00
bors
72b2101434
Auto merge of #112718 - oli-obk:SIMD-destructure_mir_const, r=cjgillot
...
Make simd_shuffle_indices use valtrees
This removes the second-to-last user of the `destructure_mir_constant` query. So in a follow-up we can remove the query and just move the query provider function directly into pretty printing (which is the last user).
cc `@rust-lang/clippy` there's a small functional change, but I think it is correct?
2023-07-02 07:43:36 +00:00
Nilstrieb
4be84771a7
Put FnAbiError
behind reference to shrink result
...
The `FnAbi` is just a pointer, so the error type should not be bigger.
2023-07-01 21:16:27 +02:00
Nilstrieb
3019c1cb2a
Put LayoutError
behind reference to shrink result
...
`LayoutError` is 24 bytes, which is bigger than the `Ok` types, so let's
shrink that.
2023-07-01 21:16:25 +02:00
Nilstrieb
e43ec03968
Update chalk
2023-07-01 18:03:36 +02:00
Gary Guo
39c3ef799f
Fix comment of fn_can_unwind
2023-06-30 18:38:56 +01:00
Matthias Krüger
42a495da7e
Rollup merge of #112670 - petrochenkov:typriv, r=eholk
...
privacy: Type privacy lints fixes and cleanups
See individual commits.
Follow up to https://github.com/rust-lang/rust/pull/111801 .
2023-06-29 05:48:39 +02:00
Dylan DPC
fc2c587cd0
Rollup merge of #112867 - compiler-errors:more-impl-source-nits, r=lcnr
...
More `ImplSource` nits
Even more clean-ups, I'll put this up in parallel with the `select_in_new_trait_solver` PR.
r? ``@lcnr``
2023-06-28 18:28:47 +05:30
bors
8882507bc7
Auto merge of #112708 - flip1995:clippy-freezing-pc-with-ice, r=oli-obk
...
Avoid calling queries during query stack printing
This has the side effect, that when Clippy should ICE (during an EarlyPass?) it will fill up the RAM with 2 GB/s and then freezes my Laptop. This is blocking the Clippy sync and might give some people really bad experiences, so this should be merged ASAP.
r? `@cjgillot`
cc `@Zoxc`
I only commented this on [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/.60try_print_query_stack.60.20has.20.60ImplicitCtx.60.20during.20.60EarlyPass.60/near/363926180 ). I should've left a comment on the PR as well. My bad.
2023-06-28 09:40:07 +00:00
Oli Scherer
7c15779ff1
Rustdoc nit: refer to macro from docs
2023-06-28 07:07:16 +00:00
bors
6b46c996e1
Auto merge of #113105 - matthiaskrgr:rollup-rci0uym, r=matthiaskrgr
...
Rollup of 8 pull requests
Successful merges:
- #112207 (Add trustzone and virtualization target features for aarch32.)
- #112454 (Make compiletest aware of targets without dynamic linking)
- #112628 (Allow comparing `Box`es with different allocators)
- #112692 (Provide more context for `rustc +nightly -Zunstable-options` on stable)
- #112972 (Make `UnwindAction::Continue` explicit in MIR dump)
- #113020 (Add tests impl via obj unless denied)
- #113084 (Simplify some conditions)
- #113103 (Normalize types when applying uninhabited predicate.)
r? `@ghost`
`@rustbot` modify labels: rollup
2023-06-27 21:31:47 +00:00
Matthias Krüger
4b1d0682a6
Rollup merge of #113103 - cjgillot:normalize-inhabited, r=compiler-errors
...
Normalize types when applying uninhabited predicate.
Fixes https://github.com/rust-lang/rust/issues/112997
2023-06-27 22:10:16 +02:00
Matthias Krüger
d505582ce2
Rollup merge of #113084 - WaffleLapkin:less_map_or, r=Nilstrieb
...
Simplify some conditions
r? `@Nilstrieb`
Some things taken out of my `is_none_or` pr.
2023-06-27 22:10:15 +02:00
Matthias Krüger
9ec676dd7f
Rollup merge of #112972 - nbdd0121:mir, r=davidtwco
...
Make `UnwindAction::Continue` explicit in MIR dump
Makes it easier to spot unwinding related issues in MIR by making `UnwindAction::Continue` explicit, just like all other `UnwindAction`s.
2023-06-27 22:10:14 +02:00
Camille GILLOT
6f3f878351
Normalize types when applying uninhabited predicate.
2023-06-27 17:10:14 +00:00
Oli Scherer
b0142f603d
Avoid calling queries during query stack printing
2023-06-27 16:12:07 +02:00