Class constructor param fix

This commit is contained in:
2026-05-05 19:49:21 +02:00
parent efa9d51eb6
commit 8bb5dc3584
2 changed files with 25 additions and 6 deletions
+20 -1
View File
@@ -374,7 +374,26 @@ impl ToRust for TopLevelKind {
cg.add_indentedln("let mut this: Self = unsafe { std::mem::MaybeUninit::<Self>::zeroed().assume_init() };");
cg.add_indentedln("this.construct_class();");
for field in fields {
if let Some(init) = &field.init {
cg.add_indentedln(&format!(
"this.{} = {};",
field.decl.name,
init.get_rust()
));
}
}
cg.add_indentedln(&format!(
"this.construct_class({});",
constructor
.params
.0
.iter()
.map(|e| e.name.to_string())
.collect::<Vec<_>>()
.join(", ")
));
cg.add_indentedln("this");
+5 -5
View File
@@ -1,12 +1,12 @@
class MyClass {
String my_item;
String message;
constructor() {
self.my_item = "Hello World!".to_string();
public constructor(str* name) {
self.message = format!("Hello {}!", name);
}
}
void main() {
var my_class = MyClass::new();
println!("{}", my_class.my_item);
var my_class = MyClass::new("World");
println!("{}", my_class.message);
}