@@ -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