Skip to content

Commit c9d886e

Browse files
committed
Directly generate TyPat instead of TyPatKind
1 parent 7693fc0 commit c9d886e

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

compiler/rustc_builtin_macros/src/pattern_type.rs

+5-9
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,7 @@ fn parse_pat_ty<'a>(cx: &mut ExtCtxt<'a>, stream: TokenStream) -> PResult<'a, (P
2727
let ty = parser.parse_ty()?;
2828
parser.expect_keyword(exp!(Is))?;
2929

30-
let start = parser.token.span;
31-
let pat = parser.parse_pat_no_top_alt(None, None)?.into_inner();
32-
let kind = pat_to_ty_pat(cx, pat);
33-
34-
let span = start.to(parser.token.span);
35-
let pat = ty_pat(kind, span);
30+
let pat = pat_to_ty_pat(cx, parser.parse_pat_no_top_alt(None, None)?.into_inner());
3631

3732
if parser.token != token::Eof {
3833
parser.unexpected()?;
@@ -45,14 +40,15 @@ fn ty_pat(kind: TyPatKind, span: Span) -> P<TyPat> {
4540
P(TyPat { id: DUMMY_NODE_ID, kind, span, tokens: None })
4641
}
4742

48-
fn pat_to_ty_pat(cx: &mut ExtCtxt<'_>, pat: ast::Pat) -> TyPatKind {
49-
match pat.kind {
43+
fn pat_to_ty_pat(cx: &mut ExtCtxt<'_>, pat: ast::Pat) -> P<TyPat> {
44+
let kind = match pat.kind {
5045
ast::PatKind::Range(start, end, include_end) => TyPatKind::Range(
5146
start.map(|value| P(AnonConst { id: DUMMY_NODE_ID, value })),
5247
end.map(|value| P(AnonConst { id: DUMMY_NODE_ID, value })),
5348
include_end,
5449
),
5550
ast::PatKind::Err(guar) => TyPatKind::Err(guar),
5651
_ => TyPatKind::Err(cx.dcx().span_err(pat.span, "pattern not supported in pattern types")),
57-
}
52+
};
53+
ty_pat(kind, pat.span)
5854
}

0 commit comments

Comments
 (0)