From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by sourceware.org (Postfix) with ESMTPS id 71D5B385AC29 for ; Fri, 21 Mar 2025 12:37:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 71D5B385AC29 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 71D5B385AC29 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::330 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1742560649; cv=none; b=abVYgkyjEFobYy0g9xuo6CGO7ajItIDesTb1nSrcg7hW+vylKdi13reX1fDpTEZQrMwAgL5W/xWdAfY3riMyLsR8v3Sb/byLKW17icBymxrASJMr/L7jRkQ0AC1YcNulFCGdpNt2HAeeat06KwXmBtZJnbXgalxdXnXsvJRoA7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1742560649; c=relaxed/simple; bh=9tsxr0j90J/HnhMkrjIkcOAAf6TthQ2LU7j9un+49pM=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=w5J8wpxBBAj4+4tcSFu1miTeQ0+bsIik7EME7303CJGvFLVvfq58Z5pQhIE2SKiPphBeoSiLVFKjF2agZlllx3EirfirFIAGiI9zhWk5n8SFaU5IGCAvttgl8WUN3bz+AobsT4Em8zH4eKUtrgWXswtoqk4BJhZ4XpLpQw9yes0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-43948f77f1aso11930085e9.0 for ; Fri, 21 Mar 2025 05:37:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; t=1742560475; x=1743165275; 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=C+TDsjU7kZ9jd4M747S0dZqeAs1cknaoU/J7StX5njw=; b=eotxMboVrLfAm4NupJZku6jLrVb49v0HOCJrN3seGdLa9Kg1FrAmLVdfXXZ67rrq3r 7VrsUmUVfHtVC35IxATICICIZpSrw88o2cYov3nTOZybfrJ7agQ/qYeaYkIXk3sQ3OE8 N52sdr04SZDd6OYxJ1cNyCsa6nfv5Xu2qJA5fYXZG2BBhNnmWzSxMOYdEHlgMgzQLFbE 3MJPuoiSLWTnRzwFoY2HtPwxud5MLWBAWbl9l+F9YYjSDGwur/xYbq0iOV8E7oVkIdKH Qx+FBxIocbdECPVbVpb4dTysAXw+Z8zev0lFGjzVq1eM4xynqaFU3fBTxCRnyLLsNmw+ jZ0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742560475; x=1743165275; 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=C+TDsjU7kZ9jd4M747S0dZqeAs1cknaoU/J7StX5njw=; b=kcH4NIF8128GJTA5j08Y9nRlaPKSXENXbbXtwFhzkRss2Gy/ZLiNjWe6hK6SZWxCm8 BYKDf6yG87N3gqsPUmDLx3IK7yuzC7WIo2QFWLTh0qSiTUETKgEoDYhNwP317Worwqv3 rvjSqyEa8y3QSbNx/TgexHMenQvW0rcjoyg9KVeXoCKqcyGZJj6TZcdLWd2humZR6umc XrFozZr7bChDkKGiIODDKN488maTQKXEobCpFlluec2EYbxCXzA4nMnfYZdQdf0ZZ49d Bf+rZi4wsK1dk3lEVPKrezcGwKnScByF+1crNY5+vaJ3mvsaVO+wvk/iNlK8dJZCRp0+ dB4A== X-Gm-Message-State: AOJu0YzMcWOnb8JFj/XGc076p63loGp0iu/RaYoOHw5QIt4JX6Ymmzl8 uFuXRtoYMf8LDndNeofMZRNQxJMmYnwVhhyg1A889ihKuSlyOHcehmVapTVPo8Oem+2y12ybglc 6Kg== X-Gm-Gg: ASbGncvcNWfC+2IYSQd2yhTKjZG85t3N6aHifeAJfXXKtcfvvYuQnZpNdt9p3EfJQcl XpI92dnoJOU/7KKjMvLQn0TOKMGJACwPdA69LUP3JomnzuLfSILlEEk1NH44db8PqzD9CSOQ0h4 iq8Qf7IObSpyIMzp1FTrRm5/5rCNbvn2CUcz9MlEkkzbJjvSIi3GLBhsERR1yaFAV+jMpTA7r3p nV0s/QH7lKvQSrXxhDJqLYLVwxlywlLCWZpgGOPUIln5oG+mIykxhJj5uN4VBdboQRR5KJBeFbm u6+R23gQdYVTx3FDrN+/bMO9micJzx6qOwVAoSwXLkQLO90f1RDgAzNj X-Google-Smtp-Source: AGHT+IHl+M7CNC0UGmb6eaavSRQlDjvknJUKG3vedZiMAccOlImI5gXvZZlDSso7Wr1BB/xcml55Wg== X-Received: by 2002:a05:600c:4ed3:b0:43c:f85d:1245 with SMTP id 5b1f17b1804b1-43d509f8503mr31857705e9.17.1742560475474; Fri, 21 Mar 2025 05:34:35 -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.34.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 05:34:35 -0700 (PDT) From: arthur.cohen@embecosm.com To: gcc-patches@gcc.gnu.org Cc: gcc-rust@gcc.gnu.org, Arthur Cohen Subject: [COMMITTED 142/146] gccrs: ast-builder: Add new methods for building structs Date: Fri, 21 Mar 2025 13:07:23 +0100 Message-ID: <20250321123226.184882-143-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=-14.4 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=unavailable 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: Arthur Cohen gcc/rust/ChangeLog: * ast/rust-ast-builder.cc: Add new methods for constructing struct exprs. * ast/rust-ast-builder.h: Mention how to build tuple expressions. --- gcc/rust/ast/rust-ast-builder.cc | 12 ++++++++++-- gcc/rust/ast/rust-ast-builder.h | 5 +++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gcc/rust/ast/rust-ast-builder.cc b/gcc/rust/ast/rust-ast-builder.cc index fe80924fece..47044df9171 100644 --- a/gcc/rust/ast/rust-ast-builder.cc +++ b/gcc/rust/ast/rust-ast-builder.cc @@ -24,6 +24,7 @@ #include "rust-path.h" #include "rust-item.h" #include "rust-path.h" +#include "rust-system.h" #include "rust-token.h" namespace Rust { @@ -261,10 +262,17 @@ std::unique_ptr Builder::struct_expr ( std::string struct_name, std::vector> &&fields) const +{ + return struct_expr (path_in_expression ({struct_name}), std::move (fields)); +} + +std::unique_ptr +Builder::struct_expr ( + PathInExpression struct_name, + std::vector> &&fields) const { return std::unique_ptr ( - new StructExprStructFields (path_in_expression ({struct_name}), - std::move (fields), loc)); + new StructExprStructFields (struct_name, std::move (fields), loc)); } std::unique_ptr diff --git a/gcc/rust/ast/rust-ast-builder.h b/gcc/rust/ast/rust-ast-builder.h index 624cd715181..e5bae6ed6e9 100644 --- a/gcc/rust/ast/rust-ast-builder.h +++ b/gcc/rust/ast/rust-ast-builder.h @@ -160,10 +160,15 @@ public: /** * Create an expression for struct instantiation with fields (`S { a, b: c }`) + * Tuple expressions are call expressions and can thus be constructed with + * `call` */ std::unique_ptr struct_expr (std::string struct_name, std::vector> &&fields) const; + std::unique_ptr + struct_expr (PathInExpression struct_name, + std::vector> &&fields) const; /* Create a field expression for struct instantiation (`field_name: value`) */ std::unique_ptr -- 2.45.2