From patchwork Tue Jan 30 12:06:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arthur Cohen X-Patchwork-Id: 194117 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2087:b0:106:209c:c626 with SMTP id gs7csp1188074dyb; Tue, 30 Jan 2024 04:37:08 -0800 (PST) X-Google-Smtp-Source: AGHT+IE5T0hCQiUjzhox8kMyogKOfUAEhbfdpsxnnvboz2gDDpmoxSWWkktvkw37XAzIpNd3AYoM X-Received: by 2002:a81:f007:0:b0:5ff:57f8:47f1 with SMTP id p7-20020a81f007000000b005ff57f847f1mr6516925ywm.64.1706618228331; Tue, 30 Jan 2024 04:37:08 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706618228; cv=pass; d=google.com; s=arc-20160816; b=mJ3JkuDX/mrl6X0LM1+JdEvvKsFeUot0F5BsvT6KZUH0QKAmP4BaeSQvgOciaWvSuP aC3NNOHHoUz+hdGqUXLEgu1DeRhOL4l/I/DbYg6zZyHtQWjdusZeObNUg6BQUbSBkSbf ptoTNPwYmrkLYknL0H2BO1+oVAmsK2SWCVE88K8i2URSclCWFOIyNMgDm0W1Dc4EXW9g MLolqCIbweWhalSnJSdoTeTqWF1gHPhw6DpXE7fThAHwi0QFl/smnHs0868RVB3L2mws RXLoEKjy9ckhrMMvp+4jkQtRE+7Pal+QAyAyAoJlLFWDgCK8XzFTQLVeffJu/Vk/5HZM ACTw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:reply-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:arc-filter:dmarc-filter:delivered-to; bh=Lm0Um1BuS8z6KeEky56sUOYmtudG6PQX5VEvTBMwogU=; fh=s1GzlUPo1djGkCl3rkRJI30hDOSCVwGp0RAbVwQ8dxQ=; b=yfL9I9jOp71Z6oW7NHaNBOr6pce6ZudOq6nnlCZY2n1g30+JBUTELRJQnvgbmkcAnP 8k3NAj4BmpDVYUslcryuRsKgByUuDmqoQb5zbAh5ARTOp4oUlY8xVsQfEupftRHO0Xq0 1p6Yfrogx4FGpDZVMkz/YPcr4zu33Jpt0eXMhhEbKY6ZokGz3LE9M9rI2iWXbaOfN2D4 1ULX1CdVTbTDNXZXhmIhhZAMJnkUD7pwvo8ccgXlongHS9yMeN950gGm/bV0OGZM5Epw YewxJPP445twnOKNMJtrE7frRqVGid/VO99mg85S8QEmxubvXMCnS5r6fJkoLCCtFs5a 9Zew== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@embecosm.com header.s=google header.b=SGWM9ph0; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id g19-20020a05620a40d300b00783222ee668si10922104qko.567.2024.01.30.04.37.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jan 2024 04:37:08 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@embecosm.com header.s=google header.b=SGWM9ph0; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BE799386F442 for ; Tue, 30 Jan 2024 12:36:20 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by sourceware.org (Postfix) with ESMTPS id EC3BF3858038 for ; Tue, 30 Jan 2024 12:11:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EC3BF3858038 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 EC3BF3858038 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::42f ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706616686; cv=none; b=R62KFNy+sU93CMp6ETp+Z/MPTSn4oSBgwlvPvpMA0Ju9tTrieYHjHb4lPmiqvQyQlwbE6/zTRcSpObHUnC2owG6glsDSXvFiG839UNalFc51m2yBJtfPbl9RbIiWa+db5mm5OpwLDeiI+Dv9iYFC6YwWi1nwAgSojLzyESxQMAI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706616686; c=relaxed/simple; bh=e7MDRmHwX+8o9Y7E0b/i7G8FA2sKcmFCz9TYMesq15U=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=t73LfsLCu9YMmH9rHWD9k2rn7QbDadgYDSKvn8utVRQ0fPyx3RXK49V8GrLhcGlRS490GpTftm36/9sbWXfTyU1SeBTZTHQXh0nN5iPMdBgQJJTGkWJwh6xYugJzthD/QLXc7p8pS7rzEK1rFsgz6hrJZHCaL0l9V/RMOibgGmo= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-33aea66a31cso1188615f8f.1 for ; Tue, 30 Jan 2024 04:11:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; t=1706616671; x=1707221471; darn=gcc.gnu.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=Lm0Um1BuS8z6KeEky56sUOYmtudG6PQX5VEvTBMwogU=; b=SGWM9ph0RBS9eXmXHHxpVrPIuSlovZ6eAb5AdepSLCc74d0y59Q65JmkIjvU1C6YWf OQ+nxfaOmxhUwVAX2mnC9zp3XD6g1fuANTExMQIEE3xl5nIBnjMKMO+0Tv/njuW+WMwR aA5FqWwEjDUyG+GbI1kom9w0x6WjiLPwgixl9TImsHuN9R8juzgSbO7eBkXE+ocBgzzX LNFYJX4mTZTEuDPTDYvXL87N/vPeoEzGXPeJ9NsZfWVEkL1Sn3iH570X5wctXx9Gx0dr UdufehdDHEibSX7KoRIXEpG0CAe8iOkY6+5WcGDVWI1fcxlZ03dowe7Uvo3b/dlRnEM2 md5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706616671; x=1707221471; h=content-transfer-encoding:mime-version:reply-to: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=Lm0Um1BuS8z6KeEky56sUOYmtudG6PQX5VEvTBMwogU=; b=JnOD/hqZ0A9YQPeQFTk6mXGiMTdzsdNhEQecmZCCvltA6CyGBkuPSdcfjfilLtCg0b NGXVNbJz20u2Ic0T2KGms4F7hDypH0kiScH2xiqjwEuDDlsr0WzgiF/IH/xkqFynLc71 yqAlcW9+3m/fjJjSPJU8h8to0roc1PJqDpntF7rJ272DVWqgTB5etuwv9Kz7jxRa8MsW x71d/7Z7e8FpxGo4xJdM7FPOTdRblF81SGyTwT/QVCrPANgduamFWf4qXanxTmphGiLU +1fFeOZ3ANSlAC8Lnh7IuAhfWQ1yRzLEjR4ja6sITKYeBZgUNje6BmCCm5O51UM+AdIW I+bA== X-Gm-Message-State: AOJu0YzG1TsUYQuhNarU2TUvU5BYDiqfPvApUq5SHzclB2RhuSmCnW5Z zEXNJX4WntPoKkgOtkJ9bFvYITAXArjEfq6jgACk+t214S7zcMtjAbxpFb2FxbRrmP77iyGQf+3 yxQ== X-Received: by 2002:a05:6000:1a8c:b0:33a:ed47:2858 with SMTP id f12-20020a0560001a8c00b0033aed472858mr4904709wry.63.1706616671512; Tue, 30 Jan 2024 04:11:11 -0800 (PST) Received: from platypus.localdomain ([62.23.166.218]) by smtp.gmail.com with ESMTPSA id f9-20020a056000036900b00339307d9d31sm10569894wrf.112.2024.01.30.04.11.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jan 2024 04:11:10 -0800 (PST) From: arthur.cohen@embecosm.com To: gcc-patches@gcc.gnu.org Cc: gcc-rust@gcc.gnu.org, Pierre-Emmanuel Patry Subject: [COMMITTED 028/101] gccrs: Replace some keyword raw values Date: Tue, 30 Jan 2024 13:06:44 +0100 Message-ID: <20240130121026.807464-31-arthur.cohen@embecosm.com> X-Mailer: git-send-email 2.42.1 In-Reply-To: <20240130121026.807464-2-arthur.cohen@embecosm.com> References: <20240130121026.807464-2-arthur.cohen@embecosm.com> MIME-Version: 1.0 X-Spam-Status: No, score=-14.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: arthur.cohen@embecosm.com Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789518915468210583 X-GMAIL-MSGID: 1789518915468210583 From: Pierre-Emmanuel Patry Raw values cannot be understood easily by most tools. This commit replace some raw values with their variable counterpart. gcc/rust/ChangeLog: * ast/rust-ast-collector.cc (TokenCollector::visit): Replace raw value with keyword call. * ast/rust-ast.h: Likewise. * parse/rust-parse-impl.h (Parser::parse_path_ident_segment): Likewise. (Parser::parse_macro_match_fragment): Likewise. (Parser::parse_extern_crate): Likewise. (Parser::parse_use_tree): Likewise. (Parser::parse_const_item): Likewise. (Parser::parse_literal_expr): Likewise. (Parser::parse_maybe_named_param): Likewise. (Parser::parse_pattern_no_alt): Likewise. (Parser::left_denotation): Likewise. (Parser::parse_path_in_expression_pratt): Likewise. Signed-off-by: Pierre-Emmanuel Patry --- gcc/rust/ast/rust-ast-collector.cc | 13 ++++---- gcc/rust/ast/rust-ast.h | 24 ++++++++++---- gcc/rust/parse/rust-parse-impl.h | 52 +++++++++++++++++------------- 3 files changed, 53 insertions(+), 36 deletions(-) diff --git a/gcc/rust/ast/rust-ast-collector.cc b/gcc/rust/ast/rust-ast-collector.cc index 8f394e595ed..5b12875c349 100644 --- a/gcc/rust/ast/rust-ast-collector.cc +++ b/gcc/rust/ast/rust-ast-collector.cc @@ -17,6 +17,7 @@ // . #include "rust-ast-collector.h" #include "rust-item.h" +#include "rust-keyword-values.h" namespace Rust { namespace AST { @@ -461,11 +462,11 @@ TokenCollector::visit (Lifetime &lifetime) break; case Lifetime::LifetimeType::STATIC: push (Rust::Token::make_lifetime (lifetime.get_locus (), - std::move ("static"))); + Values::Keywords::STATIC_KW)); break; case Lifetime::LifetimeType::WILDCARD: - push ( - Rust::Token::make_lifetime (lifetime.get_locus (), std::move ("_"))); + push (Rust::Token::make_lifetime (lifetime.get_locus (), + Values::Keywords::UNDERSCORE)); break; } } @@ -787,9 +788,9 @@ TokenCollector::visit (Literal &lit, location_t locus) lit.get_type_hint ())); break; case Literal::LitType::BOOL: { - if (value == "false") + if (value == Values::Keywords::FALSE_LITERAL) push (Rust::Token::make (FALSE_LITERAL, locus)); - else if (value == "true") + else if (value == Values::Keywords::TRUE_LITERAL) push (Rust::Token::make (TRUE_LITERAL, locus)); else rust_unreachable (); // Not a boolean @@ -1484,7 +1485,7 @@ TokenCollector::visit (AwaitExpr &expr) visit (expr.get_awaited_expr ()); push (Rust::Token::make (DOT, expr.get_locus ())); // TODO: Check status of await keyword (Context dependant ?) - push (Rust::Token::make_identifier (UNDEF_LOCATION, "await")); + push (Rust::Token::make_identifier (UNDEF_LOCATION, Values::Keywords::AWAIT)); } void diff --git a/gcc/rust/ast/rust-ast.h b/gcc/rust/ast/rust-ast.h index 47c02d6ac8b..4049e4d2607 100644 --- a/gcc/rust/ast/rust-ast.h +++ b/gcc/rust/ast/rust-ast.h @@ -25,6 +25,7 @@ #include "rust-token.h" #include "rust-location.h" #include "rust-diagnostics.h" +#include "rust-keyword-values.h" namespace Rust { // TODO: remove typedefs and make actual types for these @@ -393,14 +394,20 @@ public: const std::string &get_segment_name () const { return segment_name; } bool is_super_path_seg () const { - return as_string ().compare ("super") == 0; + return as_string ().compare (Values::Keywords::SUPER) == 0; } bool is_crate_path_seg () const { - return as_string ().compare ("crate") == 0; + return as_string ().compare (Values::Keywords::CRATE) == 0; + } + bool is_lower_self_seg () const + { + return as_string ().compare (Values::Keywords::SELF) == 0; + } + bool is_big_self () const + { + return as_string ().compare (Values::Keywords::SELF_ALIAS) == 0; } - bool is_lower_self_seg () const { return as_string ().compare ("self") == 0; } - bool is_big_self () const { return as_string ().compare ("Self") == 0; } }; // A simple path without generic or type arguments @@ -562,7 +569,8 @@ public: location_t crate_vis_location) { return Visibility (PUB_CRATE, - SimplePath::from_str ("crate", crate_tok_location), + SimplePath::from_str (Values::Keywords::CRATE, + crate_tok_location), crate_vis_location); } @@ -571,7 +579,8 @@ public: location_t self_vis_location) { return Visibility (PUB_SELF, - SimplePath::from_str ("self", self_tok_location), + SimplePath::from_str (Values::Keywords::SELF, + self_tok_location), self_vis_location); } @@ -580,7 +589,8 @@ public: location_t super_vis_location) { return Visibility (PUB_SUPER, - SimplePath::from_str ("super", super_tok_location), + SimplePath::from_str (Values::Keywords::SUPER, + super_tok_location), super_vis_location); } diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h index 8b006142b16..28659060568 100644 --- a/gcc/rust/parse/rust-parse-impl.h +++ b/gcc/rust/parse/rust-parse-impl.h @@ -743,19 +743,20 @@ Parser::parse_path_ident_segment () case SUPER: lexer.skip_token (); - return AST::PathIdentSegment ("super", t->get_locus ()); + return AST::PathIdentSegment (Values::Keywords::SUPER, t->get_locus ()); case SELF: lexer.skip_token (); - return AST::PathIdentSegment ("self", t->get_locus ()); + return AST::PathIdentSegment (Values::Keywords::SELF, t->get_locus ()); case SELF_ALIAS: lexer.skip_token (); - return AST::PathIdentSegment ("Self", t->get_locus ()); + return AST::PathIdentSegment (Values::Keywords::SELF_ALIAS, + t->get_locus ()); case CRATE: lexer.skip_token (); - return AST::PathIdentSegment ("crate", t->get_locus ()); + return AST::PathIdentSegment (Values::Keywords::CRATE, t->get_locus ()); case DOLLAR_SIGN: if (lexer.peek_token (1)->get_id () == CRATE) { @@ -2141,7 +2142,7 @@ Parser::parse_macro_match_fragment () Identifier ident; auto identifier = lexer.peek_token (); if (identifier->get_id () == UNDERSCORE) - ident = {"_", identifier->get_locus ()}; + ident = {Values::Keywords::UNDERSCORE, identifier->get_locus ()}; else ident = {identifier}; @@ -2506,7 +2507,7 @@ Parser::parse_extern_crate (AST::Visibility vis, lexer.skip_token (); break; case SELF: - crate_name = "self"; + crate_name = Values::Keywords::SELF; lexer.skip_token (); break; default: @@ -2547,7 +2548,7 @@ Parser::parse_extern_crate (AST::Visibility vis, lexer.skip_token (); break; case UNDERSCORE: - as_name = "_"; + as_name = Values::Keywords::UNDERSCORE; lexer.skip_token (); break; default: @@ -2806,7 +2807,8 @@ Parser::parse_use_tree () return std::unique_ptr ( new AST::UseTreeRebind (AST::UseTreeRebind::WILDCARD, std::move (path), locus, - {"_", t->get_locus ()})); + {Values::Keywords::UNDERSCORE, + t->get_locus ()})); default: add_error (Error ( t->get_locus (), @@ -4788,7 +4790,7 @@ Parser::parse_const_item (AST::Visibility vis, * wildcard */ const_TokenPtr ident_tok = lexer.peek_token (); // make default identifier the underscore wildcard one - std::string ident ("_"); + std::string ident (Values::Keywords::UNDERSCORE); switch (ident_tok->get_id ()) { case IDENTIFIER: @@ -7640,12 +7642,12 @@ Parser::parse_literal_expr (AST::AttrVec outer_attrs) // use true and false keywords rather than "bool literal" Rust terminology case TRUE_LITERAL: type = AST::Literal::BOOL; - literal_value = "true"; + literal_value = Values::Keywords::TRUE_LITERAL; lexer.skip_token (); break; case FALSE_LITERAL: type = AST::Literal::BOOL; - literal_value = "false"; + literal_value = Values::Keywords::FALSE_LITERAL; lexer.skip_token (); break; default: @@ -9654,7 +9656,7 @@ Parser::parse_maybe_named_param (AST::AttrVec outer_attrs) else if (current->get_id () == UNDERSCORE && next->get_id () == COLON) { // wildcard param - name = {"_", current->get_locus ()}; + name = {Values::Keywords::UNDERSCORE, current->get_locus ()}; kind = AST::MaybeNamedParam::WILDCARD; lexer.skip_token (1); } @@ -10548,12 +10550,14 @@ Parser::parse_pattern_no_alt () case TRUE_LITERAL: lexer.skip_token (); return std::unique_ptr ( - new AST::LiteralPattern ("true", AST::Literal::BOOL, t->get_locus (), + new AST::LiteralPattern (Values::Keywords::TRUE_LITERAL, + AST::Literal::BOOL, t->get_locus (), t->get_type_hint ())); case FALSE_LITERAL: lexer.skip_token (); return std::unique_ptr ( - new AST::LiteralPattern ("false", AST::Literal::BOOL, t->get_locus (), + new AST::LiteralPattern (Values::Keywords::FALSE_LITERAL, + AST::Literal::BOOL, t->get_locus (), t->get_type_hint ())); case CHAR_LITERAL: case BYTE_CHAR_LITERAL: @@ -12383,12 +12387,14 @@ Parser::null_denotation_not_path ( tok->get_type_hint (), {}, tok->get_locus ())); case TRUE_LITERAL: return std::unique_ptr ( - new AST::LiteralExpr ("true", AST::Literal::BOOL, tok->get_type_hint (), - {}, tok->get_locus ())); + new AST::LiteralExpr (Values::Keywords::TRUE_LITERAL, + AST::Literal::BOOL, tok->get_type_hint (), {}, + tok->get_locus ())); case FALSE_LITERAL: return std::unique_ptr ( - new AST::LiteralExpr ("false", AST::Literal::BOOL, - tok->get_type_hint (), {}, tok->get_locus ())); + new AST::LiteralExpr (Values::Keywords::FALSE_LITERAL, + AST::Literal::BOOL, tok->get_type_hint (), {}, + tok->get_locus ())); case LEFT_PAREN: return parse_grouped_or_tuple_expr (std::move (outer_attrs), tok->get_locus ()); @@ -12877,7 +12883,7 @@ Parser::left_denotation (const_TokenPtr tok, const_TokenPtr next_tok = lexer.peek_token (); if (next_tok->get_id () == IDENTIFIER - && next_tok->get_str () == "await") + && next_tok->get_str () == Values::Keywords::AWAIT) { // await expression return parse_await_expr (tok, std::move (left), @@ -14367,16 +14373,16 @@ Parser::parse_path_in_expression_pratt (const_TokenPtr tok) initial_str = tok->get_str (); break; case SUPER: - initial_str = "super"; + initial_str = Values::Keywords::SUPER; break; case SELF: - initial_str = "self"; + initial_str = Values::Keywords::SELF; break; case SELF_ALIAS: - initial_str = "Self"; + initial_str = Values::Keywords::SELF_ALIAS; break; case CRATE: - initial_str = "crate"; + initial_str = Values::Keywords::CRATE; break; case DOLLAR_SIGN: if (lexer.peek_token ()->get_id () == CRATE)