Avatar
もしかしてSE-0299によってprotocolをネームスペースとして使えるようになった? protocol P {} extension P { // static funcが書けるようになった static func foo() -> Int { 0 } /* インナータイプは作れないけど struct Inner {} */ } /* typealiasできるので実質可能? */ struct _P_Inner {} extension P { typealias Inner = _P_Inner } print(P.Inner())