summaryrefslogtreecommitdiff
path: root/src/ast/expr.hpp
diff options
context:
space:
mode:
authorJohn Hodge (sonata) <tpg@mutabah.net>2015-01-21 20:30:20 +0800
committerJohn Hodge (sonata) <tpg@mutabah.net>2015-01-21 20:30:20 +0800
commit8d1acfa3993e64b0266365379602799350855f3f (patch)
tree8ebd1c2c02a322714d2ea64776ac504f955d5fd6 /src/ast/expr.hpp
parent15284f127f4c622bf4d67d8d8c44e1799f84e7cb (diff)
downloadmrust-8d1acfa3993e64b0266365379602799350855f3f.tar.gz
Type propagation coming along
Diffstat (limited to 'src/ast/expr.hpp')
-rw-r--r--src/ast/expr.hpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/ast/expr.hpp b/src/ast/expr.hpp
index ad2f906d..f1d16af0 100644
--- a/src/ast/expr.hpp
+++ b/src/ast/expr.hpp
@@ -293,6 +293,23 @@ struct ExprNode_Field:
SERIALISABLE_PROTOTYPES();
};
+// Pointer dereference
+struct ExprNode_Deref:
+ public ExprNode
+{
+ ::std::unique_ptr<ExprNode> m_value;
+
+ ExprNode_Deref() {}
+ ExprNode_Deref(::std::unique_ptr<ExprNode> value):
+ m_value( ::std::move(value) )
+ {
+ }
+
+ virtual void visit(NodeVisitor& nv) override;
+
+ SERIALISABLE_PROTOTYPES();
+};
+
// Type cast ('as')
struct ExprNode_Cast:
public ExprNode
@@ -369,6 +386,7 @@ public:
virtual void visit(ExprNode_NamedValue& node);
virtual void visit(ExprNode_Field& node);
+ virtual void visit(ExprNode_Deref& node);
virtual void visit(ExprNode_Cast& node);
virtual void visit(ExprNode_BinOp& node);
};