123456789_123456789_123456789_123456789_123456789_

Class: TypeProf::ExecutionPoint

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Instance Chain:
Inherits: Object
Defined in: lib/typeprof/analyzer.rb

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(ctx, pc, outer) ⇒ ExecutionPoint

[ GitHub ]

  
# File 'lib/typeprof/analyzer.rb', line 77

def initialize(ctx, pc, outer)
  @ctx = ctx
  @pc = pc
  @outer = outer
end

Instance Attribute Details

#ctx (readonly)

[ GitHub ]

  
# File 'lib/typeprof/analyzer.rb', line 87

attr_reader :ctx, :pc, :outer

#outer (readonly)

[ GitHub ]

  
# File 'lib/typeprof/analyzer.rb', line 87

attr_reader :ctx, :pc, :outer

#pc (readonly)

[ GitHub ]

  
# File 'lib/typeprof/analyzer.rb', line 87

attr_reader :ctx, :pc, :outer

Instance Method Details

#jump(pc)

[ GitHub ]

  
# File 'lib/typeprof/analyzer.rb', line 89

def jump(pc)
  ExecutionPoint.new(@ctx, pc, @outer)
end

#key

[ GitHub ]

  
# File 'lib/typeprof/analyzer.rb', line 83

def key
  [@ctx.iseq, @pc]
end

#next

[ GitHub ]

  
# File 'lib/typeprof/analyzer.rb', line 93

def next
  ExecutionPoint.new(@ctx, @pc + 1, @outer)
end

#replace_cref(cref)

[ GitHub ]

  
# File 'lib/typeprof/analyzer.rb', line 97

def replace_cref(cref)
  ExecutionPoint.new(@ctx.replace_cref(cref), @pc, @outer)
end

#source_location

[ GitHub ]

  
# File 'lib/typeprof/analyzer.rb', line 101

def source_location
  @ctx.source_location(@pc)
end