From a98cb27dedfe3b5005ac2d7b6d876ced4b4b6fc7 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sun, 11 Sep 2016 18:07:43 +0800 Subject: Resolve - Include binding for struct constructors/values --- src/resolve/use.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/resolve/use.cpp') diff --git a/src/resolve/use.cpp b/src/resolve/use.cpp index 4b22d9a6..f7d9442c 100644 --- a/src/resolve/use.cpp +++ b/src/resolve/use.cpp @@ -437,7 +437,7 @@ void Resolve_Use_Mod(const ::AST::Crate& crate, ::AST::Module& mod, ::AST::Path return ::AST::PathBinding::make_Enum({nullptr}); ), (Struct, - return ::AST::PathBinding::make_Struct({nullptr}); + return ::AST::PathBinding::make_Struct({nullptr, &e}); ), (Trait, return ::AST::PathBinding::make_Trait({nullptr}); @@ -466,14 +466,15 @@ void Resolve_Use_Mod(const ::AST::Crate& crate, ::AST::Module& mod, ::AST::Path (Static, return ::AST::PathBinding::make_Static({ nullptr }); ), + // TODO: What happens if these two refer to an enum constructor? (StructConstant, - return ::AST::PathBinding::make_Struct({ nullptr }); + return ::AST::PathBinding::make_Struct({ nullptr, &crate.m_extern_crates.at(e.ty.m_crate_name).m_hir->get_typeitem_by_path(span, e.ty, true).as_Struct() }); + ), + (StructConstructor, + return ::AST::PathBinding::make_Struct({ nullptr, &crate.m_extern_crates.at(e.ty.m_crate_name).m_hir->get_typeitem_by_path(span, e.ty, true).as_Struct() }); ), (Function, return ::AST::PathBinding::make_Function({ nullptr }); - ), - (StructConstructor, - return ::AST::PathBinding::make_Struct({ nullptr }); ) ) } -- cgit v1.2.3