summaryrefslogtreecommitdiff
path: root/src/hir_expand/vtable.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-12-04 23:01:22 +0800
committerJohn Hodge <tpg@mutabah.net>2016-12-04 23:01:22 +0800
commitd594f7aaa75f415c36295ebe83d20325bfb847ed (patch)
tree8ea509567754e0933b12b525a6b193ce225a72dd /src/hir_expand/vtable.cpp
parentc1287df0fd4ec4346a4e8f470149ae3108c3597c (diff)
downloadmrust-d594f7aaa75f415c36295ebe83d20325bfb847ed.tar.gz
HIR Expand VTables - (HACK) Ignore associated types that aren't known (for now)
Diffstat (limited to 'src/hir_expand/vtable.cpp')
-rw-r--r--src/hir_expand/vtable.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/hir_expand/vtable.cpp b/src/hir_expand/vtable.cpp
index e92fef92..ea578237 100644
--- a/src/hir_expand/vtable.cpp
+++ b/src/hir_expand/vtable.cpp
@@ -75,10 +75,10 @@ namespace {
}
i ++;
}
- // TODO: Iterate supertraits too.
for(const auto& st : tr.m_parent_traits) {
add_types_from_trait(*st.m_trait_ptr);
}
+ // TODO: Iterate supertraits from bounds too
}
};
Foo visitor { &tr, {}, static_cast<unsigned int>(tr.m_params.m_types.size()) };
@@ -92,7 +92,7 @@ namespace {
if(t.m_data.is_Path() && t.m_data.as_Path().path.m_data.is_UfcsKnown()) {
const auto& pe = t.m_data.as_Path().path.m_data.as_UfcsKnown();
DEBUG("t=" << t);
- if( *pe.type == ::HIR::TypeRef("Self", 0xFFFF) /*&& pe.trait == trait_path*/ ) {
+ if( *pe.type == ::HIR::TypeRef("Self", 0xFFFF) /*&& pe.trait == trait_path*/ && tr.m_type_indexes.count(pe.item) ) {
// Replace with a new type param, need to know the index of it
o = ::HIR::TypeRef("a#"+pe.item, tr.m_type_indexes.at(pe.item));
return true;