@@ -27,12 +27,7 @@ fn parse_pat_ty<'a>(cx: &mut ExtCtxt<'a>, stream: TokenStream) -> PResult<'a, (P
27
27
let ty = parser. parse_ty ( ) ?;
28
28
parser. expect_keyword ( exp ! ( Is ) ) ?;
29
29
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 ( ) ) ;
36
31
37
32
if parser. token != token:: Eof {
38
33
parser. unexpected ( ) ?;
@@ -45,14 +40,15 @@ fn ty_pat(kind: TyPatKind, span: Span) -> P<TyPat> {
45
40
P ( TyPat { id : DUMMY_NODE_ID , kind, span, tokens : None } )
46
41
}
47
42
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 {
50
45
ast:: PatKind :: Range ( start, end, include_end) => TyPatKind :: Range (
51
46
start. map ( |value| P ( AnonConst { id : DUMMY_NODE_ID , value } ) ) ,
52
47
end. map ( |value| P ( AnonConst { id : DUMMY_NODE_ID , value } ) ) ,
53
48
include_end,
54
49
) ,
55
50
ast:: PatKind :: Err ( guar) => TyPatKind :: Err ( guar) ,
56
51
_ => TyPatKind :: Err ( cx. dcx ( ) . span_err ( pat. span , "pattern not supported in pattern types" ) ) ,
57
- }
52
+ } ;
53
+ ty_pat ( kind, pat. span )
58
54
}
0 commit comments