Skip to content

Commit 0d54aa0

Browse files
committed
Use selective imports for module imports (part III)
1 parent a9425c9 commit 0d54aa0

8 files changed

Lines changed: 32 additions & 9 deletions

File tree

std/algorithm/searching.d

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ import std.functional : unaryFun, binaryFun;
110110
import std.range.primitives;
111111
import std.traits;
112112
// FIXME
113-
import std.typecons : Tuple, Flag, Yes, No;
113+
import std.typecons : Tuple, tuple, Flag, Yes, No;
114114

115115
/++
116116
Checks if $(I _all) of the elements verify $(D pred).

std/algorithm/sorting.d

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ module std.algorithm.sorting;
7878
import std.algorithm.mutation : SwapStrategy;
7979
import std.functional : unaryFun, binaryFun;
8080
import std.range.primitives;
81-
import std.typecons : Flag, No;
81+
import std.typecons : Flag, Yes, No;
8282
// FIXME
8383
import std.meta : allSatisfy;
8484
import std.range : SortedRange;
@@ -747,7 +747,9 @@ if (isRandomAccessRange!Range && hasLength!Range && hasSlicing!Range)
747747
assert(a == [ 42, 42 ]);
748748

749749
import std.algorithm.iteration : map;
750+
import std.array : array;
750751
import std.random;
752+
import std.range : iota;
751753
import std.stdio;
752754
auto s = unpredictableSeed;
753755
auto g = Random(s);
@@ -1059,6 +1061,7 @@ if (isRandomAccessRange!Range && !isInfinite!Range &&
10591061
@safe unittest
10601062
{
10611063
import std.algorithm.comparison : equal;
1064+
import std.range : iota;
10621065

10631066
ubyte[256] index = void;
10641067
iota(256).makeIndex(index[]);
@@ -1540,7 +1543,8 @@ private void multiSortImpl(Range, SwapStrategy ss, funs...)(Range r)
15401543
@safe unittest
15411544
{
15421545
import std.algorithm.comparison : equal;
1543-
import std.range;
1546+
import std.array : array;
1547+
import std.range : indexed, iota, retro;
15441548

15451549
static struct Point { int x, y; }
15461550
auto pts1 = [ Point(5, 6), Point(1, 0), Point(5, 7), Point(1, 1), Point(1, 2), Point(0, 1) ];
@@ -1787,6 +1791,7 @@ private void sort5(alias lt, Range)(Range r)
17871791
{
17881792
import std.algorithm.iteration : permutations;
17891793
import std.algorithm.mutation : copy;
1794+
import std.range : iota;
17901795

17911796
int[5] buf;
17921797
foreach (per; iota(5).permutations)
@@ -1928,6 +1933,9 @@ if (((ss == SwapStrategy.unstable && (hasSwappableElements!Range ||
19281933
{
19291934
// Simple regression benchmark
19301935
import std.algorithm.iteration, std.algorithm.mutation, std.random;
1936+
import std.array : array;
1937+
import std.range : iota;
1938+
19311939
Random rng;
19321940
int[] a = iota(20148).map!(_ => uniform(-1000, 1000, rng)).array;
19331941
static uint comps;
@@ -3439,6 +3447,8 @@ done:
34393447

34403448
@safe unittest
34413449
{
3450+
import std.array : array;
3451+
34423452
auto a = [ 10, 5, 3, 4, 8, 11, 13, 3, 9, 4, 10 ];
34433453
assert(expandPartition!((a, b) => a < b)(a, 4, 5, 6) == 9);
34443454
a = randomArray;
@@ -3453,7 +3463,10 @@ private T[] randomArray(Flag!"exactSize" flag = No.exactSize, T = int)(
34533463
T minValue = 0, T maxValue = 255)
34543464
{
34553465
import std.algorithm.iteration : map;
3466+
import std.array : array;
34563467
import std.random : unpredictableSeed, Random, uniform;
3468+
import std.range : iota;
3469+
34573470
auto size = flag == Yes.exactSize ? maxSize : uniform(1, maxSize);
34583471
return iota(0, size).map!(_ => uniform(minValue, maxValue)).array;
34593472
}

std/ascii.d

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,8 @@ if (is(C : dchar))
652652

653653
@safe unittest //Test both toUpper and toLower with non-builtin
654654
{
655+
import std.traits : OriginalType;
656+
655657
//User Defined [Char|Wchar|Dchar]
656658
static struct UDC { char c; alias c this; }
657659
static struct UDW { wchar c; alias c this; }

std/net/isemail.d

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
module std.net.isemail;
2626

2727
// FIXME
28-
import std.range.primitives : ElementType;
28+
import std.range.primitives : back, ElementType, front, empty, popFront;
2929
import std.regex;
3030
import std.traits;
3131
import std.typecons : Flag, Yes, No;
@@ -1912,6 +1912,7 @@ if (is(Unqual!(ElementType!(S1)) == dchar) && is(Unqual!(ElementType!(S2)) == dc
19121912
ElementType!(A) pop (A) (ref A a)
19131913
if (isDynamicArray!(A) && !isNarrowString!(A) && isMutable!(A) && !is(A == void[]))
19141914
{
1915+
import std.range.primitives : popBack;
19151916
auto e = a.back;
19161917
a.popBack();
19171918
return e;

std/range/package.d

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3319,12 +3319,13 @@ private struct Generator(Fun...)
33193319
static assert(isInputRange!Generator);
33203320

33213321
private:
3322+
import std.traits : FunctionAttribute, functionAttributes, ReturnType;
33223323
static if (is(Fun[0]))
33233324
Fun[0] fun;
33243325
else
33253326
alias fun = Fun[0];
33263327

3327-
enum returnByRef_ = (functionAttributes!fun & FunctionAttribute.ref_) ? true : false;
3328+
enum returnByRef_ = functionAttributes!fun & FunctionAttribute.ref_;
33283329
static if (returnByRef_)
33293330
ReturnType!fun *elem_;
33303331
else
@@ -5550,6 +5551,8 @@ body
55505551

55515552
nothrow @nogc @safe unittest
55525553
{
5554+
import std.traits : Signed;
5555+
55535556
auto t0 = iota(0, 10);
55545557
auto t1 = iota(0, 10, 2);
55555558
auto t2 = iota(1, 1, 0);
@@ -10774,6 +10777,7 @@ private struct Bitwise(R)
1077410777
if (isInputRange!R && isIntegral!(ElementType!R))
1077510778
{
1077610779
private:
10780+
import std.traits : Unsigned;
1077710781
alias ElemType = ElementType!R;
1077810782
alias UnsignedElemType = Unsigned!ElemType;
1077910783

@@ -11089,6 +11093,7 @@ if (isInputRange!R && isIntegral!(ElementType!R))
1108911093
@safe pure nothrow unittest
1109011094
{
1109111095
import std.internal.test.dummyrange;
11096+
import std.meta : AliasSeq;
1109211097

1109311098
alias IntegralTypes = AliasSeq!(byte, ubyte, short, ushort, int, uint,
1109411099
long, ulong);
@@ -11184,6 +11189,7 @@ if (isInputRange!R && isIntegral!(ElementType!R))
1118411189
// Test opIndex and opSlice
1118511190
@system unittest
1118611191
{
11192+
import std.meta : AliasSeq;
1118711193
alias IntegralTypes = AliasSeq!(byte, ubyte, short, ushort, int, uint,
1118811194
long, ulong);
1118911195
foreach (IntegralType; IntegralTypes)

std/stdio.d

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import std.meta : allSatisfy;
2020
import std.range.primitives : ElementEncodingType, empty, front,
2121
isBidirectionalRange, isInputRange, put;
2222
import std.traits : isSomeChar, isSomeString, Unqual, isPointer;
23-
import std.typecons : Flag;
23+
import std.typecons : Flag, Yes, No;
2424

2525
/++
2626
If flag $(D KeepTerminator) is set to $(D KeepTerminator.yes), then the delimiter

std/typecons.d

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ Authors: $(HTTP erdani.org, Andrei Alexandrescu),
4141
module std.typecons;
4242

4343
import core.stdc.stdint : uintptr_t;
44-
import std.meta : AliasSeq, allSatisfy;
44+
import std.meta : Alias, AliasSeq, aliasSeqOf, allSatisfy;
4545
import std.traits;
4646

4747
debug(Unique) import std.stdio;
@@ -3974,6 +3974,7 @@ private static:
39743974
};
39753975
}
39763976
}
3977+
import std.meta : templateNot;
39773978

39783979
alias Implementation = AutoImplement!(Issue17177, how, templateNot!isFinalFunction);
39793980
}

std/uni.d

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -709,8 +709,8 @@ module std.uni;
709709

710710
import std.meta : AliasSeq;
711711
import std.range.primitives :back, ElementEncodingType, ElementType, empty,
712-
front, isForwardRange, isInputRange, isRandomAccessRange, popFront, put,
713-
save;
712+
front, isForwardRange, isInputRange, isRandomAccessRange, popFront, popFrontN,
713+
put, save;
714714
import std.traits :isConvertibleToString, isIntegral, isSomeChar,
715715
isSomeString, Unqual;
716716

0 commit comments

Comments
 (0)