From 635a63c032491f6da2c82d9fdac0b2c8c020d68e Mon Sep 17 00:00:00 2001 From: Sergey Bugaev Date: Mon, 3 Apr 2023 18:43:08 +0300 Subject: [PATCH] gccrs: ast: Make AST::Kind an enum class We're going to introduce AST::Kind::IDENTIFIER next, and with the default C-style enum member scoping, this would cause name clashes. Instead, convert AST::Kind into an enum class, so that its members are properly namespaced. gcc/rust/ChangeLog: * ast/rust-ast.h (Kind): Convert into a C++ enum class * expand/rust-macro-builtins.cc: Adapt to the change Signed-off-by: Sergey Bugaev --- gcc/rust/ast/rust-ast.h | 2 +- gcc/rust/expand/rust-macro-builtins.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/rust/ast/rust-ast.h b/gcc/rust/ast/rust-ast.h index 7d7de89cc8be..3aed56aa7b68 100644 --- a/gcc/rust/ast/rust-ast.h +++ b/gcc/rust/ast/rust-ast.h @@ -39,7 +39,7 @@ class ASTVisitor; using AttrVec = std::vector; // The available kinds of AST Nodes -enum Kind +enum class Kind { UNKNOWN, MACRO_RULES_DEFINITION, diff --git a/gcc/rust/expand/rust-macro-builtins.cc b/gcc/rust/expand/rust-macro-builtins.cc index 6dce1aff73a0..9bee71286dbb 100644 --- a/gcc/rust/expand/rust-macro-builtins.cc +++ b/gcc/rust/expand/rust-macro-builtins.cc @@ -612,7 +612,7 @@ MacroBuiltin::concat_handler (Location invoc_locus, AST::MacroInvocData &invoc) for (auto &expr : expanded_expr) { if (!expr->is_literal () - && expr->get_ast_kind () != AST::MACRO_INVOCATION) + && expr->get_ast_kind () != AST::Kind::MACRO_INVOCATION) { has_error = true; rust_error_at (expr->get_locus (), "expected a literal"); -- 2.47.2