<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=開発環境, ライブラリ&amp;channel=swift-playgrounds&amp;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&lt;T&gt;(_ 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>