diff options
author | John Hodge <tpg@ucc.asn.au> | 2019-01-20 15:29:26 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2019-01-20 15:29:26 +0800 |
commit | 4c9e71afa9fe11ddf7dc6e660ce8cf38da93b781 (patch) | |
tree | 6adf81bbda5fd660a0230a411f64838a0d1546d5 /src | |
parent | 3c710f6320a5a124a8924f9d714bab8a94f7b051 (diff) | |
download | mrust-4c9e71afa9fe11ddf7dc6e660ce8cf38da93b781.tar.gz |
Type resolve static - Cleanups
Diffstat (limited to 'src')
-rw-r--r-- | src/hir_typeck/static.hpp | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/src/hir_typeck/static.hpp b/src/hir_typeck/static.hpp index f764f8f7..564d2110 100644 --- a/src/hir_typeck/static.hpp +++ b/src/hir_typeck/static.hpp @@ -16,8 +16,8 @@ class StaticTraitResolve public: const ::HIR::Crate& m_crate; - ::HIR::GenericParams* m_impl_generics; - ::HIR::GenericParams* m_item_generics; + const ::HIR::GenericParams* m_impl_generics; + const ::HIR::GenericParams* m_item_generics; ::std::map< ::HIR::TypeRef, ::HIR::TypeRef> m_type_equalities; @@ -86,19 +86,35 @@ public: ptr = nullptr; } }; - NullOnDrop< ::HIR::GenericParams> set_impl_generics(::HIR::GenericParams& gps) { + NullOnDrop<const ::HIR::GenericParams> set_impl_generics(const ::HIR::GenericParams& gps) { + set_impl_generics_raw(gps); + return NullOnDrop<const ::HIR::GenericParams>(m_impl_generics); + } + NullOnDrop<const ::HIR::GenericParams> set_item_generics(const ::HIR::GenericParams& gps) { + set_item_generics_raw(gps); + return NullOnDrop<const ::HIR::GenericParams>(m_item_generics); + } + void set_impl_generics_raw(const ::HIR::GenericParams& gps) { assert( !m_impl_generics ); m_impl_generics = &gps; m_type_equalities.clear(); prep_indexes(); - return NullOnDrop< ::HIR::GenericParams>(m_impl_generics); } - NullOnDrop< ::HIR::GenericParams> set_item_generics(::HIR::GenericParams& gps) { + void clear_impl_generics() { + m_impl_generics = nullptr; + m_type_equalities.clear(); + prep_indexes(); + } + void set_item_generics_raw(const ::HIR::GenericParams& gps) { assert( !m_item_generics ); m_item_generics = &gps; m_type_equalities.clear(); prep_indexes(); - return NullOnDrop< ::HIR::GenericParams>(m_item_generics); + } + void clear_item_generics() { + m_item_generics = nullptr; + m_type_equalities.clear(); + prep_indexes(); } /// \} |