<div class="chatlog__message-group"> <div id="chatlog__message-container-740187182953791558" class="chatlog__message-container" data-message-id="740187182953791558"> <div class="chatlog__message"> <div class="chatlog__message-aside"><img class="chatlog__avatar" src="https://cdn.discordapp.com/avatars/291062140079570944/75d22639a88c37be90cb60118acb7df5.png?size=512" alt="Avatar" loading="lazy"></div> <div class="chatlog__message-primary"> <div class="chatlog__header"><span class="chatlog__author" style="color:rgb(241,196,15)" title="kateinoigakukun" data-user-id="291062140079570944">Yuta Saito</span> <a href="/channels/379875475641729024?category=開発環境, ライブラリ&channel=swift-playgrounds&message_id=740187182953791558"><span class="chatlog__timestamp" title="Tuesday, August 4, 2020 12:39 PM"></span></a><a href="#chatlog__message-container-740187182953791558">8/4/2020 12:39 PM</a></div> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve"><span class="chatlog__markdown-mention" title="swift52#7242">@swift-5.2.5</span> <code class="chatlog__markdown-pre chatlog__markdown-pre--multiline language-swift">protocol P { static func foo() } extension P { static func foo() { print("P") } } extension Int: P { static func foo() { print("Int") } } func callFoo<T>(_ v: T) { print("Calling foo for \(type(of: v))") print("T is P ? \(T.self is P.Type)") if let t = type(of: v) as? P.Type { t.foo() } else { print("Failed to cast") } } let a: P = 1 callFoo(a) callFoo(1)</code></span></div> </div> </div> </div> </div>