The SILGen testsuite consists of valid Swift code covering most language
features. We use these tests to verify that no unknown nodes are in the
file's libSyntax tree. That way we will (hopefully) catch any future
changes or additions to the language which are not implemented in
libSyntax.
This is something that we have wanted for a long time and will enable us to
remove some hacks from the compiler (i.e. how we determine in the ARC optimizer
that we have "fatalError" like function) and also express new things like
"noarc".
This is not wired up to SIL yet so whichever is the first value will
take precedence. We already support multiple values at the SIL level, but at the
SIL level the last value takes precedence.
Per Doug's request I added an optional transform range templated on the
attribute. This will make it easy to get all attributes from the AST of a
specific kind.