class Haml::Compiler

def push_silent(text, can_suppress = false)

does not output the result.
Evaluates `text` in the context of the scope object, but
def push_silent(text, can_suppress = false)
  flush_merged_text
  return if can_suppress && @options.suppress_eval?
  newline = (text == "end") ? ";" : "\n"
  @precompiled << "#{resolve_newlines}#{text}#{newline}"
  @output_line += (text + newline).count("\n")
end