diff options
author | John Hodge <tpg@mutabah.net> | 2016-09-29 13:24:21 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-09-29 13:24:21 +0800 |
commit | e7282f3b1595936af4553a72beee6a296780a33e (patch) | |
tree | 9dae22e417a00c998fecf5cf9ee7920533d32c50 /src/ast/ast.hpp | |
parent | 4191dc24ec72f7959720866281d0657495da0b8b (diff) | |
download | mrust-e7282f3b1595936af4553a72beee6a296780a33e.tar.gz |
AST - Store `const`/`unsafe`/variadic on functions
Diffstat (limited to 'src/ast/ast.hpp')
-rw-r--r-- | src/ast/ast.hpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/ast/ast.hpp b/src/ast/ast.hpp index 0b2f6729..866dcf6e 100644 --- a/src/ast/ast.hpp +++ b/src/ast/ast.hpp @@ -163,7 +163,12 @@ private: Expr m_code;
TypeRef m_rettype;
Arglist m_args;
+
// TODO: ABI, const, and unsafe
+ ::std::string m_abi;
+ bool m_is_const;
+ bool m_is_unsafe;
+ bool m_is_variadic; // extern only
public:
Function()
{}
@@ -171,10 +176,16 @@ public: Function& operator=(const Function&) = delete;
Function(Function&&) = default;
Function& operator=(Function&&) = default;
- Function(Span sp, GenericParams params, TypeRef ret_type, Arglist args);
+
+ Function(Span sp, GenericParams params, ::std::string abi, bool is_unsafe, bool is_const, bool is_variadic, TypeRef ret_type, Arglist args);
void set_code(Expr code) { m_code = ::std::move(code); }
+ const ::std::string& abi() const { return m_abi; };
+ bool is_const() const { return m_is_const; }
+ bool is_unsafe() const { return m_is_unsafe; }
+ bool is_variadic() const { return m_is_variadic; }
+
const GenericParams& params() const { return m_params; }
GenericParams& params() { return m_params; }
const Expr& code() const { return m_code; }
|