protocol Animal {} protocol Cat: Animal {} class Dog: Animal {} Dog.self is Animal.Type // true Cat.self is Animal.Type // swift 3.2 true, swift 4.0 false