about summary refs log tree commit diff
path: root/src/libsyntax/visit.rs
diff options
context:
space:
mode:
authorP1start <rewi-github@whanau.org>2014-08-10 15:54:33 +1200
committerP1start <rewi-github@whanau.org>2014-09-10 10:25:12 +1200
commitbf274bc18bcbfea1377c5c64ae0cc099b03d9beb (patch)
tree78f4b0455b6c93991836bed81b7b57096737b462 /src/libsyntax/visit.rs
parent651106462c357b71a4ca2c02ba2bfedfc38b0035 (diff)
downloadrust-bf274bc18bcbfea1377c5c64ae0cc099b03d9beb.tar.gz
rust-bf274bc18bcbfea1377c5c64ae0cc099b03d9beb.zip
Implement tuple and tuple struct indexing
This allows code to access the fields of tuples and tuple structs:

    let x = (1i, 2i);
    assert_eq!(x.1, 2);

    struct Point(int, int);
    let origin = Point(0, 0);
    assert_eq!(origin.0, 0);
    assert_eq!(origin.1, 0);
Diffstat (limited to 'src/libsyntax/visit.rs')
-rw-r--r--src/libsyntax/visit.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs
index 65e192e8437..50b42ea2c0f 100644
--- a/src/libsyntax/visit.rs
+++ b/src/libsyntax/visit.rs
@@ -830,6 +830,12 @@ pub fn walk_expr<E: Clone, V: Visitor<E>>(visitor: &mut V, expression: &Expr, en
                 visitor.visit_ty(&**typ, env.clone())
             }
         }
+        ExprTupField(ref subexpression, _, ref types) => {
+            visitor.visit_expr(&**subexpression, env.clone());
+            for typ in types.iter() {
+                visitor.visit_ty(&**typ, env.clone())
+            }
+        }
         ExprIndex(ref main_expression, ref index_expression) => {
             visitor.visit_expr(&**main_expression, env.clone());
             visitor.visit_expr(&**index_expression, env.clone())