@@ -34,11 +34,11 @@ fn parse_json(cx: &ExtCtxt, parser: &mut Parser) -> P<Expr> {
34
34
35
35
match & parser. token {
36
36
& Token :: OpenDelim ( DelimToken :: Bracket ) => {
37
- parser. bump ( ) ;
37
+ let _ = parser. bump ( ) ;
38
38
let r_bracket = Token :: CloseDelim ( DelimToken :: Bracket ) ;
39
39
let exprs = parser. parse_seq_to_end ( & r_bracket, comma_sep ! ( ) , |p| {
40
- parse_json ( cx, p)
41
- } ) ;
40
+ Ok ( parse_json ( cx, p) )
41
+ } ) . ok ( ) . unwrap ( ) ;
42
42
let exprs = cx. expr_vec ( orig_span, exprs) ;
43
43
quote_expr ! ( cx, { {
44
44
use :: std:: boxed:: Box ;
@@ -47,18 +47,18 @@ fn parse_json(cx: &ExtCtxt, parser: &mut Parser) -> P<Expr> {
47
47
} } )
48
48
} ,
49
49
& Token :: OpenDelim ( DelimToken :: Brace ) => {
50
- parser. bump ( ) ;
50
+ let _ = parser. bump ( ) ;
51
51
let r_brace = Token :: CloseDelim ( DelimToken :: Brace ) ;
52
52
let kvs = parser. parse_seq_to_end ( & r_brace, comma_sep ! ( ) , |p| {
53
- let ( istr, _) = p. parse_str ( ) ;
53
+ let ( istr, _) = p. parse_str ( ) . ok ( ) . unwrap ( ) ;
54
54
let s = & * istr;
55
- p. expect ( & Token :: Colon ) ;
55
+ let _ = p. expect ( & Token :: Colon ) ;
56
56
let key = quote_expr ! ( cx, { {
57
57
use :: std:: borrow:: ToOwned ;
58
58
$s. to_owned( )
59
59
} } ) ;
60
- ( key, parse_json ( cx, p) )
61
- } ) ;
60
+ Ok ( ( key, parse_json ( cx, p) ) )
61
+ } ) . ok ( ) . unwrap ( ) ;
62
62
let ob = quote_expr ! ( cx, _ob) ;
63
63
let mut stmts = vec ! [ ] ;
64
64
for & ( ref key, ref value) in kvs. iter ( ) {
@@ -78,11 +78,11 @@ fn parse_json(cx: &ExtCtxt, parser: &mut Parser) -> P<Expr> {
78
78
} } )
79
79
} ,
80
80
& Token :: Ident ( id, IdentStyle :: Plain ) if id. as_str ( ) == "null" => {
81
- parser. bump ( ) ;
81
+ let _ = parser. bump ( ) ;
82
82
quote_expr ! ( cx, { :: rustc_serialize:: json:: Json :: Null } )
83
83
} ,
84
84
_ => { // TODO: investigate can_begin_expr (maybe eliminate need for parens)?
85
- let expr = parser. parse_literal_maybe_minus ( ) ;
85
+ let expr = parser. parse_literal_maybe_minus ( ) . ok ( ) . unwrap ( ) ;
86
86
quote_expr ! ( cx, { {
87
87
use :: rustc_serialize:: json:: ToJson ;
88
88
( $expr) . to_json( )
0 commit comments