mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-30 13:51:31 +00:00
Introduce TypeInfo
This commit is contained in:
parent
29506b5a26
commit
25ff7171c4
32 changed files with 127 additions and 124 deletions
|
@ -1,4 +1,4 @@
|
|||
use hir::db::AstDatabase;
|
||||
use hir::{db::AstDatabase, TypeInfo};
|
||||
use ide_db::{assists::Assist, helpers::for_each_tail_expr, source_change::SourceChange};
|
||||
use syntax::AstNode;
|
||||
use text_edit::TextEdit;
|
||||
|
@ -35,7 +35,7 @@ fn fixes(ctx: &DiagnosticsContext<'_>, d: &hir::MissingOkOrSomeInTailExpr) -> Op
|
|||
let tail_expr_range = tail_expr.syntax().text_range();
|
||||
let mut builder = TextEdit::builder();
|
||||
for_each_tail_expr(&tail_expr, &mut |expr| {
|
||||
if ctx.sema.type_of_expr(expr).as_ref() != Some(&d.expected) {
|
||||
if ctx.sema.type_of_expr(expr).map(TypeInfo::ty).as_ref() != Some(&d.expected) {
|
||||
builder.insert(expr.syntax().text_range().start(), format!("{}(", d.required));
|
||||
builder.insert(expr.syntax().text_range().end(), ")".to_string());
|
||||
}
|
||||
|
|
|
@ -62,7 +62,7 @@ fn missing_record_expr_field_fixes(
|
|||
};
|
||||
let def_file_id = def_file_id.original_file(sema.db);
|
||||
|
||||
let new_field_type = sema.type_of_expr(&record_expr_field.expr()?)?;
|
||||
let new_field_type = sema.type_of_expr(&record_expr_field.expr()?)?.ty;
|
||||
if new_field_type.is_unknown() {
|
||||
return None;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue