From f674c47862bc9442fd93ce4db2f569767635e65d Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 25 Sep 2023 13:26:14 -0700 Subject: [PATCH] QFuture: fix headercheck warning with Clang 17: member shadowing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pretty sure this is a Clang bug because the promise member that it says is getting shadowed shouldn't be in scope (`this` isn't being captured). qfuture_impl.h:538:60: error: declaration shadows a field of 'Continuation' [-Werror,-Wshadow] qfuture_impl.h:327:26: note: previous declaration is here Change-Id: Ifeb6206a9fa04424964bfffd17883e21cfec6d8e Reviewed-by: MÃ¥rten Nordheim (cherry picked from commit bf7732baca43537b11ba8989d7e68fa9a9a6696d) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 01bc132083487af32f091a4c6f56820aa9a91393) --- src/corelib/thread/qfuture_impl.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/corelib/thread/qfuture_impl.h b/src/corelib/thread/qfuture_impl.h index bcf29eb37e4..bef9ec6396c 100644 --- a/src/corelib/thread/qfuture_impl.h +++ b/src/corelib/thread/qfuture_impl.h @@ -529,18 +529,18 @@ void Continuation::create(F &&func, fi.setLaunchAsync(launchAsync); - auto continuation = [func = std::forward(func), fi, promise = QPromise(fi), pool, + auto continuation = [func = std::forward(func), fi, promise_ = QPromise(fi), pool, launchAsync](const QFutureInterfaceBase &parentData) mutable { const auto parent = QFutureInterface(parentData).future(); Continuation *continuationJob = nullptr; if (launchAsync) { auto asyncJob = new AsyncContinuation( - std::forward(func), parent, std::move(promise), pool); + std::forward(func), parent, std::move(promise_), pool); fi.setRunnable(asyncJob); continuationJob = asyncJob; } else { continuationJob = new SyncContinuation( - std::forward(func), parent, std::move(promise)); + std::forward(func), parent, std::move(promise_)); } bool isLaunched = continuationJob->execute(); @@ -567,11 +567,11 @@ void Continuation::create(F &&func, fi.setLaunchAsync(true); fi.setThreadPool(pool); - auto continuation = [func = std::forward(func), promise = QPromise(fi), + auto continuation = [func = std::forward(func), promise_ = QPromise(fi), pool](const QFutureInterfaceBase &parentData) mutable { const auto parent = QFutureInterface(parentData).future(); auto continuationJob = new AsyncContinuation( - std::forward(func), parent, std::move(promise), pool); + std::forward(func), parent, std::move(promise_), pool); bool isLaunched = continuationJob->execute(); // If continuation is successfully launched, AsyncContinuation will be deleted // by the QThreadPool which has started it. @@ -671,11 +671,11 @@ void FailureHandler::create(F &&function, QFuture(function), promise = QPromise(fi)]( + auto failureContinuation = [function = std::forward(function), promise_ = QPromise(fi)]( const QFutureInterfaceBase &parentData) mutable { const auto parent = QFutureInterface(parentData).future(); FailureHandler failureHandler(std::forward(function), - parent, std::move(promise)); + parent, std::move(promise_)); failureHandler.run(); };