//: allow using literal strings anywhere that will accept immutable strings :(scenario passing_literals_to_recipes) def main [ 1:num/raw <- foo [abc] ] def foo x:text -> n:num [ local-scope load-ingredients n <- length *x ] +mem: storing 3 in location 1 :(before "End Instruction Inserting/Deleting Transforms") initialize_transform_rewrite_literal_string_to_text(); Transform.push_back(rewrite_literal_string_to_text); // idempotent :(before "End Globals") set<string> recipes_taking_literal_strings; :(code) void initialize_transform_rewrite_literal_string_to_text() { recipes_taking_literal_strings.insert("$print"); recipes_taking_literal_strings.insert("$dump-trace"); recipes_taking_literal_strings.insert("$system"); recipes_taking_literal_strings.insert("trace"); recipes_taking_literal_strings.insert("stash"); recipes_taking_literal_strings.insert("assert"); recipes_taking_literal_strings.insert(&discard """ targets: "cpp" cmd: "nim cpp --threads:on $file" """ # bug #5142 var ci: Channel[int] ci.open