class TypeProf::Core::NilFilter - typeprof: Ruby Standard Library Documentation

# class TypeProf::Core::NilFilter

### Attributes

allow_nil[R]
next_vtx[R]

### Public Class Methods

new(genv, node, prev_vtx, allow_nil) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/graph/filter.rb, line 9
    def initialize(genv, node, prev_vtx, allow_nil)
      @node = node
      @next_vtx = Vertex.new(node)
      @allow_nil = allow_nil
      prev_vtx.add_edge(genv, self)
    end

### Public Instance Methods

filter(types, nil_type) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/graph/filter.rb, line 18
    def filter(types, nil_type)
      types.select {|ty| (ty == nil_type) == @allow_nil }
    end

on_type_added(genv, src_var, added_types) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/graph/filter.rb, line 22
    def on_type_added(genv, src_var, added_types)
      types = filter(added_types, genv.nil_type)
      @next_vtx.on_type_added(genv, self, types) unless types.empty?
    end

on_type_removed(genv, src_var, removed_types) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/graph/filter.rb, line 27
    def on_type_removed(genv, src_var, removed_types)
      types = filter(removed_types, genv.nil_type)
      @next_vtx.on_type_removed(genv, self, types) unless types.empty?
    end

to_s() click to toggle source

@@new_id = 0

    # File typeprof-0.30.1/lib/typeprof/core/graph/filter.rb, line 34
    def to_s
      "NF#{ @id ||= $new_id += 1 } -> #{ @next_vtx }"
    end