Class constructor param fix
This commit is contained in:
+20
-1
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user