renaming test cases
This commit is contained in:
parent
e6f48fa0bb
commit
e2ce5d74a5
@ -1791,45 +1791,6 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
}
|
||||
}
|
||||
|
||||
/// A common error is to add an extra semicolon:
|
||||
///
|
||||
/// ```compile_fail,E0308
|
||||
/// fn foo() -> usize {
|
||||
/// 22;
|
||||
/// }
|
||||
/// ```
|
||||
///
|
||||
/// This routine checks if the final statement in a block is an
|
||||
/// expression with an explicit semicolon whose type is compatible
|
||||
/// with `expected_ty`. If so, it suggests removing the semicolon.
|
||||
pub(crate) fn consider_removing_semicolon(
|
||||
&self,
|
||||
blk: &'tcx hir::Block<'tcx>,
|
||||
expected_ty: Ty<'tcx>,
|
||||
err: &mut Diag<'_>,
|
||||
) -> bool {
|
||||
if let Some((span_semi, boxed)) = self.err_ctxt().could_remove_semicolon(blk, expected_ty) {
|
||||
if let StatementAsExpression::NeedsBoxing = boxed {
|
||||
err.span_suggestion_verbose(
|
||||
span_semi,
|
||||
"consider removing this semicolon and boxing the expression",
|
||||
"",
|
||||
Applicability::HasPlaceholders,
|
||||
);
|
||||
} else {
|
||||
err.span_suggestion_short(
|
||||
span_semi,
|
||||
"remove this semicolon to return this value",
|
||||
"",
|
||||
Applicability::MachineApplicable,
|
||||
);
|
||||
}
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn is_field_suggestable(
|
||||
&self,
|
||||
field: &ty::FieldDef,
|
||||
|
@ -1976,7 +1976,7 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
|
||||
self.suggest_accessing_field_where_appropriate(cause, &exp_found, diag);
|
||||
self.suggest_await_on_expect_found(cause, span, &exp_found, diag);
|
||||
self.suggest_function_pointers(cause, span, &exp_found, diag);
|
||||
self.suggest_for_statments_as_exp(cause, &exp_found, diag);
|
||||
self.suggest_turning_stmt_into_expr(cause, &exp_found, diag);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -298,11 +298,11 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
|
||||
}
|
||||
}
|
||||
|
||||
pub(super) fn suggest_for_statments_as_exp(
|
||||
pub(super) fn suggest_turning_stmt_into_expr(
|
||||
&self,
|
||||
cause: &ObligationCause<'tcx>,
|
||||
exp_found: &ty::error::ExpectedFound<Ty<'tcx>>,
|
||||
diag: &mut Diagnostic,
|
||||
diag: &mut Diag<'_>,
|
||||
) {
|
||||
let ty::error::ExpectedFound { expected, found } = exp_found;
|
||||
if !found.peel_refs().is_unit() {
|
||||
@ -365,18 +365,18 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
|
||||
&self,
|
||||
blk: &'tcx hir::Block<'tcx>,
|
||||
expected_ty: Ty<'tcx>,
|
||||
err: &mut Diagnostic,
|
||||
diag: &mut Diag<'_>,
|
||||
) -> bool {
|
||||
if let Some((span_semi, boxed)) = self.could_remove_semicolon(blk, expected_ty) {
|
||||
if let StatementAsExpression::NeedsBoxing = boxed {
|
||||
err.span_suggestion_verbose(
|
||||
diag.span_suggestion_verbose(
|
||||
span_semi,
|
||||
"consider removing this semicolon and boxing the expression",
|
||||
"",
|
||||
Applicability::HasPlaceholders,
|
||||
);
|
||||
} else {
|
||||
err.span_suggestion_short(
|
||||
diag.span_suggestion_short(
|
||||
span_semi,
|
||||
"remove this semicolon to return this value",
|
||||
"",
|
||||
|
@ -1,5 +1,5 @@
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-105431-stmts-as-exp.rs:11:5
|
||||
--> $DIR/stmts-as-exp-105431.rs:11:5
|
||||
|
|
||||
LL | fn test_if() -> i32 {
|
||||
| --- expected `i32` because of return type
|
||||
@ -19,7 +19,7 @@ LL + 4
|
||||
|
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-105431-stmts-as-exp.rs:15:13
|
||||
--> $DIR/stmts-as-exp-105431.rs:15:13
|
||||
|
|
||||
LL | if true {
|
||||
| _____________^
|
||||
@ -30,7 +30,7 @@ LL | | }
|
||||
| |_____^ expected `i32`, found `()`
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-105431-stmts-as-exp.rs:19:10
|
||||
--> $DIR/stmts-as-exp-105431.rs:19:10
|
||||
|
|
||||
LL | else {
|
||||
| __________^
|
||||
@ -40,7 +40,7 @@ LL | | }
|
||||
| |_____^ expected `i32`, found `()`
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-105431-stmts-as-exp.rs:30:5
|
||||
--> $DIR/stmts-as-exp-105431.rs:30:5
|
||||
|
|
||||
LL | fn test_match() -> i32 {
|
||||
| --- expected `i32` because of return type
|
||||
@ -60,7 +60,7 @@ LL + _ => { 2 }
|
||||
|
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-105431-stmts-as-exp.rs:36:14
|
||||
--> $DIR/stmts-as-exp-105431.rs:36:14
|
||||
|
|
||||
LL | 1 => { 1; }
|
||||
| ^^^-^^
|
||||
@ -69,7 +69,7 @@ LL | 1 => { 1; }
|
||||
| expected `i32`, found `()`
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-105431-stmts-as-exp.rs:37:14
|
||||
--> $DIR/stmts-as-exp-105431.rs:37:14
|
||||
|
|
||||
LL | _ => { 2; }
|
||||
| ^^^-^^
|
||||
@ -78,7 +78,7 @@ LL | _ => { 2; }
|
||||
| expected `i32`, found `()`
|
||||
|
||||
error[E0308]: `match` arms have incompatible types
|
||||
--> $DIR/issue-105431-stmts-as-exp.rs:45:16
|
||||
--> $DIR/stmts-as-exp-105431.rs:45:16
|
||||
|
|
||||
LL | let res = match v {
|
||||
| _______________-
|
||||
@ -93,7 +93,7 @@ LL | | };
|
||||
| |_____- `match` arms have incompatible types
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-105431-stmts-as-exp.rs:59:5
|
||||
--> $DIR/stmts-as-exp-105431.rs:59:5
|
||||
|
|
||||
LL | fn test_if_match_mixed() -> i32 {
|
||||
| --- expected `i32` because of return type
|
||||
@ -113,7 +113,7 @@ LL + }
|
||||
|
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-105431-stmts-as-exp.rs:72:5
|
||||
--> $DIR/stmts-as-exp-105431.rs:72:5
|
||||
|
|
||||
LL | fn test_if_match_mixed_failed() -> i32 {
|
||||
| --- expected `i32` because of return type
|
Loading…
x
Reference in New Issue
Block a user