Fix default initializers in classes
This commit is contained in:
@@ -352,8 +352,9 @@ impl ClassProcessedData {
|
|||||||
for field in &self.fields {
|
for field in &self.fields {
|
||||||
if let Some(init) = &field.item.init {
|
if let Some(init) = &field.item.init {
|
||||||
field.gen_span(cg);
|
field.gen_span(cg);
|
||||||
cg.add_indentedln(&format!("this.{} = ", field.item.decl.name.get_rust()));
|
cg.add_indented(&format!("this.{} = ", field.item.decl.name.get_rust()));
|
||||||
init.gen_rust(ctx, cg);
|
init.gen_rust(ctx, cg);
|
||||||
|
cg.addln(";");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,10 +46,13 @@ pub fn check_class_semantics<'a>(top_level: &TopLevel) -> Result<(), Vec<Semanti
|
|||||||
if let Some(constructor) = constructor {
|
if let Some(constructor) = constructor {
|
||||||
let mut fields = fields
|
let mut fields = fields
|
||||||
.iter()
|
.iter()
|
||||||
.map(|field| Spanned {
|
.filter_map(|field| match field.item.init {
|
||||||
item: field.item.decl.name.clone(),
|
Some(_) => None,
|
||||||
line: field.line,
|
None => Some(Spanned {
|
||||||
column: field.column,
|
item: field.item.decl.name.clone(),
|
||||||
|
line: field.line,
|
||||||
|
column: field.column,
|
||||||
|
}),
|
||||||
})
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user