diff --git a/shared/tree-sitter-extractor/src/node_types.rs b/shared/tree-sitter-extractor/src/node_types.rs index 2967bc845802..11e4741ae429 100644 --- a/shared/tree-sitter-extractor/src/node_types.rs +++ b/shared/tree-sitter-extractor/src/node_types.rs @@ -386,6 +386,7 @@ fn escape_name(name: &str) -> String { ':' => result.push_str("colon"), ';' => result.push_str("semicolon"), '"' => result.push_str("dquote"), + '\'' => result.push_str("squote"), '*' => result.push_str("star"), '+' => result.push_str("plus"), '-' => result.push_str("minus"), @@ -448,6 +449,14 @@ fn dbscheme_name_to_class_name(dbscheme_name: &str) -> String { .join("") } +#[test] +fn escape_name_quotes_test() { + // Both string delimiters need a name: a grammar whose node types contain + // `'` used to produce the invalid dbscheme identifier `@lang_string_'`. + assert_eq!("dquote", escape_name("\"")); + assert_eq!("squote", escape_name("'")); +} + #[test] fn to_snake_case_test() { assert_eq!("ruby", to_snake_case("Ruby"));