Samuel Moelius
e604327286
Reorder walk_
functions in intravisit.rs
2022-11-01 19:02:45 -04:00
Yuki Okushi
2125181b7d
Rollup merge of #103692 - smoelius:walk_generic_arg, r=fee1-dead
...
Add `walk_generic_arg`
Could this please be added?
I could use it for a Clippy lint.
2022-11-01 12:03:41 +09:00
Nicholas Nethercote
c8c25ce5a1
Rename some OwnerId
fields.
...
spastorino noticed some silly expressions like `item_id.def_id.def_id`.
This commit renames several `def_id: OwnerId` fields as `owner_id`, so
those expressions become `item_id.owner_id.def_id`.
`item_id.owner_id.local_def_id` would be even clearer, but the use of
`def_id` for values of type `LocalDefId` is *very* widespread, so I left
that alone.
2022-10-29 20:28:38 +11:00
Samuel Moelius
86a4009586
Add walk_generic_arg
2022-10-28 10:36:42 -04:00
Michael Goulet
70f3c79c50
ImplItemKind::TyAlias => ImplItemKind::Type
2022-10-09 07:09:57 +00:00
Camille GILLOT
337a73da6e
Do not overwrite binders for another HirId.
2022-09-27 18:58:37 +02:00
Nicholas Nethercote
7e3fd33a66
Remove unused argument from visit_poly_trait_ref
.
2022-09-12 13:51:10 +10:00
Nicholas Nethercote
9ec5bda0dc
Remove unused span argument from visit_name
.
2022-09-12 13:44:29 +10:00
Nicholas Nethercote
925363f13d
Remove unused span argument from walk_fn
.
2022-09-12 13:24:27 +10:00
Nicholas Nethercote
6568ef338e
Remove path_span
argument to the visit_path_segment
methods.
...
The `visit_path_segment` method of both the AST and HIR visitors has a
`path_span` argument that isn't necessary. This commit removes it.
There are two very small and inconsequential functional changes.
- One call to `NodeCollector::insert` now is passed a path segment
identifier span instead of a full path span. This span is only used in
a panic message printed in the case of an internal compiler bug.
- Likewise, one call to `LifetimeCollectVisitor::record_elided_anchor`
now uses a path segment identifier span instead of a full path span.
This span is used to make some `'_` lifetimes.
2022-09-12 13:24:25 +10:00
Camille GILLOT
05812df603
Handle generic parameters.
2022-09-09 01:31:46 +00:00
Michael Goulet
78b962a4f3
RPITIT placeholder items
2022-09-09 01:31:44 +00:00
bors
b44197abb0
Auto merge of #101261 - TaKO8Ki:separate-receiver-from-arguments-in-hir, r=cjgillot
...
Separate the receiver from arguments in HIR
Related to #100232
cc `@cjgillot`
2022-09-05 16:21:40 +00:00
Takayuki Maeda
87c6da363f
separate the receiver from arguments in HIR
2022-09-05 22:25:49 +09:00
Nicholas Nethercote
bb0ae3c446
Make hir::PathSegment::hir_id
non-optional.
2022-09-05 14:20:25 +10:00
Nicholas Nethercote
3e04fed6fa
Remove {ast,hir}::WhereEqPredicate::id
.
...
These fields are unused.
2022-08-16 12:13:23 +10:00
Eric Huss
dcd5177fd4
Add visitors for PatField and ExprField.
...
This helps simplify the code. It also fixes it to use the correct parent
when lowering. One consequence is the `non_snake_case` lint needed
to change the way it looked for parent nodes in a struct pattern.
This also includes a small fix to use the correct `Target` for
expression field attribute validation.
2022-08-11 21:48:39 -07:00
Nicholas Nethercote
b8b851f42e
Simplify rustc_hir::intravisit::Visitor::visit_enum_def
.
...
It is passed an argument that is never used.
2022-08-11 11:10:03 +10:00
Nicholas Nethercote
8c5303898e
Simplify rustc_hir::intravisit::Visitor::visit_variant_data
.
...
It has four arguments that are never used. This avoids lots of argument
passing in functions that feed into `visit_variant_data`.
2022-08-11 10:54:01 +10:00
Camille GILLOT
212a06ee69
Match on TraitItem exhaustively.
2022-08-01 21:39:59 +02:00
Camille GILLOT
110f0656cb
Store associated item defaultness in impl_defaultness.
2022-08-01 21:38:16 +02:00
Camille GILLOT
10be0dd8df
Replace LifetimeRes::Anonymous by LifetimeRes::Infer.
2022-07-26 19:00:31 +02:00
Camille GILLOT
ab63591f00
Remove the distinction between LifetimeName::Implicit and LifetimeName::Underscore.
2022-07-26 19:00:31 +02:00
Dylan DPC
e5a86d7358
Rollup merge of #98705 - WaffleLapkin:closure_binder, r=cjgillot
...
Implement `for<>` lifetime binder for closures
This PR implements RFC 3216 ([TI](https://github.com/rust-lang/rust/issues/97362 )) and allows code like the following:
```rust
let _f = for<'a, 'b> |a: &'a A, b: &'b B| -> &'b C { b.c(a) };
// ^^^^^^^^^^^--- new!
```
cc ``@Aaron1011`` ``@cjgillot``
2022-07-14 14:14:21 +05:30
Maybe Waffle
df4fee9841
Add an indirection for closures in hir::ExprKind
...
This helps bring `hir::Expr` size down, `Closure` was the biggest
variant, especially after `for<>` additions.
2022-07-12 21:00:13 +04:00
Maybe Waffle
c2dbd62c7c
Lower closure binders to hir & properly check them
2022-07-12 21:00:03 +04:00
Ding Xiang Fei
5374688e1d
add tests for async await
2022-07-11 23:20:39 +02:00
Ding Xiang Fei
1cd30e7b32
move else block into the Local
struct
2022-07-11 23:20:37 +02:00
Ding Xiang Fei
6c529ded86
lower let-else in MIR instead
2022-07-11 23:20:36 +02:00
Camille GILLOT
111df9e6ed
Reword comments and rename HIR visiting methods.
2022-07-07 16:01:43 +02:00
bors
5ffa8f67b7
Auto merge of #98222 - cjgillot:single-wf, r=michaelwoerister
...
Only keep a single query for well-formed checking
There are currently 3 queries to perform wf checks on different item-likes. This complexity is not required.
This PR replaces the query by:
- one query per item;
- one query to invoke it for a whole module.
This allows to remove HIR `ParItemLikeVisitor`.
2022-06-28 03:44:33 +00:00
Camille GILLOT
9ae2546907
Only keep a single well-formed query.
2022-06-21 23:56:17 +02:00
Camille GILLOT
7437136f0e
Use CreateParameter mode for closures too.
2022-06-21 21:13:43 +02:00
Nicholas Nethercote
c9e97251ad
Remove unused hir_id
arg from visit_attribute
.
2022-06-16 09:52:04 +10:00
Camille GILLOT
3039cfeb6a
Make ExprKind::Closure
a struct variant.
2022-06-12 00:16:27 +02:00
Camille GILLOT
b1294e86bb
Manipulate lifetimes by LocalDefId for region resolution.
2022-06-03 12:03:20 +02:00
bors
07ae142d77
Auto merge of #96863 - SparrowLii:let, r=michaelwoerister
...
use `hir::Let` in `hir::Guard::IfLet`
This PR fixes the FIXME about using `hir::Let` in `hir::Guard::IfLet`
2022-05-18 17:48:46 +00:00
Miguel Guarniz
f975d05116
rename visit item-like methods
...
Signed-off-by: Miguel Guarniz <mi9uel9@gmail.com>
2022-05-13 11:46:06 -04:00
Miguel Guarniz
7e44078e9a
update comments about visitor strategy
...
Signed-off-by: Miguel Guarniz <mi9uel9@gmail.com>
2022-05-13 11:46:06 -04:00
Miguel Guarniz
93616dd539
remove ItemLikeVisitor and DeepVisitor
...
Signed-off-by: Miguel Guarniz <mi9uel9@gmail.com>
2022-05-13 11:46:06 -04:00
SparrowLii
5251a80c0a
use hir::Let in hir::Guard
2022-05-09 20:35:58 +08:00
Cameron Steffen
61ba32b768
Update intravisit docs
2022-04-30 12:27:27 -05:00
Camille GILLOT
94449e6101
Store all generic bounds as where predicates.
2022-04-30 13:55:13 +02:00
Camille GILLOT
05b29f9a92
Inline WhereClause into Generics.
2022-04-30 13:51:49 +02:00
Camille GILLOT
71b4e2d852
Box HIR Generics and Impl.
2022-04-30 13:51:49 +02:00
Camille GILLOT
a6e3124d2c
Drop vis in ImplItem.
2022-04-23 09:57:00 +02:00
Camille GILLOT
10d10efb21
Stop visiting visibility.
2022-04-23 09:53:45 +02:00
Camille GILLOT
a9e13fa553
Lint elided lifetimes in path on the AST.
2022-04-17 11:03:34 +02:00
Amanieu d'Antras
dc345d8bff
Reimplement lowering of sym operands for asm! so that it also works with global_asm!
2022-04-14 15:32:03 +01:00
Vadim Petrochenkov
17b1afdbb2
resolve: Fix incorrect results of opt_def_kind
query for some built-in macros
...
Previously it always returned `MacroKind::Bang` while some of those macros are actually attributes and derives
2022-02-24 22:54:36 +03:00