diff --git a/src/de.rs b/src/de.rs index ad8554b7..8a3961d5 100644 --- a/src/de.rs +++ b/src/de.rs @@ -112,6 +112,9 @@ impl<'de> Deserializer<'de> { remaining_depth: 128, current_enum: None, })?; + if let Some(parse_error) = &document.error { + return Err(error::shared(Arc::clone(parse_error))); + } return Ok(t); } _ => {} @@ -130,6 +133,9 @@ impl<'de> Deserializer<'de> { remaining_depth: 128, current_enum: None, })?; + if let Some(parse_error) = &document.error { + return Err(error::shared(Arc::clone(parse_error))); + } if loader.next_document().is_none() { Ok(t) } else { diff --git a/tests/test_error.rs b/tests/test_error.rs index fb10e00d..4f1e576f 100644 --- a/tests/test_error.rs +++ b/tests/test_error.rs @@ -18,7 +18,7 @@ where #[test] fn test_scan_error() { let yaml = ">\n@"; - let expected = "deserializing from YAML containing more than one document is not supported"; + let expected = "found character that cannot start any token at line 2 column 1, while scanning for the next token"; test_error::(yaml, expected); }