aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/hir
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2023-06-27 11:22:00 +0200
committerCohenArthur <arthur.cohen@embecosm.com>2023-06-29 09:26:34 +0000
commitd5723ccebbf62ed4546c5e2b2141b274585dd64c (patch)
tree1b925f691054a3881a0175426f502b5b0193c5b8 /gcc/rust/hir
parent3d2a0c0445c2a1417dcc290b7a14e551c14fa421 (diff)
downloadgcc-d5723ccebbf62ed4546c5e2b2141b274585dd64c.zip
gcc-d5723ccebbf62ed4546c5e2b2141b274585dd64c.tar.gz
gcc-d5723ccebbf62ed4546c5e2b2141b274585dd64c.tar.bz2
ast: Change Identifier definition
Change Identifier type definition from a simple typedef to a whole class with it's own node id. gcc/rust/ChangeLog: * ast/rust-ast-collector.cc (TokenCollector::visit): Change with call to getter. * ast/rust-ast.cc (Module::as_string): Likewise. (StaticItem::as_string): Likewise. (TupleStruct::as_string): Likewise. (Method::as_string): Likewise. (StructStruct::as_string): Likewise. (UseTreeRebind::as_string): Likewise. (Enum::as_string): Likewise. (Trait::as_string): Likewise. (Union::as_string): Likewise. (Function::as_string): Likewise. (TypeAlias::as_string): Likewise. (MacroRulesDefinition::as_string): Likewise. (FieldAccessExpr::as_string): Likewise. (MacroMatchFragment::as_string): Likewise. (TypeParam::as_string): Likewise. (StructExprFieldIdentifierValue::as_string): Likewise. (EnumItem::as_string): Likewise. (StructField::as_string): Likewise. (ExternalTypeItem::as_string): Likewise. (ExternalStaticItem::as_string): Likewise. (ExternalFunctionItem::as_string): Likewise. (TraitFunctionDecl::as_string): Likewise. (TraitMethodDecl::as_string): Likewise. (TraitItemConst::as_string): Likewise. (TraitItemType::as_string): Likewise. (MaybeNamedParam::as_string): Likewise. (MetaListPaths::as_string): Likewise. (MetaListNameValueStr::as_string): Likewise. (Module::process_file_path): Likewise. (MetaListNameValueStr::check_cfg_predicate): Likewise. (MetaListPaths::check_cfg_predicate): Likewise. (MetaWord::check_cfg_predicate): Likewise. (MetaNameValueStr::check_cfg_predicate): Likewise. (MetaNameValueStr::to_attribute): Likewise. (MetaWord::to_attribute): Likewise. (MetaListPaths::to_attribute): Likewise. (MetaListNameValueStr::to_attribute): Likewise. (operator<<): Change Identifier class << operator overload for standard output stream. * ast/rust-ast.h (class Identifier): Change typedef to proper class definition. (operator<<): Add prototype for operator overload. (class Token): Change getter identifier. (class MetaListNameValueStr): Likewise. (class PathExpr): Likewise. * ast/rust-expr.h: Likewise. * ast/rust-item.h: Likewise. * ast/rust-macro.h: Likewise. * ast/rust-path.cc (GenericArg::disambiguate_to_type): Likewise. (GenericArgsBinding::as_string): Likewise. (ConstGenericParam::as_string): Likewise. * ast/rust-path.h: Likewise. * ast/rust-pattern.cc (IdentifierPattern::as_string): Likewise. (StructPatternFieldIdentPat::as_string): Likewise. (StructPatternFieldIdent::as_string): Likewise. * ast/rust-type.h: Likewise. * backend/rust-compile-base.cc: Likewise. * backend/rust-compile-expr.cc (CompileExpr::visit): Likewise. * backend/rust-compile-extern.h: Likewise. * backend/rust-compile-fnparam.cc (CompileFnParam::visit): Likewise. * backend/rust-compile-implitem.cc (CompileTraitItem::visit): Likewise. * backend/rust-compile-item.cc (CompileItem::visit): Likewise. * backend/rust-compile-pattern.cc (CompilePatternBindings::visit): Likewise. * backend/rust-compile-struct-field-expr.cc (CompileStructExprField::visit): Likewise. * backend/rust-compile-var-decl.h: Likewise. * backend/rust-compile.cc: Likewise. * checks/errors/rust-unsafe-checker.cc (check_extern_call): Likewise. * checks/lints/rust-lint-marklive.cc (MarkLive::visit): Likewise. * checks/lints/rust-lint-scan-deadcode.h: Likewise. * expand/rust-derive-clone.cc (DeriveClone::clone_fn): Likewise. (DeriveClone::visit_tuple): Likewise. (DeriveClone::visit_struct): Likewise. (DeriveClone::visit_union): Likewise. * expand/rust-derive-copy.cc (DeriveCopy::visit_struct): Likewise. (DeriveCopy::visit_tuple): Likewise. (DeriveCopy::visit_enum): Likewise. (DeriveCopy::visit_union): Likewise. * expand/rust-macro-expand.cc (MacroExpander::match_matcher): Likewise. (MacroExpander::match_n_matches): Likewise. (MacroExpander::match_repetition): Likewise. (MacroExpander::match_repetition_skipped_metavars): Likewise. * hir/rust-ast-lower-base.cc (struct_field_name_exists): Likewise. * hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise. * hir/rust-ast-lower-type.cc (ASTLowerGenericParam::visit): Likewise. * hir/rust-hir-dump.cc (Dump::visit): Likewise. * hir/tree/rust-hir-expr.h: Likewise. * hir/tree/rust-hir-item.h: Likewise. * hir/tree/rust-hir-path.h: Likewise. * hir/tree/rust-hir-type.h: Likewise. * hir/tree/rust-hir.cc (Module::as_string): Likewise. (StaticItem::as_string): Likewise. (TupleStruct::as_string): Likewise. (ConstantItem::as_string): Likewise. (StructStruct::as_string): Likewise. (UseTreeRebind::as_string): Likewise. (Enum::as_string): Likewise. (Trait::as_string): Likewise. (Union::as_string): Likewise. (Function::as_string): Likewise. (TypeAlias::as_string): Likewise. (FieldAccessExpr::as_string): Likewise. (TypeParam::as_string): Likewise. (GenericArgsBinding::as_string): Likewise. (StructPatternFieldIdent::as_string): Likewise. (StructPatternFieldIdentPat::as_string): Likewise. (IdentifierPattern::as_string): Likewise. (StructExprFieldIdentifierValue::as_string): Likewise. (EnumItem::as_string): Likewise. (StructField::as_string): Likewise. (ExternalStaticItem::as_string): Likewise. (ExternalFunctionItem::as_string): Likewise. (NamedFunctionParam::as_string): Likewise. (TraitFunctionDecl::as_string): Likewise. (TraitItemConst::as_string): Likewise. (TraitItemType::as_string): Likewise. (MaybeNamedParam::as_string): Likewise. * hir/tree/rust-hir.h: Likewise. * parse/rust-parse-impl.h (Parser::parse_macro_match_fragment): Likewise. (Parser::parse_module): Likewise. (Parser::parse_use_tree): Likewise. (Parser::parse_maybe_named_param): Likewise. * resolve/rust-ast-resolve-implitem.h: Likewise. * resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit): Likewise. (ResolveItem::visit): Likewise. (flatten_rebind): Likewise. (ResolveExternItem::visit): Likewise. (rust_flatten_rebind): Likewise. (rust_flatten_rebind_nested): Likewise. * resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go): Likewise. (PatternDeclaration::visit): Likewise. (PatternDeclaration::add_new_binding): Likewise. * resolve/rust-ast-resolve-stmt.h: Likewise. * resolve/rust-ast-resolve-toplevel.h: Likewise. * resolve/rust-ast-resolve-type.h: Likewise. * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Likewise. * typecheck/rust-autoderef.cc: Likewise. * typecheck/rust-hir-dot-operator.cc (MethodResolver::select): Likewise. * typecheck/rust-hir-path-probe.cc (PathProbeType::visit): Likewise. * typecheck/rust-hir-trait-reference.cc (TraitReference::get_name): Likewise. * typecheck/rust-hir-trait-resolve.cc (ResolveTraitItemToRef::visit): Likewise. (TraitResolver::resolve_trait): Likewise. (TraitItemReference::resolve_item): Likewise. (AssociatedImplTrait::setup_raw_associated_types): Likewise. * typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit): Likewise. * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise. * typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit): Likewise. (TypeCheckImplItem::visit): Likewise. (TypeCheckImplItemWithTrait::visit): Likewise. * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): Likewise. * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise. * typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::visit): Likewise. * typecheck/rust-hir-type-check-type.cc (TypeResolveGenericParam::visit): Likewise. * typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): Likewise. * typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args): Likewise. * util/rust-attributes.cc (check_doc_attribute): Likewise. * util/rust-hir-map.cc (Mappings::insert_macro_def): Likewise. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diffstat (limited to 'gcc/rust/hir')
-rw-r--r--gcc/rust/hir/rust-ast-lower-base.cc6
-rw-r--r--gcc/rust/hir/rust-ast-lower-expr.cc2
-rw-r--r--gcc/rust/hir/rust-ast-lower-type.cc2
-rw-r--r--gcc/rust/hir/rust-hir-dump.cc4
-rw-r--r--gcc/rust/hir/tree/rust-hir-expr.h2
-rw-r--r--gcc/rust/hir/tree/rust-hir-item.h27
-rw-r--r--gcc/rust/hir/tree/rust-hir-path.h2
-rw-r--r--gcc/rust/hir/tree/rust-hir-type.h2
-rw-r--r--gcc/rust/hir/tree/rust-hir.cc55
-rw-r--r--gcc/rust/hir/tree/rust-hir.h1
10 files changed, 57 insertions, 46 deletions
diff --git a/gcc/rust/hir/rust-ast-lower-base.cc b/gcc/rust/hir/rust-ast-lower-base.cc
index d7c6a3c..23a3ec4 100644
--- a/gcc/rust/hir/rust-ast-lower-base.cc
+++ b/gcc/rust/hir/rust-ast-lower-base.cc
@@ -675,12 +675,14 @@ struct_field_name_exists (std::vector<HIR::StructField> &fields,
{
for (auto &field : fields)
{
- if (field.get_field_name ().compare (new_field.get_field_name ()) == 0)
+ if (field.get_field_name ().as_string ().compare (
+ new_field.get_field_name ().as_string ())
+ == 0)
{
RichLocation r (new_field.get_locus ());
r.add_range (field.get_locus ());
rust_error_at (r, "duplicate field name %qs",
- field.get_field_name ().c_str ());
+ field.get_field_name ().as_string ().c_str ());
return true;
}
}
diff --git a/gcc/rust/hir/rust-ast-lower-expr.cc b/gcc/rust/hir/rust-ast-lower-expr.cc
index 8d09664..53b7736 100644
--- a/gcc/rust/hir/rust-ast-lower-expr.cc
+++ b/gcc/rust/hir/rust-ast-lower-expr.cc
@@ -235,7 +235,7 @@ ASTLoweringExpr::visit (AST::IdentifierExpr &expr)
UNKNOWN_LOCAL_DEFID);
Analysis::NodeMapping mapping2 (mapping1);
- HIR::PathIdentSegment ident_seg (expr.get_ident ());
+ HIR::PathIdentSegment ident_seg (expr.get_ident ().as_string ());
HIR::PathExprSegment seg (mapping1, ident_seg, expr.get_locus (),
HIR::GenericArgs::create_empty ());
translated = new HIR::PathInExpression (mapping2, {seg}, expr.get_locus (),
diff --git a/gcc/rust/hir/rust-ast-lower-type.cc b/gcc/rust/hir/rust-ast-lower-type.cc
index 02b367b..fa60058 100644
--- a/gcc/rust/hir/rust-ast-lower-type.cc
+++ b/gcc/rust/hir/rust-ast-lower-type.cc
@@ -461,7 +461,7 @@ ASTLowerGenericParam::visit (AST::ConstGenericParam &param)
default_expr = ASTLoweringExpr::translate (
param.get_default_value ().get_expression ().get ());
- translated = new HIR::ConstGenericParam (param.get_name (),
+ translated = new HIR::ConstGenericParam (param.get_name ().as_string (),
std::unique_ptr<Type> (type),
std::unique_ptr<Expr> (default_expr),
mapping, param.get_locus ());
diff --git a/gcc/rust/hir/rust-hir-dump.cc b/gcc/rust/hir/rust-hir-dump.cc
index 4b0d613..27138df 100644
--- a/gcc/rust/hir/rust-hir-dump.cc
+++ b/gcc/rust/hir/rust-hir-dump.cc
@@ -420,7 +420,7 @@ Dump::visit (Function &func)
// function name
stream << indentation << "func_name: ";
auto func_name = func.get_function_name ();
- stream << func_name;
+ stream << func_name.as_string ();
stream << ",\n";
// return type
@@ -549,7 +549,7 @@ void
Dump::visit (IdentifierPattern &ident)
{
auto ident_name = ident.get_identifier ();
- stream << ident_name;
+ stream << ident_name.as_string ();
}
void
Dump::visit (WildcardPattern &)
diff --git a/gcc/rust/hir/tree/rust-hir-expr.h b/gcc/rust/hir/tree/rust-hir-expr.h
index 4bda783..bf8bc68 100644
--- a/gcc/rust/hir/tree/rust-hir-expr.h
+++ b/gcc/rust/hir/tree/rust-hir-expr.h
@@ -1460,7 +1460,7 @@ public:
field_name (std::move (field_identifier))
{}
- std::string as_string () const override { return field_name; }
+ std::string as_string () const override { return field_name.as_string (); }
void accept_vis (HIRFullVisitor &vis) override;
void accept_vis (HIRExpressionVisitor &vis) override;
diff --git a/gcc/rust/hir/tree/rust-hir-item.h b/gcc/rust/hir/tree/rust-hir-item.h
index 7726ee0..8fdfa5f 100644
--- a/gcc/rust/hir/tree/rust-hir-item.h
+++ b/gcc/rust/hir/tree/rust-hir-item.h
@@ -1230,7 +1230,7 @@ public:
std::string get_impl_item_name () const override final
{
- return get_function_name ();
+ return get_function_name ().as_string ();
}
protected:
@@ -1354,7 +1354,7 @@ public:
std::string get_impl_item_name () const override final
{
- return get_new_type_name ();
+ return get_new_type_name ().as_string ();
}
protected:
@@ -2117,7 +2117,10 @@ public:
// Returns whether constant item is an "unnamed" (wildcard underscore used
// as identifier) constant.
- bool is_unnamed () const { return identifier == std::string ("_"); }
+ bool is_unnamed () const
+ {
+ return identifier.as_string () == std::string ("_");
+ }
Location get_locus () const override final { return locus; }
@@ -2130,7 +2133,7 @@ public:
Expr *get_expr () { return const_expr.get (); }
- std::string get_identifier () const { return identifier; }
+ Identifier get_identifier () const { return identifier; }
Analysis::NodeMapping get_impl_mappings () const override
{
@@ -2146,7 +2149,7 @@ public:
std::string get_impl_item_name () const override final
{
- return get_identifier ();
+ return get_identifier ().as_string ();
}
protected:
@@ -2401,7 +2404,7 @@ public:
const std::string trait_identifier () const override final
{
- return decl.get_function_name ();
+ return decl.get_function_name ().as_string ();
}
TraitItemKind get_item_kind () const override final
@@ -2490,7 +2493,10 @@ public:
return expr;
}
- const std::string trait_identifier () const override final { return name; }
+ const std::string trait_identifier () const override final
+ {
+ return name.as_string ();
+ }
TraitItemKind get_item_kind () const override final
{
@@ -2579,7 +2585,10 @@ public:
return type_param_bounds;
}
- const std::string trait_identifier () const override final { return name; }
+ const std::string trait_identifier () const override final
+ {
+ return name.as_string ();
+ }
TraitItemKind get_item_kind () const override final
{
@@ -2999,7 +3008,7 @@ private:
Analysis::NodeMapping mappings;
public:
- bool has_name () const { return name != "_"; }
+ bool has_name () const { return name.as_string () != "_"; }
NamedFunctionParam (Analysis::NodeMapping mappings, Identifier name,
std::unique_ptr<Type> param_type)
diff --git a/gcc/rust/hir/tree/rust-hir-path.h b/gcc/rust/hir/tree/rust-hir-path.h
index 88d0ff9..8f4e5e3 100644
--- a/gcc/rust/hir/tree/rust-hir-path.h
+++ b/gcc/rust/hir/tree/rust-hir-path.h
@@ -71,7 +71,7 @@ public:
// Creates an error state generic args binding.
static GenericArgsBinding create_error ()
{
- return GenericArgsBinding ("", nullptr);
+ return GenericArgsBinding ({""}, nullptr);
}
// Pointer type for type in constructor to enable polymorphism
diff --git a/gcc/rust/hir/tree/rust-hir-type.h b/gcc/rust/hir/tree/rust-hir-type.h
index 1949ad1..2e7df10 100644
--- a/gcc/rust/hir/tree/rust-hir-type.h
+++ b/gcc/rust/hir/tree/rust-hir-type.h
@@ -730,7 +730,7 @@ public:
// Creates an error state param.
static MaybeNamedParam create_error ()
{
- return MaybeNamedParam ("", UNNAMED, nullptr, Location ());
+ return MaybeNamedParam ({""}, UNNAMED, nullptr, Location ());
}
Location get_locus () const { return locus; }
diff --git a/gcc/rust/hir/tree/rust-hir.cc b/gcc/rust/hir/tree/rust-hir.cc
index 03e7e26..0bad520 100644
--- a/gcc/rust/hir/tree/rust-hir.cc
+++ b/gcc/rust/hir/tree/rust-hir.cc
@@ -168,7 +168,7 @@ std::string
Module::as_string () const
{
// get module string for "[vis] mod [name]"
- std::string str = VisItem::as_string () + "mod " + module_name;
+ std::string str = VisItem::as_string () + "mod " + module_name.as_string ();
// inner attributes
str += "\n inner attributes: ";
@@ -223,7 +223,7 @@ StaticItem::as_string () const
str += " mut";
}
- str += name;
+ str += name.as_string ();
// DEBUG: null pointer check
if (type == nullptr)
@@ -266,7 +266,7 @@ TupleStruct::as_string () const
{
std::string str = VisItem::as_string ();
- str += "struct " + struct_name;
+ str += "struct " + struct_name.as_string ();
// generic params
str += "\n Generic params: ";
@@ -323,7 +323,7 @@ ConstantItem::as_string () const
{
std::string str = VisItem::as_string ();
- str += "const " + identifier;
+ str += "const " + identifier.as_string ();
// DEBUG: null pointer check
if (type == nullptr)
@@ -425,7 +425,7 @@ StructStruct::as_string () const
{
std::string str = VisItem::as_string ();
- str += "struct " + struct_name;
+ str += "struct " + struct_name.as_string ();
// generic params
str += "\n Generic params: ";
@@ -581,7 +581,7 @@ UseTreeRebind::as_string () const
// nothing to add, just path
break;
case IDENTIFIER:
- path_str += " as " + identifier;
+ path_str += " as " + identifier.as_string ();
break;
case WILDCARD:
path_str += " as _";
@@ -598,7 +598,7 @@ std::string
Enum::as_string () const
{
std::string str = VisItem::as_string ();
- str += enum_name;
+ str += enum_name.as_string ();
// generic params
str += "\n Generic params: ";
@@ -669,7 +669,7 @@ Trait::as_string () const
str += "unsafe ";
}
- str += "trait " + name;
+ str += "trait " + name.as_string ();
// generic params
str += "\n Generic params: ";
@@ -756,7 +756,7 @@ Union::as_string () const
{
std::string str = VisItem::as_string ();
- str += "union " + union_name;
+ str += "union " + union_name.as_string ();
// generic params
str += "\n Generic params: ";
@@ -834,7 +834,7 @@ Function::as_string () const
str += "void ";
}
- str += function_name;
+ str += function_name.as_string ();
if (has_generics ())
{
@@ -985,7 +985,7 @@ TypeAlias::as_string () const
{
std::string str = VisItem::as_string ();
- str += " " + new_type_name;
+ str += " " + new_type_name.as_string ();
// generic params
str += "\n Generic params: ";
@@ -1458,7 +1458,7 @@ DereferenceExpr::as_string () const
std::string
FieldAccessExpr::as_string () const
{
- return receiver->as_string () + "." + field;
+ return receiver->as_string () + "." + field.as_string ();
}
std::string
@@ -2118,7 +2118,7 @@ TypeParam::as_string () const
str += outer_attr.as_string ();
}
- str += "\n Identifier: " + type_representation;
+ str += "\n Identifier: " + type_representation.as_string ();
str += "\n Type param bounds: ";
if (!has_type_param_bounds ())
@@ -2284,7 +2284,7 @@ GenericArgs::as_string () const
std::string
GenericArgsBinding::as_string () const
{
- return identifier + " = " + type->as_string ();
+ return identifier.as_string () + " = " + type->as_string ();
}
std::string
@@ -2457,7 +2457,7 @@ StructPatternFieldIdent::as_string () const
str += "mut ";
}
- str += ident;
+ str += ident.as_string ();
return str;
}
@@ -2481,7 +2481,7 @@ StructPatternFieldIdentPat::as_string () const
str += "\n";
- str += ident + " : " + ident_pattern->as_string ();
+ str += ident.as_string () + " : " + ident_pattern->as_string ();
return str;
}
@@ -2562,7 +2562,7 @@ IdentifierPattern::as_string () const
str += "mut ";
}
- str += variable_ident;
+ str += variable_ident.as_string ();
if (has_pattern_to_bind ())
{
@@ -2991,7 +2991,7 @@ StructExprFieldWithVal::as_string () const
std::string
StructExprFieldIdentifierValue::as_string () const
{
- return field_name + " : " + StructExprFieldWithVal::as_string ();
+ return field_name.as_string () + " : " + StructExprFieldWithVal::as_string ();
}
std::string
@@ -3035,7 +3035,7 @@ std::string
EnumItem::as_string () const
{
std::string str = Item::as_string ();
- str += variant_name;
+ str += variant_name.as_string ();
str += " ";
switch (get_enum_item_kind ())
{
@@ -3165,7 +3165,7 @@ StructField::as_string () const
str += "\n" + visibility.as_string ();
}
- str += " " + field_name + " : " + field_type->as_string ();
+ str += " " + field_name.as_string () + " : " + field_type->as_string ();
return str;
}
@@ -3219,7 +3219,7 @@ ExternalStaticItem::as_string () const
}
// add name
- str += get_item_name ();
+ str += get_item_name ().as_string ();
// add type on new line
str += "\n Type: " + item_type->as_string ();
@@ -3235,7 +3235,7 @@ ExternalFunctionItem::as_string () const
str += "fn ";
// add name
- str += get_item_name ();
+ str += get_item_name ().as_string ();
// generic params
str += "\n Generic params: ";
@@ -3299,7 +3299,7 @@ ExternalFunctionItem::as_string () const
std::string
NamedFunctionParam::as_string () const
{
- std::string str = name;
+ std::string str = name.as_string ();
str += "\n Type: " + param_type->as_string ();
@@ -3357,7 +3357,8 @@ TraitItemFunc::as_string () const
std::string
TraitFunctionDecl::as_string () const
{
- std::string str = qualifiers.as_string () + "fn " + function_name;
+ std::string str
+ = qualifiers.as_string () + "fn " + function_name.as_string ();
// generic params
str += "\n Generic params: ";
@@ -3441,7 +3442,7 @@ TraitItemConst::as_string () const
}
}
- str += "\nconst " + name + " : " + type->as_string ();
+ str += "\nconst " + name.as_string () + " : " + type->as_string ();
if (has_expression ())
{
@@ -3469,7 +3470,7 @@ TraitItemType::as_string () const
}
}
- str += "\ntype " + name;
+ str += "\ntype " + name.as_string ();
str += "\n Type param bounds: ";
if (!has_type_param_bounds ())
@@ -3655,7 +3656,7 @@ MaybeNamedParam::as_string () const
case UNNAMED:
break;
case IDENTIFIER:
- str = name + " : ";
+ str = name.as_string () + " : ";
break;
case WILDCARD:
str = "_ : ";
diff --git a/gcc/rust/hir/tree/rust-hir.h b/gcc/rust/hir/tree/rust-hir.h
index 777289c..09f5c2c 100644
--- a/gcc/rust/hir/tree/rust-hir.h
+++ b/gcc/rust/hir/tree/rust-hir.h
@@ -27,7 +27,6 @@
#include "rust-diagnostics.h"
namespace Rust {
-typedef std::string Identifier;
typedef int TupleIndex;
namespace HIR {