diff --git a/lib/liquid/block.rb b/lib/liquid/block.rb index f898d6cd..a5c3b1e4 100644 --- a/lib/liquid/block.rb +++ b/lib/liquid/block.rb @@ -67,10 +67,8 @@ module Liquid all_warnings = [] all_warnings.concat(@warnings) if @warnings - return all_warnings unless @children @children.each do |node| - node_warns = node.respond_to?(:warnings) ? node.warnings : nil - all_warnings.concat(node_warns) if node_warns + all_warnings.concat(node.warnings || []) end all_warnings diff --git a/lib/liquid/variable.rb b/lib/liquid/variable.rb index c119c808..7ad60feb 100644 --- a/lib/liquid/variable.rb +++ b/lib/liquid/variable.rb @@ -18,7 +18,6 @@ module Liquid def initialize(markup, options = {}) @markup = markup @name = nil - @warnings = [] @options = options || {} @@ -29,6 +28,7 @@ module Liquid begin strict_parse(markup) rescue SyntaxError => e + @warnings ||= [] @warnings << e lax_parse(markup) end