diff options
author | John Hodge <tpg@mutabah.net> | 2016-08-12 23:40:36 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-08-12 23:40:36 +0800 |
commit | 53ebabd01b6cc8aca39c48cb616c17fa23a0782d (patch) | |
tree | 5e2c03f349344c32ac314b6a73cf1c52247f6d70 /src/hir/pattern.hpp | |
parent | b337562448d2dccd2a634b8dba50aeab76376f4b (diff) | |
download | mrust-53ebabd01b6cc8aca39c48cb616c17fa23a0782d.tar.gz |
HIR Patterns - Support binding Value::Named to targets
Diffstat (limited to 'src/hir/pattern.hpp')
-rw-r--r-- | src/hir/pattern.hpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/hir/pattern.hpp b/src/hir/pattern.hpp index b02721b2..2a5ebb2a 100644 --- a/src/hir/pattern.hpp +++ b/src/hir/pattern.hpp @@ -12,6 +12,7 @@ namespace HIR { class Struct; class Enum; +class Constant; struct PatternBinding { @@ -50,7 +51,10 @@ struct Pattern uint64_t value; // Signed numbers are encoded as 2's complement }), (String, ::std::string), - (Named, Path) + (Named, struct { + Path path; + const ::HIR::Constant* binding; + }) ); friend ::std::ostream& operator<<(::std::ostream& os, const Pattern::Value& x); @@ -60,6 +64,10 @@ struct Pattern (Box, struct { ::std::unique_ptr<Pattern> sub; }), (Ref, struct { ::HIR::BorrowType type; ::std::unique_ptr<Pattern> sub; } ), (Tuple, struct { ::std::vector<Pattern> sub_patterns; } ), + (StructValue, struct { + GenericPath path; + const Struct* binding; + }), (StructTuple, struct { // NOTE: Type paths in patterns _can_ have parameters GenericPath path; |