class Ikra::RubyIntegration::SymbolicCycleFinder
This visitor traverses the tree of symbolically executed parallel operations. It raises an exception, if an array command was generated by symbolic execution/interpretation of `send_node`.
Public Class Methods
new(send_node)
click to toggle source
# File lib/ruby_core/array_command.rb, line 16 def initialize(send_node) @send_node = send_node end
raise_on_cycle(command, send_node)
click to toggle source
# File lib/ruby_core/array_command.rb, line 11 def self.raise_on_cycle(command, send_node) visitor = self.new(send_node) command.accept(visitor) end
Public Instance Methods
visit_array_command(node)
click to toggle source
Calls superclass method
# File lib/ruby_core/array_command.rb, line 20 def visit_array_command(node) if node.generator_node == @send_node raise CycleDetectedError.new(node: node) else # No cycle found yet, check dependent computations super end end