diff options
| author | Santiago Pastorino <spastorino@gmail.com> | 2024-10-02 16:35:37 -0300 |
|---|---|---|
| committer | Santiago Pastorino <spastorino@gmail.com> | 2025-03-06 17:58:32 -0300 |
| commit | 05c516446a0f6105ce695da00d5cf5a0eb54e808 (patch) | |
| tree | d83371138f5b6dc54c0b7122227b209c68cac931 /compiler/rustc_middle/src | |
| parent | 0cf8dbc96c7c3c454779fe59e8e7019a3e37d5b6 (diff) | |
| download | rust-05c516446a0f6105ce695da00d5cf5a0eb54e808.tar.gz rust-05c516446a0f6105ce695da00d5cf5a0eb54e808.zip | |
Implement .use keyword as an alias of clone
Diffstat (limited to 'compiler/rustc_middle/src')
| -rw-r--r-- | compiler/rustc_middle/src/thir.rs | 8 | ||||
| -rw-r--r-- | compiler/rustc_middle/src/thir/visit.rs | 3 |
2 files changed, 11 insertions, 0 deletions
diff --git a/compiler/rustc_middle/src/thir.rs b/compiler/rustc_middle/src/thir.rs index e5592de81cd..c9e7331660f 100644 --- a/compiler/rustc_middle/src/thir.rs +++ b/compiler/rustc_middle/src/thir.rs @@ -312,6 +312,14 @@ pub enum ExprKind<'tcx> { /// (e.g. `foo(a, b)` in `x.foo(a, b)`). fn_span: Span, }, + /// A use expression `x.use`. + ByUse { + /// The expression on which use is applied. + expr: ExprId, + /// The span of use, without the dot and receiver + /// (e.g. `use` in `x.use`). + span: Span, + }, /// A *non-overloaded* dereference. Deref { arg: ExprId, diff --git a/compiler/rustc_middle/src/thir/visit.rs b/compiler/rustc_middle/src/thir/visit.rs index a9df4d1625b..d208692f4e7 100644 --- a/compiler/rustc_middle/src/thir/visit.rs +++ b/compiler/rustc_middle/src/thir/visit.rs @@ -59,6 +59,9 @@ pub fn walk_expr<'thir, 'tcx: 'thir, V: Visitor<'thir, 'tcx>>( visitor.visit_expr(&visitor.thir()[arg]); } } + ByUse { expr, span: _ } => { + visitor.visit_expr(&visitor.thir()[expr]); + } Deref { arg } => visitor.visit_expr(&visitor.thir()[arg]), Binary { lhs, rhs, op: _ } | LogicalOp { lhs, rhs, op: _ } => { visitor.visit_expr(&visitor.thir()[lhs]); |
