diff options
Diffstat (limited to 'src/trans/codegen.hpp')
-rw-r--r-- | src/trans/codegen.hpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/trans/codegen.hpp b/src/trans/codegen.hpp index 84673eb0..b4a087be 100644 --- a/src/trans/codegen.hpp +++ b/src/trans/codegen.hpp @@ -28,12 +28,17 @@ public: virtual ~CodeGenerator() {} virtual void finalise() {} - virtual void emit_tuple(const ::HIR::GenericPath& p, const ::std::vector<::HIR::TypeRef>& ) {} - virtual void emit_struct(const ::HIR::GenericPath& p, const ::HIR::Struct& item) {} - virtual void emit_union(const ::HIR::GenericPath& p, const ::HIR::Union& item) {} - virtual void emit_enum(const ::HIR::GenericPath& p, const ::HIR::Enum& item) {} + // Called on all types directly mentioned (e.g. variables, arguments, and fields) + // - Inner-most types are visited first. + virtual void emit_type(const ::HIR::TypeRef& ) {} - virtual void emit_static_ext(const ::HIR::Path& p) {} + // Called when a TypeRef::Path is encountered (after visiting inner types) + virtual void emit_struct(const Span& sp, const ::HIR::GenericPath& p, const ::HIR::Struct& item) {} + virtual void emit_union(const Span& sp, const ::HIR::GenericPath& p, const ::HIR::Union& item) {} + virtual void emit_enum(const Span& sp, const ::HIR::GenericPath& p, const ::HIR::Enum& item) {} + + virtual void emit_static_ext(const ::HIR::Path& p, const ::HIR::Static& item, const Trans_Params& params) {} + virtual void emit_static_proto(const ::HIR::Path& p, const ::HIR::Static& item, const Trans_Params& params) {} virtual void emit_static_local(const ::HIR::Path& p, const ::HIR::Static& item, const Trans_Params& params) {} virtual void emit_function_ext(const ::HIR::Path& p, const ::HIR::Function& item, const Trans_Params& params) {} |