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("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");
|
cg.add_indentedln("this");
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -1,12 +1,12 @@
|
|||||||
class MyClass {
|
class MyClass {
|
||||||
String my_item;
|
String message;
|
||||||
|
|
||||||
constructor() {
|
public constructor(str* name) {
|
||||||
self.my_item = "Hello World!".to_string();
|
self.message = format!("Hello {}!", name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
var my_class = MyClass::new();
|
var my_class = MyClass::new("World");
|
||||||
println!("{}", my_class.my_item);
|
println!("{}", my_class.message);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user