Sha256: df976ff802fe7ba7bfcc7b2925588c7959dd29e59a31278712f91686377b83db

Contents?: true

Size: 809 Bytes

Versions: 15

Compression:

Stored size: 809 Bytes

Contents

# frozen_string_literal: true

module DeepCover
  class Node::EmptyBody < Node
    def initialize(base_node, parent:, index: 0, position: ChildCanBeEmpty.last_empty_position)
      @position = position
      super(base_node, parent: parent, index: index, base_children: [])
    end

    def type
      :EmptyBody
    end

    def loc_hash
      return {} if @position == true
      {expression: @position}
    end

    def is_statement
      false
    end

    # When parent rewrites us, the %{node} must always be at the beginning because our location can
    # also be rewritten by out parent, and we want the rewrite to be after it.
    def rewriting_rules
      rules = super
      rules.map do |expression, rule|
        [expression, "%{node};#{rule.sub('%{node}', 'nil;')}"]
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
deep-cover-core-0.6.4 lib/deep_cover/node/empty_body.rb
deep-cover-core-0.6.3 lib/deep_cover/node/empty_body.rb
deep-cover-core-0.6.3.pre lib/deep_cover/node/empty_body.rb
deep-cover-0.6.2 lib/deep_cover/node/empty_body.rb
deep-cover-0.6.1 lib/deep_cover/node/empty_body.rb
deep-cover-0.6.0 lib/deep_cover/node/empty_body.rb
deep-cover-0.5.7 lib/deep_cover/node/empty_body.rb
deep-cover-0.5.6 lib/deep_cover/node/empty_body.rb
deep-cover-0.5.5 lib/deep_cover/node/empty_body.rb
deep-cover-0.5.4 lib/deep_cover/node/empty_body.rb
deep-cover-0.5.3 lib/deep_cover/node/empty_body.rb
deep-cover-0.5.2 lib/deep_cover/node/empty_body.rb
deep-cover-0.5.1 lib/deep_cover/node/empty_body.rb
deep-cover-0.5.0 lib/deep_cover/node/empty_body.rb
deep-cover-0.4.0 lib/deep_cover/node/empty_body.rb