Skip to content

Commit

Permalink
fix the span in the suggestion of remove question mark
Browse files Browse the repository at this point in the history
  • Loading branch information
bvanjoi committed Aug 3, 2023
1 parent 2e6ac7f commit 2195fa6
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 1 deletion.
2 changes: 1 addition & 1 deletion compiler/rustc_infer/src/infer/error_reporting/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -764,7 +764,7 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
Some(ty) if expected == ty => {
let source_map = self.tcx.sess.source_map();
err.span_suggestion(
source_map.end_point(cause.span),
source_map.end_point(cause.span()),
"try removing this `?`",
"",
Applicability::MachineApplicable,
Expand Down
9 changes: 9 additions & 0 deletions tests/ui/suggestions/remove-question-symbol-with-paren.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// https://github.com/rust-lang/rust/issues/114392

fn foo() -> Option<()> {
let x = Some(());
(x?)
//~^ ERROR `?` operator has incompatible types
}

fn main() {}
22 changes: 22 additions & 0 deletions tests/ui/suggestions/remove-question-symbol-with-paren.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
error[E0308]: `?` operator has incompatible types
--> $DIR/remove-question-symbol-with-paren.rs:5:6
|
LL | (x?)
| ^^ expected `Option<()>`, found `()`
|
= note: `?` operator cannot convert from `()` to `Option<()>`
= note: expected enum `Option<()>`
found unit type `()`
help: try removing this `?`
|
LL - (x?)
LL + (x)
|
help: try wrapping the expression in `Some`
|
LL | (Some(x?))
| +++++ +

error: aborting due to previous error

For more information about this error, try `rustc --explain E0308`.

0 comments on commit 2195fa6

Please sign in to comment.