Rollup merge of #119624 - petrochenkov:dialoc4, r=compiler-errors
rustc_span: More consistent span combination operations Also add more tests for using `tt` in addition to `ident`, and some other minor tweaks, see individual commits. This is a part of https://github.com/rust-lang/rust/pull/119412 that doesn't yet add side tables for metavariable spans.
This commit is contained in:
commit
1d6ab69ab1
25 changed files with 214 additions and 98 deletions
|
@ -2489,7 +2489,7 @@ impl<'a> Parser<'a> {
|
|||
}
|
||||
ExprKind::Block(_, None) => {
|
||||
this.dcx().emit_err(errors::IfExpressionMissingCondition {
|
||||
if_span: lo.shrink_to_hi(),
|
||||
if_span: lo.with_neighbor(cond.span).shrink_to_hi(),
|
||||
block_span: self.sess.source_map().start_point(cond_span),
|
||||
});
|
||||
std::mem::replace(&mut cond, this.mk_expr_err(cond_span.shrink_to_hi()))
|
||||
|
@ -3735,7 +3735,7 @@ impl<'a> Parser<'a> {
|
|||
}
|
||||
|
||||
pub(crate) fn mk_expr(&self, span: Span, kind: ExprKind) -> P<Expr> {
|
||||
P(Expr { kind, span, attrs: AttrVec::new(), id: DUMMY_NODE_ID, tokens: None })
|
||||
self.mk_expr_with_attrs(span, kind, AttrVec::new())
|
||||
}
|
||||
|
||||
pub(super) fn mk_expr_err(&self, span: Span) -> P<Expr> {
|
||||
|
|
|
@ -2118,7 +2118,7 @@ impl<'a> Parser<'a> {
|
|||
Applicability::MaybeIncorrect,
|
||||
);
|
||||
err.span_suggestion(
|
||||
span.shrink_to_hi(),
|
||||
span.with_neighbor(self.token.span).shrink_to_hi(),
|
||||
"add a semicolon",
|
||||
';',
|
||||
Applicability::MaybeIncorrect,
|
||||
|
@ -2632,7 +2632,7 @@ impl<'a> Parser<'a> {
|
|||
|
||||
let is_name_required = match this.token.kind {
|
||||
token::DotDotDot => false,
|
||||
_ => req_name(this.token.span.edition()),
|
||||
_ => req_name(this.token.span.with_neighbor(this.prev_token.span).edition()),
|
||||
};
|
||||
let (pat, ty) = if is_name_required || this.is_named_param() {
|
||||
debug!("parse_param_general parse_pat (is_name_required:{})", is_name_required);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue