protocol Animal {} struct Cat: Animal {} var cat = Cat() var animal: Animal = cat func updateAnimal(_ animal: inout Animal) {} updateAnimal(&animal) updateAnimal(&cat) // エラー