Commits

Doug Gregor committed e6076d1caf3
Move protocol-conformance computation into Module::lookupConformance(). Introduce an AST operation that, given a type and a protocol, determines whether the type conforms to the protocol and produces the protocol conformance structure. Previously, this operation was only available on the type checker, requiring many callbacks from the AST to the type checker during AST substitution operations (for example). Now, we only call back into the type checker when we hit a case where we see an explicit conformance in the AST, but the actual ProtocolConformance object has not yet been built due to lazy type checking. Note that we still require a resolver (i.e., a TypeChecker) in a few places, although we shouldn't need it outside of lazy type checking. I'll loosen up the restrictions next. There's a minor diagnostics regression here that will be cleaned up in a future commit. Swift SVN r8129