'args' are being matched to function 'this' Determine match level.
Extends TypeNext.constConv by also checking for matching attributes *
Return true if there are lazy parameters.
set or get if the return type or the default arguments are removed
Check for extern (D) U func(T t, ...) variadic function type, which has _arguments[] added as the first argument.
set or get if the function has the inout on the parameters
set or get if the function has the inout on the parameters
set or get if the function has the scope attribute
set or get if the function has the @live attribute
set or get if the function has the @nogc attribute
set or get if the function has the nothrow attribute
set or get if the function has the @property attribute
set or get if the function has the ref attribute
set or get if the function has the return attribute
set or get if the function has the return attribute inferred
set or get if the function has the scope attribute inferred
ditoo
Examine function signature for parameter p and see if the value of p can 'escape' the scope of the function. This is useful to minimize the needed annotations for the parameters.
Take the specified storage class for p, and use the function signature to infer whether STC.scope_ and STC.return_ should be OR'd in. (This will not affect the name mangling.)
Set 'purity' field of 'this'. Do this lazily, as the parameter types might be forward referenced.
For TypeFunction, nextOf() can return NULL if the function return type is meant to be inferred, and semantic() hasn't yet ben run on the function. After semantic(), it must no longer be NULL.