diff options
author | John Hodge <tpg@mutabah.net> | 2016-10-05 19:25:06 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-10-05 19:25:31 +0800 |
commit | ed32a6680af7731b647962ee8cbb94cbcc3b9fa1 (patch) | |
tree | 1357eca270b2230284f2f360024d59089bb7386d /src | |
parent | 29355c5a5de0d36cc4e24ac9fec2c697b15d0119 (diff) | |
download | mrust-ed32a6680af7731b647962ee8cbb94cbcc3b9fa1.tar.gz |
HIR Typecheck Validate - Allow vardic functions
Diffstat (limited to 'src')
-rw-r--r-- | src/hir_typeck/expr_check.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/hir_typeck/expr_check.cpp b/src/hir_typeck/expr_check.cpp index 4f4235cd..4c372c40 100644 --- a/src/hir_typeck/expr_check.cpp +++ b/src/hir_typeck/expr_check.cpp @@ -672,10 +672,14 @@ namespace { DEBUG("= " << cache.m_arg_types.back()); // Check types - for(unsigned int i = 0; i < node.m_args.size(); i ++) { + for(unsigned int i = 0; i < fcn.m_args.size(); i ++) { DEBUG("CHECK ARG " << i << " " << node.m_cache.m_arg_types[i] << " == " << node.m_args[i]->m_res_type); check_types_equal(node.span(), node.m_cache.m_arg_types[i], node.m_args[i]->m_res_type); } + for(unsigned int i = fcn.m_args.size(); i < node.m_args.size(); i ++) { + DEBUG("CHECK ARG " << i << " * == " << node.m_args[i]->m_res_type); + // TODO: Check that the types here are valid. + } DEBUG("CHECK RV " << node.m_res_type << " == " << node.m_cache.m_arg_types.back()); check_types_equal(node.span(), node.m_res_type, node.m_cache.m_arg_types.back()); |