diff --git a/json/lex_misc.mbt b/json/lex_misc.mbt index 7c3328e2c..daa9ab657 100644 --- a/json/lex_misc.mbt +++ b/json/lex_misc.mbt @@ -33,7 +33,7 @@ fn read_char(ctx : ParseContext) -> Char? { } } -fn lex_skip_whitespace(ctx : ParseContext) -> Result[Unit, ParseError] { +fn lex_skip_whitespace(ctx : ParseContext) -> Unit { for ; ; { match read_char(ctx) { Some('\t' | '\u000B' | '\u000C' | ' ' | '\n' | '\r') => continue @@ -42,15 +42,15 @@ fn lex_skip_whitespace(ctx : ParseContext) -> Result[Unit, ParseError] { continue } ctx.offset -= 1 - return Ok(()) + break } - None => return Ok(()) + None => break } } } fn lex_after_array_value(ctx : ParseContext) -> Result[Token, ParseError] { - lex_skip_whitespace(ctx)? + lex_skip_whitespace(ctx) match read_char(ctx) { Some(']') => Ok(Token::RBracket) Some(',') => Ok(Token::Comma) @@ -60,7 +60,7 @@ fn lex_after_array_value(ctx : ParseContext) -> Result[Token, ParseError] { } fn lex_after_property_name(ctx : ParseContext) -> Result[Token, ParseError] { - lex_skip_whitespace(ctx)? + lex_skip_whitespace(ctx) match read_char(ctx) { Some(':') => Ok(Token::Colon) Some(_) => Err(invalid_char(ctx, shift=-1)) @@ -69,7 +69,7 @@ fn lex_after_property_name(ctx : ParseContext) -> Result[Token, ParseError] { } fn lex_after_object_value(ctx : ParseContext) -> Result[Token, ParseError] { - lex_skip_whitespace(ctx)? + lex_skip_whitespace(ctx) match read_char(ctx) { Some('}') => Ok(Token::RBrace) Some(',') => Ok(Token::Comma) @@ -86,7 +86,7 @@ fn lex_assert_char(ctx : ParseContext, c : Char) -> Result[Unit, ParseError] { } fn lex_property_name(ctx : ParseContext) -> Result[Token, ParseError] { - lex_skip_whitespace(ctx)? + lex_skip_whitespace(ctx) match read_char(ctx) { Some('}') => Ok(RBrace) Some('"') => { @@ -99,7 +99,7 @@ fn lex_property_name(ctx : ParseContext) -> Result[Token, ParseError] { } fn lex_property_name2(ctx : ParseContext) -> Result[Token, ParseError] { - lex_skip_whitespace(ctx)? + lex_skip_whitespace(ctx) match read_char(ctx) { Some('"') => { let s = lex_string(ctx)? diff --git a/json/parse.mbt b/json/parse.mbt index aee049945..cc70fc945 100644 --- a/json/parse.mbt +++ b/json/parse.mbt @@ -22,7 +22,7 @@ pub fn valid(input : String) -> Bool { pub fn parse(input : String) -> Result[JsonValue, ParseError] { let ctx = ParseContext::make(input) let val = parse_value(ctx)? - lex_skip_whitespace(ctx)? + lex_skip_whitespace(ctx) if ctx.offset >= ctx.end_offset { Ok(val) } else {