<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi everyone,<div class=""><br class=""></div><div class="">I’ve been implementing&nbsp;<a href="https://github.com/apple/swift-evolution/blob/master/proposals/0095-any-as-existential.md" class="">SE-0095</a>&nbsp;(<a href="https://github.com/apple/swift/pull/3293" class="">here</a>) and have hit an issue around how&nbsp;<span style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; white-space: pre-wrap; background-color: rgb(244, 247, 251);" class=""><font color="#606060" class="">Any.self</font></span>&nbsp;is treated.</div><div class=""><br class=""></div><div class="">When in the type position, I parse&nbsp;<span style="color: rgb(96, 96, 96); font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; white-space: pre-wrap; background-color: rgb(244, 247, 251);" class="">Any</span>&nbsp;like any other type, and resolve it to be an empty protocol composition&nbsp;<a href="https://github.com/apple/swift/pull/3293/files#diff-aee66a44df1b30cec188083399e31ec5R823" class="">in the constraint system</a>, in&nbsp;<span style="color: rgb(96, 96, 96); font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; white-space: pre-wrap; background-color: rgb(244, 247, 251);" class="">resolveTopLevelTypeComponent</span>.&nbsp;</div><div class=""><br class=""></div><div class="">This does not work for metatype lookup, where the lookup is unconstrained and I need to find a <font color="#606060" face="Consolas, Liberation Mono, Menlo, Courier, monospace" class=""><span style="white-space: pre-wrap; background-color: rgb(244, 247, 251);" class="">ValueDecl</span></font>&nbsp;for the&nbsp;<span style="color: rgb(96, 96, 96); font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; white-space: pre-wrap; background-color: rgb(244, 247, 251);" class="">Any</span>&nbsp;type. Currently I have kept the stdlib’s&nbsp;<font color="#606060" face="Consolas, Liberation Mono, Menlo, Courier, monospace" class=""><span style="white-space: pre-wrap; background-color: rgb(244, 247, 251);" class="">typealias Any = protocol&lt;&gt;</span></font>&nbsp;so the type system can look to the stdlib through <font color="#606060" face="Consolas, Liberation Mono, Menlo, Courier, monospace" class=""><span style="white-space: pre-wrap; background-color: rgb(244, 247, 251);" class="">getAnyDecl</span></font>&nbsp;to find it. Does anyone have an idea about how this could be done without this; there are no other keywords that need this sort of unconstrained lookup and are implicitly declared?</div><div class=""><br class=""></div><div class="">Another question I had: does SE-0095 extend to SIL syntax? The proposal does’t mention it, but I think it would seem out of place to keep the&nbsp;<span style="color: rgb(96, 96, 96); font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; white-space: pre-wrap; background-color: rgb(244, 247, 251);" class="">protocol&lt;&gt;</span>&nbsp;pattern in .sil if we are replacing it in .swift, the AST, and the demangler.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Joe</div></div></body></html>