summaryrefslogtreecommitdiff
path: root/src/expand/mod.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/expand/mod.cpp')
-rw-r--r--src/expand/mod.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/expand/mod.cpp b/src/expand/mod.cpp
index 2f936f1f..0c9fb487 100644
--- a/src/expand/mod.cpp
+++ b/src/expand/mod.cpp
@@ -179,7 +179,10 @@ void Expand_Type(bool is_early, ::AST::Crate& crate, LList<const AST::Module*> m
(Primitive,
),
(Function,
- TODO(ty.span(), "Expand function type " << ty);
+ Type_Function& tf = e.info;
+ Expand_Type(is_early, crate, modstack, mod, *tf.m_rettype);
+ for(auto& st : tf.m_arg_types)
+ Expand_Type(is_early, crate, modstack, mod, st);
),
(Tuple,
for(auto& st : e.inner_types)
@@ -470,7 +473,10 @@ void Expand_Mod(bool is_early, ::AST::Crate& crate, LList<const AST::Module*> mo
),
(Struct,
- // TODO: Struct items
+ for(auto& fld : e.e.fields()) {
+ // TODO: Attributes on struct items
+ Expand_Type(is_early, crate, modstack, mod, fld.data);
+ }
),
(Enum,
// TODO: Enum variants
@@ -504,6 +510,7 @@ void Expand_Mod(bool is_early, ::AST::Crate& crate, LList<const AST::Module*> mo
for( auto& i : mod.impls() )
{
DEBUG("- " << i);
+ // TODO: Expand impls
}
for( const auto& mi: mod.macro_imports_res() )