summaryrefslogtreecommitdiff
path: root/src/hir/type.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-06-06 23:12:39 +0800
committerJohn Hodge <tpg@mutabah.net>2016-06-06 23:12:39 +0800
commit0a18cb44477d4ac241ce08feb768136684714a07 (patch)
tree6df36577d55037afff2270afc7e581d6c78b187b /src/hir/type.cpp
parente31213085b8d4846981b4db61502bbf46d1ed59f (diff)
downloadmrust-0a18cb44477d4ac241ce08feb768136684714a07.tar.gz
HIR - BorrowType on pointer, allow pointer coerce
Diffstat (limited to 'src/hir/type.cpp')
-rw-r--r--src/hir/type.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/hir/type.cpp b/src/hir/type.cpp
index 2d87ffb9..61ba9419 100644
--- a/src/hir/type.cpp
+++ b/src/hir/type.cpp
@@ -90,11 +90,11 @@ void ::HIR::TypeRef::fmt(::std::ostream& os) const
os << *e.inner;
),
(Pointer,
- if( e.is_mut ) {
- os << "*mut ";
- }
- else {
- os << "*const ";
+ switch(e.type)
+ {
+ case ::HIR::BorrowType::Shared: os << "*const "; break;
+ case ::HIR::BorrowType::Unique: os << "*mut "; break;
+ case ::HIR::BorrowType::Owned: os << "*move "; break;
}
os << *e.inner;
),
@@ -164,7 +164,7 @@ bool ::HIR::TypeRef::operator==(const ::HIR::TypeRef& x) const
return *te.inner == *xe.inner;
),
(Pointer,
- if( te.is_mut != xe.is_mut )
+ if( te.type != xe.type )
return false;
return *te.inner == *xe.inner;
),
@@ -301,7 +301,7 @@ namespace {
return ::HIR::TypeRef( Data::make_Borrow({e.type, box$(e.inner->clone())}) );
),
(Pointer,
- return ::HIR::TypeRef( Data::make_Pointer({e.is_mut, box$(e.inner->clone())}) );
+ return ::HIR::TypeRef( Data::make_Pointer({e.type, box$(e.inner->clone())}) );
),
(Function,
FunctionType ft;