Skip to content

Commit

Permalink
Rollup merge of #114779 - MU001999:fix/114701, r=petrochenkov
Browse files Browse the repository at this point in the history
Add check before suggest removing parens

Fixes #114701
  • Loading branch information
matthiaskrgr authored Aug 16, 2023
2 parents e21e039 + 860fc24 commit 8f1c811
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 0 deletions.
1 change: 1 addition & 0 deletions compiler/rustc_hir_typeck/src/callee.rs
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
= self.typeck_results.borrow().qpath_res(qpath, callee_expr.hir_id)
// Only suggest removing parens if there are no arguments
&& arg_exprs.is_empty()
&& call_expr.span.contains(callee_expr.span)
{
let descr = match kind {
def::CtorOf::Struct => "struct",
Expand Down
15 changes: 15 additions & 0 deletions tests/ui/suggestions/issue-114701.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
enum Enum<T> { SVariant { v: T }, UVariant }

macro_rules! is_variant {
(TSVariant, ) => (!);
(SVariant, ) => (!);
(UVariant, $expr:expr) => (is_variant!(@check UVariant, {}, $expr));
(@check $variant:ident, $matcher:tt, $expr:expr) => (
assert!(if let Enum::$variant::<()> $matcher = $expr () { true } else { false },
);
);
}

fn main() {
is_variant!(UVariant, Enum::<()>::UVariant); //~ ERROR expected function
}
15 changes: 15 additions & 0 deletions tests/ui/suggestions/issue-114701.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
error[E0618]: expected function, found `Enum<()>`
--> $DIR/issue-114701.rs:14:27
|
LL | enum Enum<T> { SVariant { v: T }, UVariant }
| -------- `Enum::UVariant` defined here
...
LL | assert!(if let Enum::$variant::<()> $matcher = $expr () { true } else { false },
| -------- call expression requires function
...
LL | is_variant!(UVariant, Enum::<()>::UVariant);
| ^^^^^^^^^^^^^^^^^^^^

error: aborting due to previous error

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

0 comments on commit 8f1c811

Please sign in to comment.