Я не могу изменить сигнатуру функции, это функция из фреймворка Swinject

отал со Swinject, и проблема меня беспокоит. Я застрял один это почти на весь день. Я подозреваю, что это связано с тем, что Swift является статически типизированным языком, но я не совсем уверен.

Я подвел итог моей проблемы на этой площадке

protocol Protocol {}

class Class: Protocol {}

let test: Protocol.Type = Class.self

func printType(confromingClassType: Protocol.Type) {
    print(confromingClassType)
}

func printType<Service>(serviceType: Service.Type) {
    print(serviceType)
}

print(Class.self) // "Class"
printType(serviceType: Class.self) // "Class"
print(test) // "Class"
printType(confromingClassType: test) // "Class"

printType(serviceType: test) // "note: expected an argument list of type '(serviceType: Service.Type)'"

Я пробовал разные решения, такие как test.self или type (of: test), но ни одно из них не сработало.

Так что я не могу вызвать функцию с универсальным параметром, указанным в качестве переменной?