mirror of https://github.com/rust-lang/rust.git
Fix a span in `parse_ty_bare_fn`.
It currently goes one token too far. Example: line 259 of `tests/ui/abi/compatibility.rs`: ``` test_abi_compatible!(fn_fn, fn(), fn(i32) -> i32); ``` This commit changes the span for the second element from `fn(),` to `fn()`, i.e. removes the extraneous comma.
This commit is contained in:
parent
c290e9de32
commit
cf0251d92c
|
@ -2126,7 +2126,8 @@ pub struct BareFnTy {
|
|||
pub ext: Extern,
|
||||
pub generic_params: ThinVec<GenericParam>,
|
||||
pub decl: P<FnDecl>,
|
||||
/// Span of the `fn(...) -> ...` part.
|
||||
/// Span of the `[unsafe] [extern] fn(...) -> ...` part, i.e. everything
|
||||
/// after the generic params (if there are any, e.g. `for<'a>`).
|
||||
pub decl_span: Span,
|
||||
}
|
||||
|
||||
|
|
|
@ -608,7 +608,7 @@ impl<'a> Parser<'a> {
|
|||
self.dcx().emit_err(FnPointerCannotBeAsync { span: whole_span, qualifier: span });
|
||||
}
|
||||
// FIXME(gen_blocks): emit a similar error for `gen fn()`
|
||||
let decl_span = span_start.to(self.token.span);
|
||||
let decl_span = span_start.to(self.prev_token.span);
|
||||
Ok(TyKind::BareFn(P(BareFnTy { ext, safety, generic_params: params, decl, decl_span })))
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ error: function pointers cannot be declared with `safe` safety qualifier
|
|||
--> $DIR/safe-outside-extern.rs:24:14
|
||||
|
|
||||
LL | type FnPtr = safe fn(i32, i32) -> i32;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ error: function pointers cannot be declared with `safe` safety qualifier
|
|||
--> $DIR/safe-outside-extern.rs:24:14
|
||||
|
|
||||
LL | type FnPtr = safe fn(i32, i32) -> i32;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
|
||||
--> $DIR/safe-outside-extern.rs:4:1
|
||||
|
|
Loading…
Reference in New Issue