Another huge MR of assorted features:
#linktime
specifier for rr::requires
clauses for requirements that have to be fulfilled at linking time, not by the caller of the function.TypeTranslator
to work without the local function environment. Type translation for the local environment is factored into a LocalTypeTranslator
. This also fixes a few bugs where we accidentally used the local environment when the type we were translating was outside the function scope.impl Trait for ...
blocks in interface files. Since it's hard to uniquely identify implementations in the presence of specialization etc, this is a bit limited currently (see the documentation in spec_format.md)&str
to ()
to handle cases where it's in the code but unreachable.