class Opal::OpalBacktraceLocation

Loosely compatible with Thread::Backtrace::Location

def diagnostic=(diagnostic)

def diagnostic=(diagnostic)
  return unless diagnostic
  self.location = diagnostic.location
end

def initialize(path = nil, lineno = nil, label = nil)

def initialize(path = nil, lineno = nil, label = nil)
  @path, @lineno, @label = path, lineno, label
end

def location=(location)

def location=(location)
  return unless location
  self.lineno = location.line
  if location.respond_to?(:source_line)
    self.label = location.source_line
  elsif location.respond_to?(:expression)
    self.label = location.expression.source_line
  end
end

def to_s

def to_s
  string = path
  string += ":#{lineno}" if lineno
  string += ':in '
  if label
    string += "`#{label}'"
  else
    string += 'unknown'
  end
  string
end