diff --git a/cli_utils/Cargo.lock b/cli_utils/Cargo.lock index f79e63f0bd..e2542e8ed3 100644 --- a/cli_utils/Cargo.lock +++ b/cli_utils/Cargo.lock @@ -2656,6 +2656,7 @@ dependencies = [ "roc_mono", "roc_problem", "roc_region", + "roc_reporting", "roc_solve", "roc_types", "roc_unify", @@ -2818,6 +2819,7 @@ dependencies = [ name = "roc_solve" version = "0.1.0" dependencies = [ + "arrayvec 0.7.2", "bumpalo", "roc_can", "roc_collections", diff --git a/compiler/parse/src/string_literal.rs b/compiler/parse/src/string_literal.rs index e766fa6a9f..f59d4250ea 100644 --- a/compiler/parse/src/string_literal.rs +++ b/compiler/parse/src/string_literal.rs @@ -66,17 +66,15 @@ pub fn parse_single_quote<'a>() -> impl Parser<'a, &'a str, EString<'a>> { match state.bytes.first() { Some(&ch) => { state = advance_state!(state, 1)?; - if (ch == b'n' || ch == b'r' || ch == b't' || ch == b'\'' || ch == b'\\') && (state.bytes.first() == Some(&b'\'')) { - state = advance_state!(state, 1)?; - // since we checked the current char between the single quotes we - // know they are valid UTF-8, allowing us to use 'from_u32_unchecked' - let test = unsafe { char::from_u32_unchecked(ch as u32) }; + if (ch == b'n' || ch == b'r' || ch == b't' || ch == b'\'' || ch == b'\\') + && (state.bytes.first() == Some(&b'\'')) + { + state = advance_state!(state, 1)?; + // since we checked the current char between the single quotes we + // know they are valid UTF-8, allowing us to use 'from_u32_unchecked' + let test = unsafe { char::from_u32_unchecked(ch as u32) }; - return Ok(( - MadeProgress, - &*arena.alloc_str(&test.to_string()), - state, - )); + return Ok((MadeProgress, &*arena.alloc_str(&test.to_string()), state)); } // invalid error, backslah escaping something we do not recognize return Err(( @@ -142,9 +140,7 @@ pub fn parse_single_quote<'a>() -> impl Parser<'a, &'a str, EString<'a>> { state = advance_state!(state, end_index)?; match std::str::from_utf8(raw_bytes) { - Ok(string) => { - Ok((MadeProgress, string, state)) - } + Ok(string) => Ok((MadeProgress, string, state)), Err(_) => { // invalid UTF-8 return Err((