I'm using Swift to do some language feature research. One feature I'm
testing is automatic identifying implicit conformations if a nominal type
implicitly satisfies a protocol's requirement. Then I can use that type as
the protocol directly.
The way I'm doing is in the second AST visiting pass of the TypeChecker.
When visiting a nominal type node,
- Finding all visible protocols in this context
- For each protocol, add a synthesized conformance, and use the conformance
checker to check
- If fail, remove the synthesized conformance
Just wondering the proper way to get all visible protocols in a decl
context? Right now, I record all the protocols during the type checker's
first AST visit pass. Seems not good. Any suggestions to this and to the
above conformance checking?