Sha256: 0109c9592d780d52bb09e0170c626111829d2131394abf2e3330a23f1c8362bd

Contents?: true

Size: 756 Bytes

Versions: 33

Compression:

Stored size: 756 Bytes

Contents

# frozen_string_literal: true

require_relative 'subset'

module DeepCover
  class Analyser::Statement < Analyser
    include Analyser::Subset
    # Returns a map of Range => runs
    def results
      each_node.map do |node|
        [node.expression, node_runs(node)]
      end.to_h
    end

    private

    def in_subset?(node, parent)
      is_statement = node.is_statement
      if node.expression.nil?
        false
      elsif is_statement != :if_incompatible
        is_statement
      else
        !compatible_runs?(node_runs(parent), node_runs(node))
      end
    end

    def compatible_runs?(expression_runs, sub_expression_runs)
      sub_expression_runs.nil? ||
        (sub_expression_runs == 0) == (expression_runs == 0)
    end
  end
end

Version data entries

33 entries across 33 versions & 2 rubygems

Version Path
deep-cover-core-1.1.0 lib/deep_cover/analyser/statement.rb
deep-cover-core-1.0.0 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.8.1 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.8.0 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.7.10 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.7.9 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.7.8 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.7.7 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.7.6 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.7.5 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.7.4 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.7.3 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.7.2 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.7.1 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.7.0 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.6.4 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.6.3 lib/deep_cover/analyser/statement.rb
deep-cover-core-0.6.3.pre lib/deep_cover/analyser/statement.rb
deep-cover-0.6.2 lib/deep_cover/analyser/statement.rb
deep-cover-0.6.1 lib/deep_cover/analyser/statement.rb