diff --git a/schala-lang/src/parsing/combinator.rs b/schala-lang/src/parsing/combinator.rs index 8fca4ce..872f9e6 100644 --- a/schala-lang/src/parsing/combinator.rs +++ b/schala-lang/src/parsing/combinator.rs @@ -842,7 +842,14 @@ fn bare_string_literal(input: Span) -> ParseResult { alt((value("\\", tag("\\")), value("\"", tag("\"")), value("\n", tag("n")), value("\t", tag("t")))); alt(( map(tag(r#""""#), |_| String::new()), - delimited(char('"'), escaped_transform(none_of(r#""\"#), '\\', string_escape_transforms), char('"')), + preceded( + peek(char('"')), + cut(delimited( + char('"'), + escaped_transform(none_of(r#""\"#), '\\', string_escape_transforms), + char('"'), + )), + ), ))(input) }