Trevor Gross
a20fe8ff23
Rollup merge of #139909 - oli-obk:or-patterns, r=BoxyUwU
...
implement or-patterns for pattern types
These are necessary to represent `NonZeroI32`, as the range for that is `..0 | 1..`. The `rustc_scalar_layout_range_*` attributes avoided this by just implementing wraparound and having a single `1..=-1` range effectively. See https://rust-lang.zulipchat.com/#narrow/channel/481660-t-lang.2Fpattern-types/topic/.60or.20pattern.60.20representation.20in.20type.20system/with/504217694 for some background discussion
cc https://github.com/rust-lang/rust/issues/123646
r? `@BoxyUwU`
2025-04-29 12:28:22 -04:00
Oli Scherer
b023856f29
Add or-patterns to pattern types
2025-04-28 07:50:18 +00:00
Oli Scherer
cb6d3715a5
Split out various pattern type matches into their own function
2025-04-28 07:46:50 +00:00
Boxy
bdfeb8f36b
Remove weak
alias terminology
2025-04-24 11:59:20 +01:00
bors
97c966bb40
Auto merge of #139552 - matthiaskrgr:rollup-b194mk8, r=matthiaskrgr
...
Rollup of 10 pull requests
Successful merges:
- #139494 (Restrict some queries by def-kind more)
- #139496 (Revert r-a changes of rust-lang/rust#139455 )
- #139506 (add missing word in doc comment (part 2))
- #139515 (Improve presentation of closure signature mismatch from `Fn` trait goal)
- #139520 (compiletest maintenance: sort deps and drop dep on `anyhow`)
- #139523 (Rustc dev guide subtree update)
- #139526 (Fix deprecation note for std::intrinsics)
- #139528 (compiletest: Remove the `--logfile` flag)
- #139541 (Instantiate higher-ranked transmute goal w/ placeholders before emitting sub-obligations)
- #139547 (Update library tracking issue template to set S-tracking-unimplemented)
r? `@ghost`
`@rustbot` modify labels: rollup
2025-04-09 05:39:18 +00:00
xizheyin
c7272a6cbc
clean code: remove Deref<Target=RegionKind> impl for Region and use .kind()
...
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-04-08 10:51:41 +08:00
Michael Goulet
14d1215719
Restrict some queries by def-kind more
2025-04-07 18:10:28 +00:00
Oli Scherer
e8f7a382be
Remove the Option
part of range ends in the HIR
2025-03-06 10:47:40 +00:00
Oli Scherer
0e7b283573
Avoid having to handle an Option
in the type system
2025-03-06 10:03:11 +00:00
David Wood
0bed12e02d
hir_analysis: skip self type of host effect preds
...
Like trait predicates, the self type ought to be skipped here.
2025-02-24 10:19:16 +00:00
Nicholas Nethercote
29317604d1
Remove xform
submodule.
...
It used to be bigger, with an `Xform` trait, but now it has just a
single function.
2025-01-31 08:28:28 +11:00
Michael Goulet
9a1c5eb5b3
Begin to implement type system layer of unsafe binders
2024-12-22 21:57:57 +00:00
Nicholas Nethercote
2620eb42d7
Re-export more rustc_span::symbol
things from rustc_span
.
...
`rustc_span::symbol` defines some things that are re-exported from
`rustc_span`, such as `Symbol` and `sym`. But it doesn't re-export some
closely related things such as `Ident` and `kw`. So you can do `use
rustc_span::{Symbol, sym}` but you have to do `use
rustc_span::symbol::{Ident, kw}`, which is inconsistent for no good
reason.
This commit re-exports `Ident`, `kw`, and `MacroRulesNormalizedIdent`,
and changes many `rustc_span::symbol::` qualifiers in `compiler/` to
`rustc_span::`. This is a 200+ net line of code reduction, mostly
because many files with two `use rustc_span` items can be reduced to
one.
2024-12-18 13:38:53 +11:00
Michael Goulet
a7dc98733d
Add variances to RPITITs
2024-10-10 11:46:48 -07:00
Noah Lev
d6f247f3d5
rm ItemKind::OpaqueTy
...
This introduce an additional collection of opaques on HIR, as they can no
longer be listed using the free item list.
2024-10-04 23:28:22 +00:00
Michael Goulet
c682aa162b
Reformat using the new identifier sorting from rustfmt
2024-09-22 19:11:29 -04:00
Nicholas Nethercote
cc16c902f1
Remove #[macro_use] extern crate tracing
from rustc_hir_analysis
.
2024-08-30 17:14:59 +10:00
Nicholas Nethercote
5acf4e7b4b
Add warn(unreachable_pub)
to rustc_hir_analysis
.
2024-08-27 13:14:50 +10:00
Camille GILLOT
5cef88c1f4
Print the generic parameter along with the variance in dumps.
2024-08-23 23:00:45 +00:00
Nicholas Nethercote
c4717cc9d1
Shrink TyKind::FnPtr
.
...
By splitting the `FnSig` within `TyKind::FnPtr` into `FnSigTys` and
`FnHeader`, which can be packed more efficiently. This reduces the size
of the hot `TyKind` type from 32 bytes to 24 bytes on 64-bit platforms.
This reduces peak memory usage by a few percent on some benchmarks. It
also reduces cache misses and page faults similarly, though this doesn't
translate to clear cycles or wall-time improvements on CI.
2024-08-09 14:33:25 +10:00
Nicholas Nethercote
84ac80f192
Reformat use
declarations.
...
The previous commit updated `rustfmt.toml` appropriately. This commit is
the outcome of running `x fmt --all` with the new formatting options.
2024-07-29 08:26:52 +10:00
León Orell Valerian Liehr
bc12972bcd
Slightly refactor the dumping of HIR analysis data
2024-06-20 20:31:32 +02:00
Santiago Pastorino
4501ae89f1
Add and use generics.is_empty() and generics.is_own_empty, rather than using generics' attributes
2024-05-19 11:10:56 -03:00
bors
34582118af
Auto merge of #125076 - compiler-errors:alias-term, r=lcnr
...
Split out `ty::AliasTerm` from `ty::AliasTy`
Splitting out `AliasTerm` (for use in project and normalizes goals) and `AliasTy` (for use in `ty::Alias`)
r? lcnr
2024-05-13 22:20:43 +00:00
Michael Goulet
3bcdf3058e
split out AliasTy -> AliasTerm
2024-05-13 11:59:42 -04:00
Nicholas Nethercote
f59348ff09
Remove extern crate rustc_middle
from rustc_hir_analysis
.
2024-05-13 08:04:47 +10:00
Michael Goulet
1c19b6ad60
Rename Generics::params to Generics::own_params
2024-05-09 20:58:46 -04:00
Michael Goulet
b09c177743
Don't leak unnameable types in -> _ recover
2024-04-14 11:43:05 -04:00
Oli Scherer
84acfe86de
Actually create ranged int types in the type system.
2024-04-08 12:02:19 +00:00
Michael Goulet
7be0dbe772
Make RawPtr take Ty and Mutbl separately
2024-03-22 11:13:29 -04:00
León Orell Valerian Liehr
82c2c8deb1
Update (doc) comments
...
Several (doc) comments were super outdated or didn't provide enough context.
Some doc comments shoved everything in a single paragraph without respecting
the fact that the first paragraph should be a single sentence because rustdoc
treats these as item descriptions / synopses on module pages.
2024-03-22 06:31:51 +01:00
Oli Scherer
96d24f2dd1
Revert "Auto merge of #122140 - oli-obk:track_errors13, r=davidtwco"
...
This reverts commit 65cd843ae0
, reversing
changes made to d255c6a57c
.
2024-03-11 21:28:16 +00:00
Oli Scherer
4279da583c
Never bail out early while running all the type check queries
2024-03-11 08:43:50 +00:00
Michael Goulet
cf299ddb6e
Make TAITs capture all higher-ranked lifetimes in scope
2024-03-08 02:10:11 +00:00
Jason Newcomb
be9b125d41
Convert TypeVisitor
and DefIdVisitor
to use VisitorResult
2024-03-05 13:28:15 -05:00
Shoyu Vanilla
3856df059e
Dejargnonize subst
2024-02-12 15:46:35 +09:00
Michael Goulet
c567eddec2
Add CoroutineClosure to TyKind, AggregateKind, UpvarArgs
2024-02-06 02:22:58 +00:00
Oli Scherer
4db93c5750
Stop using track_errors for some forever unstable rustc_attr analyses
2024-01-17 10:02:14 +00:00
Michael Goulet
c811662fb0
Use zip_eq to enforce that things being zipped have equal sizes
2024-01-14 20:01:12 +00:00
Nicholas Nethercote
99472c7049
Remove Session
methods that duplicate DiagCtxt
methods.
...
Also add some `dcx` methods to types that wrap `TyCtxt`, for easier
access.
2023-12-24 08:05:28 +11:00
lcnr
15f21562e6
finish RegionKind
rename
...
- `ReFree` -> `ReLateParam`
- `ReEarlyBound` -> `ReEarlyParam`
2023-11-14 13:13:27 +00:00
lcnr
86fa1317a3
rename ReLateBound
to ReBound
...
other changes:
- `Region::new_late_bound` -> `Region::new_bound`
- `Region::is_late_bound` -> `Region::is_bound`
2023-11-13 14:13:54 +00:00
Oli Scherer
60956837cf
s/Generator/Coroutine/
2023-10-20 21:10:38 +00:00
Nicholas Nethercote
a2051dd578
Optimize some alloc_from_iter
call sites.
...
There's no need to collect an iterator into a `Vec`, or to call
`into_iter` at the call sites.
2023-10-03 18:12:37 +11:00
Michael Goulet
d6ce9ce115
Don't store lazyness in DefKind
2023-09-26 02:53:59 +00:00
Camille GILLOT
44ac8dcc71
Remove GeneratorWitness and rename GeneratorWitnessMIR.
2023-09-23 13:47:30 +00:00
Oli Scherer
e0a60f0740
Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726"
...
This reverts commit cb9467515b
, reversing
changes made to 57781b24c5
.
2023-08-30 11:06:46 +00:00
Michael Goulet
690bcc6619
Test variances of opaque captures
2023-08-28 01:05:34 +00:00
León Orell Valerian Liehr
5468336d6b
Store the laziness of type aliases in the DefKind
2023-08-07 15:54:31 +02:00
León Orell Valerian Liehr
263a0dec60
Compute variances for lazy type aliases
2023-08-03 01:38:23 +02:00