On Friday, 20 December 2013 at 19:51:03 UTC, H. S. Teoh wrote:
On Fri, Dec 20, 2013 at 02:40:22PM -0500, Michel Fortin wrote:
On 2013-12-20 19:36:28 +0000, "Meta" <[email protected]> said:
>On Friday, 20 December 2013 at 19:34:10 UTC, Patrick Down
>wrote:
>>On Friday, 20 December 2013 at 17:40:08 UTC, H. S. Teoh
>>wrote:
>>>in the current import path, then implicitly try to import
>>>x.y and
>>>lookup z in that module. Then you could just write:
>>>
>>> void f(T)(T t) if (std.range.isInputRange!T) ...
>>>
>>>and the compiler will automatically import std.range within
>>>that
>>>scope.
>>
>>How about:
>>
>>scope import std.range;
>>// lazy import std.range; ?
>>
>>void f(T)(T t) if (std.range.isInputRange!T) ...
>
>I think the best keyword to use in this situation would be
>stati... Oh, dammit, not again.
Actually, "static import" already exists. And semantically it's
pretty much the same thing as the above: you have to use the
symbol's full name. But currently the compiler will import
eagerly.
I doubt there'd be any breakage if "static" changed to mean
"lazily
imported".
[...]
Hmm. In that case, looks like we already have the solution. :)
T
Yes, that's actually quite smart. I like it.
+1.