Improved block comment ignoring.
Previously, repeated * resulted in too much character eating.
diff --git a/src/de.rs b/src/de.rs
index d1def35..ffae118 100644
--- a/src/de.rs
+++ b/src/de.rs
@@ -279,7 +279,7 @@
self.eat_char();
break;
}
- Some(_) => self.eat_char(),
+ Some(_) => {},
None => {
return Err(self.peek_error(
ErrorCode::EofWhileParsingBlockComment,
diff --git a/tests/comments.rs b/tests/comments.rs
index 4484fda..6df9fd1 100644
--- a/tests/comments.rs
+++ b/tests/comments.rs
@@ -23,7 +23,15 @@
{
/* And one in here. */
"key": "value"
- }/* Some at the end... *//* ...back to back! */"#;
+ }/* Some at the end... *//* ...back to *** back! */ /* Two trailing asterisk **/"#;
+ let value: Value = from_str(s).unwrap();
+ assert_eq!(value, json!({"key": "value"}));
+}
+
+#[test]
+fn test_parse_block_comments_before_value() {
+ let s = r#"
+ /* foo **/{"key": "value"}"#;
let value: Value = from_str(s).unwrap();
assert_eq!(value, json!({"key": "value"}));
}