DIP10005: Dependency-Carrying Declarations is now available for community feedback
Andrej Mitrovic via Digitalmars-d
digitalmars-d at puremagic.com
Thu Dec 15 10:06:04 PST 2016
On Thursday, 15 December 2016 at 17:07:35 UTC, Dominikus Dittes
Scherkl wrote:
> On Thursday, 15 December 2016 at 16:16:51 UTC, Walter Bright
> wrote:
>> On 12/14/2016 5:26 AM, Dominikus Dittes Scherkl wrote:
>>> Why not leave it as it is and only change the compiler to
>>> perform inputs _within_ a function before evaluating the
>>> declaration, so that
>>> the symbols imported can be used in the declaration?
>>>
>>> e.g.
>>>
>>> fun(Range x) if(isInputRange!x)
>>> {
>>> import std.range;
>>> auto a = x.front();
>>> }
>>
>> That would make it problematic to have function declarations.
> So, I no longer propose to change nothing except the internal
> compiler behaviour.
> Now I propose to additionally change the .di-file generation to
> also add all local imports to the start of the declaration
> file, so that having this file gives ALL dependencies of the
> declared stuff.
This makes me think about the current .di generation. As far as I
remember it only strips function bodies and leaves everything
else intact. It could already try to remove unused imports. And
in the future it could replace regular imports with
auto-generated DCD-style imports.
More information about the Digitalmars-d
mailing list