Don't redo field resolution in the IDE

This commit is contained in:
Aleksey Kladov
2019-11-24 20:06:55 +03:00
parent ac9ba5eb32
commit 63e3ea38d3
6 changed files with 30 additions and 22 deletions

View File

@@ -216,6 +216,11 @@ impl SourceAnalyzer {
self.infer.as_ref()?.field_resolution(expr_id)
}
pub fn resolve_record_field(&self, field: &ast::RecordField) -> Option<crate::StructField> {
let expr_id = self.expr_id(&field.expr()?)?;
self.infer.as_ref()?.record_field_resolution(expr_id)
}
pub fn resolve_record_literal(&self, record_lit: &ast::RecordLit) -> Option<crate::VariantDef> {
let expr_id = self.expr_id(&record_lit.clone().into())?;
self.infer.as_ref()?.variant_resolution_for_expr(expr_id)