Scott McMurray
05a665f21a
Lower intrinsics::offset
to mir::BinOp::Offset
...
They're semantically the same, so this means the backends don't need to handle the intrinsic and means fewer MIR basic blocks in pointer arithmetic code.
2023-04-25 19:23:45 -07:00
Nicholas Nethercote
8216b7f229
Make some region folders a little stricter.
...
Because certain regions cannot occur in them.
2023-04-26 10:14:16 +10:00
bors
f33379b0a6
Auto merge of #110811 - compiler-errors:vars-are-question-mark, r=WaffleLapkin
...
Use `?0` notation for ty/ct/int/float/region vars
Aligns the notation for infer vars that T-types and friends most often uses for inference variables with the notation in the compiler (which is kinda a sigil nightmare IMO: `_#`) by adopting `?0` style infer vars.
This mostly affects debug output since verbose infer vars shouldn't show up in user-facing places.
Does this need an MCP? It's debug output, so I'm thinking no, but happy to open one. 🤔
r? types
2023-04-25 22:11:09 +00:00
Michael Goulet
183f1a6a70
Fix lifetime suggestion for type aliases with objects in them
2023-04-25 20:41:59 +00:00
Michael Goulet
bb99cdc7cd
vars are ?
2023-04-25 19:53:09 +00:00
Matthias Krüger
f5a3039add
Rollup merge of #110783 - dtolnay:safeprint, r=petrochenkov
...
Fix ICE on --print=... i/o errors
`rustc --print=cfg > /dev/full`
**Before:** ICE (see below)
**After:** exits quietly with code 1.
```console
thread 'rustc' panicked at 'failed printing to stdout: No space left on device (os error 28)', library/std/src/io/stdio.rs:1019:9
stack backtrace:
0: 0x7ffa84d68f33 - std::backtrace_rs::backtrace::libunwind::trace::h527d8d64d53ade2d
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x7ffa84d68f33 - std::backtrace_rs::backtrace::trace_unsynchronized::hfb55b01517dd6379
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7ffa84d68f33 - std::sys_common::backtrace::_print_fmt::hd134e914eea0bd97
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/sys_common/backtrace.rs:65:5
3: 0x7ffa84d68f33 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h1480db11ec399d77
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/sys_common/backtrace.rs:44:22
4: 0x7ffa84dc9d4f - core::fmt::write::h67ec4c4171c92b26
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/fmt/mod.rs:1247:17
5: 0x7ffa84d5bed1 - std::io::Write::write_fmt::h3b12aef0fff2463b
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/io/mod.rs:1712:15
6: 0x7ffa84d68d45 - std::sys_common::backtrace::_print::h584400135abdbd51
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/sys_common/backtrace.rs:47:5
7: 0x7ffa84d68d45 - std::sys_common::backtrace::print::hce41d3c8bd91096b
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/sys_common/backtrace.rs:34:9
8: 0x7ffa84d6b84f - std::panicking::default_hook::{{closure}}::h2043b657a3791225
9: 0x7ffa84d6b507 - std::panicking::default_hook::h99252b8d3dd5719c
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/panicking.rs:293:9
10: 0x7ffa87fdf915 - <rustc_driver_impl[d30cd2737d9d343a]::DEFAULT_HOOK::{closure#0}::{closure#0} as core[cc19a662f3570270]::ops::function::FnOnce<(&core[cc19a662f3570270]::panic::panic_info::PanicInfo,)>>::call_once::{shim:vtable#0}
11: 0x7ffa84d6c005 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h222a2b674b9f4762
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/alloc/src/boxed.rs:1976:9
12: 0x7ffa84d6c005 - std::panicking::rust_panic_with_hook::h7f49b36bf7f8ff77
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/panicking.rs:704:13
13: 0x7ffa84d6bd73 - std::panicking::begin_panic_handler::{{closure}}::haa23a7352589e31e
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/panicking.rs:595:13
14: 0x7ffa84d69376 - std::sys_common::backtrace::__rust_end_short_backtrace::h3d0cf6e3c96e3fe9
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/sys_common/backtrace.rs:150:18
15: 0x7ffa84d6ba72 - rust_begin_unwind
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/panicking.rs:584:5
16: 0x7ffa84dc5fe3 - core::panicking::panic_fmt::hf4b4ea11e3fdb110
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/panicking.rs:67:14
17: 0x7ffa84d5aa07 - std::io::stdio::print_to::h55760b9ede306280
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/io/stdio.rs:1019:9
18: 0x7ffa84d5aa07 - std::io::stdio::_print::h93deb6099db33eab
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/io/stdio.rs:1095:5
19: 0x7ffa871e163b - rustc_driver_impl[d30cd2737d9d343a]::print_crate_info
20: 0x7ffa87fb8e01 - rustc_span[9551eaa044f53f4f]::set_source_map::<(), rustc_interface[c2b70c9b1dae0906]::interface::run_compiler<(), rustc_driver_impl[d30cd2737d9d343a]::run_compiler::{closure#0}>::{closure#0}::{closure#0}>
21: 0x7ffa87fb6d59 - std[71a32ca0600a6a04]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[c2b70c9b1dae0906]::util::run_in_thread_pool_with_globals<rustc_interface[c2b70c9b1dae0906]::interface::run_compiler<(), rustc_driver_impl[d30cd2737d9d343a]::run_compiler::{closure#0}>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
22: 0x7ffa87fe25b4 - std[71a32ca0600a6a04]::panicking::try::<(), core[cc19a662f3570270]::panic::unwind_safe::AssertUnwindSafe<<std[71a32ca0600a6a04]:🧵 :Builder>::spawn_unchecked_<rustc_interface[c2b70c9b1dae0906]::util::run_in_thread_pool_with_globals<rustc_interface[c2b70c9b1dae0906]::interface::run_compiler<(), rustc_driver_impl[d30cd2737d9d343a]::run_compiler::{closure#0}>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>>
23: 0x7ffa87fb0cf1 - <<std[71a32ca0600a6a04]:🧵 :Builder>::spawn_unchecked_<rustc_interface[c2b70c9b1dae0906]::util::run_in_thread_pool_with_globals<rustc_interface[c2b70c9b1dae0906]::interface::run_compiler<(), rustc_driver_impl[d30cd2737d9d343a]::run_compiler::{closure#0}>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[cc19a662f3570270]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
24: 0x7ffa84d763e5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf15d802f31f86225
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/alloc/src/boxed.rs:1962:9
25: 0x7ffa84d763e5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hac564355b46c52d6
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/alloc/src/boxed.rs:1962:9
26: 0x7ffa84d763e5 - std::sys::unix:🧵 :Thread:🆕 :thread_start::h86fb3aedb7811f07
at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/std/src/sys/unix/thread.rs:108:17
27: 0x7ffa84a94b43 - start_thread
at ./nptl/pthread_create.c:442:8
28: 0x7ffa84b26a00 - clone3
at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
29: 0x0 - <unknown>
error: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
note: rustc 1.71.0-nightly (7f94b314c
2023-04-23) running on x86_64-unknown-linux-gnu
query stack during panic:
end of query stack
```
2023-04-25 21:06:34 +02:00
Matthias Krüger
95e9f68eb5
Rollup merge of #110671 - compiler-errors:polarity, r=lcnr
...
Consider polarity in new solver
It's kinda ugly to have a polarity check in all of the builtin impls -- I guess I could consider the polarity at the top of assemble-builtin but that would require adding a polarity fn to `GoalKind`...
🤷 putting this up just so i dont forget, since it's needed to bootstrap core during coherence (this alone does not allow core to bootstrap though, additional work is needed!)
r? ``@lcnr``
2023-04-25 21:06:34 +02:00
Matthias Krüger
8d00a8d11e
Rollup merge of #110615 - WaffleLapkin:impl_tag, r=cjgillot
...
Add `impl_tag!` macro to implement `Tag` for tagged pointer easily
r? `@Nilstrieb`
This should also lifts the need to think about safety from the callers (`impl_tag!` is robust (ish, see the macro issue)) and removes the possibility of making a "weird" `Tag` impl.
2023-04-25 21:06:33 +02:00
Matthias Krüger
297b222066
Rollup merge of #110556 - kylematsuda:earlybinder-explicit-item-bounds, r=compiler-errors
...
Switch to `EarlyBinder` for `explicit_item_bounds`
Part of the work to finish https://github.com/rust-lang/rust/issues/105779 .
This PR adds `EarlyBinder` to the return type of the `explicit_item_bounds` query and removes `bound_explicit_item_bounds`.
r? `@compiler-errors` (hope it's okay to request you, since you reviewed #110299 and #110498 😃 )
2023-04-25 21:06:32 +02:00
clubby789
0138513635
Fix static string lints
2023-04-25 18:59:55 +01:00
Maybe Waffle
d9f842a4dc
Rename TraitRef::{_use_mk_trait_ref_instead => _use_trait_ref_new_instead}
2023-04-25 17:48:19 +00:00
clubby789
eeb527602a
Add deny lint to prevent untranslatable diagnostics using static strings
2023-04-25 18:44:49 +01:00
Maybe Waffle
bec7ce4824
Add #[inline]
in impl_tag
2023-04-25 17:37:12 +00:00
Maybe Waffle
021a12c00d
Sprinkle some #[inline]
in rustc_data_structures::tagged_ptr
2023-04-25 17:30:05 +00:00
Camille GILLOT
0ee32fb3c7
Move unstatisfaction check earlier.
2023-04-25 17:11:46 +00:00
Maybe Waffle
c727edc0b7
Remove some useless ty::Binder::dummy
calls
2023-04-25 16:47:00 +00:00
Maybe Waffle
8f7fe4a303
Remove tcx.mk_trait_ref
2023-04-25 16:12:44 +00:00
Maybe Waffle
46b01abbcd
Replace tcx.mk_trait_ref
with ty::TraitRef::new
2023-04-25 16:12:44 +00:00
Maybe Waffle
2d8c905e15
Move TraitRef
constructors to the top
...
In rust `new`-ish functions are usually the first ones in an `impl` block
2023-04-25 15:36:17 +00:00
Maybe Waffle
14f832733d
Add ty::TraitRef::{new, from_lang_item}
2023-04-25 15:34:21 +00:00
David Tolnay
040e1b6b5f
Fix ICE on --print=... i/o errors
2023-04-25 08:17:18 -07:00
bors
a7aa20517c
Auto merge of #110325 - obeis:hir-analysis-migrate-diagnostics-4, r=davidtwco
...
Migrate `rustc_hir_analysis` to session diagnostic [Part 4]
Part 4: Finishing `check/mod.rs` file
r? `@compiler-errors`
2023-04-25 13:45:20 +00:00
bors
999e6e5afb
Auto merge of #101069 - zhaixiaojuan:loongarch64-inline-asm, r=Amanieu
...
Add loongarch64 asm! support
2023-04-25 09:18:58 +00:00
zhaixiaojuan
5f2fa4c11d
Add loongarch64 asm! support
2023-04-25 14:15:31 +08:00
Matthias Krüger
2d72abc8f2
Rollup merge of #110782 - matthiaskrgr:revert_panic_oom, r=Amanieu
...
Revert panic oom
This temporarily reverts https://github.com/rust-lang/rust/pull/109507 until https://github.com/rust-lang/rust/issues/110771 is addressed
r? `@Amanieu`
2023-04-25 06:46:50 +02:00
Matthias Krüger
7e143e9043
Rollup merge of #110755 - TimNN:exp-tls, r=durin42
...
[LLVM17] Adapt to `ExplicitEmulatedTLS` removal.
0d333bf0e3
removed the `ExplicitEmulatedTLS` field from `TargetOptions`.
Before that commit, `TargetMachine::useEmulatedTLS()` fell back to `TheTriple.hasDefaultEmulatedTLS()` if `ExplicitEmulatedTLS` was `false`/unset.
After that commit, `TargetMachine::useEmulatedTLS()` directly returns `Options.EmulatedTLS`, and the fallback to `TheTriple.hasDefaultEmulatedTLS()` was moved to `InitTargetOptionsFromCodeGenFlags`.
Since `rustc` does not use `InitTargetOptionsFromCodeGenFlags` (AFAICT) and instead manually builds `TargetOptions`, this PR initializes `EmulatedTLS` to `TheTriple.hasDefaultEmulatedTLS()`.
(I'm not really familiar with the details of what this option does, or if there are any tests that depend on `hasDefaultEmulatedTLS` being used correctly, so this PR is mostly untested (it does compile against LLVM17, though)).
`@rustbot` label: +llvm-main
2023-04-25 06:46:49 +02:00
Matthias Krüger
5f33a8c026
Rollup merge of #110563 - bryangarza:refactor-trait-selection-error-reporting, r=compiler-errors
...
Break up long function in trait selection error reporting + clean up nearby code
- Move blocks of code into their own functions
- Replace a few function argument types with their type aliases
- Create "AppendConstMessage" enum to replace a nested `Option`.
2023-04-25 06:46:48 +02:00
Matthias Krüger
f54dbe6e31
Revert "Remove #[alloc_error_handler] from the compiler and library"
...
This reverts commit abc0660118
.
2023-04-25 00:08:35 +02:00
Matthias Krüger
33253fa6a4
Revert "Rename -Zoom=panic to -Zoom=unwind"
...
This reverts commit 4b981c2648
.
2023-04-25 00:08:33 +02:00
Michael Goulet
794cb890de
Consider polarity in new solver
2023-04-24 18:59:42 +00:00
Camille GILLOT
0f857791ad
Fully clear the body.
2023-04-24 18:53:47 +00:00
Yuki Okushi
16fdef7868
Rollup merge of #110750 - scottmcm:vardebug-size, r=cjgillot
...
Add size asserts for MIR `SourceScopeData` & `VarDebugInfo`
There's vectors of both of these in `mir::Body`, so might as well track them.
(I was pondering adding something to one or the other, so wanted this to see the memory impact.)
2023-04-25 02:33:31 +09:00
Yuki Okushi
4d3ab3da4e
Rollup merge of #110685 - cjgillot:clean-dcp, r=oli-obk
...
Some cleanups to DataflowConstProp
Mostly moving code around and short-circuiting useless cases.
2023-04-25 02:33:30 +09:00
Yuki Okushi
a373623d55
Rollup merge of #110681 - klensy:cut-dep, r=lcnr
...
drop few unused crates, gate libc under unix for rustc_codegen_ssa
Small cleanup.
2023-04-25 02:33:29 +09:00
Yuki Okushi
cefb479242
Rollup merge of #110539 - WaffleLapkin:split_index_vec&slice, r=cjgillot
...
Move around `{Idx, IndexVec, IndexSlice}` adjacent code
r? ``@scottmcm``
2023-04-25 02:33:25 +09:00
Maybe Waffle
2b8d27b402
Switch impl_tag!
from explicit tags to ${index()}
2023-04-24 16:48:37 +00:00
Mara Bos
0a28977740
Restructure std::fmt::rt a bit.
...
This moves more of the internal/lang items into the private rt module.
2023-04-24 16:16:14 +02:00
Mara Bos
5cf3cbf3b7
Remove "V1" from ArgumentsV1 and FlagsV1.
2023-04-24 16:16:14 +02:00
Maybe Waffle
c0daff08c7
Fix rustc_index
imports outside the compiler
2023-04-24 13:53:37 +00:00
Maybe Waffle
5d809b1764
Decorative changes to IndexVec
2023-04-24 13:53:37 +00:00
Maybe Waffle
7d23b52376
const
-ify some {IndexVec, IndexSlice}
methods
2023-04-24 13:53:37 +00:00
Maybe Waffle
99ebfe2f15
move index code around
2023-04-24 13:53:37 +00:00
Maybe Waffle
e496fbec92
Split {Idx, IndexVec, IndexSlice}
into their own modules
2023-04-24 13:53:35 +00:00
bors
b72460fe46
Auto merge of #110672 - Ezrashaw:allow-array-simd-in-inline-asm, r=workingjubilee
...
allow array-style simd in inline asm
Required for [MCP#621](https://github.com/rust-lang/compiler-team/issues/621 ) to be implemented.
r? `@workingjubilee`
2023-04-24 13:51:04 +00:00
Tim Neumann
047ed32148
[LLVM17] Adapt to ExplicitEmulatedTLS
removal.
2023-04-24 08:45:15 +00:00
Matthias Krüger
2ce9b574a4
Rollup merge of #110714 - cjgillot:reveal-consts, r=oli-obk
...
Normalize types and consts in MIR opts.
Some passes were using a non-RevealAll param_env, which is needlessly restrictive in mir-opts.
As a drive-by, we normalize all constants, since just normalizing their types is not enough.
2023-04-24 07:53:25 +02:00
Matthias Krüger
3ecae2932c
Rollup merge of #110706 - scottmcm:transmute_unchecked, r=oli-obk
...
Add `intrinsics::transmute_unchecked`
This takes a whole 3 lines in `compiler/` since it lowers to `CastKind::Transmute` in MIR *exactly* the same as the existing `intrinsics::transmute` does, it just doesn't have the fancy checking in `hir_typeck`.
Added to enable experimenting with the request in <https://github.com/rust-lang/rust/pull/106281#issuecomment-1496648190 > and because the portable-simd folks might be interested for dependently-sized array-vector conversions.
It also simplifies a couple places in `core`.
See also https://github.com/rust-lang/rust/pull/108442#issuecomment-1474777273 , where `CastKind::Transmute` was added having exactly these semantics before the lang meeting (which I wasn't in) independently expressed interest.
2023-04-24 07:53:25 +02:00
Matthias Krüger
8aab707131
Rollup merge of #110566 - compiler-errors:bad-projection-term, r=cjgillot,BoxyUwU
...
Don't create projection ty for const projection
Fixes #110549
2023-04-24 07:53:24 +02:00
Matthias Krüger
d60c64a0c5
Rollup merge of #110514 - compiler-errors:remove-find_map_relevant_impl, r=b-naber
...
Remove `find_map_relevant_impl`
Fixes #108895
2023-04-24 07:53:24 +02:00
Matthias Krüger
0f271619e4
Rollup merge of #110255 - clubby789:proc-macro-test-help, r=jackh726
...
Suggest using integration tests for test crate using own proc-macro
cc #110247
2023-04-24 07:53:23 +02:00