diff --git a/parser/src/scanner.rs b/parser/src/scanner.rs index 57a4295..ef4986a 100644 --- a/parser/src/scanner.rs +++ b/parser/src/scanner.rs @@ -1816,6 +1816,10 @@ impl> Scanner { )); } + if (self.mark.col as isize) < self.indent { + return Err(ScanError::new(start_mark, "invalid identation in quoted scalar")); + } + leading_blanks = false; self.consume_flow_scalar_non_whitespace_chars( single, @@ -2055,7 +2059,10 @@ impl> Scanner { let start_mark = self.mark; if self.flow_level > 0 && (start_mark.col as isize) < indent { - return Err(ScanError::new(start_mark, "foo")); + return Err(ScanError::new( + start_mark, + "invalid indentation in flow construct", + )); } let mut string = String::new(); diff --git a/parser/tests/yaml-test-suite.rs b/parser/tests/yaml-test-suite.rs index e4470ac..fee25c3 100644 --- a/parser/tests/yaml-test-suite.rs +++ b/parser/tests/yaml-test-suite.rs @@ -315,7 +315,6 @@ fn expected_events(expected_tree: &str) -> Vec { #[rustfmt::skip] static EXPECTED_FAILURES: &[&str] = &[ // Misc - "QB6E", // Indent for multiline double-quoted scalar "S98Z", // Block scalar and indent problems? "U99R", // Comma is not allowed in tags "WZ62", // Empty content