new DIP38: Safe references and rvalue references without runtime checks.

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon May 6 12:03:32 PDT 2013


On 5/6/13 2:52 PM, Timothee Cour wrote:
> Abstract
>
> In short, the compiler internally annotates ref-return functions with
> ref(i1,...,iN) indicating that the function may return argument j
> (j=i1...iN) by reference (possibly via field accesses), where j is
> also a ref input argument. This list can be empty, and if the function
> is a method or internal function, argument 0 refers to implicit 'this'
> parameter. These annotations are used to validate/invalidate ref
> return functions that call such a ref return function. These
> annotations are also written in the automatically generated di
> interface files.
>
> See the DIP38 for more details and examples.

Knee-jerk reaction: this or any scheme based on internal (non-explicit) 
annotation for functions without that triggering inter-procedural 
analysis. The signature of a function should be everything the compiler 
can use as a basis in analysis.

Andrei


More information about the Digitalmars-d mailing list