diff --git a/parser/src/parser.rs b/parser/src/parser.rs index 65924d7..eb574c0 100644 --- a/parser/src/parser.rs +++ b/parser/src/parser.rs @@ -124,8 +124,7 @@ impl> Parser { fn parse(&mut self, recv: &mut R) -> ParseResult { - if self.scanner.stream_ended() - || self.state == State::End { + if self.state == State::End { return Ok(Event::StreamEnd); } let ev = try!(self.state_machine()); diff --git a/parser/src/yaml.rs b/parser/src/yaml.rs index d840a30..86730dc 100644 --- a/parser/src/yaml.rs +++ b/parser/src/yaml.rs @@ -331,6 +331,14 @@ c: [1, 2] assert!(doc["d"][0].is_badvalue()); } + #[test] + fn test_empty_doc() { + let s: String = "".to_owned(); + YamlLoader::load_from_str(&s).unwrap(); + let s: String = "---".to_owned(); + assert_eq!(YamlLoader::load_from_str(&s).unwrap()[0], Yaml::Null); + } + #[test] fn test_parser() { let s: String = "