diff --git a/lib/rubocop/ast/processed_source.rb b/lib/rubocop/ast/processed_source.rb index 00567798e..6f6246995 100644 --- a/lib/rubocop/ast/processed_source.rb +++ b/lib/rubocop/ast/processed_source.rb @@ -177,6 +177,14 @@ def last_token_of(range_or_node) sorted_tokens[last_token_index(range_or_node)] end + # The tokens list is always sorted by token position, except for cases when heredoc + # is passed as a method argument. In this case tokens are interleaved by + # heredoc contents' tokens. + def sorted_tokens + # Use stable sort. + @sorted_tokens ||= tokens.sort_by.with_index { |token, i| [token.begin_pos, i] } + end + private def comment_index @@ -272,14 +280,6 @@ def last_token_index(range_or_node) sorted_tokens.bsearch_index { |token| token.end_pos >= end_pos } end - # The tokens list is always sorted by token position, except for cases when heredoc - # is passed as a method argument. In this case tokens are interleaved by - # heredoc contents' tokens. - def sorted_tokens - # Use stable sort. - @sorted_tokens ||= tokens.sort_by.with_index { |token, i| [token.begin_pos, i] } - end - def source_range(range_or_node) if range_or_node.respond_to?(:source_range) range_or_node.source_range