From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by sourceware.org (Postfix) with ESMTPS id CFFBE3858D37 for ; Fri, 21 Mar 2025 12:32:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CFFBE3858D37 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=embecosm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=embecosm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CFFBE3858D37 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::336 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1742560358; cv=none; b=QCYCCjLaZgrQpy2xJ0fysllgPfp4xrbTQ8uh40Xxqlu4Z5OkuDhErXsAaDzFy8k5QChlppVfyshxKlfrxvCByLjlfslr+uoP6TZh19sbSqq9V4V76LTsv8e1i7hsK0pX9sUDUlTxTyHot58KwczwUttYv9jjD8OQQcAfENH5jrM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1742560358; c=relaxed/simple; bh=8FtYRBCq5D+LsiklLgUUB2MrcjfQss7C1jcSHDekV5o=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=YDhV5Q7iQZs4mb/8wXTOca2vXmEpyyLXaLUdrIDBcCBy3ugOXF7h38v8KXwLAbWdQlcQjuoV77L01Fuu5pqb4R5iwb0TU+C+0RtOhlRLaiX+6WFuVrDOzPf4ZVCmZjVxYtES/hEweuQ8r8r0drTbSAO2Q+hgicgAYOn2vreZxsE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CFFBE3858D37 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=embecosm.com header.i=@embecosm.com header.a=rsa-sha256 header.s=google header.b=MUp32RDV Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-43cf034d4abso20046435e9.3 for ; Fri, 21 Mar 2025 05:32:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; t=1742560351; x=1743165151; darn=gcc.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+M7yc8RlMa7ij7Yz2+84eKF0MEpM1OW1IPaDlPuOZ54=; b=MUp32RDV88puSUukY6yFDAfUCjtmGB3aMyMigWXPhxClFfj79zoolYlIf4JpoRi0rY UcbzgEMPoewLEeow8yFpEjjd1EGYUnhxbQu0aFkJGnGTnxjeK+6yeQ2ZcJcja+msOPtC GoY62GsGpE46pm23Z7NrtXHhk9U+/h7s3W4WMZZLWzw8zHOeZTLHsLMrNQFD5iLw3JMJ ZCdFxYMSq/Pjk5rcNZ0jfvpUq9QS4e/WliH7SSGDJutz6cxHigSyt/FC1wCGHH7q1udh rJwrMmTWUobzg3mj1b6F1Lqqn843ShDRw/4qrGW1/VY13A6gRY9A7CkeC3to76D3KxDn Bchg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742560351; x=1743165151; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+M7yc8RlMa7ij7Yz2+84eKF0MEpM1OW1IPaDlPuOZ54=; b=mHOLkgQyxgYHIUZ/uJIl3nyPxeSNaMKGvE8uXfTJxP2TLFdMSATFPbA8qLjMmqb1An RlQyqzVfhCffptQPxx06DflVM2WrEbSPDxteS+3laUUxVOe81BpzYXT1hSpfLjwOy+gr KVp2VbJZbgVV7cD1kj+cueIzQQ0cmkGExy5yVTHt6TcMfdlaeW3YsksoehIT97mVktSc VFpZ7nbr5UflL594M6+vDrmlghxc80/5Vk9qC2iU+BfBHfKx1V/x7PaFtGcxg0ftgnAa pOqw1k1UTO1/GC0EutKhOsvMyLOzAPbX4WJCh52HbXZuHAkNNncxjxsBpQZblwPpTycP OtFQ== X-Gm-Message-State: AOJu0Yx3tCk/RzxvueNSp4AEdBH2Hzf7aHfAZCBCVXnh6JhYtC24QciT BGyfGCVsMQaK6kCHlKJPg9dPksP5uZ27wuyT1X9ypUPMa90UEJQN5WT12RW5CBBVdJYgJeZ13oT oEg== X-Gm-Gg: ASbGnctwLXP13LGkWZmVvEWJAn8D/AZcE5qINHN13h1bQcPKXVC5eUjIfBpASjsNBIX geTkOnsU2rz7tb3cSrrbNJgeNs5/k3qnRfvY1n+YwFgljrCX/DX6wTSXYVrgP8O/3ECE+tCS/9R MZLN1wfUe6svrEfIvMw9r32/uGWiZEwMmk3gndGgArC10aTv+sEyTJbzC83oaBVEfUSskx4gY7t 8tRJTge+//T21DuEKh4CgHN7LW8T1aO8VcZW7YghlvhD/S7/cdo9u7aSR3pmyXfqRpTvj337rcf q9eNBY65YFBVsrBceInLblUu8sJGrBOH3JERMby2h9pzCTyVpOURwYNc X-Google-Smtp-Source: AGHT+IFMQD7SPTw2GcL7r4ukSexkVnH4VAtZAmlIaGsmtChkH7PQADlVW/54OBlFGWzAK/odFd3dRg== X-Received: by 2002:a05:600c:4584:b0:43c:efed:733e with SMTP id 5b1f17b1804b1-43d509f58b4mr25287495e9.14.1742560351306; Fri, 21 Mar 2025 05:32:31 -0700 (PDT) Received: from platypus.lan ([2a04:cec0:1901:7a99:be55:efb3:1ec6:8ea7]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d440ed4d9sm76950305e9.33.2025.03.21.05.32.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 05:32:30 -0700 (PDT) From: arthur.cohen@embecosm.com To: gcc-patches@gcc.gnu.org Cc: gcc-rust@gcc.gnu.org, Owen Avery Subject: [COMMITTED 003/146] gccrs: Fix variable shadowing in late resolution 2.0 Date: Fri, 21 Mar 2025 13:05:04 +0100 Message-ID: <20250321123226.184882-4-arthur.cohen@embecosm.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250321123226.184882-1-arthur.cohen@embecosm.com> References: <20250321123226.184882-1-arthur.cohen@embecosm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-13.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: From: Owen Avery gcc/rust/ChangeLog: * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Visit the initialization expressions of let statements before visiting their patterns. gcc/testsuite/ChangeLog: * rust/compile/nr2/exclude: Remove entries. Signed-off-by: Owen Avery --- gcc/rust/resolve/rust-late-name-resolver-2.0.cc | 10 ++++++++-- gcc/testsuite/rust/compile/nr2/exclude | 3 --- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc index 43f33dfab02..5fd49e7c2c9 100644 --- a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc +++ b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc @@ -126,8 +126,14 @@ Late::new_label (Identifier name, NodeId id) void Late::visit (AST::LetStmt &let) { - // so we don't need that method - DefaultResolver::visit (let); + DefaultASTVisitor::visit_outer_attrs (let); + if (let.has_type ()) + visit (let.get_type ()); + // visit expression before pattern + // this makes variable shadowing work properly + if (let.has_init_expr ()) + visit (let.get_init_expr ()); + visit (let.get_pattern ()); // how do we deal with the fact that `let a = blipbloup` should look for a // label and cannot go through function ribs, but `let a = blipbloup()` can? diff --git a/gcc/testsuite/rust/compile/nr2/exclude b/gcc/testsuite/rust/compile/nr2/exclude index 383950ca863..c96fde25fc5 100644 --- a/gcc/testsuite/rust/compile/nr2/exclude +++ b/gcc/testsuite/rust/compile/nr2/exclude @@ -74,10 +74,8 @@ issue-1589.rs issue-1725-1.rs issue-1725-2.rs issue-1786.rs -issue-1813.rs issue-1893.rs issue-1901.rs -issue-1930.rs issue-1981.rs issue-2019-1.rs issue-2019-2.rs @@ -142,7 +140,6 @@ match4.rs match5.rs match9.rs method2.rs -multi_reference_type.rs multiple_bindings1.rs multiple_bindings2.rs name_resolution2.rs -- 2.45.2