@@ -328,29 +328,15 @@ fn read_query(language: &str, filename: &str) -> String {
329 let query = load_runtime_file(language, filename).unwrap_or_default();
329 let query = load_runtime_file(language, filename).unwrap_or_default();
331− // TODO: the collect() is not ideal
331+ // replaces all "; inherits <language>(,<language>)*" with the queries of the given language(s)
332− let inherits = INHERITS_REGEX
332+ INHERITS_REGEX
333− .captures_iter(&query)
333+ .replace_all(&query, |captures: ®ex::Captures| {
334− .flat_map(|captures| {
335 captures[1]
334 captures[1]
336 .split(',')
335 .split(',')
337− .map(str::to_owned)
336+ .map(|language| format!("\n{}\n", read_query(language, filename)))
338− .collect::<Vec<_>>()
337+ .collect::<String>()
340− .collect::<Vec<_>>();
339+ .to_string()
342− if inherits.is_empty() {
346− let mut queries = inherits
348− .map(|language| read_query(language, filename))
349− .collect::<Vec<_>>();
351− queries.push(query);
356impl LanguageConfiguration {
342impl LanguageConfiguration {