import Foundationやimport UIKitなどを書かなければfunc sayError(_ e: Error) { print(e.localizedDescription) } ↑これがそもそもコンパイルエラーになります.localizedDescriptionはFoundation.NSErrorのメソッドで、Swift.Errorには無いメソッドだからです。import Foundationすると、ErrorからNSErrorへの暗黙の変換が起こるようになって、呼び出せるようになる。