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 93

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

Instance Attribute Details

#ctx (readonly)

[ GitHub ]

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

attr_reader :ctx, :pc, :outer

#outer (readonly)

[ GitHub ]

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

attr_reader :ctx, :pc, :outer

#pc (readonly)

[ GitHub ]

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

attr_reader :ctx, :pc, :outer

Instance Method Details

#absolute_path

[ GitHub ]

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

def absolute_path
  @ctx.iseq.absolute_path
end

#detailed_source_location

[ GitHub ]

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

def detailed_source_location
  @ctx.detailed_source_location(@pc)
end

#jump(pc)

[ GitHub ]

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

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

#key

[ GitHub ]

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

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

#next

[ GitHub ]

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

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

#replace_cref(cref)

[ GitHub ]

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

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

#source_location

[ GitHub ]

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

def source_location
  @ctx.source_location(@pc)
end