On Sunday, 23 April 2017 at 12:03:47 UTC, Andrei Alexandrescu
wrote:
On 4/22/17 4:52 PM, Joakim wrote:
On Saturday, 22 April 2017 at 11:54:08 UTC, Mike Parker wrote:
DIP 1005 is titled "Dependency-Carrying Declarations".
https://github.com/dlang/DIPs/blob/master/DIPs/DIP1005.md
All review-related feedback on and discussion of the DIP
should occur in this thread. Due to DConf taking place during
the review period, the period will be extended by a week. The
review period will end at 11:59 PM ET on May 13 (3:59 AM GMT
on May 14), or when I make a post declaring it complete.
At the end of Round 1, if further review is deemed necessary,
the DIP will be scheduled for another round. Otherwise,
because the DIP comes from a language author and no formal
review period by the language authors is necessary, the DIP
will be marked "Accepted" or "Rejected" at the author's
discretion.
An extensive discussion regarding this DIP has already taken
place [1].
Thanks in advance to all who participate.
Destroy!
[1]
http://forum.dlang.org/thread/o2psvk$1m96$1...@digitalmars.com?page=1
I thought this DIP was invalidated by the self-important
workaround?
http://forum.dlang.org/post/o72kq8$ggc$1...@digitalmars.com
https://github.com/dlang/druntime/pull/1756#issuecomment-277463742
Why is this still up for review?
Mostly out of a sense of conformity. We asked Michael to give
no special treatment of DIPs originating from us, and this one
was open, so he put it up for review. It is likely it will end
up rejected in favor of
https://github.com/dlang/druntime/pull/1756.
Thanks,
Andrei
this example doenst work with the from!"modName" template, would
it work with dip1005?
module moda;
struct Foo{int i;}
module modb;
void fun(from!"moda".Foo){}
module app;
template test(alias f)
{
mixin("void test(" ~
from!"std.traits".Parameters!f.stringof[1..$-1] ~ "){}");
}
void main()
{
import moda, modb;
test!fun(Foo(5));
}
could dip1005 be introspected?
// you can make the above work with this or is there a better way?
template test(alias f)
{
import traits;
enum paramImports =
{
string res;
foreach(p; Parameters!f)
{
static if(!isBuiltinType!p) res ~= "import " ~
moduleName!p ~ ";\n";
}
return res;
}();
mixin(paramImports);
mixin("void test(" ~ Parameters!f.stringof[1..$-1] ~ "){}");
}