diff options
Diffstat (limited to 'src/hir')
-rw-r--r-- | src/hir/deserialise.cpp | 1 | ||||
-rw-r--r-- | src/hir/from_ast.cpp | 4 | ||||
-rw-r--r-- | src/hir/hir.hpp | 1 | ||||
-rw-r--r-- | src/hir/serialise.cpp | 1 |
4 files changed, 5 insertions, 2 deletions
diff --git a/src/hir/deserialise.cpp b/src/hir/deserialise.cpp index fcfaeda1..fa34ce85 100644 --- a/src/hir/deserialise.cpp +++ b/src/hir/deserialise.cpp @@ -550,6 +550,7 @@ namespace { read_bool(), deserialise_genericparams(), deserialise_fcnargs(), + read_bool(), deserialise_type(), deserialise_exprptr() }; diff --git a/src/hir/from_ast.cpp b/src/hir/from_ast.cpp index 4dd6fe92..d80c1ed1 100644 --- a/src/hir/from_ast.cpp +++ b/src/hir/from_ast.cpp @@ -987,9 +987,9 @@ namespace { // TODO: ABI and unsafety/constness return ::HIR::Function { receiver, - "rust", false, false, + f.abi(), f.is_unsafe(), f.is_const(), LowerHIR_GenericParams(f.params(), nullptr), // TODO: If this is a method, then it can add the Self: Sized bound - mv$(args), + mv$(args), f.is_variadic(), LowerHIR_Type( f.rettype() ), LowerHIR_Expr( f.code() ) }; diff --git a/src/hir/hir.hpp b/src/hir/hir.hpp index 5c7f5a30..e1406067 100644 --- a/src/hir/hir.hpp +++ b/src/hir/hir.hpp @@ -108,6 +108,7 @@ public: GenericParams m_params; args_t m_args; + bool m_variadic; TypeRef m_return; ExprPtr m_code; diff --git a/src/hir/serialise.cpp b/src/hir/serialise.cpp index 0b581a27..8aece163 100644 --- a/src/hir/serialise.cpp +++ b/src/hir/serialise.cpp @@ -751,6 +751,7 @@ namespace { write_count(fcn.m_args.size()); for(const auto& a : fcn.m_args) serialise(a.second); + write_bool(fcn.m_variadic); serialise(fcn.m_return); DEBUG("m_args = " << fcn.m_args); |