From e6a13b7ea3be5bb0d5be5b2821d462efcf09f41b Mon Sep 17 00:00:00 2001 From: dkorpel Date: Tue, 6 Jul 2021 21:17:32 +0200 Subject: [PATCH] make `move` -dip1000 compatible --- src/core/lifetime.d | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/lifetime.d b/src/core/lifetime.d index 7836812e16..fc47b1d939 100644 --- a/src/core/lifetime.d +++ b/src/core/lifetime.d @@ -1915,7 +1915,7 @@ pure nothrow @safe @nogc unittest static assert(is(typeof({ S s; move(s, s); }) == T)); } -private void moveImpl(T)(scope ref T target, return ref T source) +private void moveImpl(T)(scope ref T target, return scope ref T source) { import core.internal.traits : hasElaborateDestructor; @@ -1930,7 +1930,7 @@ private void moveImpl(T)(scope ref T target, return ref T source) moveEmplaceImpl(target, source); } -private T moveImpl(T)(ref T source) +private T moveImpl(T)(return scope ref T source) { // Properly infer safety from moveEmplaceImpl as the implementation below // might void-initialize pointers in result and hence needs to be @trusted @@ -1939,7 +1939,7 @@ private T moveImpl(T)(ref T source) return trustedMoveImpl(source); } -private T trustedMoveImpl(T)(ref T source) @trusted +private T trustedMoveImpl(T)(return scope ref T source) @trusted { T result = void; moveEmplaceImpl(result, source);