class Tapioca::Loaders::Dsl

def reload_custom_compilers

def reload_custom_compilers
  # Remove all loaded custom compilers
  ::Tapioca::Dsl::Compiler.descendants.each do |compiler|
    name = compiler.name
    next unless name && @custom_compiler_paths.include?(Module.const_source_location(name)&.first)
    *parts, unqualified_name = name.split("::")
    if parts.empty?
      Object.send(:remove_const, unqualified_name)
    else
      parts.join("::").safe_constantize.send(:remove_const, unqualified_name)
    end
  end
  # Remove from $LOADED_FEATURES each workspace compiler file and then re-load
  @custom_compiler_paths.each { |path| $LOADED_FEATURES.delete(path) }
  load_custom_dsl_compilers
end