summaryrefslogtreecommitdiff
path: root/src/resolve/use.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/resolve/use.cpp')
-rw-r--r--src/resolve/use.cpp38
1 files changed, 17 insertions, 21 deletions
diff --git a/src/resolve/use.cpp b/src/resolve/use.cpp
index 03cff143..0946f8b0 100644
--- a/src/resolve/use.cpp
+++ b/src/resolve/use.cpp
@@ -183,7 +183,23 @@ void Resolve_Use_Mod(const ::AST::Crate& crate, ::AST::Module& mod, ::AST::Path
Resolve_Use_Mod(crate, i.data.as_Module(), path + i.name);
),
(Impl,
- TODO(Span(), "Recurse into Impl");
+ for(auto& i : e.items())
+ {
+ TU_MATCH_DEF( AST::Item, (*i.data), (e),
+ (
+ ),
+ (Function,
+ if( e.code().is_valid() ) {
+ e.code().node().visit( expr_iter );
+ }
+ ),
+ (Static,
+ if( e.value().is_valid() ) {
+ e.value().node().visit( expr_iter );
+ }
+ )
+ )
+ }
),
(Trait,
for(auto& ti : e.items())
@@ -219,26 +235,6 @@ void Resolve_Use_Mod(const ::AST::Crate& crate, ::AST::Module& mod, ::AST::Path
)
)
}
- for(auto& im : mod.impls())
- {
- for(auto& i : im.items())
- {
- TU_MATCH_DEF( AST::Item, (*i.data), (e),
- (
- ),
- (Function,
- if( e.code().is_valid() ) {
- e.code().node().visit( expr_iter );
- }
- ),
- (Static,
- if( e.value().is_valid() ) {
- e.value().node().visit( expr_iter );
- }
- )
- )
- }
- }
}
::AST::PathBinding Resolve_Use_GetBinding_Mod(