<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Jacob,<div class=""><br class=""></div><div class="">Maybe it would be better to figure out why getMemberSubstitutions() is being called on the invalid type, and try to catch the problem further up?</div><div class=""><br class=""></div><div class="">Otherwise, Doug Gregor might have further suggestions.</div><div class=""><br class=""></div><div class="">Slava<br class=""><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Dec 5, 2015, at 11:41 PM, Jacob Bandes-Storch via swift-dev &lt;<a href="mailto:swift-dev@swift.org" class="">swift-dev@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Investigating&nbsp;compiler_crashers/26960-void.swift, I found that TypeBase::getMemberSubstitutions is being called on a NominalType (StructType) whose Parent is an ErrorType (getString() returns "&lt;&lt;error type&gt;&gt;.B").<div class=""><br class=""></div><div class="">In this case, is&lt;ErrorType&gt;() returns false, because the type is not itself an ErrorType, only its parent is.<div class=""><br class=""></div><div class="">Immediately collapsing any NominalType whose parent is ErrorType seems like it would lose information that might be useful for diagnostics. However, simply checking is&lt;ErrorType&gt;() is clearly insufficient.</div><div class=""><br class=""></div><div class="">Should there be something like "isErrorType()" which checks recursively whether any members (including Parent) are ErrorType?</div><div class=""><div class=""><br clear="all" class=""><div class=""><div class="gmail_signature"><div dir="ltr" class=""><div class="">Jacob Bandes-Storch<br class=""></div></div></div></div>
</div></div></div></div>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=NLTid1W7V2mxBEfr5Y3KfTntaxSmOQp5vjACZc9Eh19CzuhqBeDV1N9lME-2F5dI72tLOqHDnW37YS8ppWA0fJwD-2FhcDDwwNADGBDGYdglwiVYX-2BLUqTJP9qOW58WtelrRW4NwuD0yi0LD-2FX6peelBpUxd89DZEdsjHcKHHzFOyNg-2F4Q6XOkRvZCGlR4QIw9IH6i9IlMxX5t3b-2ByArcjQwSTLHEO0xdOex713p2leBpj4-3D" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;" class="">
_______________________________________________<br class="">swift-dev mailing list<br class=""><a href="mailto:swift-dev@swift.org" class="">swift-dev@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-dev<br class=""></div></blockquote></div><br class=""></div></div></body></html>