diff --git a/spec/compiler/macro/macro_expander_spec.cr b/spec/compiler/macro/macro_expander_spec.cr index e9fbe9e1fcba17d2d509ada788cde2b91867d55d..2a0fd9d07937393b39a2752fbcf0f25e5201be49 100644 --- a/spec/compiler/macro/macro_expander_spec.cr +++ b/spec/compiler/macro/macro_expander_spec.cr @@ -278,6 +278,10 @@ describe "MacroExpander" do it "executes string [Range] exclusive" do assert_macro "", %({{"hello"[1...-2]}}), [] of ASTNode, %("el") end + + it "executes string chomp" do + assert_macro "", %({{"hello\n".chomp}}), [] of ASTNode, %("hello") + end end describe "array methods" do diff --git a/src/compiler/crystal/macros.cr b/src/compiler/crystal/macros.cr index 5b35678038a04d15bddbf251b1f976c046eeb7b9..357a21e097fa9940ffcbc473b81195e965bb6527 100644 --- a/src/compiler/crystal/macros.cr +++ b/src/compiler/crystal/macros.cr @@ -729,6 +729,8 @@ module Crystal end when "capitalize" interpret_argless_method(method, args) { StringLiteral.new(@value.capitalize) } + when "chomp" + interpret_argless_method(method, args) { StringLiteral.new(@value.chomp) } when "downcase" interpret_argless_method(method, args) { StringLiteral.new(@value.downcase) } when "empty?"