From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1643) id 34182380F3F7; Wed, 8 Jun 2022 12:17:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 34182380F3F7 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Thomas Schwinge To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/rust/master] Merge #998 X-Act-Checkin: gcc X-Git-Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> X-Git-Refname: refs/heads/devel/rust/master X-Git-Oldrev: 77a49507446b67a6c207b4e4fec3639f536b9eca X-Git-Newrev: 51c7cf4b974140d4ace6c3cb79de9a00bb2efcbb Message-Id: <20220608121749.34182380F3F7@sourceware.org> Date: Wed, 8 Jun 2022 12:17:49 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jun 2022 12:17:49 -0000 https://gcc.gnu.org/g:51c7cf4b974140d4ace6c3cb79de9a00bb2efcbb commit 51c7cf4b974140d4ace6c3cb79de9a00bb2efcbb Merge: 77a49507446 f02392c8b37 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Mar 11 08:24:43 2022 +0000 Merge #998 998: Parse macro expansion properly r=CohenArthur a=CohenArthur This PR adds a base for trying to parse statements or items in macro invocations. We are now able to parse multiple items / expressions / statements properly, but do not lower them properly, which is the last remaining task in #943 New macro parsing logic: ```mermaid flowchart TD; has_semi -- Yes --> stmt; has_semi -- No --> invocation; invocation -- Is Parens --> expr; invocation -- Is Square --> expr; invocation -- Is Curly --> stmt; ``` Closes #943 Closes #959 Closes #952 Co-authored-by: Arthur Cohen Diff: gcc/rust/ast/rust-ast.h | 119 ++++++++-- gcc/rust/ast/rust-macro.h | 8 - gcc/rust/expand/rust-macro-expand.cc | 308 ++++++++++++++++++------- gcc/rust/expand/rust-macro-expand.h | 18 +- gcc/rust/hir/rust-ast-lower-expr.h | 10 +- gcc/rust/hir/rust-ast-lower-implitem.h | 26 +-- gcc/rust/hir/rust-ast-lower-item.h | 13 +- gcc/rust/hir/rust-ast-lower-stmt.h | 13 +- gcc/rust/resolve/rust-ast-resolve-expr.cc | 8 - gcc/rust/resolve/rust-ast-resolve-expr.h | 2 - gcc/rust/resolve/rust-ast-resolve-implitem.h | 30 --- gcc/rust/resolve/rust-ast-resolve-item.h | 20 -- gcc/rust/resolve/rust-ast-resolve-stmt.h | 11 - gcc/rust/resolve/rust-ast-resolve-toplevel.h | 7 - gcc/testsuite/rust/compile/macro11.rs | 11 + gcc/testsuite/rust/compile/macro12.rs | 8 + gcc/testsuite/rust/compile/macro13.rs | 12 + gcc/testsuite/rust/compile/macro14.rs | 10 + gcc/testsuite/rust/compile/macro15.rs | 12 + gcc/testsuite/rust/compile/macro6.rs | 2 +- gcc/testsuite/rust/compile/macro7.rs | 4 +- gcc/testsuite/rust/compile/macro8.rs | 4 +- gcc/testsuite/rust/execute/torture/macros11.rs | 7 +- gcc/testsuite/rust/execute/torture/macros17.rs | 4 +- gcc/testsuite/rust/execute/torture/macros2.rs | 6 +- gcc/testsuite/rust/execute/torture/macros22.rs | 23 ++ gcc/testsuite/rust/execute/torture/macros3.rs | 10 +- gcc/testsuite/rust/execute/torture/macros7.rs | 8 +- gcc/testsuite/rust/execute/torture/macros8.rs | 8 +- gcc/testsuite/rust/execute/torture/macros9.rs | 8 +- 30 files changed, 475 insertions(+), 255 deletions(-)