summaryrefslogtreecommitdiff
path: root/src/trans/codegen.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/trans/codegen.hpp')
-rw-r--r--src/trans/codegen.hpp15
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) {}