From 99ff0ead2de00bcd48938637b5cfd04cc161a2cb Mon Sep 17 00:00:00 2001 From: Selimaj Dev Date: Thu, 28 May 2026 16:08:31 +0200 Subject: [PATCH] Inheritance gen --- crates/codegen/src/top_level.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/crates/codegen/src/top_level.rs b/crates/codegen/src/top_level.rs index 39c0880..585de9c 100644 --- a/crates/codegen/src/top_level.rs +++ b/crates/codegen/src/top_level.rs @@ -396,6 +396,36 @@ impl GenRust for TopLevelKind { ClassItem::Method(_) => {} } } + + if let Some(inherits) = inherits { + cg.add("impl std::ops::Deref for "); + cg.add(&name.get_rust()); + + cg.addln(" {"); + cg.indent += 1; + + cg.add_indented("type Target = "); + cg.add(&inherits.get_rust()); + cg.addln(";"); + + cg.add_indentedln("fn deref(&self) -> &Self::Target {&self._super}"); + + cg.indent -= 1; + cg.addln("}"); + + // Mut + + cg.add("impl std::ops::DerefMut for "); + cg.add(&name.get_rust()); + + cg.addln(" {"); + cg.indent += 1; + + cg.add_indentedln("fn deref(&mut self) -> &mut Self::Target {&mut self._super}"); + + cg.indent -= 1; + cg.addln("}"); + } } } }