summaryrefslogtreecommitdiff
path: root/src/types.hpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2015-08-31 14:06:26 +0800
committerJohn Hodge <tpg@mutabah.net>2015-08-31 14:06:26 +0800
commit68607811e4e8d6feba95f55c3e49da9923fc35fd (patch)
tree665891a1fac39c1d9a87617ad1af1ca27b139a60 /src/types.hpp
parent261f2aea278e1185f69b06e65501c1ca718df47c (diff)
downloadmrust-68607811e4e8d6feba95f55c3e49da9923fc35fd.tar.gz
Convert path bindings to TAGGED_UNION, improve resolve logic (leading to error)
Diffstat (limited to 'src/types.hpp')
-rw-r--r--src/types.hpp8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/types.hpp b/src/types.hpp
index 17d01bb3..7612e743 100644
--- a/src/types.hpp
+++ b/src/types.hpp
@@ -98,9 +98,6 @@ TAGGED_UNION(TypeData, None,
class TypeRef:
public Serialisable
{
- /// A generic pointer, used for tagging with extra information
- /// e.g. The source TypeParams for GENERIC
- const void* m_tagged_ptr;
public:
TypeData m_data;
@@ -232,10 +229,9 @@ public:
bool is_type_param() const { return m_data.is_Generic(); }
const ::std::string& type_param() const { return m_data.as_Generic().name; }
- void set_type_params_ptr(const AST::TypeParams& p) { assert(is_type_param()); m_tagged_ptr = &p; };
+ void set_type_params_ptr(const AST::TypeParams& p) { m_data.as_Generic().params = &p; };
const AST::TypeParams* type_params_ptr() const {
- assert(is_type_param());
- return reinterpret_cast<const AST::TypeParams*>(m_tagged_ptr);
+ return reinterpret_cast<const AST::TypeParams*>( m_data.as_Generic().params );
}
bool is_reference() const { return m_data.is_Borrow(); }