summaryrefslogtreecommitdiff
path: root/src/mir/mir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mir/mir.cpp')
-rw-r--r--src/mir/mir.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/mir/mir.cpp b/src/mir/mir.cpp
index fb69bf3e..dc49efb2 100644
--- a/src/mir/mir.cpp
+++ b/src/mir/mir.cpp
@@ -72,6 +72,49 @@ namespace MIR {
)
return os;
}
+
+ ::std::ostream& operator<<(::std::ostream& os, const RValue& x)
+ {
+ TU_MATCHA( (x), (e),
+ (Use,
+ os << "Use(" << e << ")";
+ ),
+ (Constant,
+ os << "Constant(" << e << ")";
+ ),
+ (SizedArray,
+ os << "SizedArray(" << e.val << "; " << e.count << ")";
+ ),
+ (Borrow,
+ os << "Borrow(" << e.region << ", " << e.type << ", " << e.val << ")";
+ ),
+ (Cast,
+ os << "Cast(" << e.val << " as " << e.type << ")";
+ ),
+ (BinOp,
+ os << "BinOp(" << e.val_l << " " << static_cast<int>(e.op) << " " << e.val_r << ")";
+ ),
+ (UniOp,
+ os << "UniOp(" << e.val << " " << static_cast<int>(e.op) << ")";
+ ),
+ (DstMeta,
+ os << "DstMeta(" << e.val << ")";
+ ),
+ (MakeDst,
+ os << "MakeDst(" << e.ptr_val << ", " << e.meta_val << ")";
+ ),
+ (Tuple,
+ os << "Tuple(" << e.vals << ")";
+ ),
+ (Array,
+ os << "Array(" << e.vals << ")";
+ ),
+ (Struct,
+ os << "Struct(" << e.path << ", {" << e.vals << "})";
+ )
+ )
+ return os;
+ }
::std::ostream& operator<<(::std::ostream& os, const Terminator& x)
{