summaryrefslogtreecommitdiff
path: root/src/resolve/use.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-09-11 18:07:43 +0800
committerJohn Hodge <tpg@mutabah.net>2016-09-11 18:07:43 +0800
commita98cb27dedfe3b5005ac2d7b6d876ced4b4b6fc7 (patch)
tree02e4f8c2d52ad011f6a3c1532f6d7fcf99011f4a /src/resolve/use.cpp
parentd1edb6f8e5b9085ca3ad36d4c85d3bab810b19bc (diff)
downloadmrust-a98cb27dedfe3b5005ac2d7b6d876ced4b4b6fc7.tar.gz
Resolve - Include binding for struct constructors/values
Diffstat (limited to 'src/resolve/use.cpp')
-rw-r--r--src/resolve/use.cpp11
1 files changed, 6 insertions, 5 deletions
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 });
)
)
}