From 8f57389e5d6696943bcb599af9328b4f294af684 Mon Sep 17 00:00:00 2001 From: Utkal Singh <197807171+Utkal059@users.noreply.github.com> Date: Mon, 2 Mar 2026 03:08:28 +0530 Subject: [PATCH 1/2] fix issue 22584: upgrade foreach variable shadowing from deprecation to error Fix Bugzilla 22584 --- compiler/src/dmd/expressionsem.d | 6 +++--- compiler/test/fail_compilation/fail2195.d | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/compiler/src/dmd/expressionsem.d b/compiler/src/dmd/expressionsem.d index 725fc718ad3c..0432856eab79 100644 --- a/compiler/src/dmd/expressionsem.d +++ b/compiler/src/dmd/expressionsem.d @@ -8711,9 +8711,9 @@ private extern (C++) final class ExpressionSemanticVisitor : Visitor if (decl && (decl.storage_class & STC.local)) continue; if (sc.func.fes) - { - deprecation(e.loc, "%s `%s` is shadowing %s `%s`", s.kind(), s.ident.toChars(), s2.kind(), s2.toPrettyChars()); - deprecationSupplemental(s2.loc, "declared here"); + { + error(e.loc, "%s `%s` is shadowing %s `%s`", s.kind(), s.ident.toChars(), s2.kind(), s2.toPrettyChars()); + errorSupplemental(s2.loc, "declared here"); } else { diff --git a/compiler/test/fail_compilation/fail2195.d b/compiler/test/fail_compilation/fail2195.d index 6f6cd53b0e39..473582dae2f0 100644 --- a/compiler/test/fail_compilation/fail2195.d +++ b/compiler/test/fail_compilation/fail2195.d @@ -3,7 +3,7 @@ /* TEST_OUTPUT: --- -fail_compilation/fail2195.d(17): Deprecation: variable `variable` is shadowing variable `fail2195.main.variable` +fail_compilation/fail2195.d(17): Error: variable `variable` is shadowing variable `fail2195.main.variable` fail_compilation/fail2195.d(14): declared here --- */ From cb3f6eb3b3b3149e38ffe067ecb864d29cdba607 Mon Sep 17 00:00:00 2001 From: Utkal Singh <197807171+Utkal059@users.noreply.github.com> Date: Wed, 4 Mar 2026 04:15:53 +0530 Subject: [PATCH 2/2] fix trailing whitespace in expressionsem.d --- compiler/src/dmd/expressionsem.d | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/src/dmd/expressionsem.d b/compiler/src/dmd/expressionsem.d index 0432856eab79..1c4d10c71d1e 100644 --- a/compiler/src/dmd/expressionsem.d +++ b/compiler/src/dmd/expressionsem.d @@ -8711,7 +8711,7 @@ private extern (C++) final class ExpressionSemanticVisitor : Visitor if (decl && (decl.storage_class & STC.local)) continue; if (sc.func.fes) - { + { error(e.loc, "%s `%s` is shadowing %s `%s`", s.kind(), s.ident.toChars(), s2.kind(), s2.toPrettyChars()); errorSupplemental(s2.loc, "declared here"); }