diff options
author | John Hodge (Mutabah) <acessdev@gmail.com> | 2018-09-30 21:35:32 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-30 21:35:32 +0800 |
commit | bd3d69813cc54439fdc0db33943fa1254db3df06 (patch) | |
tree | 389b3f9fff419bd38275fddbf63fcbf3142d2f1c /src/hir_expand/annotate_value_usage.cpp | |
parent | d85ac84278fa0322f1df0b16a45a1cdde83cba57 (diff) | |
parent | fe8018c3b2e2be2c3153a5c1a1bb73cd9c6ca370 (diff) | |
download | mrust-bd3d69813cc54439fdc0db33943fa1254db3df06.tar.gz |
Merge pull request #84 from thepowersgang/ondemand-generation
Generate MIR when required for constant evaluation
Diffstat (limited to 'src/hir_expand/annotate_value_usage.cpp')
-rw-r--r-- | src/hir_expand/annotate_value_usage.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/hir_expand/annotate_value_usage.cpp b/src/hir_expand/annotate_value_usage.cpp index 58a4604a..693c7745 100644 --- a/src/hir_expand/annotate_value_usage.cpp +++ b/src/hir_expand/annotate_value_usage.cpp @@ -10,6 +10,7 @@ #include <hir_typeck/static.hpp> #include <algorithm> #include "main_bindings.hpp" +#include <hir/expr_state.hpp> namespace { @@ -654,6 +655,16 @@ namespace { }; } +void HIR_Expand_AnnotateUsage_Expr(const ::HIR::Crate& crate, ::HIR::ExprPtr& exp) +{ + assert(exp); + StaticTraitResolve resolve { crate }; + if(exp.m_state->m_impl_generics) resolve.set_impl_generics(*exp.m_state->m_impl_generics); + if(exp.m_state->m_item_generics) resolve.set_item_generics(*exp.m_state->m_item_generics); + ExprVisitor_Mark ev { resolve }; + ev.visit_root(exp); +} + void HIR_Expand_AnnotateUsage(::HIR::Crate& crate) { OuterVisitor ov(crate); |