Sha256: ca3c22cbff582c8d8ad36a213a195bf4872515425d9ae6a12f3944591b5ac6dc

Contents?: true

Size: 858 Bytes

Versions: 15

Compression:

Stored size: 858 Bytes

Contents

module Steep
  module AST
    module Types
      module Helper
        module ChildrenLevel
          def level_of_children(children)
            levels = children.map(&:level)
            children.map(&:level).sort {|a, b| (b.size <=> a.size) || 0 }.inject() do |a, b|
              a.zip(b).map do |x, y|
                if x && y
                  x + y
                else
                  x || y || raise
                end
              end
            end || []
          end
        end

        module NoFreeVariables
          def free_variables()
            @fvs ||= Set.new
          end
        end

        module NoChild
          def each_child(&block)
            unless block
              enum_for :each_child
            end
          end

          def map_type
            self
          end
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
steep-1.9.1 lib/steep/ast/types/helper.rb
steep-1.9.0 lib/steep/ast/types/helper.rb
steep-1.9.0.dev.2 lib/steep/ast/types/helper.rb
steep-1.9.0.dev.1 lib/steep/ast/types/helper.rb
steep-1.8.3 lib/steep/ast/types/helper.rb
steep-1.8.2 lib/steep/ast/types/helper.rb
steep-1.8.1 lib/steep/ast/types/helper.rb
steep-1.8.0 lib/steep/ast/types/helper.rb
steep-1.8.0.pre.2 lib/steep/ast/types/helper.rb
steep-1.8.0.pre.1 lib/steep/ast/types/helper.rb
steep-1.8.0.dev.2 lib/steep/ast/types/helper.rb
steep-1.8.0.dev.1 lib/steep/ast/types/helper.rb
steep-1.7.1 lib/steep/ast/types/helper.rb
steep-1.7.0 lib/steep/ast/types/helper.rb
steep-1.7.0.dev.3 lib/steep/ast/types/helper.rb