class Tapioca::Dsl::Pipeline

def gather_constants(requested_constants, requested_paths, skipped_constants)

: (Array[Module] requested_constants, Array[Pathname] requested_paths, Array[Module] skipped_constants) -> Set[Module]
def gather_constants(requested_constants, requested_paths, skipped_constants)
  Compiler.requested_constants = requested_constants
  constants = Set.new.compare_by_identity
  active_compilers.each do |compiler|
    constants.merge(compiler.processable_constants)
  end
  constants = filter_anonymous_and_reloaded_constants(constants)
  constants -= skipped_constants
  unless requested_constants.empty? && requested_paths.empty?
    constants &= requested_constants
    requested_and_skipped = requested_constants & skipped_constants
    if requested_and_skipped.any?
      $stderr.puts("WARNING: Requested constants are being skipped due to configuration:" \
        "#{requested_and_skipped}. Check the supplied arguments and your `sorbet/tapioca/config.yml` file.")
    end
  end
  constants
end