class Steep::Project::DSL::TargetDSL

def check(*args)

def check(*args)
  sources.push(*args)
end

def ignore(*args)

def ignore(*args)
  ignored_sources.push(*args)
end

def initialize(name, sources: [], libraries: [], signatures: [], ignored_sources: [])

def initialize(name, sources: [], libraries: [], signatures: [], ignored_sources: [])
  @name = name
  @sources = sources
  @libraries = libraries
  @signatures = signatures
  @ignored_sources = ignored_sources
  @vendor_dir = nil
  @strictness_level = :default
end

def initialize_copy(other)

def initialize_copy(other)
  @name = other.name
  @sources = other.sources.dup
  @libraries = other.libraries.dup
  @signatures = other.signatures.dup
  @ignored_sources = other.ignored_sources.dup
  @vendor_dir = other.vendor_dir
  @strictness_level = other.strictness_level
end

def library(*args)

def library(*args)
  libraries.push(*args)
end

def no_builtin!(value = true)

def no_builtin!(value = true)
  Steep.logger.error "`no_builtin!` in Steepfile is deprecated and ignored. Use `vendor` instead."
end

def signature(*args)

def signature(*args)
  signatures.push(*args)
end

def typing_options(level)

def typing_options(level)
  @strictness_level = level
end

def update(name: self.name, sources: self.sources, libraries: self.libraries, ignored_sources: self.ignored_sources, signatures: self.signatures)

def update(name: self.name, sources: self.sources, libraries: self.libraries, ignored_sources: self.ignored_sources, signatures: self.signatures)
  self.class.new(
    name,
    sources: sources,
    libraries: libraries,
    signatures: signatures,
    ignored_sources: ignored_sources
  )
end

def vendor(dir = "vendor/sigs", stdlib: nil, gems: nil)

def vendor(dir = "vendor/sigs", stdlib: nil, gems: nil)
  if stdlib || gems
    @vendor_dir = [
      stdlib&.yield_self {|x| Pathname(x) },
      gems&.yield_self {|x| Pathname(x) }
    ]
  else
    @vendor_dir = Pathname(dir)
  end
end