Fix resolve for field init shorthand

This commit is contained in:
Aleksey Kladov
2019-12-20 14:47:01 +01:00
parent a0571359f3
commit 3d4b48e481
6 changed files with 68 additions and 36 deletions

View File

@@ -237,7 +237,13 @@ impl SourceAnalyzer {
}
pub fn resolve_record_field(&self, field: &ast::RecordField) -> Option<crate::StructField> {
let expr_id = self.expr_id(&field.expr()?)?;
let expr_id = match field.expr() {
Some(it) => self.expr_id(&it)?,
None => {
let src = InFile { file_id: self.file_id, value: field };
self.body_source_map.as_ref()?.field_init_shorthand_expr(src)?
}
};
self.infer.as_ref()?.record_field_resolution(expr_id).map(|it| it.into())
}