class Steep::Project::SourceFile

def parse(factory)

def parse(factory)
  if status.is_a?(TypeCheckStatus)
    yield status.source
  else
    yield self.class.parse(content, path: path, factory: factory)
  end
rescue AnnotationParser::SyntaxError => exn
  Steep.logger.warn { "Annotation syntax error on #{path}: #{exn.inspect}" }
  @status = AnnotationSyntaxErrorStatus.new(error: exn, location: exn.location)
rescue ::Parser::SyntaxError, EncodingError => exn
  Steep.logger.warn { "Source parsing error on #{path}: #{exn.inspect}" }
  @status = ParseErrorStatus.new(error: exn)
end