collapse some nested blocks
This commit is contained in:
parent
95fc3ba41c
commit
d218b237fd
@ -1136,8 +1136,7 @@ fn infer_block(
|
||||
if self.diverges.is_always() {
|
||||
// we don't even make an attempt at coercion
|
||||
self.table.new_maybe_never_var()
|
||||
} else {
|
||||
if let Some(t) = expected.only_has_type(&mut self.table) {
|
||||
} else if let Some(t) = expected.only_has_type(&mut self.table) {
|
||||
if self.coerce(Some(expr), &TyBuilder::unit(), &t).is_err() {
|
||||
self.result.type_mismatches.insert(
|
||||
expr.into(),
|
||||
@ -1150,7 +1149,6 @@ fn infer_block(
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn infer_method_call(
|
||||
&mut self,
|
||||
@ -1314,8 +1312,9 @@ fn check_call_arguments(
|
||||
} else {
|
||||
param_ty
|
||||
};
|
||||
if !coercion_target.is_unknown() {
|
||||
if self.coerce(Some(arg), &ty, &coercion_target).is_err() {
|
||||
if !coercion_target.is_unknown()
|
||||
&& self.coerce(Some(arg), &ty, &coercion_target).is_err()
|
||||
{
|
||||
self.result.type_mismatches.insert(
|
||||
arg.into(),
|
||||
TypeMismatch { expected: coercion_target, actual: ty.clone() },
|
||||
@ -1324,7 +1323,6 @@ fn check_call_arguments(
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn substs_for_method_call(
|
||||
&mut self,
|
||||
|
@ -251,18 +251,15 @@ fn layout_of_unit(cx: &LayoutCx<'_>, dl: &TargetDataLayout) -> Result<Layout, La
|
||||
|
||||
fn struct_tail_erasing_lifetimes(db: &dyn HirDatabase, pointee: Ty) -> Ty {
|
||||
match pointee.kind(Interner) {
|
||||
TyKind::Adt(AdtId(adt), subst) => match adt {
|
||||
&hir_def::AdtId::StructId(i) => {
|
||||
let data = db.struct_data(i);
|
||||
TyKind::Adt(AdtId(hir_def::AdtId::StructId(i)), subst) => {
|
||||
let data = db.struct_data(*i);
|
||||
let mut it = data.variant_data.fields().iter().rev();
|
||||
match it.next() {
|
||||
Some((f, _)) => field_ty(db, i.into(), f, subst),
|
||||
Some((f, _)) => field_ty(db, (*i).into(), f, subst),
|
||||
None => pointee,
|
||||
}
|
||||
}
|
||||
_ => pointee,
|
||||
},
|
||||
_ => pointee,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -161,8 +161,7 @@ fn find_lifetime(text: &str) -> impl Fn(&&ast::GenericParam) -> bool + '_ {
|
||||
.and_then(|lt| known_generics.iter().find(find_lifetime(<.text()))),
|
||||
),
|
||||
ast::Type::ArrayType(ar) => {
|
||||
if let Some(expr) = ar.expr() {
|
||||
if let ast::Expr::PathExpr(p) = expr {
|
||||
if let Some(ast::Expr::PathExpr(p)) = ar.expr() {
|
||||
if let Some(path) = p.path() {
|
||||
if let Some(name_ref) = path.as_single_name_ref() {
|
||||
if let Some(param) = known_generics.iter().find(|gp| {
|
||||
@ -178,7 +177,6 @@ fn find_lifetime(text: &str) -> impl Fn(&&ast::GenericParam) -> bool + '_ {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
};
|
||||
false
|
||||
|
@ -389,8 +389,7 @@ fn source_edit_from_name_ref(
|
||||
edit.delete(TextRange::new(s, e));
|
||||
return true;
|
||||
}
|
||||
} else if init == name_ref {
|
||||
if field_name.text() == new_name {
|
||||
} else if init == name_ref && field_name.text() == new_name {
|
||||
cov_mark::hit!(test_rename_local_put_init_shorthand);
|
||||
// Foo { field: local } -> Foo { field }
|
||||
// ^^^^^^^ delete this
|
||||
@ -403,7 +402,6 @@ fn source_edit_from_name_ref(
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// init shorthand
|
||||
(None, Some(_)) if matches!(def, Definition::Field(_)) => {
|
||||
cov_mark::hit!(test_rename_field_in_field_shorthand);
|
||||
|
@ -323,11 +323,11 @@ pub(crate) fn search(self, indices: &[Arc<SymbolIndex>]) -> Vec<FileSymbol> {
|
||||
if symbol.name != self.query {
|
||||
continue;
|
||||
}
|
||||
} else if self.case_sensitive {
|
||||
if self.query.chars().any(|c| !symbol.name.contains(c)) {
|
||||
} else if self.case_sensitive
|
||||
&& self.query.chars().any(|c| !symbol.name.contains(c))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
res.push(symbol.clone());
|
||||
if res.len() >= self.limit {
|
||||
|
@ -64,12 +64,10 @@ pub(super) fn type_info(
|
||||
bt_end = if config.markdown() { "```\n" } else { "" }
|
||||
)
|
||||
.into()
|
||||
} else {
|
||||
if config.markdown() {
|
||||
} else if config.markdown() {
|
||||
Markup::fenced_block(&original.display(sema.db))
|
||||
} else {
|
||||
original.display(sema.db).to_string().into()
|
||||
}
|
||||
};
|
||||
res.actions.push(HoverAction::goto_type_from_targets(sema.db, targets));
|
||||
Some(res)
|
||||
|
@ -161,11 +161,9 @@ fn remove_newline(
|
||||
}
|
||||
}
|
||||
|
||||
if config.join_assignments {
|
||||
if join_assignments(edit, &prev, &next).is_some() {
|
||||
if config.join_assignments && join_assignments(edit, &prev, &next).is_some() {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if config.unwrap_trivial_blocks {
|
||||
// Special case that turns something like:
|
||||
|
@ -413,12 +413,11 @@ fn item(&self) -> &ast::Item {
|
||||
let string = ast::String::cast(token);
|
||||
let string_to_highlight = ast::String::cast(descended_token.clone());
|
||||
if let Some((string, expanded_string)) = string.zip(string_to_highlight) {
|
||||
if string.is_raw() {
|
||||
if inject::ra_fixture(hl, sema, config, &string, &expanded_string).is_some()
|
||||
if string.is_raw()
|
||||
&& inject::ra_fixture(hl, sema, config, &string, &expanded_string).is_some()
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
highlight_format_string(hl, &string, &expanded_string, range);
|
||||
highlight_escape_string(hl, &string, range.start());
|
||||
}
|
||||
|
@ -205,11 +205,9 @@ fn assign_expr(file: &SourceFile, offset: TextSize) -> Option<TextEdit> {
|
||||
if expr_stmt.semicolon_token().is_some() {
|
||||
return None;
|
||||
}
|
||||
} else {
|
||||
if !ast::StmtList::can_cast(binop.syntax().parent()?.kind()) {
|
||||
} else if !ast::StmtList::can_cast(binop.syntax().parent()?.kind()) {
|
||||
return None;
|
||||
}
|
||||
}
|
||||
|
||||
let expr = binop.rhs()?;
|
||||
let expr_range = expr.syntax().text_range();
|
||||
|
@ -307,12 +307,12 @@ fn handle_event(&mut self, event: Event) -> Result<()> {
|
||||
}
|
||||
}
|
||||
|
||||
if !was_quiescent || state_changed || memdocs_added_or_removed {
|
||||
if self.config.publish_diagnostics() {
|
||||
if (!was_quiescent || state_changed || memdocs_added_or_removed)
|
||||
&& self.config.publish_diagnostics()
|
||||
{
|
||||
self.update_diagnostics()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(diagnostic_changes) = self.diagnostics.take_changes() {
|
||||
for file_id in diagnostic_changes {
|
||||
|
Loading…
Reference in New Issue
Block a user