Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.

Commit d945061

Browse files
authored
Merge pull request #2398 from TurkeyMan/move_emplace
Move `emplace` to druntime for symmetry with `destroy`. merged-on-behalf-of: unknown
2 parents 4246408 + 5ceab47 commit d945061

7 files changed

Lines changed: 1313 additions & 10 deletions

File tree

changelog/emplace.dd

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Moved `std.conv.emplace` to core/lifetime.d
2+
3+
`emplace` is the counterpart to `destroy`, so it has been moved to also live in druntime (core/lifetime.d) where it is accessible by projects that use a shallow runtime library stack.

mak/COPY

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ COPY=\
88
$(IMPDIR)\core\cpuid.d \
99
$(IMPDIR)\core\demangle.d \
1010
$(IMPDIR)\core\exception.d \
11+
$(IMPDIR)\core\lifetime.d \
1112
$(IMPDIR)\core\math.d \
1213
$(IMPDIR)\core\memory.d \
1314
$(IMPDIR)\core\runtime.d \

mak/DOCS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ DOCS=\
77
$(DOCDIR)\core_cpuid.html \
88
$(DOCDIR)\core_demangle.html \
99
$(DOCDIR)\core_exception.html \
10+
$(DOCDIR)\core_lifetime.html \
1011
$(DOCDIR)\core_math.html \
1112
$(DOCDIR)\core_memory.html \
1213
$(DOCDIR)\core_runtime.html \

mak/SRCS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ SRCS=\
88
src\core\cpuid.d \
99
src\core\demangle.d \
1010
src\core\exception.d \
11+
src\core\lifetime.d \
1112
src\core\math.d \
1213
src\core\memory.d \
1314
src\core\runtime.d \

mak/WINDOWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ $(IMPDIR)\core\demangle.d : src\core\demangle.d
7272
$(IMPDIR)\core\exception.d : src\core\exception.d
7373
copy $** $@
7474

75+
$(IMPDIR)\core\lifetime.d : src\core\lifetime.d
76+
copy $** $@
77+
7578
$(IMPDIR)\core\math.d : src\core\math.d
7679
copy $** $@
7780

src/core/internal/traits.d

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ template TypeTuple(TList...)
1717
template FieldTypeTuple(T)
1818
{
1919
static if (is(T == struct) || is(T == union))
20-
alias FieldTypeTuple = typeof(T.tupleof[0 .. $ - __traits(isNested, T)]);
20+
alias FieldTypeTuple = typeof(T.tupleof[0 .. $ - __traits(isNested, T)]);
2121
else static if (is(T == class))
22-
alias FieldTypeTuple = typeof(T.tupleof);
22+
alias FieldTypeTuple = typeof(T.tupleof);
2323
else
2424
{
2525
alias FieldTypeTuple = TypeTuple!T;
@@ -153,14 +153,14 @@ template isInnerClass(T) if (is(T == class))
153153
template hasOuterMember(T...)
154154
{
155155
static if (T.length == 0)
156-
enum hasOuterMember = false;
156+
enum hasOuterMember = false;
157157
else
158-
enum hasOuterMember = T[0] == "outer" || hasOuterMember!(T[1 .. $]);
158+
enum hasOuterMember = T[0] == "outer" || hasOuterMember!(T[1 .. $]);
159159
}
160160
enum isInnerClass = __traits(isSame, typeof(T.outer), __traits(parent, T)) && !hasOuterMember!(__traits(allMembers, T));
161161
}
162162
else
163-
enum isInnerClass = false;
163+
enum isInnerClass = false;
164164
}
165165

166166
template dtorIsNothrow(T)
@@ -206,11 +206,11 @@ template anySatisfy(alias F, T...)
206206
private template maxAlignment(U...)
207207
{
208208
static if (U.length == 0)
209-
static assert(0);
209+
static assert(0);
210210
else static if (U.length == 1)
211-
enum maxAlignment = U[0].alignof;
211+
enum maxAlignment = U[0].alignof;
212212
else static if (U.length == 2)
213-
enum maxAlignment = U[0].alignof > U[1].alignof ? U[0].alignof : U[1].alignof;
213+
enum maxAlignment = U[0].alignof > U[1].alignof ? U[0].alignof : U[1].alignof;
214214
else
215215
{
216216
enum a = maxAlignment!(U[0 .. ($+1)/2]);
@@ -274,8 +274,8 @@ template hasElaborateAssign(S)
274274
else static if (is(S == struct))
275275
{
276276
enum hasElaborateAssign = is(typeof(S.init.opAssign(rvalueOf!S))) ||
277-
is(typeof(S.init.opAssign(lvalueOf!S))) ||
278-
anySatisfy!(.hasElaborateAssign, FieldTypeTuple!S);
277+
is(typeof(S.init.opAssign(lvalueOf!S))) ||
278+
anySatisfy!(.hasElaborateAssign, FieldTypeTuple!S);
279279
}
280280
else
281281
{

0 commit comments

Comments
 (0)