about summary refs log tree commit diff
path: root/src/librustc_back
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/librustc_back
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/librustc_back')
-rw-r--r--src/librustc_back/svh.rs2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/librustc_back/svh.rs b/src/librustc_back/svh.rs
index 6af19d948e0..8e24fc1ad5b 100644
--- a/src/librustc_back/svh.rs
+++ b/src/librustc_back/svh.rs
@@ -222,6 +222,7 @@ mod svh_visitor {
 
         SawExprLoop(Option<token::InternedString>),
         SawExprField(token::InternedString),
+        SawExprTupField(uint),
         SawExprBreak(Option<token::InternedString>),
         SawExprAgain(Option<token::InternedString>),
 
@@ -276,6 +277,7 @@ mod svh_visitor {
             ExprAssign(..)           => SawExprAssign,
             ExprAssignOp(op, _, _)   => SawExprAssignOp(op),
             ExprField(_, id, _)      => SawExprField(content(id.node)),
+            ExprTupField(_, id, _)   => SawExprTupField(id.node),
             ExprIndex(..)            => SawExprIndex,
             ExprPath(..)             => SawExprPath,
             ExprAddrOf(m, _)         => SawExprAddrOf(m),