Nicholas Nethercote
5258b655a2
Merge SimplifiedTypeGen<D> into SimplifiedType.
...
`SimplifiedTypeGen<DefId>` is the only instantiation used, so we don't
need the generic parameter.
2022-12-15 15:13:19 +11:00
Nicholas Nethercote
2a5aabdfc2
Remove SimplifiedTypeGen::map_def.
...
It's unused.
2022-12-15 15:04:09 +11:00
b-naber
ff41359e65
address review
2022-12-14 21:32:42 +01:00
Rémy Rakic
74f4da44a5
add helper to get DefId from MonoItem
2022-12-14 20:17:52 +00:00
Michael Goulet
3eb5b62898
always use anonymize_bound_vars
2022-12-14 20:06:25 +00:00
Oli Scherer
b41a483e8a
Fix rustdoc
2022-12-14 18:55:55 +00:00
Michael Goulet
cfa6a93a36
Auto traits in dyn are suggestable
2022-12-14 18:39:39 +00:00
Oli Scherer
18373fae35
Debug assertions hate this trick
2022-12-14 15:37:47 +00:00
Oli Scherer
49536667ff
Fix some comments and only get the generics in debug mode
2022-12-14 15:36:39 +00:00
Oli Scherer
0ae3da34c3
Remove TraitRef::new
2022-12-14 15:36:39 +00:00
Oli Scherer
6af3638709
Prevent the creation of TraitRef without dedicated methods
2022-12-14 15:36:39 +00:00
Oli Scherer
a5cd3bde95
Ensure no one constructs AliasTys themselves
2022-12-14 15:36:39 +00:00
Oli Scherer
4ffe3bdf99
Remove one more usage of mk_substs_trait
2022-12-14 15:36:39 +00:00
Oli Scherer
1bf80249ae
Remove many more cases of mk_substs_trait that can now use the iterator scheme`
2022-12-14 15:36:39 +00:00
Oli Scherer
0fe86aa977
Let mk_fn_def take an iterator instead to simplify some call sites
2022-12-14 15:36:39 +00:00
Oli Scherer
7fd9beedc2
Rename to match similar methods
2022-12-14 15:36:39 +00:00
Oli Scherer
fef872a875
Guard AliasTy creation against passing the wrong number of substs
2022-12-14 15:36:39 +00:00
Jakob Degen
c1b27eea45
Fix unsafetyck disabling for custom MIR
2022-12-14 01:02:35 -08:00
Tshepang Mbambo
a3592695ce
some fixes/improvements to mir::visit module
2022-12-14 05:31:56 +02:00
bors
918d0ac38e
Auto merge of #104986 - compiler-errors:opaques, r=oli-obk
...
Combine `ty::Projection` and `ty::Opaque` into `ty::Alias`
Implements https://github.com/rust-lang/types-team/issues/79 .
This PR consolidates `ty::Projection` and `ty::Opaque` into a single `ty::Alias`, with an `AliasKind` and `AliasTy` type (renamed from `ty::ProjectionTy`, which is the inner data of `ty::Projection`) defined as so:
```
enum AliasKind {
Projection,
Opaque,
}
struct AliasTy<'tcx> {
def_id: DefId,
substs: SubstsRef<'tcx>,
}
```
Since we don't have access to `TyCtxt` in type flags computation, and because repeatedly calling `DefKind` on the def-id is expensive, these two types are distinguished with `ty::AliasKind`, conveniently glob-imported into `ty::{Projection, Opaque}`. For example:
```diff
match ty.kind() {
- ty::Opaque(..) =>
+ ty::Alias(ty::Opaque, ..) => {}
_ => {}
}
```
This PR also consolidates match arms that treated `ty::Opaque` and `ty::Projection` identically.
r? `@ghost`
2022-12-14 01:19:24 +00:00
Matthias Krüger
1c86de25f1
Rollup merge of #105628 - spastorino:small-doc-fixes, r=compiler-errors
...
Small doc fixes
r? `@compiler-errors`
2022-12-13 19:57:12 +01:00
Michael Goulet
fbe66a6ef3
Address nits
...
Co-authored-by: Oli Scherer <github35764891676564198441@oli-obk.de >
2022-12-13 17:56:04 +00:00
Michael Goulet
0f9e414092
nit: docs
2022-12-13 17:48:55 +00:00
Michael Goulet
96cb18e864
Combine identical alias arms
2022-12-13 17:48:55 +00:00
Michael Goulet
61adaf8187
Combine projection and opaque into alias
2022-12-13 17:48:55 +00:00
Michael Goulet
c13bd83528
squash OpaqueTy and ProjectionTy into AliasTy
2022-12-13 17:40:27 +00:00
Michael Goulet
5c6afb850c
ProjectionTy.item_def_id -> ProjectionTy.def_id
2022-12-13 17:34:44 +00:00
Michael Goulet
7f3af72606
Use ty::OpaqueTy everywhere
2022-12-13 17:29:26 +00:00
Michael Goulet
918ede6474
make Opaque have one field: OpaqueTy
2022-12-13 17:27:41 +00:00
bors
ed620cf969
Auto merge of #105612 - oli-obk:bind_rustdoc, r=GuillaumeGomez
...
use ty::Binder in rustdoc instead of `skip_binder`
r? `@GuillaumeGomez`
this is a preliminary cleanup required to be able to normalize correctly/conveniently in rustdoc
2022-12-13 13:09:40 +00:00
Santiago Pastorino
4ae0c5518d
Make InternalSubsts rust docs a bit clearer
2022-12-13 09:28:25 -03:00
Michael Goulet
f705d64673
Remove instantiate_type_scheme
2022-12-13 04:56:44 +00:00
Michael Goulet
5dea1d1c6e
EarlyBinder nits
2022-12-13 04:53:36 +00:00
Michael Goulet
2025a96ee1
Fast path some binder relations
2022-12-13 03:17:14 +00:00
Matthias Krüger
38d97d3ea7
Rollup merge of #105593 - jruderman:patch-3, r=Dylan-DPC
...
Fix typo in comment: length_limit
2022-12-12 19:20:35 +01:00
Oli Scherer
30754517d1
Avoid trying to normalize unnormalizable types
2022-12-12 14:39:08 +00:00
Oli Scherer
21917b0866
Round 3: require binders for substs
2022-12-12 13:20:36 +00:00
Oli Scherer
dbf4b8a436
Round 1: add some binders (fails due to losing bound vars and then rebinding them with Binder::dummy)
2022-12-12 12:12:40 +00:00
Jesse Ruderman
c27d7949a1
Fix typo in comment: length_limit
2022-12-11 23:21:10 -08:00
Michael Goulet
bc293ed53e
bug! with a better error message for failing Instance::resolve
2022-12-11 19:48:24 +00:00
Matthias Krüger
2daa3bcbc2
Rollup merge of #105537 - kadiwa4:remove_some_imports, r=fee1-dead
...
compiler: remove unnecessary imports and qualified paths
Some of these imports were necessary before Edition 2021, others were already in the prelude.
I hope it's fine that this PR is so spread-out across files :/
2022-12-11 09:51:57 +01:00
Esteban Küber
3ad7131aa1
Introduce with_forced_trimmed_paths
2022-12-10 14:35:40 -08:00
KaDiWa
9bc69925cb
compiler: remove unnecessary imports and qualified paths
2022-12-10 18:45:34 +01:00
Matthias Krüger
62160cba7b
Rollup merge of #105410 - TaKO8Ki:fix-105257, r=BoxyUwU
...
Consider `parent_count` for const param defaults
Fixes #105257
2022-12-10 15:01:44 +01:00
Matthias Krüger
b66e123677
Rollup merge of #105234 - JakobDegen:unneeded-field, r=oli-obk
...
Remove unneeded field from `SwitchTargets`
This had a fixme already. The only change in behavior is that the mir dumps now no longer contains labels for the types of the integers on the edges of a switchint:
Before:

After:

I don't think that's a problem though. The information is still available to a user that really cares by checking the type of `_2`, so it honestly feels like a bit of an improvement to me.
r? mir
2022-12-10 15:01:43 +01:00
bors
b12b83674f
Auto merge of #105525 - matthiaskrgr:rollup-ricyw5s, r=matthiaskrgr
...
Rollup of 10 pull requests
Successful merges:
- #98391 (Reimplement std's thread parker on top of events on SGX)
- #104019 (Compute generator sizes with `-Zprint_type_sizes`)
- #104512 (Set `download-ci-llvm = "if-available"` by default when `channel = dev`)
- #104901 (Implement masking in FileType comparison on Unix)
- #105082 (Fix Async Generator ABI)
- #105109 (Add LLVM KCFI support to the Rust compiler)
- #105505 (Don't warn about unused parens when they are used by yeet expr)
- #105514 (Introduce `Span::is_visible`)
- #105516 (Update cargo)
- #105522 (Remove wrong note for short circuiting operators)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2022-12-10 11:16:18 +00:00
Matthias Krüger
0f5d3ba30f
Rollup merge of #104019 - compiler-errors:print-generator-sizes, r=wesleywiser
...
Compute generator sizes with `-Zprint_type_sizes`
Fixes #103887
r? `@pnkfelix`
2022-12-10 09:24:41 +01:00
Oli Scherer
75ff5c7dd3
Fold Definitions into the untracked data
2022-12-09 14:59:39 +00:00
Oli Scherer
1c1d3570ee
Move the untracked cstore and source_span into a struct
2022-12-09 14:53:24 +00:00
Jakob Degen
9fb8da8f8f
Remove unneeded field from SwitchTargets
2022-12-09 04:53:10 -08:00