def method_call_path(method_call_tag)
      # r method_call_tag.values_at(:name, :receiver)
      name, receiver, scope = method_call_tag.values_at(:name, :receiver, :scope)
      scope = scope.join("::")

      if receiver == :class
        scope = "Kernel" if scope.empty?
        new_method_path(scope, :class, name)
      elsif receiver == :instance
        scope = "Kernel" if scope.empty?
        new_method_path(scope, :instance, name)
      else
        receiver = receiver.join("::")
        new_method_path(Reflexive.constant_lookup(receiver, scope), :class, name)
      end

#    if receiver.last == :instance
#      new_method_path(receiver[0..-2].join("::"), :instance, name)
#    else
#      new_method_path(receiver.join("::"), :class, name)
#    end rescue(r(method_call_tag))
    end
def method_call_path(method_call_tag)
      # r method_call_tag.values_at(:name, :receiver)
      name, receiver, scope = method_call_tag.values_at(:name, :receiver, :scope)
      scope = scope.join("::")

      if receiver == :class
        scope = "Kernel" if scope.empty?
        new_method_path(scope, :class, name)
      elsif receiver == :instance
        scope = "Kernel" if scope.empty?
        new_method_path(scope, :instance, name)
      else
        receiver = receiver.join("::")
        new_method_path(Reflexive.constant_lookup(receiver, scope), :class, name)
      end

#    if receiver.last == :instance
#      new_method_path(receiver[0..-2].join("::"), :instance, name)
#    else
#      new_method_path(receiver.join("::"), :class, name)
#    end rescue(r(method_call_tag))
    end
method_call_tag is the scanner event tag emitted by ReflexiveRipper