Matthias Krüger
732ded92a0
Rollup merge of #123063 - tmiasko:reachability-abi, r=michaelwoerister
...
Function ABI is irrelevant for reachability
2024-03-28 17:40:49 +01:00
bors
c5e7f45b62
Auto merge of #115220 - Zoxc:revive-gcx-ptr, r=oli-obk
...
Add a `CurrentGcx` type to let the deadlock handler access `TyCtxt`
This brings back `GCX_PTR` (previously removed in https://github.com/rust-lang/rust/pull/74969 ) allowing the deadlock handler access to `GlobalCtxt`. This fixes https://github.com/rust-lang/rust/issues/111522 .
r? `@cjgillot`
2024-03-28 14:00:08 +00:00
bors
4ea92e3c7a
Auto merge of #123166 - bjorn3:sync_cg_clif-2024-03-28, r=bjorn3
...
Subtree sync for rustc_codegen_cranelift
The main highlight this time is debuginfo for statics. Not all types are supported yet. Those that aren't supported are represented as `[u8; mem::size_of::<T>()]` instead.
r? `@ghost`
`@rustbot` label +A-codegen +A-cranelift +T-compiler
2024-03-28 11:57:39 +00:00
bjorn3
987ed345af
Merge commit '09fae60a86b848a2fc0ad219ecc4e438dc1eef86' into sync_cg_clif-2024-03-28
2024-03-28 11:43:35 +00:00
bors
551abd65be
Auto merge of #116891 - aliemjay:opaque-region-infer-rework-2, r=compiler-errors,oli-obk
...
rework opaque type region inference
User-facing changes are documented in [this comment](https://github.com/rust-lang/rust/pull/116891#issuecomment-1973774412 ).
The design document is in [this comment](https://github.com/rust-lang/rust/pull/116891#issuecomment-1836900102 ).
---
\- Fix Ice in check_unique; ICE -> Error; fixes #122782 .
\- Ignore uncaptured lifetime args; ICE -> Pass; fixes #111906 , fixes #110623 , fixes #109059 , fixes #122307
\- Except equal parameters from the uniqueness check; Pass -> Error; fixes #113916 .
\- Check RPITs for invalid args; Pass -> Error; fixes #111935 ; ICE -> Error; fixes #110726 .
\- Rework opaque types region inference; Pass -> Error; fixes #113971 , fixes #112841 .
\- Reject external lifetimes as invalid args; Pass -> Error; fixes #105498 .
r? `@ghost`
2024-03-28 09:51:39 +00:00
Ali MJ Al-Nasrawy
7c6876f9a9
simplify check_unique
2024-03-28 06:00:26 +00:00
Ali MJ Al-Nasrawy
6b6ed2ea28
reject external lifetimes as invalid arguments
2024-03-28 06:00:26 +00:00
Ali MJ Al-Nasrawy
f4940e4d22
rework opaque types region inference
2024-03-28 06:00:26 +00:00
Ali MJ Al-Nasrawy
08c8caa524
convert all named regions in opaque types to nll vars
...
Do it in typeck before entering region inference routines
particularly because we will no longer be able to convert placeholders.
2024-03-28 06:00:26 +00:00
Ali MJ Al-Nasrawy
15c7e59c05
favor placeholders over existentials when choosing SCC representatives
...
... even when the existential has the least RegionVid.
universal regions (of root universe) > placeholders > existentials
The previous behavior, that chooses the minimal RegionVid index, naturally prefers universal regions over others
because they always have the least RegionVids, but there was no guranteed ordering between placeholders and existentials.
2024-03-28 06:00:26 +00:00
Ali MJ Al-Nasrawy
ce91e46a1e
check RPITs for invalid args
2024-03-28 06:00:26 +00:00
Ali MJ Al-Nasrawy
c337825d6d
ignore error params
2024-03-28 06:00:25 +00:00
Ali MJ Al-Nasrawy
4ecdf5ff00
except equal parameters from the uniqueness check
2024-03-28 06:00:25 +00:00
bors
2781687fe5
Auto merge of #122832 - oli-obk:no_ord_def_id3, r=michaelwoerister
...
Remove `DefId`'s `Partial/Ord` impls
work towards https://github.com/rust-lang/rust/issues/90317
based on https://github.com/rust-lang/rust/pull/122824 and https://github.com/rust-lang/rust/pull/122820
r? `@michaelwoerister`
2024-03-28 05:25:28 +00:00
bors
463a11bef4
Auto merge of #121833 - kornelski:parent_include, r=estebank
...
Suggest correct path in include_bytes!
`include_bytes!` paths are relative, and I'm often not sure how nested is the `.rs` file that I'm editing, so I have to guess the number of `"../.."`. This change searches `..` and `../..` for the given file and offers corrected path as a suggestion.
I wasn't sure how to get the right span, and how to properly escape it.
```text
error: couldn't read src/file.txt: No such file or directory (os error 2)
--> src/main.rs:2:13
|
2 | let x = include_bytes!("file.txt");
| ^^^^^^^^^^^^^^^----------^
| |
| help: it's in a parent directory: `"../../file.txt"`
```
2024-03-28 02:47:46 +00:00
Matthias Krüger
45cec32ac3
Rollup merge of #123133 - xiaoxiangxianzi:master, r=fmease
...
chore: fix some comments
2024-03-27 23:27:24 +01:00
Matthias Krüger
15fb2f214c
Rollup merge of #123130 - oli-obk:missing_type_taint, r=compiler-errors
...
Load missing type of impl associated constant from trait definition
fixes #123092
Also does some cleanups I discovered while analyzing this issue
2024-03-27 23:27:23 +01:00
Matthias Krüger
ae33b9045b
Rollup merge of #123101 - Bryanskiy:delegation-fixes-2, r=petrochenkov
...
Delegation: fix ICE on wrong `Self` instantiation
fixes https://github.com/rust-lang/rust/issues/119921
fixes https://github.com/rust-lang/rust/issues/119919
There is no way to instantiate `Self` param for caller in delegation item if
1. callee is a trait method && callee contains `Self` param
2. delegation item isn't an associative item
In general, we can consider `Self` param as independent type param in these cases:
```rust
trait Trait {
fn foo(_: Option<&Self>) {...}
}
reuse Trait::foo;
// will be desugared to:
fn foo<T: Trait>(x: Option<&T>) { Trait::foo(x) }
```
But this requires early bound parameters support. For now, I suggest banning such cases to avoid ICE's.
r? ``@petrochenkov``
2024-03-27 23:27:23 +01:00
Matthias Krüger
6464e5b78c
Rollup merge of #123075 - rcvalle:rust-cfi-fix-drop-drop-in-place, r=compiler-errors
...
CFI: Fix drop and drop_in_place
Fix drop and drop_in_place by transforming self of drop and drop_in_place methods into a Drop trait objects.
This was split off from https://github.com/rust-lang/rust/pull/116404 .
cc `@compiler-errors` `@workingjubilee`
2024-03-27 23:27:22 +01:00
Ramon de C Valle
0b860818e6
CFI: Fix drop and drop_in_place
...
Fix drop and drop_in_place by transforming self of drop and
drop_in_place methods into Drop trait objects.
2024-03-27 12:52:14 -07:00
Kornel
826ddb3018
Suggest correct path in include_bytes!
2024-03-27 15:16:25 +00:00
Kornel
89ceced6f6
Helper function for resolve_path
2024-03-27 14:57:37 +00:00
xiaoxiangxianzi
3157114f0b
chore: fix some comments
...
Signed-off-by: xiaoxiangxianzi <zhaoyizheng@outlook.com>
2024-03-27 22:32:53 +08:00
Oli Scherer
bd6a96f04e
Int constants must be valtrees in pattern lowering
2024-03-27 14:28:50 +00:00
Michael Goulet
864e1fbc81
Remove TypeVariableOriginKind::OpaqueInference
2024-03-27 10:08:14 -04:00
Michael Goulet
2fe936f17d
Stop doing expensive work in opt_suggest_box_span eagerly
2024-03-27 10:08:14 -04:00
Oli Scherer
cf3ab41c83
Ensure no one re-adds Partial/Ord
impls for DefId
2024-03-27 14:02:17 +00:00
Oli Scherer
5f4ac61ebd
Remove DefId
's Partial/Ord
impls
2024-03-27 14:02:17 +00:00
Oli Scherer
e522d2906d
Stop sorting DefId
s in the compiler
2024-03-27 14:02:17 +00:00
Oli Scherer
5676326c72
Sort somem diagnostics by DefPathStr
instead of DefId
2024-03-27 14:02:16 +00:00
Oli Scherer
6be79cb103
Sort a diagnostic by DefPathStr
instead of DefId
2024-03-27 14:02:16 +00:00
Oli Scherer
57f68c3555
Sort method suggestions by DefPath
instead of DefId
2024-03-27 14:02:16 +00:00
Oli Scherer
727807293b
Don't sort DefId
s in suggestions
2024-03-27 14:02:16 +00:00
Oli Scherer
150a5e5f92
Do not sort DefId
s in diagnostics
2024-03-27 14:02:16 +00:00
Oli Scherer
28363ea4eb
Remove Partial/Ord
from EarlyParamRegion
2024-03-27 14:02:16 +00:00
Oli Scherer
1d662c9eee
Remove Partial/Ord
from AdtDef
2024-03-27 14:02:16 +00:00
Oli Scherer
459ea32a27
Remove Partial/Ord
from BoundRegion
2024-03-27 14:02:16 +00:00
Oli Scherer
e87d10846e
Remove Ord
from BoundTy
2024-03-27 14:02:16 +00:00
Oli Scherer
dd9fe01d06
Remove Ord
from Binder
2024-03-27 14:02:16 +00:00
Oli Scherer
dc95bd69f2
Remove Ord
from Ty
, Const
, and Region
2024-03-27 14:02:16 +00:00
Oli Scherer
939df293d8
Sort diagnostics by rendered trait ref instead of its def ids
2024-03-27 14:02:16 +00:00
Oli Scherer
5ae546e108
Use FxIndexMap instead of BTreeMap to avoid sorting DefId
s
2024-03-27 14:02:15 +00:00
Oli Scherer
ae24fef028
Use TraitRef::to_string
sorting in favor of TraitRef::ord
, as the latter compares DefId
s which we need to avoid
2024-03-27 14:02:15 +00:00
Oli Scherer
2707ac9606
Remove unnecessary Partial/Ord
derive
2024-03-27 14:02:15 +00:00
Bryanskiy
0cd9708de6
Delegation: fix ICE on wrong instantiation
2024-03-27 15:51:48 +03:00
Oli Scherer
86e750f0f7
Inline primary_body_of
into its sole call site
2024-03-27 11:16:41 +00:00
Oli Scherer
7786ee3c92
Remove a call-site to primary_body_of
as it is only interested in the body id
2024-03-27 11:13:34 +00:00
Oli Scherer
d0eb9c86f1
move type inference for missing types on constants into its own method
2024-03-27 11:12:21 +00:00
Oli Scherer
804c047657
Load missing type of impl associated constant from trait definition
2024-03-27 11:02:53 +00:00
John Kåre Alsaker
9936a399df
Add a CurrentGcx
type to let the deadlock handler access TyCtxt
2024-03-27 11:44:32 +01:00