aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGCC Administrator <gccadmin@gcc.gnu.org>2024-01-17 00:21:29 +0000
committerGCC Administrator <gccadmin@gcc.gnu.org>2024-01-17 00:21:29 +0000
commit1a17797496f72982c1c802725704a9aaf01218b5 (patch)
treeb9e9a6cf5300314c29ff3c5857a0266453520185
parent14338386970bc6c2d46b81181f48622fdf25d705 (diff)
downloadgcc-1a17797496f72982c1c802725704a9aaf01218b5.zip
gcc-1a17797496f72982c1c802725704a9aaf01218b5.tar.gz
gcc-1a17797496f72982c1c802725704a9aaf01218b5.tar.bz2
Daily bump.
-rw-r--r--ChangeLog10
-rw-r--r--gcc/ChangeLog69
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/c-family/ChangeLog6
-rw-r--r--gcc/cp/ChangeLog37
-rw-r--r--gcc/rust/ChangeLog8325
-rw-r--r--gcc/testsuite/ChangeLog1699
-rw-r--r--libgrust/ChangeLog676
8 files changed, 10823 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 644bea9..9845720 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Makefile.def: Add a dependency to libgrust for all-gcc.
+ * Makefile.in: Regenerate the file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Makefile.def: Add libgrust target to bootstrap.
+ * Makefile.in: Regenerate.
+
2024-01-15 Andrew Pinski <quic_apinski@quicinc.com>
* MAINTAINERS (DCO): Add myself.
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9fd99c0..01c8b01 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,72 @@
+2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
+
+ * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU.
+ * config/aarch64/aarch64-tune.md: Regenerated.
+ * doc/invoke.texi (-mcpu): Add cobalt-100 core.
+
+2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
+
+ PR target/112573
+ * config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate
+ badly formed CONST expressions.
+
+2024-01-16 Daniel Cederman <cederman@gaisler.com>
+
+ * config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty
+
+2024-01-16 Daniel Cederman <cederman@gaisler.com>
+
+ * config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic
+ * config/sparc/sync.md (membar_storeload): Turn into named insn
+ and add GR712RC errata workaround.
+ (membar_v8): Add GR712RC errata workaround.
+
+2024-01-16 Andreas Larsson <andreas@gaisler.com>
+
+ * config/sparc/sync.md (*membar_storeload_leon3): Remove
+ (*membar_storeload): Enable for LEON
+
+2024-01-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/113372
+ PR middle-end/90348
+ PR middle-end/110115
+ PR middle-end/111422
+ * cfgexpand.cc (add_scope_conflicts_2): New function.
+ (add_scope_conflicts_1): Use it.
+
+2024-01-16 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32)
+ (avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add.
+ * doc/avr-mmcu.texi: Regenerate.
+
+2024-01-16 Feng Xue <fxue@os.amperecomputing.com>
+
+ PR tree-optimization/113091
+ * tree-vect-slp.cc (vect_slp_has_scalar_use): New function.
+ (vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check
+ scalar use with new function.
+ (vect_bb_slp_mark_live_stmts): New function as entry to existing
+ overriden functions with same name.
+ (vect_slp_analyze_operations): Call new entry function to mark
+ live statements.
+
+2024-01-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/113404
+ * config/riscv/riscv.cc (riscv_override_options_internal): Report sorry
+ for RVV in big-endian mode.
+
+2024-01-16 Yanzhang Wang <yanzhang.wang@intel.com>
+
+ * config/riscv/riscv.cc (riscv_arg_has_vector): Delete.
+ (riscv_pass_in_vector_p): Delete.
+ (riscv_init_cumulative_args): Delete the checking.
+ (riscv_get_arg_info): Delete the checking.
+ (riscv_function_value): Delete the checking.
+ * config/riscv/riscv.h: Delete the member for checking.
+
2024-01-15 Georg-Johann Lay <avr@gjlay.de>
* doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation.
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 9952a5e..6e69a00 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240116
+20240117
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 47019bd..6038d47 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,9 @@
+2024-01-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/113397
+ * c-ada-spec.cc (check_type_name_conflict): Add guard for the
+ presence of DECL_NAME on a TYPE_DECL.
+
2024-01-11 Julian Brown <julian@codesourcery.com>
* c-pretty-print.cc (c_pretty_printer::postfix_expression,
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 49e93ec..9daad1f 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,40 @@
+2024-01-16 Nathaniel Shead <nathanieloshead@gmail.com>
+
+ PR c++/113292
+ * decl2.cc (get_tls_wrapper_fn): Set DECL_CONTEXT.
+ (c_parse_final_cleanups): Suppress warning for no definition of
+ TLS wrapper functions in header modules.
+ * module.cc (trees_out::lang_decl_vals): Write wrapped variable
+ for TLS wrapper functions.
+ (trees_in::lang_decl_vals): Read it.
+ (trees_out::decl_value): Write TLS model for thread-local vars.
+ (trees_in::decl_value): Read it for new decls. Remember to emit
+ definitions of TLS wrapper functions later.
+
+2024-01-16 Nathaniel Shead <nathanieloshead@gmail.com>
+
+ * name-lookup.h (enum scope_kind): Add 'sk_count'.
+ * name-lookup.cc (cp_binding_level_descriptor): Add missing
+ scope kinds. Add assertion that the list is up to date. Fix
+ handling of explicit_spec_p.
+
+2024-01-16 Marek Polacek <polacek@redhat.com>
+
+ * decl.cc (grokdeclarator) <case cdk_function>: Tweak diagnostic
+ messages.
+
+2024-01-16 Marek Polacek <polacek@redhat.com>
+
+ PR c++/113340
+ * decl.cc (grokdeclarator) <case cdk_function>: Clear
+ is_xobj_member_function in case of an error.
+
+2024-01-16 waffl3x <waffl3x@protonmail.com>
+
+ PR c++/113307
+ * parser.cc (cp_parser_parameter_declaration): Reject packs
+ on xobj params.
+
2024-01-15 Marek Polacek <polacek@redhat.com>
PR c++/110065
diff --git a/gcc/rust/ChangeLog b/gcc/rust/ChangeLog
index 65a4b1c..c093556 100644
--- a/gcc/rust/ChangeLog
+++ b/gcc/rust/ChangeLog
@@ -1,3 +1,8328 @@
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/tree/rust-hir-pattern.h
+ (TupleStructItems::ItemType::RANGE): Rename to...
+ (TupleStructItems::ItemType::RANGED): ...here.
+ (TupleStructItems::ItemType::NO_RANGE): Rename to...
+ (TupleStructItems::ItemType::MULTIPLE): ...here.
+ (TuplePatternItems::TuplePatternItemType): Rename to...
+ (TuplePatternItems::ItemType): ...here.
+ : Handle renames.
+ * backend/rust-compile-pattern.cc: Likewise.
+ * typecheck/rust-hir-type-check-pattern.cc: Likewise.
+ * checks/errors/borrowck/rust-bir-builder-pattern.h: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * lex/rust-lex.cc (Lexer::parse_decimal_int_or_float): Remove
+ additional zero after empty floating point.
+ * parse/rust-parse-impl.h (Parser::left_denotation): Handle float with
+ empty floating point.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::generate_closure_function):
+ Fix reference to node.
+ * backend/rust-mangle.cc (struct V0Path): Modified to accept closures.
+ (v0_crate_path): Modified to accept closures.
+ (v0_closure): New function to mangle closures.
+ (v0_path): Modified to accept closures
+ * util/rust-mapping-common.h (UNKNOWN_NODEID): Change to UINT32_MAX.
+ (UNKNOWN_HIRID): Change to UINT32_MAX.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Move from here...
+ * ast/rust-ast-visitor.h: ... to here.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Move to header
+ file.
+ (TokenCollector::visit_items_joined_by_separator): Likewise.
+ (TokenCollector::visit_as_line): Likewise.
+ (TokenCollector::visit_items_as_lines): Likewise.
+ (TokenCollector::visit_items_as_block): Likewise.
+ * ast/rust-ast-collector.h: Add implementation.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Add visitor for
+ VariadicParam and remove Self parameter visitor from Function visit.
+ * expand/rust-cfg-strip.cc (CfgStrip::maybe_strip_self_param): Remove
+ function.
+ (CfgStrip::maybe_strip_trait_method_decl): Remove self parameter visit.
+ (CfgStrip::maybe_strip_function_params): Handle new function
+ parameters.
+ (CfgStrip::visit): Handle VariadicParam, SelfParam and FunctionParam.
+ * expand/rust-expand-visitor.cc (ExpandVisitor::expand_self_param):
+ Remove function.
+ (ExpandVisitor::expand_trait_method_decl): Do not visit self parameter.
+ (ExpandVisitor::visit): Add visit for VariadicParam, FunctionParam and
+ SelfParam.
+ (ExpandVisitor::expand_function_params): Visit parameters instead.
+ * expand/rust-expand-visitor.h: Update function prototypes.
+ * resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Update visit
+ with new parameters.
+ (ResolveTraitItems::visit): Likewise.
+ * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
+ Update visit functions with the new visitor functions for VariadicParam
+ SelfParam and FunctionParam.
+ * resolve/rust-early-name-resolver.h: Update function prototypes.
+ * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Update visitor
+ according to the new function parameter structures.
+ * ast/rust-ast-visitor.h: Update prototypes and add visitor virtual
+ functions for SelfParam, FunctionParam and VariadicParam.
+ * ast/rust-ast.cc (Function::Function): Move constructor in
+ implementation instead of header.
+ (Function::operator=): Likewise.
+ (Function::as_string): Update function with pointer dereference.
+ (VariadicParam::as_string): Likewise.
+ (TraitFunctionDecl::as_string): Likewise.
+ (TraitMethodDecl::as_string): Likewise.
+ (FunctionParam::accept_vis): Add function for visitor.
+ (SelfParam::accept_vis): Likewise.
+ (VariadicParam::accept_vis): Likewise.
+ (TraitItemFunc::TraitItemFunc): Move constructor to implementation
+ file.
+ (TraitItemFunc::operator=): Likewise.
+ (TraitItemMethod::TraitItemMethod): Likewise.
+ (TraitItemMethod::operator=): Likewise.
+ * ast/rust-item.h (class Function): Remove self optional member.
+ (class TraitMethodDecl): Likewise.
+ (class TraitFunctionDecl): Likewise.
+ (class Param): Add abstract parameter class.
+ (class SelfParam): Inherit from Param and remove parameter common
+ members.
+ (class FunctionParam): Likewise.
+ (class VariadicParam): Likewise.
+ (struct Visibility): Move structure declaration.
+ (class VisItem): Likewise.
+ * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
+ a self parameter check during AST validation.
+ * checks/errors/rust-ast-validation.h: Add function prototype.
+ * expand/rust-derive-clone.cc (DeriveClone::clone_fn): Update function
+ constructor.
+ * hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_self): Rework
+ function for the new parameters.
+ (ASTLoweringBase::visit): Add visit functions for VariadicParam,
+ FunctionParam and SelfParam.
+ * hir/rust-ast-lower-base.h: Update function prototypes.
+ * parse/rust-parse-impl.h (Parser::parse_function): Update function
+ according to new function representation.
+ (Parser::parse_function_param): Return vector of abstract param instead
+ of FunctionParam.
+ (Parser::parse_method): Update according to new representation.
+ (Parser::parse_trait_item): Likewise.
+ (Parser::parse_self_param): Error out with
+ self pointers and prevent the lexer from eating regular function
+ parameters. Update return type.
+ * parse/rust-parse.h: Update function return types.
+ * ast/rust-ast-collector.h: Add VariadicParam visit prototype.
+ * ast/rust-ast.h (struct Visibility): Move struct declaration.
+ (class VisItem): Likewise.
+ * ast/rust-expr.h: Update included files.
+ * checks/errors/rust-feature-gate.h: Add visitor functions for
+ SelfParam, FunctionParam and VariadicParam.
+ * expand/rust-cfg-strip.h: Update function prototypes.
+ * expand/rust-derive.h: Likewise.
+ * hir/rust-ast-lower-implitem.h: Handle special arguments.
+ * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
+ * metadata/rust-export-metadata.cc (ExportContext::emit_function):
+ Likewise.
+ * resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Add visitor
+ functions.
+ * resolve/rust-ast-resolve-base.h: Update prototypes.
+ * resolve/rust-ast-resolve-stmt.h: Handle new parameter kind.
+ * resolve/rust-default-resolver.cc (DefaultResolver::visit): Likewise.
+ * resolve/rust-default-resolver.h: Update prototype.
+ * util/rust-attributes.cc (AttributeChecker::visit): Add visitor
+ functions for SelfParam and VariadicParam.
+ * util/rust-attributes.h: Add visit prototypes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
+ check for additional named argument as well as variadic argument's
+ position.
+ * checks/errors/rust-ast-validation.h: Add visit function prototype for
+ external functions.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-visitor.cc (ContextualASTVisitor::visit): Push the new
+ trait context when visiting a trait.
+ * ast/rust-ast-visitor.h: Add visit function prototype and TRAIT
+ context.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Change
+ reported error location to the lifetime location.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Check if there is
+ a label before visit.
+ * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Emit an
+ error when a label has a forbidden name.
+ * checks/errors/rust-ast-validation.h: Add function prototype.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-expr.h (class BreakExpr): Change Lifetime to LoopLabel.
+ * hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Lower lifetime
+ inside the label instead.
+ * resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Resolve the
+ inner lifetime.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * lex/rust-lex.cc (Lexer::parse_raw_identifier): Use const value.
+ * parse/rust-parse-impl.h (Parser::parse_simple_path_segment):
+ Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * lex/rust-lex.cc (RS_TOKEN): Remove local map.
+ (RS_TOKEN_KEYWORD): Likewise.
+ (Lexer::classify_keyword): Change call to utils.
+ * util/rust-keyword-values.cc (get_keywords): Add init function.
+ (RS_TOKEN_KEYWORD): Call to X macro.
+ * util/rust-keyword-values.h: Change from set to a map.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * checks/errors/rust-ast-validation.cc (RS_TOKEN): Remove locale set.
+ (RS_TOKEN_KEYWORD): Likewise.
+ (ASTValidation::visit): Change keyword set call to the one from utils.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Make-lang.in: Add rust-keyword-values.cc to the list.
+ * util/rust-keyword-values.cc: New file.
+ * util/rust-keyword-values.h: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-attribute-values.h (RUST_ATTRIBUTES_VALUE_H): Remove old
+ header guard.
+ (RUST_ATTRIBUTE_VALUES_H): Add new one.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * checks/errors/rust-ast-validation.cc (RS_TOKEN): Add keyword set.
+ (RS_TOKEN_KEYWORD): Likewise.
+ (ASTValidation::visit): Add validation on lifetime visit.
+ * checks/errors/rust-ast-validation.h: Add function prototype.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-item.h
+ (class Method): Remove.
+ (Function::self_param): New.
+ (Function::has_self_param): New.
+ (Function::Function): Initialize self_param.
+ (Function::operator=): Likewise.
+ (Function::get_self_param): New.
+ * ast/rust-ast.cc
+ (Method::as_string): Remove.
+ (Method::accept_vis): Remove.
+ * ast/rust-ast-collector.cc
+ (TokenCollector::visit):
+ Remove AST::Method visitor, handle self_param in AST::Function visitor.
+ * ast/rust-ast-collector.h
+ (TokenCollector::visit): Remove AST::Method visitor.
+ * ast/rust-ast-full-decls.h (class Method): Remove.
+ * ast/rust-ast-visitor.h
+ (ASTVisitor::visit): Remove AST::Method visitor.
+ (DefaultASTVisitor::visit): Likewise.
+ * ast/rust-ast-visitor.cc
+ (DefaultASTVisitor::visit):
+ Remove AST::Method visitor, handle self_param in AST::Function visitor.
+ * checks/errors/rust-feature-gate.cc
+ (FeatureGate::visit): Remove AST::Method visitor.
+ * checks/errors/rust-feature-gate.h
+ (FeatureGate::visit): Likewise..
+ * expand/rust-cfg-strip.cc
+ (CfgStrip::visit):
+ Remove AST::Method visitor, handle self_param in AST::Function visitor.
+ * expand/rust-cfg-strip.h
+ (CfgStrip::visit): Remove AST::Method visitor.
+ * expand/rust-derive-clone.cc
+ (DeriveClone::clone_fn): Return AST::Function instead of AST::Method.
+ * expand/rust-derive.h (DeriveVisitor::visit): Remove AST::Method visitor.
+ * expand/rust-expand-visitor.cc
+ (ExpandVisitor::visit):
+ Remove AST::Method visitor, handle self_param in AST::Function visitor.
+ * expand/rust-expand-visitor.h:
+ (ExpandVisitor::visit): Remove AST::Method visitor.
+ * hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
+ * hir/rust-ast-lower-base.h (ASTLoweringBase::visit): Likewise.
+ * hir/rust-ast-lower-implitem.h
+ (ASTLowerImplItem::visit):
+ Remove AST::Method visitor, handle self_param in AST::Function visitor.
+ * parse/rust-parse-impl.h: Include optional.h.
+ (Parser::parse_function): Adjust AST::Function construction.
+ (Parser::parse_inherent_impl_function_or_method):
+ Construct AST::Function instead of AST::Method,
+ adjust AST::Function construction.
+ (Parser::parse_trait_impl_function_or_method): Likewise.
+ (Parser::parse_method):
+ Return std::unique_ptr<AST::Function> instead of AST::Method.
+ * parse/rust-parse.h
+ (Parser::parse_method): Likewise.
+ * resolve/rust-ast-resolve-base.cc
+ (ResolverBase::visit): Remove AST::Method visitor.
+ * resolve/rust-ast-resolve-base.h
+ (ResolverBase::visit): Likewise.
+ * resolve/rust-ast-resolve-implitem.h
+ (ResolveToplevelImplItem::visit): Likewise.
+ * resolve/rust-ast-resolve-item.cc
+ (ResolveItem::visit): Remove AST::Method visitor,
+ handle self_param in AST::Function visitor.
+ * resolve/rust-ast-resolve-item.h
+ (ResolveItem::visit): Remove AST::Method visitor.
+ * resolve/rust-default-resolver.cc
+ (DefaultResolver::visit): Remove AST::Method visitor.
+ * resolve/rust-default-resolver.h
+ (DefaultResolver::visit): Likewise.
+ * resolve/rust-early-name-resolver.cc
+ (EarlyNameResolver::visit): Remove AST::Method visitor,
+ handle self_param in AST::Function visitor.
+ * resolve/rust-early-name-resolver.h
+ (EarlyNameResolver::visit): Remove AST::Method visitor.
+ * resolve/rust-toplevel-name-resolver-2.0.cc
+ (TopLevel::visit): Likewise.
+ * resolve/rust-toplevel-name-resolver-2.0.h
+ (TopLevel::visit): Likewise.
+ * util/rust-attributes.cc
+ (AttributeChecker::visit): Likewise.
+ * util/rust-attributes.h
+ (AttributeChecker::visit): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_named_function_param): Add
+ new parsing ability.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.cc (ExternalFunctionItem::as_string): Adapt as_string
+ function to the new ast representation.
+ (NamedFunctionParam::as_string): Likewise.
+ * ast/rust-item.h: Add a function to test whether a FunctionParam has
+ a name pattern.
+ * expand/rust-cfg-strip.cc (CfgStrip::visit): Adapt cfg strip visitor
+ for the new variadic arguments.
+ * hir/rust-ast-lower-extern.h: Adapt lowering to the new variadic
+ function representation.
+ * metadata/rust-export-metadata.cc (ExportContext::emit_function):
+ Change call to constructor.
+ * parse/rust-parse-impl.h (Parser::parse_named_function_param): Change
+ NamedFunctionParam parsing to accomodate new variadic representation.
+ (Parser::parse_external_item): Change external item parsing to use the
+ new NamedFunctionParam variadics.
+ * parse/rust-parse.h: Add new parsing function prototypes.
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Rework token
+ collection to take into account variadic parameters.
+ * ast/rust-ast-visitor.cc: Likewise.
+ * expand/rust-expand-visitor.cc (ExpandVisitor::visit): Change function
+ bound to avoid getting the type of a variadic parameter.
+ * resolve/rust-ast-resolve-item.cc (ResolveExternItem::visit):
+ Likewise.
+ * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
+ Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-item.h (class NamedFunctionParam): Add variadic boolean and
+ another constructor.
+ * hir/rust-ast-lower-extern.h: Avoid last parameter when variadic.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-item.h: Add a getter to check if a given function is
+ variadic.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_function_param): Parse
+ variadic functions.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-item.h (class FunctionParam): Add some informations to
+ function parameters in order to be able to store variadic argument as
+ a function parameter.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Adapt
+ the call to the new visit functions.
+ (ASTValidation::check): Launch the parent class visitor root function.
+ * checks/errors/rust-ast-validation.h (class ASTValidation): Inherit
+ from the contextual visitor.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-visitor.cc (ContextualASTVisitor::visit): Add multiple
+ context saving calls.
+ * ast/rust-ast-visitor.h (class DefaultASTVisitor): Make visit
+ functions virtual.
+ (class ContextualASTVisitor): Add a stack like container for the
+ current context chain.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Make-lang.in: Add the new visitor object file.
+ * ast/rust-ast-visitor.h (class DefaultASTVisitor): Create the default
+ visitor class.
+ * ast/rust-ast.h: Add a new reference getter for visitor pattern.
+ * ast/rust-ast-visitor.cc: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h: Add some missing mutable reference getters.
+ * ast/rust-expr.h: Likewise.
+ * ast/rust-item.h: Likewise.
+ * ast/rust-path.h: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Check for presence
+ of a type and use the default value instead of the type.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * checks/errors/rust-ast-validation.cc (ASTValidation::check): Launch
+ check over the whole given crate.
+ (ASTValidation::visit): Implement visitor for some members of the ast.
+ * checks/errors/rust-ast-validation.h: Update some prototype according
+ to implemented visitor functions. Also add a context tracker.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust-session-manager.cc (Session::compile_crate): Add call to ast
+ validation.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * lang.opt: Add the new compile options and update the enum values.
+ * rust-session-manager.h (struct CompileOptions): Add the new steps to
+ the enumeration.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Make-lang.in: Add the new object file the list.
+ * checks/errors/rust-ast-validation.cc: New file.
+ * checks/errors/rust-ast-validation.h: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-cfg-strip.cc (CfgStrip::visit): Add expr value check.
+ * expand/rust-expand-visitor.cc (ExpandVisitor::visit): Likewise.
+ * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
+ Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h: Move implementation from here...
+ * ast/rust-ast.cc (SingleASTNode::SingleASTNode): ...to here.
+ (SingleASTNode::operator=): ...and here...
+ (SingleASTNode::accept_vis): ...and here...
+ (SingleASTNode::is_error): ...and here...
+ (SingleASTNode::as_string): ...also here.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h: Add override specifier.
+ * ast/rust-item.h: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-macro-invoc-lexer.cc (MacroInvocLexer::split_current_token):
+ Add implementation for multiple token split.
+ * expand/rust-macro-invoc-lexer.h: Add function prototype.
+ * expand/rust-proc-macro-invoc-lexer.cc (ProcMacroInvocLexer::split_current_token):
+ Add implementation for 2+ token split for procedural macros.
+ * expand/rust-proc-macro-invoc-lexer.h: Add function prototype.
+ * lex/rust-lex.cc (Lexer::split_current_token): Add function to split a
+ token in multiple other tokens.
+ * lex/rust-lex.h: Add function prototype for split_current_token.
+ * parse/rust-parse-impl.h (Parser::left_denotation): Handle float tuple
+ index identified as a float literal.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * hir/rust-hir-dump.cc (Dump::visit): Remove obsolete member.
+ * hir/tree/rust-hir-expr.h (class BorrowExpr): Remove obsolete member.
+ * hir/tree/rust-hir.cc (BorrowExpr::as_string): Remove obsolete member.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Fix typo.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-compile-expr.cc
+ (patterns_mergeable): Remove.
+ (struct PatternMerge): Remove.
+ (sort_tuple_patterns): Remove.
+ (simplify_tuple_match): Remove.
+ (CompileExpr::visit): Modify compilation of MatchExpr.
+ * backend/rust-compile-pattern.cc
+ (CompilePatternCaseLabelExpr::visit): Replace with...
+ (CompilePatternCheckExpr::visit): ...this.
+ * backend/rust-compile-pattern.h
+ (class CompilePatternCaseLabelExpr): Replace with...
+ (class CompilePatternCheckExpr): ...this.
+ * backend/rust-compile-type.cc
+ (TyTyResolveCompile::get_implicit_enumeral_node_type):
+ Make enumeral type equivalent to isize.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-base.cc (get_attributes): Add documentation for
+ indices 3 and 4.
+ (get_trait_name): Add documentation for index 1.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Make-lang.in: Add gcc/rust/backend/rust-compile-proc-macro.cc to the
+ list of file to compile.
+ * backend/rust-compile.cc (attribute_array): Move to
+ rust-compile-proc-macro.cc
+ (derive_proc_macro): Likewise.
+ (bang_proc_macro): Likewise.
+ (attribute_proc_macro): Likewise.
+ (proc_macro_payload): Likewise.
+ (proc_macro): Likewise.
+ (proc_macro_buffer): Likewise.
+ (entrypoint): Likewise.
+ (proc_macro_array): Likewise.
+ (CompileCrate::add_proc_macro_symbols): Likewise.
+ * backend/rust-compile-proc-macro.cc: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile.cc (proc_macro_buffer): Update type builder with
+ array length information.
+ (proc_macro_array): Update type initializer with array length
+ information.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile.cc (build_attribute_array): Renamed from...
+ (attribute_array): ...to attribute array.
+ (build_derive_proc_macro): Likewise from...
+ (derive_proc_macro): ... to derive_proc_macro.
+ (build_bang_proc_macro): Likewise from...
+ (bang_proc_macro): ...to bang_proc_macro.
+ (build_attribute_proc_macro): Likewise from...
+ (attribute_proc_macro): ... to attribute_proc_macro.
+ (build_proc_macro_payload): Likewise from...
+ (proc_macro_payload): to proc_macro_payload.
+ (build_proc_macro): Likewise from...
+ (proc_macro): ...to proc_macro.
+ (build_proc_macro_buffer): Likewise from...
+ (proc_macro_buffer): ... to proc_macro_buffer.
+ (build_entrypoint): Likewise from...
+ (entrypoint): ...to entrypoint.
+ (init_derive_proc_macro): Renamed to it's shorter counterpart.
+ (init_attribute_proc_macro): Likewise.
+ (init_bang_proc_macro): Likewise.
+ (init_proc_macro): Likewise.
+ (initialize_proc_macro_array): Likewise.
+ (proc_macro_array): Likewise.
+ (CompileCrate::add_proc_macro_symbols): Update function calls.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-base.h: Make static function address_expression
+ public.
+ * backend/rust-compile.cc (CompileCrate::add_proc_macro_symbols): Add
+ new global variable in export function.
+ (build_bang_proc_macro): Add a function to build the bang proc macro
+ structure type.
+ (build_proc_macro): Add a function to build the proc macro structure
+ type.
+ (build_proc_macro_payload): Add a function to build the proc macro
+ union used in proc macro structures.
+ (init_derive_proc_macro): Add a function to initialize custom derive
+ proc macros.
+ (init_attribute_proc_macro): Add a function to initialize attribute
+ proc macros.
+ (init_bang_proc_macro): Add a function to initialize bang proc macros.
+ (init_proc_macro): Add a function to initialize proc macro structures.
+ (initialize_proc_macro_array): Add a function to initialize the proc
+ macro buffer array.
+ (CompileCrate::add_proc_macro_symbols): Add call to the new functions
+ to correctly initialize proc macros as well as their entrypoint.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-proc-macro.cc (CustomDeriveProcMacro::CustomDeriveProcMacro):
+ Remove constant string declaration.
+ (load_macros_array): Add call to the new generation function.
+ (generate_proc_macro_decls_symbol): Add a new function to generate the
+ entrypoint symbol name from the stable crate id.
+ (PROC_MACRO_DECLS_FMT_ARGS):
+ New macro to keep formats arguments in sync between each call.
+ * expand/rust-proc-macro.h (generate_proc_macro_decls_symbol): Add
+ function prototype.
+ * rust-system.h: Include <iomanip>.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile.cc (build_attribute_array): Add a function to
+ build the attribute array type.
+ (build_derive_proc_macro): Add a function to build the derive proc
+ macro type.
+ (build_bang_proc_macro): Add a function to build the bang proc macro
+ type.
+ (build_attribute_proc_macro): Add a function to build the attribute
+ proc macro type.
+ (build_proc_macro): Add a function to build the proc macro tagged union
+ type.
+ (build_proc_macro_buffer): Add a function to build the proc macro
+ buffer type.
+ (build_entrypoint): Add a function to build the proc macro entrypoint
+ type.
+ * backend/rust-compile.h: Add function prototype.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-context.h: Add getters.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::setup_fndecl):
+ Make the function non static in order to be able to access the
+ compile context. Also add the whole proc macro infomrmation
+ collection.
+ (get_attributes): Add a function to retrieve the different
+ attributes from a derive procedural macro definition attribute.
+ (get_trait_name): Add a function to retrieve the trait name from
+ a derive procedural macro definition attribute.
+ * backend/rust-compile-base.h: Add function prototypes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::setup_abi_options):
+ Reformat uncorrectly formatted comments.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-context.h (struct CustomDeriveInfo): Add
+ new derive procedural macro metadata information holder for
+ mappings.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h: Add const getter.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-base.cc (handle_proc_macro_common): Add
+ new attribute "gccrs_proc_macro" to all procedural macro
+ functions.
+ (get_abi): Add a function to retrieve the correct ABI depending
+ on wether the function is a proc macro or not.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::setup_fndecl):
+ Add proc macro handlers dispatch.
+ (handle_proc_macro_common): Add a function for common behavior
+ between all kinds of proc macros.
+ * backend/rust-compile-base.h: Add function prototypes.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::setup_loop): Move.
+ (ExprStmtBuilder::get_label_ctx): Move.
+ (ExprStmtBuilder::get_unnamed_loop_ctx): Moved.
+ (ExprStmtBuilder::visit): BIR improvements.
+ * checks/errors/borrowck/rust-bir-builder-expr-stmt.h: Refactor.
+ * checks/errors/borrowck/rust-bir-builder-internal.h (class LifetimeResolver):
+ Refactor.
+ (struct BuilderContext): Move.Refactor.
+ (optional_from_ptr): Map on null ptr.
+ * checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h (class LazyBooleanExprBuilder):
+ Refactor.
+ * checks/errors/borrowck/rust-bir-builder-pattern.h: Refactor.
+ * checks/errors/borrowck/rust-bir-builder-struct.h (class StructBuilder): Refactor.
+ * checks/errors/borrowck/rust-bir-builder.h: Refactor.
+ * checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Refactor.
+ (Dump::visit): Refactor.
+ (Dump::visit_place): Refactor.
+ (Dump::visit_move_place): Refactor.
+ (Dump::visit_lifetime): Refactor.
+ * checks/errors/borrowck/rust-bir-dump.h: Refactor.
+ * checks/errors/borrowck/rust-bir-place.h: Refactor.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * checks/errors/borrowck/dev-notes.md: New file.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * checks/errors/borrowck/bir-design-notes.md: New file.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit): Use goto.
+ * checks/errors/borrowck/rust-bir-builder-internal.h: Explicit goto.
+ * checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h: Explicit goto.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit): Continue.
+ (ExprStmtBuilder::setup_loop): Continue.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * checks/errors/borrowck/rust-bir-dump.cc (simplify_cfg): Detech infinite loops.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit): Push ctx.
+ (ExprStmtBuilder::setup_loop): Common loop infractructure setup.
+ * checks/errors/borrowck/rust-bir-builder-expr-stmt.h: Loop ctx.
+ * checks/errors/borrowck/rust-bir-builder-internal.h (struct BuilderContext): Loop ctx.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Improve jumps dump.
+ (Dump::visit): Improve jumps dump.
+ * checks/errors/borrowck/rust-bir-dump.h (class Dump): Improve jumps dump.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * checks/errors/borrowck/rust-bir-dump.cc (simplify_cfg): Simplify cfg logic.
+ (Dump::go): Run simplify cfg.
+ * checks/errors/borrowck/rust-bir-dump.h: Option to simplify cfg.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Use new print.
+ (print_comma_separated): Comma separation print.
+ (Dump::visit): Use new print.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * Make-lang.in: Build BIR dump.
+ * checks/errors/borrowck/rust-borrow-checker.cc (mkdir_wrapped): Cross-platform mkdir.
+ (dump_function_bir): Save dump to file.
+ (BorrowChecker::go): Run dump during borrowck.
+ * checks/errors/borrowck/rust-bir-dump.cc: New file.
+ * checks/errors/borrowck/rust-bir-dump.h: New file.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * Make-lang.in: Compile BIR expr visitor.
+ * checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::go): Use BIR builder.
+ * rust-session-manager.cc (Session::compile_crate): Run borrow checker.
+ * checks/errors/borrowck/rust-bir-builder-expr-stmt.cc: New file.
+ * checks/errors/borrowck/rust-bir-builder-expr-stmt.h: New file.
+ * checks/errors/borrowck/rust-bir-builder-internal.h: New file.
+ * checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h: New file.
+ * checks/errors/borrowck/rust-bir-builder-pattern.h: New file.
+ * checks/errors/borrowck/rust-bir-builder-struct.h: New file.
+ * checks/errors/borrowck/rust-bir-builder.h: New file.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * checks/errors/borrowck/rust-borrow-checker.cc: Include to compile new code.
+ * checks/errors/borrowck/rust-bir-place.h: New file.
+ * checks/errors/borrowck/rust-bir-visitor.h: New file.
+ * checks/errors/borrowck/rust-bir.h: New file.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * lang.opt: CLI flag.
+ * rust-session-manager.cc (Session::compile_crate): Guard execution.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::BorrowChecker): Opt dump.
+ (BorrowChecker::go): Opt dump.
+ * checks/errors/borrowck/rust-borrow-checker.h (class BorrowChecker): Opt dump.
+ * lang.opt: Add compile until borrowcheck.
+ * rust-session-manager.cc (Session::enable_dump): Add BIR.
+ (Session::compile_crate): Handle new options.
+ * rust-session-manager.h (struct CompileOptions): Add BIR.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * Make-lang.in: Build borrowck.
+ * checks/errors/borrowck/rust-borrow-checker.cc: New file.
+ * checks/errors/borrowck/rust-borrow-checker.h: New file.
+ * checks/errors/borrowck/rust-function-collector.h: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-pattern.h: Add override modifier to overriding methods.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-item.h: Add a new constructor for const with no value
+ expression.
+ * parse/rust-parse-impl.h (Parser::parse_const_item): Allow const with
+ no expression value.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * hir/tree/rust-hir-path.h: Avoid copy in getter.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::visit): Rename method.
+ * checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Rename method.
+ * checks/errors/rust-const-checker.cc (ConstChecker::visit): Rename method.
+ * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Rename method.
+ * hir/rust-hir-dump.cc (Dump::visit): Rename method.
+ * hir/tree/rust-hir-expr.h: Rename method.
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Rename method.
+ * typecheck/rust-tyty.h: Rename method.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * backend/rust-compile-base.cc: Rename method.
+ * backend/rust-compile-expr.cc (sort_tuple_patterns): Rename method.
+ * backend/rust-compile-pattern.cc (CompilePatternCaseLabelExpr::visit): Rename method.
+ (CompilePatternBindings::visit): Rename method.
+ (CompilePatternLet::visit): Rename method.
+ * backend/rust-compile-stmt.cc (CompileStmt::visit): Rename method.
+ * backend/rust-compile-var-decl.h: Rename method.
+ * hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::translate): Rename method.
+ * hir/rust-hir-dump.cc (Dump::visit): Rename method.
+ * hir/tree/rust-hir-path.h: Rename method.
+ * hir/tree/rust-hir-pattern.h: Rename method.
+ * hir/tree/rust-hir.h: Rename method.
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::Resolve): Rename method.
+ (TypeCheckPattern::visit): Rename method.
+ (ClosureParamInfer::visit): Rename method.
+ * typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Rename method.
+ * util/rust-hir-map.cc (Mappings::insert_hir_pattern): Rename method.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * hir/tree/rust-hir-expr.h: Add getter for name.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Implement for tuple pat.
+ * resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit): Implement for tupple pat.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * hir/tree/rust-hir-path.h: Avoid copy in getter.
+ * hir/tree/rust-hir-pattern.h: Avoid copy in getter.
+ * hir/tree/rust-hir.h: Avoid copy in getter.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-ast-resolve-implitem.h
+ (ResolveToplevelImplItem::go): Take AssociatedItem as parameter.
+ (ResolveTopLevelTraitItems::go): Likewise.
+ * resolve/rust-ast-resolve-item.cc
+ (ResolveTraitItems::go): Likewise.
+ (ResolveItem::resolve_impl_item): Likewise.
+ (ResolveImplItems::go): Likewise.
+ * resolve/rust-ast-resolve-item.h
+ (ResolveTraitItems::go): Likewise.
+ (ResolveItem::resolve_impl_item): Likewise.
+ (ResolveImplItems::go): Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/rust-ast-lower-implitem.h
+ (ASTLoweringImplItem::translate): Take AssociatedItem as parameter.
+ (ASTLoweringTraitItem::translate): Likewise.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::visit): Bail on labelled block.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Add loop ctx.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Resolve using loop logic.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * hir/rust-ast-lower.cc (ASTLoweringBlock::visit): Call loop lowering and add it to constr.
+ * hir/tree/rust-hir-expr.h (class LoopLabel): Move before BlockExpr and add to BlockExpr.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * ast/rust-ast-builder.cc (AstBuilder::block): Add label arg to constructor call.
+ * ast/rust-expr.h (class LoopLabel): Move before BlockExpr.
+ (class BlockExpr): Add LoopLabel member.
+ * expand/rust-derive-clone.cc (DeriveClone::clone_fn): Add label arg to constructor call.
+ * parse/rust-parse-impl.h (Parser::parse_block_expr): Add label parameter.
+ (Parser::parse_labelled_loop_expr): Add label arg to constructor call.
+ * parse/rust-parse.h: Add label arg to constructor call.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast.h
+ (class AssociatedItem):
+ New, based on TraitItem, InherentImplItem, and TraitImplItem classes.
+ (class TraitItem): Inherit from AssociatedItem.
+ (class InherentImplItem): Likewise.
+ (class TraitImplItem): Likewise.
+ * ast/rust-item.h
+ (class Method): Update cloning functions.
+ (class Function): Likewise.
+ (class TypeAlias): Likewise.
+ (class ConstantItem): Likewise.
+ (class TraitItemFunc): Likewise.
+ (class TraitItemMethod): Likewise.
+ (class TraitItemConst): Likewise.
+ (class TraitItemType): Likewise.
+ * ast/rust-macro.h
+ (class MacroInvocation): Likewise.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * backend/rust-mangle.cc (v0_identifier): Fix broken encoding.
+ (v0_scope_path): Modify paramter.
+ (v0_path): Fix namespace for modules.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_closure_expr_pratt): Fix
+ closure parsing function to handle consecutive parameter lists.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-macro.h: Add PATH fragment to follow set restrictions.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::is_macro_rules_def): Add a function
+ that checks tokens given by the lexer represents an accurate macro
+ definition. This will reduce code duplication.
+ (Parser::parse_item): Replace condition with call to new checking
+ function.
+ (Parser::parse_stmt): Likewise.
+ * parse/rust-parse.h: Add function prototype for is_macro_rules_def.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_expr): Fix range from expr.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_item): Relax constraints
+ around default identifier at item scope to accept "default" macros.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_path_expr_segment): Accept
+ left shift tokens in order to let generic parsing function split the
+ token.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast.h
+ (Pattern::get_pattern_node_id): Rename to...
+ (Pattern::get_node_id): ...here.
+ * ast/rust-macro.h
+ (MacroInvocation::get_pattern_node_id): Rename to...
+ (MacroInvocation::get_node_id): ...here.
+ * ast/rust-path.h
+ (PathInExpression::get_pattern_node_id): Remove.
+ (QualifiedPathInExpression::get_pattern_node_id): Remove.
+ * ast/rust-pattern.h
+ (LiteralPattern::get_pattern_node_id): Remove.
+ (IdentifierPattern::get_pattern_node_id): Remove.
+ (WildcardPattern::get_pattern_node_id): Remove.
+ (RestPattern::get_pattern_node_id): Rename to...
+ (RestPattern::get_node_id): ...here.
+ (RangePattern::get_pattern_node_id): Remove.
+ (ReferencePattern::get_pattern_node_id): Remove.
+ (StructPattern::get_pattern_node_id): Remove.
+ (TupleStructPattern::get_pattern_node_id): Remove.
+ (TuplePattern::get_pattern_node_id): Remove.
+ (GroupedPattern::get_pattern_node_id): Remove.
+ (SlicePattern::get_pattern_node_id): Remove.
+ (AltPattern::get_pattern_node_id): Remove.
+ * resolve/rust-early-name-resolver.cc
+ (EarlyNameResolver::visit):
+ Use get_node_id instead of get_pattern_node_id.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_expr): Add comma delimiter.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_visibility): Relax constraints
+ over public visibility return condition in order to accept pub unit
+ types.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * typecheck/rust-tyty.cc (BaseType::is_unit): Refactor.
+ (BaseType::satisfies_bound): Refactor.
+ (BaseType::get_root): Refactor.
+ (BaseType::destructure): Refactor.
+ (BaseType::monomorphized_clone): Refactor.
+ (BaseType::is_concrete): Refactor.
+ (InferType::InferType): Refactor.
+ (InferType::clone): Refactor.
+ (InferType::apply_primitive_type_hint): Refactor.
+ (StructFieldType::is_equal): Refactor.
+ (ADTType::is_equal): Refactor.
+ (handle_substitions): Refactor.
+ (ADTType::handle_substitions): Refactor.
+ (TupleType::TupleType): Refactor.
+ (TupleType::is_equal): Refactor.
+ (TupleType::handle_substitions): Refactor.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * typecheck/rust-tyty.cc (InferType::InferType): Use static constant for kind information.
+ (ErrorType::ErrorType): Use static constant for kind information.
+ (TupleType::TupleType): Use static constant for kind information.
+ (BoolType::BoolType): Use static constant for kind information.
+ (IntType::IntType): Use static constant for kind information.
+ (UintType::UintType): Use static constant for kind information.
+ (FloatType::FloatType): Use static constant for kind information.
+ (USizeType::USizeType): Use static constant for kind information.
+ (ISizeType::ISizeType): Use static constant for kind information.
+ (CharType::CharType): Use static constant for kind information.
+ (ReferenceType::ReferenceType): Use static constant for kind information.
+ (PointerType::PointerType): Use static constant for kind information.
+ (ParamType::ParamType): Use static constant for kind information.
+ (StrType::StrType): Use static constant for kind information.
+ (NeverType::NeverType): Use static constant for kind information.
+ (PlaceholderType::PlaceholderType): Use static constant for kind information.
+ * typecheck/rust-tyty.h: Add static kind information to all TyTy classes.
+ Create safe cast and check methods.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_type_param_bound): Add missing
+ case for lifetime switch.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * lex/rust-token.cc (Token::as_string): Update function to output scope
+ resolution tokens correctly.
+ * parse/rust-parse-impl.h (Parser::parse_generic_param): Change call to
+ as_string.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * backend/rust-compile-context.h: Modify declaration.
+ * backend/rust-mangle.cc (struct V0Path): New struct.
+ (v0_path): New function.
+ (legacy_mangle_name): Take Context as argument.
+ (v0_numeric_prefix): Fix type strings.
+ (v0_complex_type_prefix): New function.
+ (v0_add_integer_62): Deleted
+ (v0_integer_62): New function.
+ (v0_add_opt_integer_62): Deleted.
+ (v0_opt_integer_62): New function.
+ (v0_add_disambiguator): Deleted.
+ (v0_disambiguator): New function.
+ (v0_type_prefix): Support more types.
+ (v0_generic_args): New function.
+ (v0_add_identifier): Deleted.
+ (v0_identifier): New function.
+ (v0_type_path): New function.
+ (v0_function_path): New function.
+ (v0_scope_path): New function.
+ (v0_crate_path): New function.
+ (v0_inherent_or_trait_impl_path): New function.
+ (v0_mangle_item): Use v0_path.
+ (Mangler::mangle_item): Take Context as argument.
+ * backend/rust-mangle.h (class Context): Add forward declaration.
+ * hir/tree/rust-hir-item.h: Fix include.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/tree/rust-hir-pattern.h
+ (TupleStructItems::clone_tuple_struct_items_impl): Rename to...
+ (TupleStructItems::clone_tuple_items_impl): ...here.
+ (TupleStructItemsNoRange::clone_tuple_struct_items_impl): Rename to...
+ (TupleStructItemsNoRange::clone_tuple_items_impl): ...here.
+ (TupleStructItemsRange::clone_tuple_struct_items_impl): Rename to...
+ (TupleStructItemsRange::clone_tuple_items_impl): ...here.
+ (TuplePatternItems::clone_tuple_pattern_items_impl): Rename to...
+ (TuplePatternItems::clone_tuple_items_impl): ...here.
+ (TuplePatternItemsMultiple::clone_tuple_pattern_items_impl): Rename to...
+ (TuplePatternItemsMultiple::clone_tuple_items_impl): ...here.
+ (TuplePatternItemsRanged::clone_tuple_pattern_items_impl): Rename to...
+ (TuplePatternItemsRanged::clone_tuple_items_impl): ...here.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/tree/rust-hir-pattern.h
+ (TuplePatternItems::get_pattern_type): Rename to...
+ (TuplePatternItems::get_item_type): ...here.
+ (TuplePatternItemsMultiple::get_pattern_type): Rename to...
+ (TuplePatternItemsMultiple::get_item_type): ...here.
+ (TuplePatternItemsRanged::get_pattern_type): Rename to...
+ (TuplePatternItemsRanged::get_item_type): ...here.
+ * backend/rust-compile-expr.cc: Adjust calls to renamed methods.
+ * backend/rust-compile-pattern.cc: Likewise.
+ * typecheck/rust-hir-type-check-pattern.cc: Likewise.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * backend/rust-compile-expr.cc (CompileExpr::visit): Merge 2 if clauses.
+ * backend/rust-compile-extern.h: Fix typo in comment.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * parse/rust-parse-impl.h: Add missing token consumption
+
+2024-01-16 Mohammed Rizan Farooqui <rizanfarooqui@gmail.com>
+
+ * expand/rust-macro-builtins.cc (MacroBuiltin::include_str_handler): Comment removed
+ (MacroBuiltin::env_handler): Comment removed
+ (MacroBuiltin::cfg_handler): Comment removed
+ (MacroBuiltin::line_handler): Comment removed
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * backend/rust-compile.cc (HIRCompileBase::coercion_site1): Fix wrong cast
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust-session-manager.cc (Session::expansion): Add early break on
+ error.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * util/rust-canonical-path.h: Add new segment kind for inherent impl.
+ * resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Use it.
+ * resolve/rust-ast-resolve-toplevel.h: Use it.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-expr.h: Fix spelling of "doesn't".
+ * backend/rust-compile-expr.cc: Fix spelling of "accessors".
+ * backend/rust-compile-implitem.h: Fix spelling of "normal".
+ * backend/rust-constexpr.cc: Fix spelling of "actual".
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * hir/rust-hir-dump.cc (Dump::debug): New.
+ (debug): New.
+ * hir/rust-hir-dump.h (debug): New.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * Make-lang.in: fixup formatting
+ * resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): remove old check
+ * rust-session-manager.cc (Session::compile_crate): call new lint
+ * resolve/rust-ast-verify-assignee.h: Removed.
+ * checks/errors/rust-readonly-check.cc: New file.
+ * checks/errors/rust-readonly-check.h: New file.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
+ Added ErrorCode & more fixit hints.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-block.h: remove HIR::ForLoopExpr
+ * backend/rust-compile-expr.h: likewise
+ * checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): likewise
+ * checks/errors/privacy/rust-privacy-reporter.h: likewise
+ * checks/errors/rust-const-checker.cc (ConstChecker::visit): likewise
+ * checks/errors/rust-const-checker.h: likewise
+ * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): likewise
+ * checks/errors/rust-unsafe-checker.h: likewise
+ * checks/lints/rust-lint-marklive.h: likewise
+ * hir/rust-ast-lower.cc (ASTLoweringExprWithBlock::visit): likewise
+ * hir/rust-hir-dump.cc (Dump::visit): likewise
+ * hir/rust-hir-dump.h: likewise
+ * hir/tree/rust-hir-expr.h (class ForLoopExpr): likewise
+ * hir/tree/rust-hir-full-decls.h (class ForLoopExpr): likewise
+ * hir/tree/rust-hir-visitor.h: likewise
+ * hir/tree/rust-hir.cc (ForLoopExpr::as_string): likewise
+ (ForLoopExpr::accept_vis): likewise
+ * typecheck/rust-hir-type-check-expr.h: likewise
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * backend/rust-compile-expr.cc (CompileExpr::visit): Fix typo in varIadic.
+ * backend/rust-compile-type.cc (TyTyResolveCompile::visit): Likewise.
+ * rust-backend.h (function_type_varadic): Rename into ...
+ (function_type_variadic): ... this.
+ * rust-gcc.cc (function_type_varadic): Rename into ...
+ (function_type_variadic): ... this.
+ * typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Likewise.
+ * typecheck/rust-tyty.h (is_varadic): Renamed into ...
+ (is_variadic): ... this.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::compile_function):
+ Fix typo in substitutions.
+ (HIRCompileBase::resolve_method_address): Likewise.
+ * backend/rust-compile-extern.h (CompileExternItem::visit):
+ Likewise.
+ * backend/rust-compile-implitem.cc (CompileTraitItem::visit):
+ Likewise.
+ * backend/rust-compile-intrinsic.cc (maybe_override_ctx):
+ Likewise.
+ * backend/rust-compile-item.cc (CompileItem::visit): Likewise.
+ * backend/rust-compile-resolve-path.cc
+ (HIRCompileBase::query_compile): Likewise.
+ * typecheck/rust-coercion.cc (TypeCoercionRules::do_coercion):
+ Likewise.
+ * typecheck/rust-hir-type-check-item.cc
+ (TypeCheckItem::ResolveImplBlockSelfWithInference): Likewise.
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit):
+ Likewise.
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
+ Likewise.
+ * typecheck/rust-tyty.cc (BaseType::has_subsititions_defined):
+ Renamed into ...
+ (BaseType::has_substitutions_defined): ... this.
+ (ADTType::is_equal): Fix typo in substitutions.
+ (handle_substitions): Likewise.
+ (FnType::is_equal): Likewise.
+ (FnType::handle_substitions): Likewise.
+ * typecheck/rust-tyty.h (has_subsititions_defined): Renamed into
+ ...
+ (has_substitutions_defined): ... this.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-compile-intrinsic.cc
+ (get_identifier): Add declaration.
+ (assume_handler): New.
+ (generic_intrinsics): Add assume_handler entry.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-gcc.cc
+ (Backend::wchar_type): Store static wchar tree.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h
+ (complex_type): Remove.
+ (complex_constant_expression): Remove.
+ (real_part_expression): Remove.
+ (imag_part_expression): Remove.
+ (complex_expression): Remove.
+ * rust-gcc.cc
+ (complex_type): Remove.
+ (complex_constant_expression): Remove.
+ (real_part_expression): Remove.
+ (imag_part_expression): Remove.
+ (complex_expression): Remove.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-gcc.cc
+ (namespace Backend):
+ Use namespace definition instead of qualified names.
+
+2024-01-16 liushuyu <liushuyu011@gmail.com>
+
+ * backend/rust-compile-intrinsic.cc: add `copy`
+ intrinsics and make `copy_nonoverlapping` handler more generic
+
+2024-01-16 liushuyu <liushuyu011@gmail.com>
+
+ * backend/rust-builtins.cc: add `expect` builtin definition.
+ * backend/rust-compile-intrinsic.cc: add `likely` and `unlikely`
+ intrinsics handler.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust_error_codes.def: Moved to...
+ * rust-error-codes.def: ...here...
+ * rust-diagnostics.h: ...and update references.
+
+2024-01-16 Guillaume Gomez <guillaume1.gomez@gmail.com>
+
+ * backend/rust-compile-intrinsic.cc: Simplify `make_unsigned_long_tree`
+ * rust-backend.h: Remove `integer_constant_expression`
+ * rust-gcc.cc: Remove `integer_constant_expression`
+
+2024-01-16 Dave Evans <dave@dmetwo.org>
+
+ * backend/rust-compile-pattern.cc (CompilePatternCaseLabelExpr::visit):
+ Add AltPattern visitor function
+ * backend/rust-compile-pattern.h:
+ Update CompilePatternCaseLabelExpr::visit(AltPattern&).
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
+ Update AltPattern visitor
+
+2024-01-16 Guillaume Gomez <guillaume1.gomez@gmail.com>
+
+ * backend/rust-compile-intrinsic.cc: Remove unused argument
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+ Added new error message, rich location and error code.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h
+ (class Backend): Convert to ...
+ (namespace Backend): ... namespace.
+ * rust-gcc.cc
+ (Backend::Backend): Rename to ...
+ (Backend::init): ... here.
+ (rust_get_backend): Remove.
+ * rust-session-manager.cc
+ (rust_get_backend): Remove.
+ (Session::init): Use Backend::init instead of rust_get_backend.
+ (Session::compile_crate):
+ Initialize Context without pointer to Backend.
+ * rust-session-manager.h
+ (Session::backend): Remove.
+ * backend/rust-compile-context.cc
+ (Context::Context): Remove pointer to Backend.
+ * backend/rust-compile-context.h
+ (class Context): Remove pointer to Backend, update function calls.
+ * backend/rust-compile-base.cc: Update function calls.
+ * backend/rust-compile-block.cc: Likewise.
+ * backend/rust-compile-expr.cc: Likewise.
+ * backend/rust-compile-extern.h: Likewise.
+ * backend/rust-compile-fnparam.cc: Likewise.
+ * backend/rust-compile-intrinsic.cc: Likewise.
+ * backend/rust-compile-item.cc: Likewise.
+ * backend/rust-compile-pattern.cc: Likewise.
+ * backend/rust-compile-resolve-path.cc: Likewise.
+ * backend/rust-compile-type.cc: Likewise.
+ * backend/rust-compile-var-decl.h: Likewise.
+ * backend/rust-compile.cc: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.cc (Attribute::check_cfg_predicate): Change raw
+ string to constexpr call.
+ (Attribute::separate_cfg_attrs): Likewise.
+ * backend/rust-compile-base.cc (should_mangle_item): Likewise.
+ (HIRCompileBase::setup_fndecl): Likewise.
+ (HIRCompileBase::handle_cold_attribute_on_fndecl): Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.cc (find_proc_macro_attribute):
+ Likewise.
+ * checks/errors/rust-unsafe-checker.cc (check_target_attr):
+ Likewise.
+ * expand/rust-cfg-strip.cc (fails_cfg): Likewise.
+ (fails_cfg_with_expand): Likewise.
+ (expand_cfg_attrs): Likewise.
+ * expand/rust-macro-builtins.cc: Likewise.
+ * hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_outer_attributes): Likewise.
+ (ASTLoweringBase::lower_macro_definition): Likewise.
+ * hir/rust-hir-dump.cc (Dump::visit): Likewise.
+ * parse/rust-parse-impl.h (Parser::parse_doc_comment): Likewise.
+ * parse/rust-parse.cc (extract_module_path): Likewise.
+ * resolve/rust-early-name-resolver.cc (is_macro_use_module):
+ Likewise.
+ (EarlyNameResolver::visit): Likewise.
+ * resolve/rust-toplevel-name-resolver-2.0.cc (is_macro_export):
+ Likwise.
+ * rust-session-manager.cc (Session::injection): Likewise.
+ * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options): Likewise.
+ * util/rust-attributes.cc (is_proc_macro_type): Likewise.
+ (AttributeChecker::check_attribute): Likewise.
+ (AttributeChecker::visit): Likewise.
+ * util/rust-hir-map.cc (Mappings::insert_macro_def): Likewise.
+ * util/rust-attribute-values.h: New file.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h
+ (Backend::Backend): New.
+ (Backend::~Backend): Remove.
+ (class Gcc_backend): Remove.
+ * rust-gcc.cc
+ (Gcc_backend::Gcc_backend): Rename to ...
+ (Backend::Backend): ... here.
+ (rust_get_backend): Construct Backend instead of Gcc_backend.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-proc-macro.cc (tokenstream_from_string): Change
+ linemap null pointer to the current linemap.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
+ Add proc macro definition insertion.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-hir-map.cc (Mappings::insert_derive_proc_macro_def):
+ Change the function body to fetch the node id from the macro
+ parameter.
+ (Mappings::insert_bang_proc_macro_def): Likewise.
+ (Mappings::insert_attribute_proc_macro_def): Likewise.
+ * util/rust-hir-map.h: Update the function's prototype by
+ removing the node id from the list of arguments.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
+ Add proc macro handle retrieval for attribute and derive proc macros.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-hir-map.cc (Mappings::lookup_derive_proc_macro_def):
+ Update function to accomodate new signature.
+ (Mappings::lookup_bang_proc_macro_def): Likewise.
+ (Mappings::lookup_attribute_proc_macro_def): Likewise.
+ * util/rust-hir-map.h: Update function signatures.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-macro-expand.h (struct MacroExpander): Update
+ lookup function prototypes.
+ * util/rust-hir-map.cc (Mappings::lookup_derive_proc_macro_invocation):
+ Update lookup function according to new signature.
+ (Mappings::lookup_bang_proc_macro_invocation): Likewise.
+ (Mappings::lookup_attribute_proc_macro_invocation): Likewise.
+ * util/rust-hir-map.h: Update function prototypes.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h
+ (Backend::write_export_data): Remove.
+ * rust-gcc.cc
+ (Backend::write_export_data): Remove.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h
+ (Backend::real_part_expression): Make non-virtual.
+ (Backend::imag_part_expression): Likewise.
+ (Backend::complex_expression): Likewise.
+ (Backend::convert_expression): Likewise.
+ (Backend::struct_field_expression): Likewise.
+ (Backend::compound_expression): Likewise.
+ (Backend::conditional_expression): Likewise.
+ (Backend::negation_expression): Likewise.
+ (Backend::arithmetic_or_logical_expression): Likewise.
+ (Backend::arithmetic_or_logical_expression_checked): Likewise.
+ (Backend::comparison_expression): Likewise.
+ (Backend::lazy_boolean_expression): Likewise.
+ (Backend::constructor_expression): Likewise.
+ (Backend::array_constructor_expression): Likewise.
+ (Backend::array_initializer): Likewise.
+ (Backend::array_index_expression): Likewise.
+ (Backend::call_expression): Likewise.
+ (Gcc_backend::real_part_expression): Remove.
+ (Gcc_backend::imag_part_expression): Remove.
+ (Gcc_backend::complex_expression): Remove.
+ (Gcc_backend::convert_expression): Remove.
+ (Gcc_backend::struct_field_expression): Remove.
+ (Gcc_backend::compound_expression): Remove.
+ (Gcc_backend::conditional_expression): Remove.
+ (Gcc_backend::negation_expression): Remove.
+ (Gcc_backend::arithmetic_or_logical_expression): Remove.
+ (Gcc_backend::arithmetic_or_logical_expression_checked): Remove.
+ (Gcc_backend::comparison_expression): Remove.
+ (Gcc_backend::lazy_boolean_expression): Remove.
+ (Gcc_backend::constructor_expression): Remove.
+ (Gcc_backend::array_constructor_expression): Remove.
+ (Gcc_backend::array_initializer): Remove.
+ (Gcc_backend::array_index_expression): Remove.
+ (Gcc_backend::call_expression): Remove.
+ * rust-gcc.cc
+ (Gcc_backend::real_part_expression): Rename to ...
+ (Backend::real_part_expression): ... here.
+ (Gcc_backend::imag_part_expression): Rename to ...
+ (Backend::imag_part_expression): ... here.
+ (Gcc_backend::complex_expression): Rename to ...
+ (Backend::complex_expression): ... here.
+ (Gcc_backend::convert_expression): Rename to ...
+ (Backend::convert_expression): ... here.
+ (Gcc_backend::struct_field_expression): Rename to ...
+ (Backend::struct_field_expression): ... here.
+ (Gcc_backend::compound_expression): Rename to ...
+ (Backend::compound_expression): ... here.
+ (Gcc_backend::conditional_expression): Rename to ...
+ (Backend::conditional_expression): ... here.
+ (Gcc_backend::negation_expression): Rename to ...
+ (Backend::negation_expression): ... here.
+ (Gcc_backend::arithmetic_or_logical_expression): Rename to ...
+ (Backend::arithmetic_or_logical_expression): ... here.
+ (Gcc_backend::arithmetic_or_logical_expression_checked): Rename to ...
+ (Backend::arithmetic_or_logical_expression_checked): ... here.
+ (Gcc_backend::comparison_expression): Rename to ...
+ (Backend::comparison_expression): ... here.
+ (Gcc_backend::lazy_boolean_expression): Rename to ...
+ (Backend::lazy_boolean_expression): ... here.
+ (Gcc_backend::constructor_expression): Rename to ...
+ (Backend::constructor_expression): ... here.
+ (Gcc_backend::array_constructor_expression): Rename to ...
+ (Backend::array_constructor_expression): ... here.
+ (Gcc_backend::array_initializer): Rename to ...
+ (Backend::array_initializer): ... here.
+ (Gcc_backend::array_index_expression): Rename to ...
+ (Backend::array_index_expression): ... here.
+ (Gcc_backend::call_expression): Rename to ...
+ (Backend::call_expression): ... here.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust-session-manager.cc (Session::load_extern_crate): Change
+ variable name, add temporaries and comments.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-proc-macro.h: Change get_trait_name to get_name in
+ order to be coherent with the others proc macro type name
+ convention.
+ * resolve/rust-toplevel-name-resolver-2.0.cc (insert_macros):
+ Add a templated funtion that inserts a proc macro into the
+ context and emit an error on failure.
+ (TopLevel::visit): Change from manual insertion to a function
+ call.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
+ Change to assertion.
+ * util/rust-hir-map.cc (Mappings::lookup_derive_proc_macros):
+ Add empty line.
+ (Mappings::lookup_bang_proc_macros): Likewise.
+ (Mappings::lookup_attribute_proc_macros): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * metadata/rust-extern-crate.cc (ExternCrate::ExternCrate):
+ Update definition to allow Extern crate with no content (pure
+ proc macros).
+ (ExternCrate::ok): Panic on no content.
+ (ExternCrate::load): Likewise.
+ * metadata/rust-extern-crate.h: Update prototypes.
+ * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go):
+ Remove macro resolution.
+ (TopLevel::visit): Likewise.
+ * resolve/rust-toplevel-name-resolver-2.0.h: Add visit prototype
+ for extern crate.
+ * rust-session-manager.cc (Session::load_extern_crate): Adapt
+ content depending on the loaded crate's content.
+ * util/rust-hir-map.cc (Mappings::lookup_derive_proc_macros):
+ Change return type to optional because it is way more
+ convenient.
+ (Mappings::lookup_bang_proc_macros): Likewise.
+ (Mappings::lookup_attribute_proc_macros): Likewise.
+ * util/rust-hir-map.h: Update function prototypes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * metadata/rust-imports.cc (Import::try_package_in_directory):
+ Remove error when some macro are found even if no import data is
+ available.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h (class BangProcMacro): Move class from here to
+ rust-proc-macro.h. Also remove related functions.
+ (class AttributeProcMacro): Likewise.
+ (class CustomDeriveProcMacro): Likewise.
+ (struct Crate): Remove proc macro vector members.
+ * expand/rust-macro-expand.h (struct MacroExpander): Change the
+ type to the newly created classes.
+ * expand/rust-proc-macro.cc (BangProcMacro::BangProcMacro): Add
+ constructor implementation.
+ (AttributeProcMacro::AttributeProcMacro): Likewise.
+ (CustomDeriveProcMacro::CustomDeriveProcMacro): Likewise.
+ * expand/rust-proc-macro.h (class BangProcMacro): Move class to
+ here.
+ (class AttributeProcMacro): Likewise.
+ (class CustomDeriveProcMacro): Likewise.
+ * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go):
+ Change top level visitor to check mappings instead
+ * rust-session-manager.cc (Session::load_extern_crate):
+ Add back macro collection to mappings.
+ * util/rust-hir-map.cc (Mappings::insert_derive_proc_macros):
+ Update getter signature with new types.
+ (Mappings::insert_bang_proc_macros): Likewise.
+ (Mappings::insert_attribute_proc_macros): Likewise.
+ (Mappings::lookup_derive_proc_macros): Likewise.
+ (Mappings::lookup_bang_proc_macros): Likewise.
+ (Mappings::lookup_attribute_proc_macros): Likewise.
+ (Mappings::insert_derive_proc_macro_def): Likewise.
+ (Mappings::insert_bang_proc_macro_def): Likewise.
+ (Mappings::insert_attribute_proc_macro_def): Likewise.
+ (Mappings::lookup_derive_proc_macro_def): Likewise.
+ (Mappings::lookup_bang_proc_macro_def): Likewise.
+ (Mappings::lookup_attribute_proc_macro_def): Likewise.
+ (Mappings::insert_derive_proc_macro_invocation): Likewise.
+ (Mappings::lookup_derive_proc_macro_invocation): Likewise.
+ (Mappings::insert_bang_proc_macro_invocation): Likewise.
+ (Mappings::lookup_bang_proc_macro_invocation): Likewise.
+ (Mappings::insert_attribute_proc_macro_invocation): Likewise.
+ (Mappings::lookup_attribute_proc_macro_invocation): Likewise.
+ * util/rust-hir-map.h: Update function prototypes as well as map
+ types.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go):
+ Visit crate's newly stored proc macros.
+ * rust-session-manager.cc (Session::load_extern_crate):
+ Store proc macros in the parsed crate instead of a local
+ variable to achieve mappings.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
+ Change argument to reference.
+ * resolve/rust-early-name-resolver-2.0.h: Update function
+ prototype.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h: Add getters.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h (struct Crate): Add proc macro members.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h (class BangProcMacro): Add new proc macro
+ abstraction.
+ (class AttributeProcMacro): Likewise.
+ (class CustomDeriveProcMacro): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
+ Add function to handle attributes.
+ (Early::visit): Override visitor functions.
+ * resolve/rust-early-name-resolver-2.0.h: Add prototype.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.cc (Attribute::get_traits_to_derive): Convert
+ tokenstream to path list.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.cc (Attribute::is_derive): Remove tokenstream
+ condition.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.cc (Attribute::get_traits_to_derive): Change
+ return type to a vector of references.
+ * ast/rust-ast.h: Update constructor.
+ * expand/rust-expand-visitor.cc (ExpandVisitor::expand_inner_stmts):
+ Update function call.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.cc (Attribute::get_traits_to_derive): Add
+ function as member function.
+ * ast/rust-ast.h: Add prototype.
+ * expand/rust-expand-visitor.cc (get_traits_to_derive): Remove
+ function.
+ (ExpandVisitor::expand_inner_stmts): Update function call.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.cc (Attribute::is_derive): Add member function.
+ * ast/rust-ast.h: Likewise.
+ * expand/rust-expand-visitor.cc (is_derive): Remove old
+ function.
+ (ExpandVisitor::expand_inner_stmts): Update function call.
+ (ExpandVisitor::visit_inner_using_attrs): Likewise.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::visit): use a temp for the value
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h
+ (Backend::block): Make non-virtual.
+ (Backend::block_add_statements): Likewise.
+ (Gcc_backend::block): Remove.
+ (Gcc_backend::block_add_statements): Remove.
+ * rust-gcc.cc
+ (Gcc_backend::block): Rename to ...
+ (Backend::block): ... here.
+ (Gcc_backend::block_add_statements): Rename to ...
+ (Backend::block_add_statements): ... here.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-macro-expand.h: Change include directive with the
+ new name.
+ * expand/rust-proc-macro.h (RUST_PROC_MACRO_H): Likewise.
+ * util/rust-hir-map.h: Likewise.
+ * util/rust-token-converter.h: Likewise.
+ * util/rust-token-converter.cc: Remove useless include
+ directive.
+ * Make-lang.in: Rename library.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h
+ (Backend::init_statement): Make non-virtual.
+ (Backend::assignment_statement): Likewise.
+ (Backend::return_statement): Likewise.
+ (Backend::if_statement): Likewise.
+ (Backend::loop_expression): Likewise.
+ (Backend::exit_expression): Likewise.
+ (Backend::compound_statement): Likewise.
+ (Backend::statement_list): Likewise.
+ (Backend::exception_handler_statement): Likewise.
+ (Gcc_backend::init_statement): Remove.
+ (Gcc_backend::assignment_statement): Remove.
+ (Gcc_backend::return_statement): Remove.
+ (Gcc_backend::if_statement): Remove.
+ (Gcc_backend::compound_statement): Remove.
+ (Gcc_backend::statement_list): Remove.
+ (Gcc_backend::exception_handler_statement): Remove.
+ (Gcc_backend::loop_expression): Remove.
+ (Gcc_backend::exit_expression): Remove.
+ * rust-gcc.cc
+ (Gcc_backend::init_statement): Rename to ...
+ (Backend::init_statement): ... here.
+ (Gcc_backend::assignment_statement): Rename to ...
+ (Backend::assignment_statement): ... here.
+ (Gcc_backend::return_statement): Rename to ...
+ (Backend::return_statement): ... here.
+ (Gcc_backend::exception_handler_statement): Rename to ...
+ (Backend::exception_handler_statement): ... here.
+ (Gcc_backend::if_statement): Rename to ...
+ (Backend::if_statement): ... here.
+ (Gcc_backend::loop_expression): Rename to ...
+ (Backend::loop_expression): ... here.
+ (Gcc_backend::exit_expression): Rename to ...
+ (Backend::exit_expression): ... here.
+ (Gcc_backend::compound_statement): Rename to ...
+ (Backend::compound_statement): ... here.
+ (Gcc_backend::statement_list): Rename to ...
+ (Backend::statement_list): ... here.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h
+ (Backend::function): Make non-virtual.
+ (Backend::function_defer_statement): Likewise.
+ (Backend::function_set_parameters): Likewise.
+ (Backend::write_global_definitions): Likewise.
+ (Backend::write_export_data): Likewise.
+ (Gcc_backend::function): Remove.
+ (Gcc_backend::function_defer_statement): Remove.
+ (Gcc_backend::function_set_parameters): Remove.
+ (Gcc_backend::write_global_definitions): Remove.
+ (Gcc_backend::write_export_data): Remove.
+ * rust-gcc.cc
+ (Gcc_backend::function): Rename to ...
+ (Backend::function): ... here.
+ (Gcc_backend::function_defer_statement):
+ Fix a qualified lookup of Backend::label and rename to ...
+ (Backend::function_defer_statement): ... here.
+ (Gcc_backend::function_set_parameters) Rename to ...
+ (Backend::function_set_parameters): ... here.
+ (Gcc_backend::write_global_definitions): Rename to ...
+ (Backend::write_global_definitions): ... here.
+ (Gcc_backend::write_export_data): Rename to ...
+ (Backend::write_export_data): ... here.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-inherent-impl-overlap.h:
+ Added rich location and errorcode.
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+ likewise.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
+ Added error code.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h
+ (Backend::zero_expression): Make non-virtual.
+ (Backend::var_expression): Likewise.
+ (Backend::integer_constant_expression): Likewise.
+ (Backend::float_constant_expression): Likewise.
+ (Backend::complex_constant_expression): Likewise.
+ (Backend::string_constant_expression): Likewise.
+ (Backend::char_constant_literal): Likewise.
+ (Backend::wchar_constant_literal): Likewise.
+ (Backend::boolean_constant_expression): Likewise.
+ (Gcc_backend::zero_expression): Remove.
+ (Gcc_backend::var_expression): Remove.
+ (Gcc_backend::integer_constant_expression): Remove.
+ (Gcc_backend::float_constant_expression): Remove.
+ (Gcc_backend::complex_constant_expression): Remove.
+ (Gcc_backend::string_constant_expression): Remove.
+ (Gcc_backend::wchar_constant_expression): Remove.
+ (Gcc_backend::char_constant_expression): Remove.
+ (Gcc_backend::boolean_constant_expression): Remove.
+ * rust-gcc.cc
+ (Gcc_backend::zero_expression): Rename to ...
+ (Backend::zero_expression): ... here.
+ (Gcc_backend::var_expression): Rename to ...
+ (Backend::var_expression): ... here.
+ (Gcc_backend::integer_constant_expression): Rename to ...
+ (Backend::integer_constant_expression): ... here.
+ (Gcc_backend::float_constant_expression): Rename to ...
+ (Backend::float_constant_expression): ... here.
+ (Gcc_backend::complex_constant_expression): Rename to ...
+ (Backend::complex_constant_expression): ... here.
+ (Gcc_backend::string_constant_expression): Rename to ...
+ (Backend::string_constant_expression): ... here.
+ (Gcc_backend::wchar_constant_expression): Rename to ...
+ (Backend::wchar_constant_expression): ... here.
+ (Gcc_backend::char_constant_expression): Rename to ...
+ (Backend::char_constant_expression): ... here.
+ (Gcc_backend::boolean_constant_expression): Rename to ...
+ (Backend::boolean_constant_expression): ... here.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h
+ (Backend::global_variable): Make non-virtual.
+ (Backend::global_variable_set_init): Likewise.
+ (Backend::local_variable): Likewise.
+ (Backend::parameter_variable): Likewise.
+ (Backend::static_chain_variable): Likewise.
+ (Backend::temporary_variable): Likewise.
+ (Gcc_backend::global_variable): Remove.
+ (Gcc_backend::global_variable_set_init): Remove.
+ (Gcc_backend::local_variable): Remove.
+ (Gcc_backend::parameter_variable): Remove.
+ (Gcc_backend::static_chain_variable): Remove.
+ (Gcc_backend::temporary_variable): Remove.
+ (Gcc_backend::non_zero_size_type): Move to ...
+ (Backend::non_zero_size_type): ... here.
+ (Gcc_backend::convert_tree): Move to ...
+ (Backend::convert_tree): ... here.
+ * rust-gcc.cc
+ (Gcc_backend::non_zero_size_type): Rename to ...
+ (Backend::non_zero_size_type): ... here.
+ (Gcc_backend::convert_tree): Rename to ...
+ (Backend::convert_tree): ... here.
+ (Gcc_backend::global_variable): Rename to ...
+ (Backend::global_variable): ... here.
+ (Gcc_backend::global_variable_set_init): Rename to ...
+ (Backend::global_variable_set_init): ... here.
+ (Gcc_backend::local_variable): Rename to ...
+ (Backend::local_variable): ... here.
+ (Gcc_backend::parameter_variable): Rename to ...
+ (Backend::parameter_variable): ... here.
+ (Gcc_backend::static_chain_variable): Rename to ...
+ (Backend::static_chain_variable): ... here.
+ (Gcc_backend::temporary_variable): Rename to ...
+ (Backend::temporary_variable): ... here.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * checks/errors/privacy/rust-privacy-reporter.cc
+ (PrivacyReporter::check_for_privacy_violation):
+ Added errorcode & richlocation.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h
+ (Backend::debug): Make non-virtual.
+ (Backend::get_identifier_node): Likewise.
+ (Gcc_backend::debug): Remove.
+ (Gcc_backend::get_identifier_node): Remove.
+ * rust-gcc.cc
+ (Gcc_backend::debug): Rename to ...
+ (Backend::debug): ... here.
+ (Gcc_backend::get_identifier_node): Rename to ...
+ (Backend::get_identifier_node): ... here.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc
+ (TypeCheckExpr::visit): Expect if conditions to have type bool.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h
+ (Backend::label): Make non-virtual.
+ (Backend::label_definition_statement): Likewise.
+ (Backend::goto_statement): Likewise.
+ (Backend::label_address): Likewise.
+ (Gcc_backend::label): Remove.
+ (Gcc_backend::label_definition_statement): Remove.
+ (Gcc_backend::goto_statement): Remove.
+ (Gcc_backend::label_address): Remove.
+ * rust-gcc.cc
+ (Gcc_backend::label): Rename to ...
+ (Backend::label): ... here.
+ (Gcc_backend::label_definition_statement): Rename to ...
+ (Backend::label_definition_statement): ... here.
+ (Gcc_backend::goto_statement): Rename to ...
+ (Backend::goto_statement): ... here.
+ (Gcc_backend::label_address): Rename to ...
+ (Backend::label_address): ... here.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-constexpr.cc
+ (struct constexpr_fundef): Rename to ...
+ (struct rust_constexpr_fundef): ... here.
+ (struct constexpr_call): Rename to ...
+ (struct rust_constexpr_call): ... here.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * lex/rust-input-source.h: Move constants from here...
+ * util/rust-codepoint.h (struct Codepoint): ... to here
+ * util/rust-attributes.cc (check_no_mangle_function): New function.
+ (AttributeChecker::visit): Use it.
+ * util/rust-unicode.cc (is_ascii_only): New function.
+ * util/rust-unicode.h (is_ascii_only): Likewise.
+ * backend/rust-mangle.cc (legacy_mangle_name): Use it.
+ * util/rust-punycode.cc (extract_basic_string): Likewise.
+ * lex/rust-lex.cc (Lexer::parse_byte_char): Likewise.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit):
+ Added richlocation & error code.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc
+ (TypeCheckExpr::resolve_fn_trait_call): Add TODO comment.
+ * typecheck/rust-tyty-bounds.cc
+ (TypeBoundPredicate::TypeBoundPredicate):
+ Add assertions, new error constructor.
+ (TypeBoundPredicate::error): Use new error constructor.
+ * typecheck/rust-tyty.h
+ (struct TypeBoundPredicate::mark_is_error): New.
+ (TypeBoundPredicate::TypeBoundPredicate):
+ Add new error constructor.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h:
+ (Backend::wchar_type): Make non-virtual.
+ (Backend::get_pointer_size): Likewise.
+ (Backend::raw_str_type): Likewise.
+ (Backend::integer_type): Likewise.
+ (Backend::float_type): Likewise.
+ (Backend::complex_type): Likewise.
+ (Backend::pointer_type): Likewise.
+ (Backend::reference_type): Likewise.
+ (Backend::immutable_type): Likewise.
+ (Backend::function_type): Likewise.
+ (Backend::function_type_varadic): Likewise.
+ (Backend::function_ptr_type): Likewise.
+ (Backend::struct_type): Likewise.
+ (Backend::union_type): Likewise.
+ (Backend::array_type): Likewise.
+ (Backend::named_type): Likewise.
+ (Backend::type_size): Likewise.
+ (Backend::type_alignment): Likewise.
+ (Backend::type_field_alignment): Likewise.
+ (Backend::type_field_offset): Likewise.
+ (Gcc_backend::wchar_type): Remove.
+ (Gcc_backend::get_pointer_size): Remove.
+ (Gcc_backend::raw_str_type): Remove.
+ (Gcc_backend::integer_type): Remove.
+ (Gcc_backend::float_type): Remove.
+ (Gcc_backend::complex_type): Remove.
+ (Gcc_backend::pointer_type): Remove.
+ (Gcc_backend::reference_type): Remove.
+ (Gcc_backend::immutable_type): Remove.
+ (Gcc_backend::function_type): Remove.
+ (Gcc_backend::function_type_varadic): Remove.
+ (Gcc_backend::function_ptr_type): Remove.
+ (Gcc_backend::struct_type): Remove.
+ (Gcc_backend::union_type): Remove.
+ (Gcc_backend::array_type): Remove.
+ (Gcc_backend::named_type): Remove.
+ (Gcc_backend::type_size): Remove.
+ (Gcc_backend::type_alignment): Remove.
+ (Gcc_backend::type_field_alignment): Remove.
+ (Gcc_backend::type_field_offset): Remove.
+ (Gcc_backend::fill_in_fields): Move to ...
+ (Backend::fill_in_fields): ... here.
+ (Gcc_backend::fill_in_array): Move to ...
+ (Backend::fill_in_array): ... here.
+ * rust-gcc.cc
+ (Gcc_backend::wchar_type): Rename to ...
+ (Backend::wchar_type): ... here.
+ (Gcc_backend::get_pointer_size): Rename to ...
+ (Backend::get_pointer_size): ... here.
+ (Gcc_backend::raw_str_type): Rename to ...
+ (Backend::raw_str_type): ... here.
+ (Gcc_backend::integer_type): Rename to ...
+ (Backend::integer_type): ... here.
+ (Gcc_backend::float_type): Rename to ...
+ (Backend::float_type): ... here.
+ (Gcc_backend::complex_type): Rename to ...
+ (Backend::complex_type): ... here.
+ (Gcc_backend::pointer_type): Rename to ...
+ (Backend::pointer_type): ... here.
+ (Gcc_backend::reference_type): Rename to ...
+ (Backend::reference_type): ... here.
+ (Gcc_backend::immutable_type): Rename to ...
+ (Backend::immutable_type): ... here.
+ (Gcc_backend::function_type): Rename to ...
+ (Backend::function_type): ... here.
+ (Gcc_backend::function_type_varadic): Rename to ...
+ (Backend::function_type_varadic): ... here.
+ (Gcc_backend::function_ptr_type): Rename to ...
+ (Backend::function_ptr_type): ... here.
+ (Gcc_backend::struct_type): Rename to ...
+ (Backend::struct_type): ... here.
+ (Gcc_backend::union_type): Rename to ...
+ (Backend::union_type): ... here.
+ (Gcc_backend::fill_in_fields): Rename to ...
+ (Backend::fill_in_fields): ... here.
+ (Gcc_backend::array_type): Rename to ...
+ (Backend::array_type): ... here.
+ (Gcc_backend::fill_in_array): Rename to ...
+ (Backend::fill_in_array): ... here.
+ (Gcc_backend::named_type): Rename to ...
+ (Backend::named_type): ... here.
+ (Gcc_backend::type_size): Rename to ...
+ (Backend::type_size): ... here.
+ (Gcc_backend::type_alignment): Rename to ...
+ (Backend::type_alignment): ... here.
+ (Gcc_backend::type_field_alignment): Rename to ...
+ (Backend::type_field_alignment): ... here.
+ (Gcc_backend::type_field_offset): Rename to ...
+ (Backend::type_field_offset): ... here.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-intrinsic.cc (move_val_init_handler): mark as side-effects
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-intrinsic.cc (uninit_handler): Update fndecl attributes
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-intrinsic.cc (op_with_overflow_inner): fix use before init
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-intrinsic.cc (enter_intrinsic_block): take the locals vector
+ (uninit_handler): make a temp variable and use the address of it
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-early-name-resolver-2.0.cc (Early::visit):
+ Collect error instead of lambda.
+ * resolve/rust-early-name-resolver-2.0.h (std::function<void):
+ Remove type alias.
+ * rust-diagnostics.h: Change collection type.
+ * rust-session-manager.cc (Session::expansion): Change
+ collection container.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-early-name-resolver-2.0.cc (Early::visit):
+ Collect error instead of emitting it. Also add invocation
+ registration.
+ * resolve/rust-early-name-resolver-2.0.h (std::function<void):
+ Add type definition for collection.
+ * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
+ Register macro rule definition in mappings.
+ * rust-session-manager.cc (Session::expansion): Add macro
+ resolve error collection.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * config-lang.in:
+ Add "backend/rust-tree.h" and "backend/rust-tree.h" to gtfiles.
+ * backend/rust-tree.cc: Include new header generated by gengtype.
+ * backend/rust-tree.h
+ (struct language_function): Add TODO.
+ * rust-lang.cc:
+ Include "rust-tree.h".
+ (struct lang_type): Remove duplicate definition.
+ (struct lang_decl): Likewise.
+ (struct lang_identifier): Likewise.
+ (struct language_function): Likewise.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
+ Added error code and rich location.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-tree.h
+ (struct rust_cp_class_binding): Fork from gcc/cp/name_lookup.h.
+ (struct rust_cp_binding_level): Likewise.
+ (struct named_label_entry): Remove declaration...
+ (struct rust_named_label_entry): ... and fork definition from gcc/cp/decl.cc.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust-diagnostics.cc (rust_be_error_at): Added overload function.
+ (rust_error_at): non-const `rich_location *` function.
+ * rust-diagnostics.h (rust_error_at): Implementation of overloaded
+ function.
+ (rust_be_error_at): likewise.
+ * rust_error_codes.def: Added GNU license.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-tyty.cc (BaseType::satisfies_bound):
+ Added errorcode and user-friendly error message.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-tree.cc
+ (resort_data): Fork from c++ frontend.
+ (resort_member_name_cmp): Likewise.
+ (resort_type_member_vec): Likewise.
+ * backend/rust-tree.h
+ (resort_type_member_vec): Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-tree.cc
+ (struct conv_type_hasher): Rename to ...
+ (struct rust_conv_type_hasher): ... here.
+ (struct cplus_array_hasher): Rename to ...
+ (struct rust_cplus_array_hasher): ... here.
+ (struct source_location_table_entry_hash): Rename to ...
+ (struct rust_source_location_table_entry_hash): ... here.
+ * backend/rust-tree.h
+ (struct named_decl_hash): Rename to ...
+ (struct rust_named_decl_hash): ... here.
+ (struct cxx_saved_binding): Rename to ...
+ (struct rust_cxx_saved_binding): ... here.
+ (struct named_label_hash): Rename to ...
+ (struct rust_named_label_hash): ... here.
+ (struct tree_pair_s): Rename to ...
+ (struct rust_tree_pair_s): ... here.
+ (struct tree_pair_p): Rename to ...
+ (struct rust_tree_pair_p): ... here.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-tree.cc
+ (Rust::gt_pch_nx): Move external function declaration ...
+ (gt_pch_nx): ... out of Rust namespace.
+ * backend/rust-tree.h
+ (OVL_FIRST): Qualify function name.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-type.cc (TyTyResolveCompile::visit): do a final lookup
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_generic_params):
+ Added more user friendly message.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-builtins.cc
+ (MacroBuiltin::include_str_handler): Use vector::data.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-type.cc:
+ Added last variant name, errorcode & rich location. for enum candidates.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-tree.h
+ (struct stmt_tree_s): Remove.
+ (typedef stmt_tree): Remove.
+ (c_language_function::x_stmt_tree): Remove.
+ (saved_scope::x_stmt_tree): Remove.
+ (lang_decl_fn::pending_inline_p): Remove.
+ (lang_decl_fn::spare): Adjust size.
+ (lang_decl_fn::pending_inline_info): Remove.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-constexpr.cc:
+ Include gt-rust-rust-constexpr.h.
+ (struct constexpr_call_hasher): Rename to ...
+ (struct rust_constexpr_call_hasher): ... here.
+ (struct constexpr_fundef_hasher): Rename to ...
+ (struct rust_constexpr_fundef_hasher): ... here.
+ * config-lang.in: Add rust-constexpr.cc to gtfiles.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * backend/rust-mangle.cc (v0_add_identifier): Added punycode encoding
+ (v0_mangle_item): Likewise.
+ * lex/rust-lex.cc (assert_source_content): Change type
+ (test_buffer_input_source): Change type
+ (test_file_input_source): Change type
+ * resolve/rust-ast-resolve-toplevel.h: fix typo
+ * rust-session-manager.cc (Session::load_extern_crate): fix typo
+ * util/rust-canonical-path.h: fix typo
+ * util/rust-hir-map.cc (NodeMapping::get_error): fix typo
+ (Mappings::Mappings): fix typo
+ * util/rust-mapping-common.h (UNKNOWN_CREATENUM): fix typo
+ (UNKNOWN_CRATENUM): Change 0 to UINT32_MAX
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait):
+ Updated errorcode & more userfriendly message.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit):
+ Added more helpful error message.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-path-probe.h:
+ Fixes issue & added rich location message.
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+ Added rich location and error code.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * lex/rust-lex.cc (Lexer::parse_decimal_int_or_float): Only
+ accept digits after a dot instead of accepting any float
+ member.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * ast/rust-pattern.h: No need of assertion, we are handling it.
+ * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
+ Added check which emits error instead of using assertion.
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
+ Added rich location and error code.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::handle_inline_attribute_on_fndecl):
+ Added rich_location & error code.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_trait):
+ added errorcode & updated error message.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_outer_attribute):
+ Added errorcode & updated error function.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust-diagnostics.cc (va_constructor):
+ Added constructor for all possible cases.
+ (Error::Error): Updated error struct
+ for all possible cases.
+ * rust-diagnostics.h (struct Error):
+ Updated error struct to support error
+ code & rich location support.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::handle_inline_attribute_on_fndecl):
+ Added rich_location & error code.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust-diagnostics.cc: Switch from new[] to xcalloc
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * util/make-rust-unicode.py: Add type annotation
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-intrinsic.cc (check_for_cached_intrinsic):
+ simplify this cached intrinsic check
+ * backend/rust-mangle.cc (legacy_mangle_item): use new interface
+ * typecheck/rust-tyty.h: new managle helper
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address):
+ use the single candidate
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * hir/rust-hir-dump.cc (Dump::visit): Remove useless if/else
+ already handled by visit_field.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * util/rust-punycode.cc: Add CHECKING_P guard.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * backend/rust-mangle.cc (legacy_mangle_name): Use Unicode escape
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): remove hack
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-proc-macro-invoc-lexer.cc
+ (ProcMacroInvocLexer::skip_token): Remove.
+ * expand/rust-proc-macro-invoc-lexer.h:
+ Include "rust-macro-invoc-lexer.h".
+ (class ProcMacroInvocLexer):
+ Extend MacroInvocLexerBase.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * lex/rust-codepoint.h: Moved to...
+ * util/rust-codepoint.h: ...here.
+ * lex/rust-input-source.h: Add missing license
+ * util/rust-unicode.cc: Add missing license
+ * util/rust-punycode.cc (extract_basic_string): Remove constant
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-macro-expand.h: Keep optional references for last_def
+ and last_invoc.
+ * expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Store
+ optional references.
+ * rust-session-manager.cc (Session::expansion): Use tl::optional's APIs
+ for better checking.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * hir/rust-hir-dump.h (do_ifexpr): New.
+ * hir/rust-hir-dump.cc (Dump::do_ifexpr): New.
+ (Dump::visit): Use do_ifexpr and visit_field
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-casts.cc (TypeCastRules::emit_cast_error):
+ Refactored ErrorCodes & error messages.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * backend/rust-compile-base.cc:
+ Added ErrorCode.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_qualifiers):
+ called error function.
+ (ASTLoweringBase::lower_extern_block): likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast-collector.cc: Adjust formatting.
+ * checks/errors/rust-feature-gate.cc: Add trailing newline.
+ * rust-diagnostics.h: Remove old comment.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-gcc.cc
+ (Gcc_backend::struct_type): Remove references to "this".
+ (Gcc_backend::union_type): Likewise.
+ (Gcc_backend::array_type): Likewise.
+ (Gcc_backend::wchar_constant_expression): Likewise.
+ (Gcc_backend::convert_expression): Likewise.
+ (Gcc_backend::constructor_expression): Likewise.
+ (Gcc_backend::array_initializer): Likewise.
+ (Gcc_backend::assignment_statement): Likewise.
+ (Gcc_backend::global_variable): Likewise.
+ (Gcc_backend::temporary_variable): Likewise.
+ (Gcc_backend::function_defer_statement): Likewise.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * Make-lang.in: Add rust-punycode.o.
+ * rust-lang.cc (run_rust_tests): Add selftest.
+ * util/rust-punycode.cc: New file.
+ * util/rust-punycode.h: New file.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * backend/rust-compile.cc (HIRCompileBase::verify_array_capacities):
+ Added ErrorCode.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check.cc (TypeResolution::Resolve):
+ added errorcode.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h
+ (Backend::error_variable): Remove.
+ (Gcc_backend::error_variable): Move to ...
+ * rust-gcc.cc
+ (Bvariable::error_variable): ... here ...
+ * rust-gcc.h
+ (Bvariable::error_variable): ... and declare here.
+ (Gcc_backend::global_variable): Update error_variable call.
+ (Gcc_backend::local_variable): Likewise.
+ (Gcc_backend::parameter_variable): Likewise.
+ (Gcc_backend::static_chain_variable): Likewise.
+ (Gcc_backend::temporary_variable): Likewise.
+ * backend/rust-compile-extern.h
+ (CompileExternItem::visit): Likewise.
+ * backend/rust-compile-fnparam.cc
+ (CompileFnParam::CompileFnParam): Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-compile-type.cc
+ (TyTyResolveCompile::visit): Inline Backend::bool_type call.
+ * rust-backend.h
+ (Backend::bool_type): Remove.
+ (Backend::char_type): Remove.
+ (Gcc_backend::bool_type): Remove.
+ (Gcc_backend::char_type): Remove.
+ * rust-gcc.cc
+ (Gcc_backend::char_constant_expression): Inline Backend::char_type call.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * lex/rust-lex.cc (assert_source_content): Fix namespace specifier
+ (test_buffer_input_source): Likewise.
+ (test_file_input_source): Likewise.
+ * lex/rust-lex.h: Move InputSource ...
+ * lex/rust-input-source.h: ... to here. (New file)
+ * lex/rust-token.cc (nfc_normalize_token_string): New function
+ * lex/rust-token.h (nfc_normalize_token_string): New function
+ * rust-lang.cc (run_rust_tests): Modify order of selftests.
+ * rust-session-manager.cc (validate_crate_name): Modify interface of Utf8String.
+ * util/rust-unicode.cc (lookup_cc): Modify codepoint_t typedef.
+ (lookup_recomp): Likewise.
+ (recursive_decomp_cano): Likewise.
+ (decomp_cano): Likewise.
+ (sort_cano): Likewise.
+ (compose_hangul): Likewise.
+ (assert_normalize): Likewise.
+ (Utf8String::nfc_normalize): New function.
+ * util/rust-unicode.h: Modify interface of Utf8String.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go):
+ Added ErrorCode.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-common.h (enum_to_str): Remove extra semicolon after
+ the function.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * checks/errors/rust-const-checker.cc (ConstChecker::visit):
+ Use of mutable reference in constant functions.
+ * checks/errors/rust-feature-gate.cc (FeatureGate::gate):
+ ErrorCode for intrinsics are subject to change.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * checks/errors/rust-const-checker.cc (ConstChecker::check_function_call):
+ Added errorcode.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args):
+ Added errorcode.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Declare
+ macros in the current rib if they are macros 2.0.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-macro.h: Add new method to `MacroRulesDefinition` to allow
+ getting the `MacroKind` contained.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust-session-manager.cc
+ (Session::expansion): Use new `Early` name resolution 2.0 pass
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * Make-lang.in: Add new object file.
+ * resolve/rust-early-name-resolver-2.0.cc: New file.
+ * resolve/rust-early-name-resolver-2.0.h: New file.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-default-resolver.cc
+ (DefaultResolver::visit): Visit CallExpr and MethodCallExpr properly.
+ * resolve/rust-default-resolver.h: Switch "node" to plural in documentation.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-toplevel-name-resolver-2.0.cc
+ (TopLevel::insert_or_error_out): Fix format string.
+ (is_macro_export): New method.
+ (TopLevel::visit): Handle macro definitions.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-name-resolution-context.cc
+ (Resolver::insert): Do not call into `rust_unreachable` when resolving
+ macros anymore.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-forever-stack.h
+ (insert_at_root): New method.
+ (resolve_path): New method.
+ (reverse_iter): Iterate on `Node`s instead of `Rib`s
+ * resolve/rust-forever-stack.hxx: Add path resolution.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-rib.h: Add shadowing parameter. Make kind field public.
+ * resolve/rust-rib.cc (Rib::insert): Likewise.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
+ refactored message and called error function.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * checks/errors/rust-feature-gate.cc (FeatureGate::check):
+ errorcode support for unknown feature.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-unify.cc (UnifyRules::emit_type_mismatch):
+ refactored & called error function.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * expand/rust-macro-builtins.cc
+ (load_file_bytes): Return a tl::optional.
+ (MacroBuiltin::include_byte_handler): Adjust and check file was
+ correctly opened.
+ (MacroBuiltin::include_str_handler): Likewise.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-toplevel-name-resolver-2.0.h
+ (class TopLevel): Inherit from DefaultResolver
+ * resolve/rust-toplevel-name-resolver-2.0.cc
+ (TopLevel::TopLevel): Remove unecessary methods
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * Make-lang.in: Add new object file.
+ * resolve/rust-default-resolver.cc: New file.
+ * resolve/rust-default-resolver.h: New file.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * util/rust-unicode.cc (decomp_cano): Decompose Hangul.
+ (sort_cano): Fix bounds check.
+ (recomp): use `compose_hangul`.
+ (compose_hangul): Compose Hangul.
+ (rust_utf8_normalize_test): Add tests.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-forever-stack.hxx: assert() -> rust_assert()
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * Make-lang.in: Add new object file.
+ * resolve/rust-toplevel-name-resolver-2.0.cc: New file.
+ * resolve/rust-toplevel-name-resolver-2.0.h: New file.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * Make-lang.in: Add new object file.
+ * resolve/rust-name-resolution-context.cc: New file.
+ * resolve/rust-name-resolution-context.h: New file.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+ called error function.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-invoc-lexer.cc
+ (MacroInvocLexer::skip_token): Remove.
+ * expand/rust-macro-invoc-lexer.h
+ (class MacroInvocLexer): Extend MacroInvocLexerBase.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * ast/rust-ast-fragment.cc (Fragment::create_empty): New.
+ * ast/rust-ast-fragment.h (MacroTranscriberFunc): New.
+ * ast/rust-macro.h (MacroRulesDefinition): Use MacroTranscriberFunc.
+ * expand/rust-macro-builtins.cc
+ (MacroBuiltin::builtin_transcribers): likewise.
+ (MacroBuiltin::assert_handler): Return optional.
+ (MacroBuiltin::file_handler): Likewise.
+ (MacroBuiltin::column_handler): Likewise.
+ (MacroBuiltin::include_bytes_handler): Likewise.
+ (MacroBuiltin::include_str_handler): Likewise.
+ (MacroBuiltin::compile_error_handler): Likewise.
+ (MacroBuiltin::concat_handler): Likewise.
+ (MacroBuiltin::env_handler): Likewise.
+ (MacroBuiltin::cfg_handler): Likewise.
+ (MacroBuiltin::include_handler): Likewise.
+ (MacroBuiltin::line_handler): Likewise.
+ (MacroBuiltin::stringify_handler): Likewise.
+ (MacroBuiltin::sorry): Likewise.
+ * expand/rust-macro-builtins.h (builtin_transcribers): Use
+ MacroTranscriberFunc.
+ (assert_handler): Return optional.
+ (file_handler): Likewise.
+ (column_handler): Likewise.
+ (include_bytes_handler): Likewise.
+ (include_str_handler): Likewise.
+ (compile_error_handler): Likewise.
+ (concat_handler): Likewise.
+ (env_handler): Likewise.
+ (cfg_handler): Likewise.
+ (include_handler): Likewise.
+ (line_handler): Likewise.
+ (stringify_handler): Likewise.
+ (sorry): Likewise.
+ * expand/rust-macro-expand.cc (MacroExpander::expand_invoc):
+ Adjust to transcribers returning optional.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item):
+ always resolve the type even when its an a mandatory trait item
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path):
+ Add check for enum candidates otherwise you get undefined behaviour
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * lex/rust-codepoint.h: Add comment
+ * lex/rust-lex.h: New method to get decoded characters
+ * rust-session-manager.cc (validate_crate_name): Modify unicode check
+ (rust_crate_name_validation_test): Add testcases
+ * util/rust-unicode.h (RUST_UNICODE_H): New class Utf8String.
+ (class Utf8String): New class.
+ * util/rust-unicode.cc (binary_search_sorted_array): Add comment.
+ (recursive_decomp_cano): Add comment.
+ (recomp): Remove dead code.
+ (dump_string): Removed.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * util/rust-unicode.cc: Add CHECKING_P guard.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+ We need to check if a function context exists
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * expand/rust-proc-macro.cc (literal_from_string): update Lexer constructor
+ (tokenstream_from_string): likewise
+ * lex/rust-lex.cc (Lexer::Lexer): likewise
+ * lex/rust-lex.h: pass through Linemap
+ * parse/rust-cfg-parser.cc (parse_cfg_option): likewise
+ * rust-session-manager.cc (Session::load_extern_crate): likewise
+ * typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait):
+ dont apply Sized on self
+ * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::get_marker_predicate): new
+ * typecheck/rust-hir-type-check-base.h: add prototype
+ * typecheck/rust-hir-type-check-type.cc (TypeResolveGenericParam::Resolve): apply Sized
+ (TypeResolveGenericParam::visit): likewise
+ * typecheck/rust-hir-type-check-type.h: update prototypes
+ * typecheck/rust-typecheck-context.cc: remove bad assertions
+ * typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::assemble_sized_builtin): cleanup
+ (TypeCheckBase::get_predicate_from_bound): apply sized rules properly
+ * util/rust-hir-map.cc (Mappings::lookup_trait_item_lang_item): helpers
+ (Mappings::get_lang_item): likewise
+ * util/rust-hir-map.h: likewise
+ * util/rust-token-converter.cc (from_ident): update lexer ctor
+ (from_punct): likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-path-probe.cc: track regular polarity
+ * typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): likewise
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise
+ * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): likewise
+ * typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound): likewise
+ (TypeBoundPredicate::TypeBoundPredicate): update ctor
+ (TypeBoundPredicate::operator=): update copy assignment ctor
+ (TypeBoundPredicate::error): update error node
+ * typecheck/rust-tyty.h: add polarity field to predicate
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): use new BoundPolarity enum
+ * hir/rust-ast-lower-type.cc (ASTLoweringTypeBounds::visit): likewise
+ * hir/rust-hir-dump.cc (BoundPolarityString): new helper
+ (Dump::visit): update hir dump
+ * hir/tree/rust-hir-item.h (class ImplBlock): likewise
+ * hir/tree/rust-hir-type.h (class TraitBound): likewise
+ * hir/tree/rust-hir.cc (TraitBound::as_string): fix as string
+ * util/rust-common.h (enum Polarity): add new anti bound
+ (enum BoundPolarity): likewise
+ * util/rust-hir-map.cc (Mappings::Mappings): update naming
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-backend.h: Include "rust-gcc.h".
+ (class Gcc_backend): Move to ...
+ * rust-gcc.cc (class Gcc_backend): ... here.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-item.cc: add is_error check
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * Make-lang.in: Add rust-unicode.o
+ * rust-lang.cc (run_rust_tests): Add test.
+ * rust-system.h: Include <array>
+ * util/make-rust-unicode.py: Generater of rust-unicode-data.h.
+ * util/rust-unicode-data.h: Auto-generated file.
+ * util/rust-unicode.cc: New file.
+ * util/rust-unicode.h: New file.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust-diagnostics.cc: Rework `make_description` and `make_url` functions.
+ * rust-diagnostics.h: Specify ErrorCode's underlying type,
+ remove error_codes_strings table.
+ * rust_error_codes.def: New file.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-location.h (typedef Location): Remove.
+ * expand/rust-proc-macro.cc
+ (register_callback): Replace Location constructor with UNDEF_LOCATION.
+ * ast/rust-ast-collector.h: Replace Location with location_t.
+ * checks/errors/privacy/rust-privacy-reporter.cc: Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.h: Likewise.
+ * checks/errors/privacy/rust-pub-restricted-visitor.cc: Likewise.
+ * checks/errors/privacy/rust-pub-restricted-visitor.h: Likewise.
+ * checks/errors/rust-feature-gate.cc: Likewise.
+ * checks/errors/rust-feature-gate.h: Likewise.
+ * metadata/rust-imports.h: Likewise.
+ * resolve/rust-ast-resolve-path.h: Likewise.
+ * resolve/rust-name-resolver.h: Likewise.
+ * rust-backend.h: Likewise.
+ * rust-diagnostics.h: Likewise.
+ * rust-gcc.cc: Likewise.
+ * rust-linemap.h: Likewise.
+ * util/rust-attributes.cc: Likewise.
+ * util/rust-hir-map.cc: Likewise.
+ * util/rust-hir-map.h: Likewise.
+ * util/rust-token-converter.cc: Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * typecheck/rust-autoderef.cc: Replace Location with location_t.
+ * typecheck/rust-coercion.cc: Likewise.
+ * typecheck/rust-coercion.h: Likewise.
+ * typecheck/rust-hir-path-probe.h: Likewise.
+ * typecheck/rust-hir-trait-reference.cc: Likewise.
+ * typecheck/rust-hir-trait-resolve.cc: Likewise.
+ * typecheck/rust-hir-type-check-base.cc: Likewise.
+ * typecheck/rust-hir-type-check-expr.cc: Likewise.
+ * typecheck/rust-hir-type-check-expr.h: Likewise.
+ * typecheck/rust-hir-type-check-implitem.cc: Likewise.
+ * typecheck/rust-hir-type-check-item.cc: Likewise.
+ * typecheck/rust-hir-type-check-path.cc: Likewise.
+ * typecheck/rust-hir-type-check-pattern.cc: Likewise.
+ * typecheck/rust-hir-type-check-stmt.cc: Likewise.
+ * typecheck/rust-hir-type-check-struct.cc: Likewise.
+ * typecheck/rust-hir-type-check-type.cc: Likewise.
+ * typecheck/rust-hir-type-check-type.h: Likewise.
+ * typecheck/rust-type-util.cc: Likewise.
+ * typecheck/rust-type-util.h: Likewise.
+ * typecheck/rust-tyty-bounds.cc: Likewise.
+ * typecheck/rust-tyty-call.cc: Likewise.
+ * typecheck/rust-tyty-call.h: Likewise.
+ * typecheck/rust-tyty-cmp.h: Likewise.
+ * typecheck/rust-tyty-subst.cc: Likewise.
+ * typecheck/rust-tyty-subst.h: Likewise.
+ * typecheck/rust-tyty.cc: Likewise.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+ refactored error message & called error function.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-proc-macro.cc (literal_from_string): Add callback
+ function.
+ (load_macros_array): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (handle_suffix): Rework function
+ to make it work with the new literal conversion function.
+ (convert_literal): Add a new function to convert to a proc macro
+ literal from a literal tokenptr. The function will abort if the
+ pointer does not point to a literal.
+ (convert): Add call to convert literal for every literal case.
+ * util/rust-token-converter.h (convert_literal): Add public
+ prototype.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-proc-macro.cc: Remove static modifier and move to
+ an anonymous namespace.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * backend/rust-compile-intrinsic.cc (Intrinsics::compile):
+ Formatted according to enum class.
+ * checks/errors/rust-feature-gate.cc (FeatureGate::gate): likewise.
+ * checks/errors/rust-unsafe-checker.cc (check_unsafe_call): likewise.
+ * hir/rust-ast-lower-base.cc (struct_field_name_exists): likewise.
+ * resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): likewise.
+ * resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path):
+ likewise.
+ * resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go): likewise.
+ (PatternDeclaration::add_new_binding): likewise.
+ * resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): likewise.
+ * resolve/rust-ast-verify-assignee.h: likewise.
+ * rust-diagnostics.cc: updated make_desc & url function for enum class.
+ * rust-diagnostics.h (struct ErrorCode): removed struct to switch to enum.
+ (enum class): Switched from errorcode struct to enum class.
+ (XSTR): Macro for converting enum to string.
+ (STR): macro Used by XSTR for converting to string.
+ (ERROR_CODE): macro used by map for check.
+ (TABLE_TO_MAP): macro used by map for check
+ * typecheck/rust-casts.cc (TypeCastRules::emit_cast_error):
+ Formatted according to enum class.
+ * typecheck/rust-hir-path-probe.h: likewise.
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise.
+ * typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
+ likewise.
+ (TypeCheckImplItemWithTrait::visit): likewise.
+ * typecheck/rust-hir-type-check-item.cc: likewise.
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): likewise.
+ (emit_invalid_field_error): likewise.
+ * typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve): likewise.
+ * typecheck/rust-tyty-call.cc (emit_unexpected_argument_error): likewise.
+ (TypeCheckCallExpr::visit): likewise.
+ * typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args):
+ likewise.
+ * typecheck/rust-tyty.cc (BaseType::bounds_compatible): likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-attributes.cc (check_proc_macro_non_root): Add
+ function to emit this specific error.
+ (AttributeChecker::visit): Modify visitor to propagate to some
+ containers that were not handled correctly.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-compile-base.h: Replace Location with location_t.
+ * metadata/rust-imports.h: Likewise.
+ * resolve/rust-name-resolver.cc: Likewise.
+ * resolve/rust-name-resolver.h: Likewise.
+ * rust-backend.h: Likewise.
+ * rust-gcc.cc: Likewise.
+ * rust-gcc.h: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-proc-macro.cc (available): Remove function.
+ (load_macros_array): There was no need for an indirection here.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-proc-macro.cc (available): Add symbol
+ registration.
+ (load_macros_array): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-proc-macro.cc (load_macros_array): Symbol rename.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * checks/errors/privacy/rust-privacy-reporter.cc (find_proc_macro_attribute):
+ Refactor the function to be safer and more efficient.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * checks/errors/privacy/rust-privacy-reporter.cc (find_proc_macro_attribute):
+ Add a new function to find a potential proc macro type
+ attribute on a given item.
+ (proc_macro_privacy_check): Move all proc macro privacy check in
+ their own function to avoid cluttering the usual privacy check.
+ (PrivacyReporter::go): Add call to newly created proc macro
+ privacy check function.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::go):
+ Add visibility verification.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-attributes.cc (is_proc_macro_type): Add function to
+ identify matching proc macro attribute type.
+ (check_proc_macro_non_function): Add function to check and emit
+ error.
+ (AttributeChecker::visit): Add cal to new check function.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h: Remove NodeId from identifiers.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
+ Added check for error code support.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit):
+ called error function.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-compile-base.cc: Replace Location with location_t.
+ * backend/rust-compile-base.h: Likewise.
+ * backend/rust-compile-expr.cc: Likewise.
+ * lex/rust-token.h: Likewise.
+ * metadata/rust-import-archive.cc: Likewise.
+ * metadata/rust-imports.cc: Likewise.
+ * metadata/rust-imports.h: Likewise.
+ * rust-backend.h: Likewise.
+ * rust-diagnostics.cc: Likewise.
+ * rust-diagnostics.h: Likewise.
+ * rust-gcc.cc: Likewise.
+ * rust-linemap.cc: Likewise.
+ * util/rust-token-converter.cc: Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast-builder.h: Replace Location with location_t.
+ * ast/rust-ast.h: Likewise.
+ * ast/rust-expr.h: Likewise.
+ * ast/rust-item.h: Likewise.
+ * ast/rust-macro.h: Likewise.
+ * ast/rust-path.h: 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.h: Likewise.
+ * lex/rust-lex.cc: Likewise.
+ * lex/rust-lex.h: Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-derive-clone.cc: Replace Location with location_t.
+ * expand/rust-derive-clone.h: Likewise.
+ * expand/rust-derive-copy.cc: Likewise.
+ * expand/rust-derive-copy.h: Likewise.
+ * expand/rust-derive.cc: Likewise.
+ * expand/rust-derive.h: Likewise.
+ * expand/rust-macro-builtins.cc: Likewise.
+ * expand/rust-macro-builtins.h: Likewise.
+ * expand/rust-macro-expand.cc: Likewise.
+ * parse/rust-parse-impl.h: Likewise.
+ * parse/rust-parse.cc: Likewise.
+ * parse/rust-parse.h: Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * parse/rust-parse-impl.h
+ (Parser::parse_macro_match): Use token_id_is_keyword.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h (class Identifier): Remove interface
+ inheritance.
+ (class SimplePath): Likewise.
+ * expand/rust-expand-visitor.cc (get_traits_to_derive): Change
+ return type.
+ (derive_item): Update according to get_traits_to_derive return
+ type.
+ (expand_item_attribute): Likewise.
+ (ExpandVisitor::expand_inner_stmts): Likewise.
+ * expand/rust-macro-expand.h (struct MacroExpander): Likewise.
+ * util/rust-hir-map.cc (Mappings::insert_derive_proc_macro_invocation):
+ Change input type to SimplePath.
+ (Mappings::lookup_derive_proc_macro_invocation): Likewise.
+ (Mappings::insert_attribute_proc_macro_invocation): Likewise.
+ (Mappings::lookup_attribute_proc_macro_invocation): Likewise.
+ * util/rust-hir-map.h: Likewise with function prototypes.
+ * util/rust-proc-macro-invocation.h: Removed.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h: Add new constructor for SimplePath from an
+ identifier.
+ * expand/rust-expand-visitor.cc (get_traits_to_derive): Add
+ conversion.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-macro-expand.cc (MacroExpander::import_proc_macros):
+ Remove function.
+ * expand/rust-macro-expand.h (struct MacroExpander): Remove
+ import_proc_macro function.
+ * util/rust-hir-map.cc (Mappings::insert_derive_proc_macro_def):
+ Add a function to insert a derive proc macro definition.
+ (Mappings::insert_bang_proc_macro): Remove function.
+ (Mappings::insert_bang_proc_macro_def): Add function to insert a
+ bang proc macro definition.
+ (Mappings::insert_attribute_proc_macro_def): Likewise with
+ attribute proc macros.
+ (Mappings::lookup_derive_proc_macro_def): Add a function to
+ lookup a defined derive proc macro definition.
+ (Mappings::lookup_bang_proc_macro): Remove function.
+ (Mappings::lookup_bang_proc_macro_def): Add a function to lookup
+ a bang proc macro definition.
+ (Mappings::lookup_attribute_proc_macro_def): Add a function to
+ lookup an attribute prod macro definition.
+ (Mappings::insert_derive_proc_macro_invocation): Add a function
+ to insert a derive proc macro invocation.
+ (Mappings::lookup_derive_proc_macro_invocation): Add a function
+ to lookup a derive proc macro invocation.
+ (Mappings::insert_bang_proc_macro_invocation): Add a function to
+ insert a bang proc macro invocation.
+ (Mappings::lookup_bang_proc_macro_invocation): Add a function to
+ lookup a bang proc macro invocation.
+ (Mappings::insert_attribute_proc_macro_invocation): Add a
+ function to insert an attribute proc macro invocation.
+ (Mappings::lookup_attribute_proc_macro_invocation): Add a
+ function to lookup an attribute proc macro invocation.
+ * util/rust-hir-map.h: Add different proc macro mappings
+ and change function prototypes.
+ * expand/rust-expand-visitor.cc (get_traits_to_derive): Return a
+ vector of SimplePath instead.
+ (derive_item): Accept SimplePath instead of a string.
+ * ast/rust-ast.h: Add common ProcMacroInvocable interface to
+ Identifiers and SimplePath nodes.
+ * ast/rust-ast.cc: Add const modifier.
+ * ast/rust-macro.h: Change path and identifier getters.
+ * ast/rust-path.h: Change return type to reference.
+ * util/rust-proc-macro-invocation.h: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-attributes.h (RUST_ATTRIBUTES_H): Add missing header
+ guard.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h (class MetaItem): Add MetaItem dispatch values.
+ * ast/rust-expr.h: Add LitExpr and PathLit dispatch.
+ * ast/rust-macro.h: Add remaining dispatch getters.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * metadata/rust-extern-crate.h: Add proc macro getter.
+ * rust-session-manager.cc (Session::load_extern_crate): Collect
+ mappings and create mappings.
+ * util/rust-hir-map.cc: Add insertion and lookup functions for
+ every mapping.
+ * util/rust-hir-map.h: Add function prototypes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * metadata/rust-imports.cc (Import::try_package_in_directory):
+ Add call to load macros before loading metadatas.
+ * expand/rust-proc-macro.cc: Return empty vector instead of
+ panicking on error.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * metadata/rust-import-archive.cc (Stream_concatenate::do_peek):
+ Remove deletion.
+ (Stream_concatenate::do_advance): Likewise.
+ (Import::find_archive_export_data): Replace with a smart
+ pointer.
+ * metadata/rust-imports.cc (add_search_path): Change return type
+ to smart pointer.
+ (Import::open_package): Likewise.
+ (Import::try_package_in_directory): Likewise.
+ (Import::find_export_data): Likewise.
+ (Import::find_object_export_data): Likewise.
+ (Import::Import): Change constructor to accept unique_ptr.
+ * metadata/rust-imports.h: Change constructor prototype.
+ * rust-session-manager.cc (Session::load_extern_crate): Change
+ pointer to smart pointer.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * metadata/rust-extern-crate.cc (ExternCrate::ExternCrate):
+ Change constructor to accept procedural macro vector.
+ * metadata/rust-extern-crate.h: Add vector of procecural macro
+ in extern crate.
+ * rust-session-manager.cc (Session::load_extern_crate): Add
+ argument to new constructor call.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * metadata/rust-imports.cc (add_search_path): Change prototype,
+ now return a pair of Stream and procedural macro vector.
+ (Import::open_package): Likewise.
+ (Import::try_package_in_directory): Likewise.
+ * metadata/rust-imports.h: Likewise.
+ * rust-session-manager.cc (Session::load_extern_crate):
+ Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * metadata/rust-imports.h: Make the function to load a given
+ file public.
+ * rust-session-manager.cc (Session::load_extern_crate): Change
+ path resolution depending on extern crate declaration in cli
+ arguments.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast-collector.h
+ (TokenCollector::visit):
+ Replace default argument with UNDEF_LOCATION.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-compile-base.cc: Replace Location with location_t.
+ * backend/rust-compile-base.h: Likewise.
+ * backend/rust-compile-block.cc: Likewise.
+ * backend/rust-compile-expr.cc: Likewise.
+ * backend/rust-compile-expr.h: Likewise.
+ * backend/rust-compile-extern.h: Likewise.
+ * backend/rust-compile-implitem.h: Likewise.
+ * backend/rust-compile-intrinsic.cc: Likewise.
+ * backend/rust-compile-item.h: Likewise.
+ * backend/rust-compile-pattern.h: Likewise.
+ * backend/rust-compile-resolve-path.cc: Likewise.
+ * backend/rust-compile-stmt.cc: Likewise.
+ * backend/rust-compile-type.cc: Likewise.
+ * backend/rust-compile.cc: Likewise.
+ * backend/rust-constexpr.cc: Likewise.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+ refactored and call error function.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-attributes.cc (AttributeChecker::visit): Add help
+ message.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-attributes.cc (AttributeChecker::visit): Add
+ attribute input check.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-attributes.cc (AttributeChecker::visit): Add
+ attribute check on functions.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (from_ident): Adapt code to new
+ constructor.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-proc-macro.cc (tokenstream_from_string): Add a
+ function that creates a tokenstream from a given string.
+ (load_macros_array): Add call to registration function.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * lang.opt: Add option
+ * rust-session-manager.cc: Add option registration in session
+ target options.
+ * rust-session-manager.h (struct CompileOptions): Add new getter
+ for proc macros instead of a boolean.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-forever-stack.h: New file.
+ * resolve/rust-forever-stack.hxx: New file.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * hir/rust-hir-dump.cc (convert_param_kind_to_str): New.
+ (convert_new_bind_type_to_str): New.
+ (convert_mut_to_str): New.
+ (Dump::go): New.
+ (Dump::put): New.
+ (Dump::begin): New.
+ (Dump::end): New.
+ (Dump::begin_field): New.
+ (Dump::end_field): New.
+ (Dump::put_field): New.
+ (Dump::visit_field): New.
+ (Dump::visit): Refactor.
+ (Dump::visit_collection): New.
+ (Dump::do_traititem): New.
+ (Dump::do_vis_item): New.
+ (Dump::do_functionparam): New.
+ (Dump::do_pathpattern): New.
+ (Dump::do_structexprstruct): New.
+ (Dump::do_expr): New.
+ (Dump::do_pathexpr): New.
+ (Dump::do_typepathsegment): New.
+ (Dump::do_typepathfunction): New.
+ (Dump::do_qualifiedpathtype): New.
+ (Dump::do_operatorexpr): New.
+ (Dump::do_mappings): New.
+ (Dump::do_inner_attrs): New.
+ (Dump::do_outer_attrs): New.
+ (Dump::do_baseloopexpr): New.
+ (Dump::do_ifletexpr): New.
+ (Dump::do_struct): New.
+ (Dump::do_enumitem): New.
+ (Dump::do_traitfunctiondecl): New.
+ (Dump::do_externalitem): New.
+ (Dump::do_namefunctionparam): New.
+ (Dump::do_stmt): New.
+ (Dump::do_type): New.
+ (Dump::do_item): New.
+ (Dump::do_tuplefield): New.
+ (Dump::do_structfield): New.
+ (Dump::do_genericargs): New.
+ (Dump::do_maybenamedparam): New.
+ * hir/rust-hir-dump.h: Refactor.
+ * hir/tree/rust-hir-item.h (enum_to_str): New.
+ * hir/tree/rust-hir-type.h (enum_to_str): New.
+ * hir/tree/rust-hir.cc (enum_to_str): New.
+ * util/rust-common.h (enum_to_str): New.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+ Matthew Jasper <mjjasper1@gmail.com>
+
+ * Make-lang.in: Add `rust-rib.cc` object.
+ * resolve/rust-rib.cc: New file.
+ * resolve/rust-rib.h: New file.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast.h: Replace Location with location_t.
+ * ast/rust-expr.h: Likewise.
+ * ast/rust-item.h: Likewise.
+ * ast/rust-macro.h: Likewise.
+ * ast/rust-path.h: Likewise.
+ * ast/rust-pattern.h: Likewise.
+ * ast/rust-stmt.h: Likewise.
+ * ast/rust-type.h: Likewise.
+ * hir/rust-ast-lower-base.h: 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-pattern.h: Likewise.
+ * hir/tree/rust-hir-stmt.h: Likewise.
+ * hir/tree/rust-hir-type.h: Likewise.
+ * hir/tree/rust-hir.h: Likewise.
+ * lex/rust-token.h: Likewise.
+ * resolve/rust-ast-resolve-pattern.h: Likewise.
+ * typecheck/rust-hir-trait-reference.h: Likewise.
+ * typecheck/rust-tyty-bounds.h: Likewise.
+ * typecheck/rust-tyty-call.h: Likewise.
+ * typecheck/rust-tyty-subst.h: Likewise.
+ * typecheck/rust-tyty-util.h: Likewise.
+ * typecheck/rust-tyty.h: Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast-collector.cc: Replace Location with location_t.
+ * ast/rust-ast.cc: Likewise.
+ * ast/rust-ast.h: Likewise.
+ * ast/rust-expr.h: Likewise.
+ * ast/rust-item.h: Likewise.
+ * ast/rust-macro.h: Likewise.
+ * ast/rust-path.cc: Likewise.
+ * ast/rust-path.h: Likewise.
+ * ast/rust-pattern.h: Likewise.
+ * ast/rust-stmt.h: Likewise.
+ * ast/rust-type.h: Likewise.
+ * backend/rust-compile-base.cc: Likewise.
+ * backend/rust-compile-base.h: Likewise.
+ * backend/rust-compile-block.cc: Likewise.
+ * backend/rust-compile-expr.cc: Likewise.
+ * backend/rust-compile-expr.h: Likewise.
+ * backend/rust-compile-fnparam.cc: Likewise.
+ * backend/rust-compile-fnparam.h: Likewise.
+ * backend/rust-compile-intrinsic.cc: Likewise.
+ * backend/rust-compile-pattern.cc: Likewise.
+ * backend/rust-compile-resolve-path.h: Likewise.
+ * backend/rust-compile.cc: Likewise.
+ * checks/errors/rust-const-checker.cc: Likewise.
+ * checks/errors/rust-const-checker.h: Likewise.
+ * checks/errors/rust-unsafe-checker.cc: Likewise.
+ * checks/errors/rust-unsafe-checker.h: Likewise.
+ * expand/rust-macro-builtins.cc: Likewise.
+ * expand/rust-macro-expand.h: Likewise.
+ * hir/rust-ast-lower-base.h: Likewise.
+ * hir/rust-ast-lower-implitem.h: Likewise.
+ * hir/rust-ast-lower-item.cc: 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-pattern.h: Likewise.
+ * hir/tree/rust-hir-stmt.h: Likewise.
+ * hir/tree/rust-hir-type.h: Likewise.
+ * hir/tree/rust-hir.cc: Likewise.
+ * hir/tree/rust-hir.h: Likewise.
+ * lex/rust-token.h: Likewise.
+ * metadata/rust-extern-crate.cc: Likewise.
+ * metadata/rust-extern-crate.h: Likewise.
+ * parse/rust-parse-impl.h: Likewise.
+ * parse/rust-parse.h: Likewise.
+ * resolve/rust-ast-resolve-expr.cc: Likewise.
+ * resolve/rust-ast-resolve-implitem.h: Likewise.
+ * resolve/rust-ast-resolve-pattern.h: Likewise.
+ * resolve/rust-ast-resolve-stmt.h: Likewise.
+ * resolve/rust-ast-resolve-toplevel.h: Likewise.
+ * resolve/rust-ast-resolve-type.h: Likewise.
+ * resolve/rust-name-resolver.cc: Likewise.
+ * resolve/rust-name-resolver.h: Likewise.
+ * rust-diagnostics.cc: Likewise.
+ * rust-diagnostics.h: Likewise.
+ * rust-gcc.cc: Likewise.
+ * rust-session-manager.cc: Likewise.
+ * rust-session-manager.h: Likewise.
+ * typecheck/rust-casts.cc: Likewise.
+ * typecheck/rust-casts.h: Likewise.
+ * typecheck/rust-coercion.cc: Likewise.
+ * typecheck/rust-coercion.h: Likewise.
+ * typecheck/rust-hir-path-probe.cc: Likewise.
+ * typecheck/rust-hir-path-probe.h: Likewise.
+ * typecheck/rust-hir-trait-reference.cc: Likewise.
+ * typecheck/rust-hir-trait-reference.h: Likewise.
+ * typecheck/rust-hir-trait-resolve.cc: Likewise.
+ * typecheck/rust-hir-type-check-base.cc: Likewise.
+ * typecheck/rust-hir-type-check-base.h: Likewise.
+ * typecheck/rust-hir-type-check-item.cc: Likewise.
+ * typecheck/rust-hir-type-check-item.h: Likewise.
+ * typecheck/rust-hir-type-check-path.cc: Likewise.
+ * typecheck/rust-hir-type-check-pattern.cc: Likewise.
+ * typecheck/rust-hir-type-check-pattern.h: Likewise.
+ * typecheck/rust-hir-type-check-type.cc: Likewise.
+ * typecheck/rust-hir-type-check-type.h: Likewise.
+ * typecheck/rust-hir-type-check.cc: Likewise.
+ * typecheck/rust-hir-type-check.h: Likewise.
+ * typecheck/rust-substitution-mapper.cc: Likewise.
+ * typecheck/rust-substitution-mapper.h: Likewise.
+ * typecheck/rust-type-util.cc: Likewise.
+ * typecheck/rust-typecheck-context.cc: Likewise.
+ * typecheck/rust-tyty-bounds.cc: Likewise.
+ * typecheck/rust-tyty-call.h: Likewise.
+ * typecheck/rust-tyty-subst.cc: Likewise.
+ * typecheck/rust-tyty-subst.h: Likewise.
+ * typecheck/rust-tyty-util.cc: Likewise.
+ * typecheck/rust-tyty-util.h: Likewise.
+ * typecheck/rust-tyty.cc: Likewise.
+ * typecheck/rust-tyty.h: Likewise.
+ * typecheck/rust-unify.cc: Likewise.
+ * typecheck/rust-unify.h: Likewise.
+ * util/rust-hir-map.cc: Likewise.
+ * util/rust-hir-map.h: Likewise.
+ * util/rust-identifier.h: Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-gcc.cc
+ (Gcc_backend::debug): Move out of class declaration.
+ (Gcc_backend::get_identifier_node): Likewise.
+ (Gcc_backend::wchar_type): Likewise.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
+ called error function.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-linemap.h (Linemap::predeclared_location): Remove.
+ * backend/rust-compile-type.cc:
+ Replace Linemap::predeclared_location with BUILTINS_LOCATION.
+ * resolve/rust-name-resolver.cc: Likewise.
+ * typecheck/rust-hir-type-check-type.cc: Likewise.
+ * typecheck/rust-tyty.cc: Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-gcc.h: Add include guard.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust-system.h (rust_unreachable): Change definition to fancy_abort
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Use rust_unreachable
+ instead of gcc_unreachable.
+ (get_delimiters): Likewise.
+ * ast/rust-ast-dump.h: Likewise.
+ * ast/rust-ast-formatting.cc (get_string_in_delims): Likewise.
+ (get_mode_dump_desc): Likewise.
+ * ast/rust-ast.cc (Visibility::as_string): Likewise.
+ (UseTreeGlob::as_string): Likewise.
+ * ast/rust-ast.h: Likewise.
+ * ast/rust-macro.h: Likewise.
+ * ast/rust-path.h: Likewise.
+ * backend/rust-compile-expr.cc (sort_tuple_patterns): Likewise.
+ (CompileExpr::visit): Likewise.
+ (CompileExpr::generate_closure_fntype): Likewise.
+ * backend/rust-compile-intrinsic.cc (op_with_overflow_inner): Likewise.
+ * backend/rust-compile-pattern.cc (CompilePatternBindings::visit): Likewise.
+ (CompilePatternLet::visit): Likewise.
+ * backend/rust-constexpr.cc (base_field_constructor_elt): Likewise.
+ (eval_array_reference): Likewise.
+ (label_matches): Likewise.
+ (eval_store_expression): Likewise.
+ (eval_call_expression): Likewise.
+ (build_data_member_initialization): Likewise.
+ (array_index_cmp): Likewise.
+ (get_array_or_vector_nelts): Likewise.
+ (eval_bit_field_ref): Likewise.
+ (eval_loop_expr): Likewise.
+ (potential_constant_expression_1): Likewise.
+ * backend/rust-mangle.cc (v0_simple_type_prefix): Likewise.
+ (v0_type_prefix): Likewise.
+ (v0_mangle_item): Likewise.
+ (Mangler::mangle_item): Likewise.
+ * backend/rust-tree.cc (convert_to_void): Likewise.
+ (type_memfn_quals): Likewise.
+ (rs_tree_equal): Likewise.
+ (fold_offsetof): Likewise.
+ (fold_builtin_source_location): Likewise.
+ (lvalue_error): Likewise.
+ * backend/rust-tree.h (struct named_decl_hash): Likewise.
+ (struct named_label_hash): Likewise.
+ * checks/errors/privacy/rust-visibility-resolver.cc
+ (VisibilityResolver::resolve_visibility): Likewise.
+ (VisibilityResolver::visit): Likewise.
+ * checks/errors/rust-const-checker.cc (ConstChecker::ctx_to_str): Likewise.
+ * checks/errors/rust-feature.cc (Feature::create): Likewise.
+ * expand/rust-expand-visitor.cc (get_traits_to_derive): Likewise.
+ (derive_item): Likewise.
+ (expand_item_attribute): Likewise.
+ (expand_stmt_attribute): Likewise.
+ * expand/rust-macro-expand.cc (MacroExpander::match_matcher): Likewise.
+ (MacroExpander::match_repetition): Likewise.
+ (transcribe_context): Likewise.
+ (MacroExpander::import_proc_macros): Likewise.
+ (MacroExpander::parse_proc_macro_output): Likewise.
+ * expand/rust-macro-expand.h: Likewise.
+ * expand/rust-macro-invoc-lexer.h: Likewise.
+ * expand/rust-macro-substitute-ctx.cc (SubstituteCtx::substitute_token): Likewise.
+ * expand/rust-proc-macro-invoc-lexer.h: Likewise.
+ * expand/rust-proc-macro.cc (load_macros): Likewise.
+ * hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_generic_args): Likewise.
+ (ASTLoweringBase::lower_literal): Likewise.
+ * hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
+ * hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Likewise.
+ * hir/rust-ast-lower-type.cc (ASTLoweringType::visit): Likewise.
+ * hir/rust-hir-dump.cc (Dump::visit): Likewise.
+ * hir/tree/rust-hir.cc (get_string_in_delims): Likewise.
+ (Visibility::as_string): Likewise.
+ (UseTreeGlob::as_string): Likewise.
+ (CompoundAssignmentExpr::as_string): Likewise.
+ (ArithmeticOrLogicalExpr::as_string): Likewise.
+ * lex/rust-lex.cc (Lexer::parse_byte_string): Likewise.
+ (Lexer::parse_string): Likewise.
+ * lex/rust-token.cc (RS_TOKEN): Likewise.
+ * parse/rust-parse-impl.h (Parser::parse_simple_path_segment): Likewise.
+ (Parser::parse_path_ident_segment): Likewise.
+ (Parser::parse_attr_input): Likewise.
+ (Parser::parse_inherent_impl_item): Likewise.
+ (Parser::parse_trait_impl_item): Likewise.
+ (Parser::parse_type_path_segment): Likewise.
+ (Parser::parse_reference_type): Likewise.
+ (get_lbp_for_comparison_expr): Likewise.
+ * parse/rust-parse.cc (peculiar_fragment_match_compatible): Likewise.
+ * resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Likewise.
+ * resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit): Likewise.
+ * resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): Likewise.
+ (ResolveTypeToCanonicalPath::visit): Likewise.
+ (ResolveGenericArgs::resolve_disambiguated_generic): Likewise.
+ * rust-gcc.cc (operator_to_tree_code): Likewise.
+ (fetch_overflow_builtins): Likewise.
+ (Gcc_backend::non_zero_size_type): Likewise.
+ (Gcc_backend::convert_tree): Likewise.
+ * rust-lang.cc (grs_langhook_type_for_mode): Likewise.
+ (grs_langhook_global_bindings_p): Likewise.
+ (grs_langhook_pushdecl): Likewise.
+ (grs_langhook_getdecls): Likewise.
+ (convert): Likewise.
+ * typecheck/rust-autoderef.h: Likewise.
+ * typecheck/rust-hir-path-probe.cc: Likewise.
+ * typecheck/rust-hir-trait-reference.cc (TraitItemReference::get_tyty): Likewise.
+ * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal): Likewise.
+ * typecheck/rust-hir-type-check-expr.cc: Likewise.
+ * typecheck/rust-hir-type-check-expr.h: Likewise.
+ * typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItem::visit): Likewise.
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
+ * typecheck/rust-hir-type-check-stmt.h: Likewise.
+ * typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): Likewise.
+ * typecheck/rust-substitution-mapper.h: Likewise.
+ * typecheck/rust-typecheck-context.cc (TypeCheckContextItem::get_context_type): Likewise.
+ * typecheck/rust-tyty-call.h: Likewise.
+ * typecheck/rust-tyty.cc (TypeKindFormat::to_string): Likewise.
+ (BaseType::monomorphized_clone): Likewise.
+ (VariantDef::variant_type_string): Likewise.
+ (ClosureType::handle_substitions): Likewise.
+ (IntType::as_string): Likewise.
+ (UintType::as_string): Likewise.
+ (FloatType::as_string): Likewise.
+ * typecheck/rust-unify.cc (UnifyRules::expect_projection): Likewise.
+ * util/rust-token-converter.cc (convert): Likewise.
+ (from_literal): Likewise.
+ (from_group): Likewise.
+ (from_tokentree): Likewise.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * checks/errors/rust-feature-gate.cc (FeatureGate::gate):
+ called error function.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * backend/rust-compile-intrinsic.cc (Intrinsics::compile):
+ called error function.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * checks/errors/rust-unsafe-checker.cc (check_unsafe_call):
+ called error function.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-location.h
+ (typedef RichLocation): Remove.
+ * expand/rust-macro-expand.cc: Replace RichLocation with rich_location.
+ * hir/rust-ast-lower-base.cc: Likewise.
+ * resolve/rust-ast-resolve-implitem.h: Likewise.
+ * resolve/rust-ast-resolve-stmt.h: Likewise.
+ * resolve/rust-ast-resolve-toplevel.h: Likewise.
+ * rust-diagnostics.cc: Likewise.
+ * rust-diagnostics.h: Likewise.
+ * rust-session-manager.cc: Likewise.
+ * typecheck/rust-casts.cc: Likewise.
+ * typecheck/rust-coercion.cc: Likewise.
+ * typecheck/rust-hir-inherent-impl-overlap.h: Likewise.
+ * typecheck/rust-hir-path-probe.h: Likewise.
+ * typecheck/rust-hir-trait-reference.cc: Likewise.
+ * typecheck/rust-hir-type-check-expr.cc: Likewise.
+ * typecheck/rust-hir-type-check-implitem.cc: Likewise.
+ * typecheck/rust-hir-type-check-item.cc: Likewise.
+ * typecheck/rust-hir-type-check-pattern.cc: Likewise.
+ * typecheck/rust-tyty-cmp.h: Likewise.
+ * typecheck/rust-tyty-subst.cc: Likewise.
+ * typecheck/rust-tyty.cc: Likewise.
+ * typecheck/rust-unify.cc: Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * lex/rust-lex.cc
+ (Lexer::start_line): Use linemap_line_start.
+ * rust-linemap.cc
+ (Linemap::start_line): Remove.
+ * rust-linemap.h
+ (Linemap::start_line): Remove.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-linemap.cc
+ (RichLocation::RichLocation): Remove.
+ (RichLocation::~RichLocation): Remove.
+ (RichLocation::add_range): Remove.
+ (RichLocation::add_fixit_insert_before): Remove.
+ (RichLocation::add_fixit_insert_after): Remove.
+ * rust-location.h
+ (class RichLocation): Remove.
+ * rust-diagnostics.cc
+ (rust_be_error_at): Remove RichLocation::get invocation.
+ * expand/rust-macro-expand.cc: Fix RichLocation constructor.
+ * hir/rust-ast-lower-base.cc: Likewise.
+ * resolve/rust-ast-resolve-implitem.h: Likewise.
+ * resolve/rust-ast-resolve-stmt.h: Likewise.
+ * resolve/rust-ast-resolve-toplevel.h: Likewise.
+ * rust-session-manager.cc: Likewise.
+ * typecheck/rust-casts.cc: Likewise.
+ * typecheck/rust-coercion.cc: Likewise.
+ * typecheck/rust-hir-inherent-impl-overlap.h: Likewise.
+ * typecheck/rust-hir-path-probe.h: Likewise.
+ * typecheck/rust-hir-trait-reference.cc: Likewise.
+ * typecheck/rust-hir-type-check-expr.cc: Likewise.
+ * typecheck/rust-hir-type-check-implitem.cc: Likewise.
+ * typecheck/rust-hir-type-check-item.cc: Likewise.
+ * typecheck/rust-hir-type-check-pattern.cc: Likewise.
+ * typecheck/rust-tyty-cmp.h: Likewise.
+ * typecheck/rust-tyty-subst.cc: Likewise.
+ * typecheck/rust-tyty.cc: Likewise.
+ * typecheck/rust-unify.cc: Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * lex/rust-lex.cc
+ (Lexer::get_current_location): Use linemap_position_for_column.
+ * rust-session-manager.cc
+ (Session::handle_crate_name): Likewise.
+ * rust-linemap.cc
+ (Linemap::get_location): Remove.
+ * rust-linemap.h
+ (Linemap::get_location): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * lex/rust-token.cc (escape_special_chars): Add a function that
+ escape a given string.
+ (Token::as_string): Add call to escape function for string/char
+ representations.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * hir/tree/rust-hir-type.h (MaybeNamedParam::get_type): Remove
+ rust_assert.
+ (BareFunctionType::get_return_type): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-intrinsic.cc (offset_handler): Remove
+ braces.
+ (sizeof_handler): Likewise.
+ (transmute_handler): Likewise.
+ (rotate_handler): Likewise.
+ (wrapping_op_handler_inner): Likewise.
+ (op_with_overflow_inner): Likewise.
+ (atomic_load_handler_inner): Likewise.
+ (unchecked_op_inner): Likewise.
+ (uninit_handler): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h: Add virtual destructor.
+ * expand/rust-macro-expand.h: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * hir/tree/rust-hir-full-decls.h (struct Crate): Change to
+ class.
+ (class Crate): Likewise.
+ (struct StructField): Likewise.
+ (class StructField): Likewise.
+ (struct TupleField): Likewise.
+ (class TupleField): Likewise.
+ (struct TraitFunctionDecl): Likewise.
+ (class TraitFunctionDecl): Likewise.
+ * rust-session-manager.h (struct Crate): Likewise.
+ (class Crate): Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-expr.h
+ (MetaItemPathLit::get_locus): Remove copy construction.
+ * backend/rust-constexpr.cc
+ (eval_constant_expression): Likewise.
+ (is_valid_constexpr_fn): Likewise.
+ * util/rust-token-converter.cc
+ (convert): Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * lex/rust-lex.cc
+ (Lexer::dump_and_skip): Use location_to_string.
+ * rust-linemap.cc
+ (Linemap::to_string): Move to...
+ (Linemap::location_to_string): ... here.
+ * rust-linemap.h
+ (Linemap::to_string): Remove.
+ (Linemap::location_to_string): Remove definition.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * hir/tree/rust-hir-expr.h (TypeCastExpr::get_casted_expr): Remove
+ assert in accessor.
+ (TypeCastExpr::get_type_to_convert_to): Likewise.
+ (CompoundAssignmentExpr::get_left_expr): Likewise.
+ (CompoundAssignmentExpr::get_right_expr): Likewise.
+ (GroupedExpr::get_expr_in_parens): Likewise.
+ (TupleIndexExpr::get_tuple_expr): Likewise.
+ (FieldAccessExpr::get_receiver_expr): Likewise.
+ (ClosureParam::get_pattern): Likewise.
+ (ClosureParam::get_type): Likewise.
+ (ExprType::get_return_type): Likewise.
+ (IfLetExpr::get_scrutinee_expr): Likewise.
+ (MatchArm::get_guard_expr): Likewise.
+ (MatchExpr::get_scrutinee_expr): Likewise.
+ * hir/tree/rust-hir-item.h (TypeParam::get_type): Likewise.
+ (SelfParam::get_type): Likewise.
+ (Function::get_return_type): Likewise.
+ (TypeAlias::get_type_aliased): Likewise.
+ (StructField::get_field_type): Likewise.
+ (TraitFunctionDecl::get_block_expr): Likewise.
+ (ImplBlock::get_trait_ref): Likewise.
+ * hir/tree/rust-hir-path.h (ConstGenericArg::get_expression): New.
+ (TypePathFunction::get_return_type): Remove assert in accessor.
+ (QualifiedPathType::get_trait): Likewise.
+ * hir/tree/rust-hir-pattern.h (PatternType::get_lower_bound): Likewise.
+ (PatternType::get_upper_bound): Likewise.
+ (ReferencePattern::get_referenced_pattern): Likewise.
+ * hir/tree/rust-hir.h (ConstGenericParam::get_default_expression): Likewise.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * hir/rust-ast-lower-base.cc (struct_field_name_exists):
+ called error function.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-diagnostics.cc
+ (rust_be_error_at): Add function accepting location_t and ErrorCode.
+ (rust_error_at): Likewise.
+ * rust-diagnostics.h
+ (rust_error_at): Likewise.
+ (rust_be_error_at): Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-linemap.cc
+ (class Gcc_linemap): Remove.
+ (Gcc_linemap::start_file): Move to...
+ (Linemap::start_file): ... here.
+ (Gcc_linemap::to_string): Move to...
+ (Linemap::to_string): ... here.
+ (Gcc_linemap::stop): Move to...
+ (Linemap::stop): ... here.
+ (Gcc_linemap::start_line): Move to...
+ (Linemap::start_line): ... here.
+ (Gcc_linemap::get_location): Move to...
+ (Linemap::get_location): ... here.
+ (rust_get_linemap): Use Linemap.
+ * rust-linemap.h
+ (Linemap::in_file_): New field from Gcc_linemap.
+ (Linemap::Linemap): Initialize in_file_.
+ (Linemap::~Linemap): Make non-virtual.
+ (Linemap::start_file): Likewise.
+ (Linemap::start_line): Likewise.
+ (Linemap::get_location): Likewise.
+ (Linemap::stop): Likewise.
+ (Linemap::to_string): Likewise.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * Make-lang.in: Remove rust-optional-test.cc's object file
+ * ast/rust-macro.h: Remove use of Rust::Optional
+ * backend/rust-compile-base.cc
+ (HIRCompileBase::resolve_method_address): Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.cc
+ (PrivacyReporter::check_for_privacy_violation): Likewise.
+ (PrivacyReporter::visit): Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.h: Likewise.
+ * checks/errors/rust-feature-gate.cc (FeatureGate::check): Likewise.
+ * checks/errors/rust-feature.cc (Feature::create): Likewise.
+ (Feature::as_name): Likewise.
+ * checks/errors/rust-feature.h: Likewise.
+ * expand/rust-macro-builtins.cc: Likewise.
+ * lex/rust-lex.cc (Lexer::Lexer): Likewise.
+ (Lexer::skip_token): Likewise.
+ (Lexer::dump_and_skip): Likewise.
+ * lex/rust-lex.h: Likewise.
+ * resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Likewise.
+ * resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): Likewise.
+ * rust-lang.cc (run_rust_tests): Likewise.
+ * rust-session-manager.cc (Session::compile_crate): Likewise.
+ (TargetOptions::dump_target_options): Likewise.
+ * rust-session-manager.h (struct TargetOptions): Likewise.
+ * util/rust-hir-map.cc (Mappings::lookup_module_children): Likewise.
+ (Mappings::lookup_module_chidren_items): Likewise.
+ (Mappings::lookup_module_child): Likewise.
+ (Mappings::lookup_parent_module): Likewise.
+ * util/rust-hir-map.h (RUST_HIR_MAP_H): Likewise.
+ * util/rust-optional-test.cc: Removed.
+ * util/rust-optional.h: Removed.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-linemap.h (Linemap::unknown_location): Remove.
+ * ast/rust-ast.cc:
+ Replace Linemap::unknown_location with UNKNOWN_LOCATION.
+ * ast/rust-path.cc: Likewise.
+ * hir/tree/rust-hir.cc: Likewise.
+ * metadata/rust-imports.cc: Likewise.
+ * parse/rust-parse-impl.h: Likewise.
+ * parse/rust-parse.h: Likewise.
+ * rust-backend.h: Likewise.
+ * rust-diagnostics.cc: Likewise.
+ * rust-session-manager.cc: Likewise.
+ * typecheck/rust-tyty.cc: Likewise.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * resolve/rust-ast-verify-assignee.h: called error function.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-tyty-call.cc (emit_unexpected_argument_error):
+ Refactored invalid number of argument into one function.
+ (TypeCheckCallExpr::visit): called refactored function.
+ (TypeCheckMethodCallExpr::check): likewise.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/expected.h: Adapt class to GCC requirements.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/expected.h: New file.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/optional.h: Adapt for GCC.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/optional.h: New file.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-location.h (UNDEF_LOCATION): New.
+ * ast/rust-ast-collector.cc: Replace Location () with UNDEF_LOCATION.
+ * ast/rust-ast-fragment.cc: Likewise.
+ * ast/rust-ast.h: Likewise.
+ * ast/rust-expr.h: Likewise.
+ * ast/rust-item.h: Likewise.
+ * ast/rust-macro.h: Likewise.
+ * ast/rust-path.h: Likewise.
+ * ast/rust-type.h: Likewise.
+ * backend/rust-compile-expr.cc: Likewise.
+ * backend/rust-compile-extern.h: Likewise.
+ * backend/rust-compile-implitem.h: Likewise.
+ * backend/rust-compile-intrinsic.cc: Likewise.
+ * backend/rust-compile-item.h: Likewise.
+ * backend/rust-compile.cc: Likewise.
+ * backend/rust-constexpr.cc: Likewise.
+ * expand/rust-expand-visitor.cc: Likewise.
+ * expand/rust-macro-expand.cc: Likewise.
+ * expand/rust-macro-expand.h: Likewise.
+ * expand/rust-macro-invoc-lexer.cc: Likewise.
+ * expand/rust-proc-macro-invoc-lexer.cc: Likewise.
+ * expand/rust-proc-macro.cc: 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.h: Likewise.
+ * lex/rust-lex.cc: Likewise.
+ * metadata/rust-export-metadata.cc: Likewise.
+ * parse/rust-parse-impl.h: Likewise.
+ * resolve/rust-ast-resolve-item.cc: Likewise.
+ * resolve/rust-ast-resolve.cc: Likewise.
+ * rust-diagnostics.h: Likewise.
+ * rust-session-manager.cc: Likewise.
+ * typecheck/rust-autoderef.cc: Likewise.
+ * typecheck/rust-coercion.cc: Likewise.
+ * typecheck/rust-hir-dot-operator.cc: Likewise.
+ * typecheck/rust-hir-path-probe.cc: Likewise.
+ * typecheck/rust-hir-trait-reference.cc: Likewise.
+ * typecheck/rust-hir-trait-reference.h: Likewise.
+ * typecheck/rust-hir-type-check-expr.cc: Likewise.
+ * typecheck/rust-hir-type-check-implitem.cc: Likewise.
+ * typecheck/rust-hir-type-check-type.cc: Likewise.
+ * typecheck/rust-hir-type-check.cc: Likewise.
+ * typecheck/rust-tyty-bounds.cc: Likewise.
+ * typecheck/rust-tyty-subst.cc: Likewise.
+ * typecheck/rust-tyty.cc: Likewise.
+ * util/rust-hir-map.cc: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Fix abit
+ output format.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Fix
+ external item trailing semicolon and outer attributes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Output
+ outer attributes on external functions.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Fix method
+ qualifier output.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Add where
+ clause.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Add outer
+ attributes to collector output.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Add
+ variadics in collector output.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Add
+ generics.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Fix generic
+ output.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Reformat
+ trait impl block.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Output
+ generic in inherent impl.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-dump.cc (Dump::require_spacing): Change dollar
+ spacing rule.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Change
+ formatting.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Fix trait
+ impl block output.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Fix binding
+ args.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Output
+ function qualifiers after visibility.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Fix self
+ param output.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-dump.cc (Dump::require_spacing): Add a rule to
+ remove spaces around dots and after references.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Fix several
+ token collection rules.
+ * ast/rust-ast-dump.cc (Dump::require_spacing): Add spacing rule
+ for comma.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-invoc-lexer.h
+ (class MacroInvocLexerBase): New.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-builtins.cc
+ (source_relative_path): Use LOCATION_FILE.
+ (MacroBuiltin::file_handler): Likewise.
+ (MacroBuiltin::column_handler): Use LOCATION_COLUMN.
+ (MacroBuiltin::line_handler): Use LOCATION_LINE.
+ * rust-linemap.cc
+ (Gcc_linemap::location_file): Remove.
+ (Gcc_linemap::location_line): Remove.
+ (Gcc_linemap::location_column): Remove.
+ * rust-linemap.h
+ (Linemap::location_file): Remove.
+ (Linemap::location_line): Remove.
+ (Linemap::location_column): Remove.
+ (Linemap::location_to_file): Remove.
+ (Linemap::location_to_line): Remove.
+ (Linemap::location_to_column): Remove.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
+ called error function and changed error message
+ similiar to rustc.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-linemap.cc
+ (Gcc_linemap::get_unknown_location): Remove.
+ (Gcc_linemap::get_predeclared_location): Remove.
+ (Gcc_linemap::is_predeclared): Remove.
+ (Gcc_linemap::is_unknown): Remove.
+ * rust-linemap.h
+ (Linemap::get_predeclared_location): Remove.
+ (Linemap::get_unknown_location): Remove.
+ (Linemap::is_predeclared): Remove.
+ (Linemap::is_unknown): Remove.
+ (Linemap::predeclared_location): Use BUILTINS_LOCATION.
+ (Linemap::unknown_location): Use UNKNOWN_LOCATION.
+ (Linemap::is_predeclared_location): Remove.
+ (Linemap::is_unknown_location): Remove.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit):
+ called error function
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve):
+ called error function.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * lex/rust-lex.cc (Lexer::input_source_is_valid_utf8): New method of `Lexer`.
+ * lex/rust-lex.h: Likewise.
+ * rust-session-manager.cc (Session::compile_crate): Add error.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-expand.cc
+ (transcribe_expression): Skip trailing semicolon.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-item.cc: called error function.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * ast/rust-ast.h: Modify constructors of `Rust::Identifier`
+ * ast/rust-pattern.h: Likewise.
+ * hir/tree/rust-hir-item.h: Likewise.
+ * parse/rust-parse-impl.h (Parser::parse_macro_rules_def): Likewise.
+ (Parser::parse_decl_macro_def): Likewise.
+ (Parser::parse_macro_match_fragment): Likewise.
+ (Parser::parse_module): Likewise.
+ (Parser::parse_use_tree): Likewise.
+ (Parser::parse_function): Likewise.
+ (Parser::parse_type_param): Likewise.
+ (Parser::parse_type_alias): Likewise.
+ (Parser::parse_struct): Likewise.
+ (Parser::parse_struct_field): Likewise.
+ (Parser::parse_enum): Likewise.
+ (Parser::parse_enum_item): Likewise.
+ (Parser::parse_union): Likewise.
+ (Parser::parse_static_item): Likewise.
+ (Parser::parse_trait): Likewise.
+ (Parser::parse_trait_item): Likewise.
+ (Parser::parse_trait_type): Likewise.
+ (Parser::parse_trait_const): Likewise.
+ (Parser::parse_external_item): Likewise.
+ (Parser::parse_generic_args_binding): Likewise.
+ (Parser::parse_method): Likewise.
+ (Parser::parse_maybe_named_param): Likewise.
+ (Parser::parse_identifier_pattern): Likewise.
+ (Parser::parse_struct_expr_field): Likewise.
+ (ResolveItem::visit): Likewise.
+ * typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItem::visit):Add comments
+ * resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit): Likewise.
+ * checks/lints/rust-lint-scan-deadcode.h: Fix error location
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-compile-base.cc
+ (HIRCompileBase::address_expression): Remove gcc_location method call.
+ (HIRCompileBase::indirect_expression): Likewise.
+ (HIRCompileBase::compile_constant_item): Likewise.
+ (HIRCompileBase::named_constant_expression): Likewise.
+ * backend/rust-compile-expr.cc
+ (CompileExpr::visit): Remove gcc_location method call, use UNKNOWN_LOCATION to initialize.
+ (CompileExpr::get_fn_addr_from_dyn): Remove gcc_location method call.
+ (CompileExpr::type_cast_expression): Likewise.
+ * backend/rust-compile-intrinsic.cc
+ (transmute_handler): Replace "Location ().gcc_location ()" with UNKNOWN_LOCATION.
+ (copy_nonoverlapping_handler): Likewise.
+ (prefetch_data_handler): Likewise.
+ (atomic_store_handler_inner): Likewise.
+ (atomic_load_handler_inner): Likewise.
+ * resolve/rust-ast-resolve-expr.cc
+ (ResolveExpr::visit): Remove gcc_location method call.
+ * rust-diagnostics.cc
+ (rust_be_error_at): Likewise.
+ (rust_be_warning_at): Likewise.
+ (rust_be_fatal_error): Likewise.
+ (rust_be_inform): Likewise.
+ * rust-diagnostics.h
+ (rust_sorry_at): Likewise.
+ * rust-gcc.cc
+ (Bvariable::get_tree): Likewise.
+ (Gcc_backend::fill_in_fields): Likewise.
+ (Gcc_backend::named_type): Likewise.
+ (Gcc_backend::real_part_expression): Likewise.
+ (Gcc_backend::imag_part_expression): Likewise.
+ (Gcc_backend::complex_expression): Likewise.
+ (Gcc_backend::convert_expression): Likewise.
+ (Gcc_backend::struct_field_expression): Likewise.
+ (Gcc_backend::compound_expression): Likewise.
+ (Gcc_backend::conditional_expression): Likewise.
+ (Gcc_backend::negation_expression): Likewise.
+ (Gcc_backend::arithmetic_or_logical_expression): Likewise.
+ (Gcc_backend::arithmetic_or_logical_expression_checked): Likewise.
+ (Gcc_backend::comparison_expression): Likewise.
+ (Gcc_backend::lazy_boolean_expression): Likewise.
+ (Gcc_backend::constructor_expression): Likewise.
+ (Gcc_backend::array_constructor_expression): Likewise.
+ (Gcc_backend::array_initializer): Likewise.
+ (Gcc_backend::array_index_expression): Likewise.
+ (Gcc_backend::call_expression): Likewise.
+ (Gcc_backend::assignment_statement): Likewise.
+ (Gcc_backend::return_statement): Likewise.
+ (Gcc_backend::exception_handler_statement): Likewise.
+ (Gcc_backend::if_statement): Likewise.
+ (Gcc_backend::loop_expression): Likewise.
+ (Gcc_backend::exit_expression): Likewise.
+ (Gcc_backend::block): Likewise.
+ (Gcc_backend::convert_tree): Likewise.
+ (Gcc_backend::global_variable): Likewise.
+ (Gcc_backend::local_variable): Likewise.
+ (Gcc_backend::parameter_variable): Likewise.
+ (Gcc_backend::static_chain_variable): Likewise.
+ (Gcc_backend::temporary_variable): Likewise.
+ (Gcc_backend::label): Likewise.
+ (Gcc_backend::goto_statement): Likewise.
+ (Gcc_backend::label_address): Likewise.
+ (Gcc_backend::function): Likewise.
+ * rust-linemap.cc
+ (Gcc_linemap::to_string): Likewise.
+ (Gcc_linemap::location_file): Likewise.
+ (Gcc_linemap::location_line): Likewise.
+ (Gcc_linemap::location_column): Likewise.
+ (Gcc_linemap::is_predeclared): Likewise.
+ (Gcc_linemap::is_unknown): Likewise.
+ (RichLocation::RichLocation): Likewise.
+ (RichLocation::add_range): Likewise.
+ (RichLocation::add_fixit_insert_before): Likewise.
+ (RichLocation::add_fixit_insert_after): Likewise.
+ * rust-location.h
+ (class Location): Replace with typedef.
+ (operator<): Remove.
+ (operator==): Remove.
+ (operator+): Remove.
+ (operator-): Remove.
+ * typecheck/rust-hir-trait-resolve.cc
+ (AssociatedImplTrait::setup_associated_types): Initialize Location with UNKNOWN_LOCATION.
+ * typecheck/rust-hir-type-check-stmt.cc
+ (TypeCheckStmt::visit): Likewise.
+ * util/rust-token-converter.cc
+ (convert): Remove gcc_location method call.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * hir/tree/rust-hir-expr.h (BorrowExpr::is_double_borrow): New.
+ (ArrayElemsCopied::get_elem_to_copy)
+ (ArrayElemsCopied::get_num_copies_expr): Return unique_ptr.
+ (CallExpr::get_fnexpr): Likewise.
+ (ReturnExpr::get_expr): Likewise.
+ (StructExprStructFields::get_struct_base): New.
+ (MethodCallExpr::has_params): New.
+ (ClosureExpr::has_params): New.
+ (BlockExpr::get_inner_attrs): New.
+ (WhileLoopExpr::get_patterns): New.
+ (ForLoopExpr::get_pattern): New.
+ (IfLetExpr::get_if_block): Return ref to unique_ptr.
+ (IfLetExprConseqElse::get_else_block): Likewise.
+ (MatchExpr::get_inner_attrs): New.
+ * hir/tree/rust-hir-item.h (Module::get_module_name): New.
+ (ExternCrate::get_referenced_crate)
+ (ExternCrate::get_as_clause_name): New.
+ (UseTreeGlob::get_glob_type, UseTreeGlob::get_path): New.
+ (UseTreeList::get_path_type, UseTreeList::get_path)
+ (UseTreeList::get_trees): New.
+ (TraitItemKind::get_expr): Remove assert. unique_ptr can
+ be "empty". Must be checked in caller.
+ * hir/tree/rust-hir-pattern.h (IdentifierPattern::get_is_ref)
+ (IdentifierPattern::get_to_bind): New.
+ (RangePatternBoundType::get_has_minus): New.
+ (RangePattern::get_has_ellipsis_syntax): New.
+ (StructPatternField::get_outer_attrs): New.
+ (StructPatternFieldTuplePat::get_index)
+ (StructPatternFieldTuplePat::get_tuple_pattern): New.
+ (StructPatternFieldIdent::get_has_ref): New.
+ * hir/tree/rust-hir-stmt.h (LetStmt::get_outer_attrs): New.
+ (LetStmt::get_type)
+ (LetStmt::get_init_expr, LetStmt::get_pattern): Return unique_ptr.
+ (ExprStmt::get_expr): Likewise.
+ * hir/tree/rust-hir-type.h (TraitBound::get_for_lifetimes): New.
+ (TraitBound::get_in_params): New.
+ (TraitBound::get_opening_question_mark): New.
+ (ImplTraitType::get_type_param_bounds): New.
+ (TraitObjectType::get_has_dyn): New.
+ (TraitBound::get_type_in_parens): New.
+ (ImplTraitTypeOneBound::get_trait_bound): New.
+ (BareFunctionType::get_for_lifetimes)
+ (BareFunctionType::get_is_variadic)
+ (BareFunctionType::get_function_qualifiers): New.
+ * hir/tree/rust-hir.h (class Expr): Virtual inherit from FullVisitable.
+ (class Pattern): Likewise.
+ (ConstGenericParam::get_name): New.
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Adjust call.
+ (TypeCheckExpr::resolve_fn_trait_call): Likewise.
+ * backend/rust-compile-expr.cc (CompileExpr::visit): Adjust call.
+ (CompileExpr::array_copied_expr): Likewise.
+ (CompileExpr::generate_possible_fn_trait_call): Likewise.
+ * backend/rust-compile-stmt.cc (CompileStmt::visit): Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise.
+ * checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
+ * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
+ * hir/rust-hir-dump.cc (Dump::visit): Likewise.
+ * typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-path-probe.h: called error function
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args):
+ called error function
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * hir/tree/rust-hir-expr.h (class ArrayElems): Inherit from FullVisitable.
+ (class StructExprField): Likewise.
+ * hir/tree/rust-hir-item.h (class WhereClauseItem): Likewise.
+ (class UseTree): Likewise.
+ (UseTreeRebind::get_path, UseTreeRebind::get_identifier)
+ (UseTreeRebind::get_bind_type): New.
+ (UseDeclaration::get_use_tree): New.
+ (struct TraitFunctionDecl): Change struct to ...
+ (class TraitFunctionDecl): ... class.
+ (TraitFunctionDecl::get_where_clause): New.
+ (StructField::get_outer_attrs): New.
+ (struct TupleField): Change struct to ...
+ (class TupleField): ... class.
+ (TupleField::get_visibility, TupleField::get_outer_attrs): New.
+ * hir/tree/rust-hir-pattern.h (class TupleStructItems): Inherit
+ from FullVisitable.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * lex/rust-lex.cc (Lexer::build_token): Replace function call.
+ (Lexer::parse_string): Likewise.
+ (Lexer::parse_identifier_or_keyword): Likewise.
+ (Lexer::parse_raw_string): Likewise.
+ (Lexer::parse_char_or_lifetime): Likewise.
+ (Lexer::get_input_codepoint_length): Deleted.
+ (Lexer::peek_codepoint_input): Deleted.
+ (Lexer::skip_codepoint_input): Deleted.
+ * lex/rust-lex.h: Remove some methods and fields
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound): track output
+ * util/rust-hir-map.cc (Mappings::lookup_trait_item_lang_item): new helper
+ * util/rust-hir-map.h: add prototype for helper
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::generate_possible_fn_trait_call): use fnexpr
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::resolve_fn_trait_call): likewise
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): called rust_error_at
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * hir/tree/rust-hir.h (struct Crate): Rename struct into ...
+ (class Crate): ... class, and add get_items.
+ * backend/rust-compile.cc (CompileCrate::go): Adapt to visibility change of items.
+ * checks/errors/privacy/rust-privacy-check.cc (Resolver::resolve): Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::go): Likewise.
+ * checks/errors/privacy/rust-pub-restricted-visitor.cc (PubRestrictedVisitor::go): Likewise.
+ * checks/errors/privacy/rust-visibility-resolver.cc (VisibilityResolver::go): Likewise.
+ * checks/errors/rust-const-checker.cc (ConstChecker::go): Likewise.
+ * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::go): Likewise.
+ * checks/lints/rust-lint-marklive.cc (FindEntryPoint::find): Likewise.
+ * checks/lints/rust-lint-scan-deadcode.h (ScanDeadCode::Scan): Likewise.
+ * metadata/rust-export-metadata.cc (PublicInterface::gather_export_data): Likewise.
+ * typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): Likewise.
+ * hir/rust-hir-dump.cc (CompileCrate::go): Likewise.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * hir/tree/rust-hir-expr.h (AwaitExpr::get_awaited_expr): New.
+ (AsyncBlockExpr::get_has_move, AsyncBlockExpr::get_block_expr): New.
+ * hir/tree/rust-hir-item.h (Enum::get_where_clause): New.
+ (Trait::get_where_clause, Trait::is_unsafe): New.
+ (ExternalItem::get_visibility): New.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * hir/tree/rust-hir.h (class FullVisitable): New.
+ (class Stmt): Adjust with new class.
+ (class Expr): Likewise.
+ (class Pattern): Likewise.
+ (class Type): Likewise.
+ (class TypeParamBound): Likewise.
+ (class GenericParam): Likewise.
+ (class TraitItem): Likewise.
+ (class ImplItem): Likewise.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * hir/tree/rust-hir.h (class WithInnerAttrs): New.
+ (class Item): Adjust to new WithInnerAttrs class.
+ (struct Crate): Likewise.
+ * hir/rust-hir-dump.cc (Dump::go): Likewise.
+ (Dump::visit): Likewise.
+ * hir/tree/rust-hir-expr.h (class GroupedExpr): Likewise.
+ (class ArrayExpr): Likewise.
+ (class TupleExpr): Likewise.
+ (class StructExprStruct): Likewise.
+ (class BlockExpr): Likewise.
+ (class MatchExpr): Likewise.
+ * hir/tree/rust-hir-item.h (TypeParam::get_outer_attribute): New.
+ (class Module): Adjust to new WithInnerAttrs class.
+ (struct StructField): change struct to...
+ (class StructField): ... a class.
+ (class ImplBlock): Adjust to new WithInnerAttrs class.
+ (class ExternBlock): Likewise.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * hir/tree/rust-hir-type.h (ArrayType::get_element_type): Returns
+ unique_ptr.
+ * hir/tree/rust-hir-expr.h (ArithmeticOrLogicalExpr::get_lhs)
+ (ArithmeticOrLogicalExpr::get_rhs): Likewise.
+ (ComparisonExpr::get_lhs, ComparisonExpr::get_rhs): Likewise.
+ (LazyBooleanExpr::get_lhs, LazyBooleanExpr::get_rhs): Likewise.
+ (AssignmentExpr::get_lhs, AssignmentExpr::get_rhs): Likewise.
+ (ArrayExpr::get_internal_elements): Likewise.
+ (ArrayIndexExpr::get_index_expr, ArrayIndexExpr::get_array_expr):
+ Likewise.
+ (StructExprFieldWithVal::get_value): Likewise.
+ (IfExpr::get_if_condition, IfExpr::get_if_block): Likewise.
+ (ExprWithBlock::get_else_block): Likewise.
+ * hir/tree/rust-hir-item.h (FunctionParam::get_param_name)
+ (FunctionParam::get_type): Likewise.
+ (ConstantItem::get_type, ConstantItem::get_expr): Likewise.
+ (StaticItem::get_expr, StaticItem::get_type): Likewise.
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
+ Adjust for previous change.
+ * backend/rust-compile-block.cc (CompileConditionalBlocks::visit):
+ Likewise.
+ * backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
+ * backend/rust-compile-item.cc (CompileItem::visit): Likewise.
+ * backend/rust-compile-struct-field-expr.cc
+ (CompileStructExprField::visit): Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.cc
+ (PrivacyReporter::visit): Likewise.
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+ Likewise.
+ * typecheck/rust-hir-type-check-implitem.cc
+ (TypeCheckImplItem::visit): Likewise.
+ * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
+ Likewise.
+ * typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit):
+ Likewise.
+ * typecheck/rust-hir-type-check-struct.cc
+ (TypeCheckStructExpr::visit): Likewise.
+ * typecheck/rust-hir-type-check.cc
+ (TraitItemReference::get_type_from_fn): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-pattern.h: Change constructor to accept new parameter
+ instead of defaulting on string type.
+ * parse/rust-parse-impl.h (Parser::parse_literal_or_range_pattern):
+ Propagate type hint.
+ (Parser::parse_pattern_no_alt): Likewise.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * lex/rust-lex.cc (Lexer::parse_byte_char):add check for range of codepoint
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-pattern.cc (emit_invalid_field_error): Refactored Field
+ Error Function
+ (TypeCheckPattern::visit): called emit_invalid_field_error function
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-expand.cc
+ (MacroExpander::match_matcher): Remove append_fragment inside repetitions.
+ (MacroExpander::match_n_matches): Use sub_stack push/pop to handle repetitions.
+ (MatchedFragmentContainer::add_fragment): Add MatchedFragmentContainer accepting version.
+ * expand/rust-macro-expand.h
+ (MatchedFragmentContainer::add_fragment): Likewise.
+ (MatchedFragmentContainerRepetition::add_fragment): Likewise.
+ (SubstititionScope::append_fragment): Likewise.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-casts.cc (TypeCastRules::check): apply new argument
+ * typecheck/rust-coercion.cc (TypeCoercionRules::Coerce): track if this is a cast site
+ (TypeCoercionRules::TryCoerce): update ctor
+ (TypeCoercionRules::TypeCoercionRules): cleanup error handling
+ (TypeCoercionRules::do_coercion): likewise
+ (TypeCoercionRules::coerce_unsafe_ptr): only infer in try mode
+ (TypeCoercionRules::coerce_borrowed_pointer): cleanup
+ * typecheck/rust-coercion.h: update header
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-trait-reference.h: update prototype
+ * typecheck/rust-hir-trait-resolve.cc: add generic args as an out param
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): use the generics
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Add comment
+ after tail expressions.
+ * ast/rust-ast-dump.cc (Dump::require_spacing): Check for
+ missing previous token.
+ * ast/rust-ast-dump.h: Output formatting characters.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::collect): Collect
+ CollectItems once done.
+ (TokenCollector::newline): Add newline formatting
+ implementation.
+ (TokenCollector::indentation): Add indentation implementation.
+ (TokenCollector::increment_indentation): Add indentation
+ increment.
+ (TokenCollector::comment): Add new comment formatting option.
+ * ast/rust-ast-collector.h: Update prototypes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::collect_tokens):
+ Filter tokens.
+ (TokenCollector::visit_items_joined_by_separator): Change store
+ call.
+ (TokenCollector::visit_as_line): Likewise.
+ (TokenCollector::visit_items_as_block): Likewise.
+ (TokenCollector::trailing_comma): Likewise.
+ (TokenCollector::visit): Likewise.
+ (TokenCollector::visit_closure_common): Likewise.
+ (TokenCollector::visit_function_common): Likewise.
+ * ast/rust-ast-collector.h (class CollectItem): Add class to
+ differentiate between formatting and raw data (tokens).
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::TokenCollector):
+ Remove constructor, changing it to an implicit default
+ constructor.
+ * ast/rust-ast-collector.h: Change from container reference to
+ direct container.
+ * ast/rust-ast-dump.h: Change call to constructor.
+ * expand/rust-macro-expand.h (struct MacroExpander): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-dump.cc (Dump::require_spacing): Add a function
+ to determine wether a space shall output.
+ * ast/rust-ast-dump.h: Add function prototype as well as
+ condition.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Add a visit
+ function for visitable abstract class so we can call a dump on
+ any visitable item.
+ * ast/rust-ast-collector.h: Add new visit function prototype.
+ * ast/rust-ast-dump.cc (Dump::go): Add call to process function.
+ (Dump::visit): Remove functions.
+ (Dump::visit_items_joined_by_separator): Likewise.
+ (Dump::visit_as_line): Likewise.
+ (Dump::visit_items_as_lines): Likewise.
+ (Dump::visit_items_as_block): Likewise.
+ (Dump::visit_function_common): Likewise.
+ (get_delimiters): Likewise.
+ (Dump::debug): Update with call to tokencollector.
+ * ast/rust-ast-dump.h (RUST_AST_DUMP_H): Move include
+ directives.
+ (class Dump): Remove multiple prototypes and add generic process
+ function.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Add
+ semicolon in extern blocks.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust-session-manager.cc (Session::enable_dump): Remove
+ tokenstream dump.
+ (Session::compile_crate): Likewise.
+ (Session::dump_tokenstream): Likewise.
+ * rust-session-manager.h (struct CompileOptions): Likewise.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * lex/rust-lex.cc (Lexer::build_token):add check for all kinds of whitespaces
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h: Add default constructors.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * 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.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * lex/rust-lex.cc (is_float_digit):Change types of param to `uint32_t`
+ (is_x_digit):Likewise
+ (is_octal_digit):Likewise
+ (is_bin_digit):Likewise
+ (check_valid_float_dot_end):Likewise
+ (is_whitespace):Likewise
+ (is_non_decimal_int_literal_separator):Likewise
+ (is_identifier_start):Likewise
+ (is_identifier_continue):Likewise
+ (Lexer::skip_broken_string_input):Likewise
+ (Lexer::build_token):Remove handling BOM
+ (Lexer::parse_in_type_suffix):Modify use of `current_char`
+ (Lexer::parse_in_decimal):Likewise
+ (Lexer::parse_escape):Likewise
+ (Lexer::parse_utf8_escape):Likewise
+ (Lexer::parse_partial_string_continue):Likewise
+ (Lexer::parse_partial_hex_escape):Likewise
+ (Lexer::parse_partial_unicode_escape):Likewise
+ (Lexer::parse_byte_char):Likewise
+ (Lexer::parse_byte_string):Likewise
+ (Lexer::parse_raw_byte_string):Likewise
+ (Lexer::parse_raw_identifier):Likewise
+ (Lexer::parse_non_decimal_int_literal):Likewise
+ (Lexer::parse_decimal_int_or_float):Likewise
+ (Lexer::peek_input):Change return type to `Codepoint`
+ (Lexer::get_input_codepoint_length):Change to return 1
+ (Lexer::peek_codepoint_input):Change to be wrapper of `peek_input`
+ (Lexer::skip_codepoint_input):Change to be wrapper of `skip_input`
+ (Lexer::test_get_input_codepoint_n_length):Deleted
+ (Lexer::split_current_token):Deleted
+ (Lexer::test_peek_codepoint_input):Deleted
+ (Lexer::start_line):Move backwards
+ (assert_source_content):New helper function for selftest
+ (test_buffer_input_source):New helper function for selftest
+ (test_file_input_source):Likewise
+ (rust_input_source_test):New test
+ * lex/rust-lex.h (rust_input_source_test):New test
+ * rust-lang.cc (run_rust_tests):Add selftest
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-expand.cc
+ (MacroExpander::match_repetition_skipped_metavars): New.
+ (MacroExpander::match_repetition): Use new method.
+ * expand/rust-macro-expand.h
+ (MacroExpander::match_repetition_skipped_metavars): New.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): called rust_error_at
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): called rust_error_at
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-expand.cc
+ (MacroExpander::match_token): Match token instead of token id.
+ * parse/rust-parse-impl.h
+ (Parser::skip_token): Add token-skipping variant.
+ (Parser::expect_token): Likewise.
+ * parse/rust-parse.h
+ (Parser::skip_token): Likewise.
+ (Parser::expect_token): Likewise.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * lang.opt: Add -frust-name-resolution-2.0 option
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-autoderef.cc (AutoderefCycle::cycle): add check for pointers
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-autoderef.cc: use new selection filter
+ * typecheck/rust-hir-dot-operator.cc (MethodResolver::Select): new slection Filter
+ * typecheck/rust-hir-dot-operator.h: New select prototype
+ * typecheck/rust-hir-type-check-expr.cc: call select
+ * typecheck/rust-type-util.cc (try_coercion): new helper
+ * typecheck/rust-type-util.h (try_coercion): helper prototype
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): passed "E0277"
+ * typecheck/rust-tyty.cc (BaseType::bounds_compatible): passed "E0277"
+
+2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
+
+ * expand/rust-expand-visitor.cc (ExpandVisitor::visit):
+ Expand expressions in more contexts.
+ * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
+ Visit enum variants.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.cc (BlockExpr::normalize_tail_expr): Refactor
+ code and warn about dangling reference.
+ * expand/rust-expand-visitor.cc (expand_stmt_attribute):
+ Document function and change argument names to make those
+ clearer.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-expand-visitor.cc (ExpandVisitor::expand_inner_stmts):
+ Remove second argument.
+ (ExpandVisitor::visit): Remove argument from function call.
+ * expand/rust-expand-visitor.h: Update function prototype.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-expand-visitor.cc (ExpandVisitor::visit): Change
+ call to expand_inner_stmts.
+ (expand_tail_expr): Change argument name and try to expand the
+ last statement as a tail expression once all statements have
+ been expanded.
+ * expand/rust-expand-visitor.h: Change prototype to accept
+ parent class.
+ * ast/rust-expr.h: Add try_convert_last_stmt function prototype.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-expr.h: Add a function to take tail expr as well
+ as a function to set a tail expression.
+ * expand/rust-expand-visitor.cc (expand_tail_expr): Add tail
+ expression expansion function.
+ (ExpandVisitor::visit): Add call to tail expr expansion in for
+ BlockExpr.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+ Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-expand-visitor.cc : Change type from pointer to
+ reference and expand statements from statements.
+ * ast/rust-macro.h: Return macro kind.
+ * ast/rust-ast.h: Add Statement kind.
+ * ast/rust-item.h: Change module.
+ * ast/rust-stmt.h: Return kind.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-expand.cc
+ (MacroExpander::expand_decl_macro):
+ Use pointers/smart pointers to refer to MatchedFragmentContainer instances.
+ (MacroExpander::transcribe_rule): Likewise.
+ (MatchedFragmentContainer::get_single_fragment): New implementation.
+ (MatchedFragmentContainer::get_fragments): Likewise.
+ (MatchedFragmentContainer::add_fragment): Likewise.
+ (MatchedFragmentContainer::zero): Likewise.
+ (MatchedFragmentContainer::metavar): Likewise.
+ * expand/rust-macro-expand.h
+ (class MatchedFragmentContainer): Make abstract.
+ (class MatchedFragmentContainerMetaVar): New.
+ (class MatchedFragmentContainerRepetition): New.
+ (class SubstitutionScope):
+ Use pointers/smart pointers to refer to MatchedFragmentContainer instances.
+ (MacroExpander::transcribe_rule): Likewise.
+ * expand/rust-macro-substitute-ctx.cc
+ (SubstituteCtx::substitute_metavar): Likewise.
+ (SubstituteCtx::check_repetition_amount): Likewise.
+ (SubstituteCtx::substitute_repetition): Likewise.
+ * expand/rust-macro-substitute-ctx.h
+ (class SubstituteCtx): Likewise.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): called rust_error_at
+ * resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): called rust_error_at
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::ResolveImplBlockSelfWithInference):
+ arguments mappings as an out parameter and apply them to the bounds
+ * typecheck/rust-hir-type-check-item.h: update the prototype
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
+ apply the arguments to the segment type
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
+ simplify lookup of the respective predicate
+ * typecheck/rust-tyty-subst.cc (SubstitutionArg::SubstitutionArg): track original parameter
+ (SubstitutionArg::operator=): update copy ctor
+ (SubstitutionArg::get_param_ty): use original param
+ (SubstitutionArg::as_string): update as_string
+ * typecheck/rust-tyty-subst.h: add new private field
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::ResolveImplBlockSelfWithInference):
+ New helper utility to infer non concrete types and handle the case where its not a
+ binding generic type (which inherits SubstitutionRef)
+ * typecheck/rust-hir-type-check-item.h: new helper prototype
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): use this helper
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-trait-resolve.cc: use lookup_predicate (DefID)
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): fix formatting
+
+2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
+
+ * ast/rust-ast.h (MacroInvocation::add_semicolon): New method.
+ (Expr::to_stmt): Remove method.
+ * ast/rust-macro.h (MacroInvocation::add_semicolon): Add override.
+ (MacroInvocation::to_stmt): Remove override.
+ * ast/rust-stmt.h: Remove use of Expr::to_stmt.
+ (ExprStmt::add_semicolon): Add override.
+ * expand/rust-macro-expand.h (struct MacroExpander):
+ Add EXPR/STMT and remove BLOCK from ContextType.
+ * expand/rust-expand-visitor.cc (ExpandVisitor::maybe_expand_expr): Use EXPR context.
+ (ExpandVisitor::expand_inner_stmts): Use STMT context.
+ (ExpandVisitor::visitor): Remove use of BLOCK context.
+ * expand/rust-macro-expand.cc (parse_many): Pass enum by value.
+ (transcribe_on_delimiter): Remove function.
+ (transcribe_context): Use EXPR/STMT contexts.
+ (MacroExpander::parse_proc_macro_output): Use EXPR/STMT contexts.
+ (transcribe_many_stmts): Parse statements with semicolons.
+ * parse/rust-parse-impl.h (Parser::parse_stmt):
+ Delegate macro parsing to parse_expr_stmt, check for ! after macro_rules.
+ (Parser::parse_let_stmt): Work around lack of NT tokens.
+ (Parser::parse_expr_stmt): Handle statements at end of macro expansions.
+ (Parser::parse_expr_stmt): Parse macro statements/expression statements
+ starting with a macro.
+ (Parser::parse_match_expr): Don't modify flag unnecessarily.
+ (Parser::parse_stmt_or_expr):
+ Parse macro statements/expression statements starting with a macro.
+ (Parser::parse_path_based_stmt_or_expr): Remove method.
+ (Parser::parse_macro_invocation_maybe_semi): Remove method.
+ (Parser::parse_expr): Move code into left_denotations.
+ (Parser::left_denotations): New method.
+ (Parser::null_denotation): Split out methods for cases with and without paths.
+ (Parser::null_denotation_path): New method.
+ (Parser::null_denotation_not_path): New method.
+ (Parser::parse_macro_invocation_partial): Don't check for semicolon here.
+ * parse/rust-parse.h: Update declarations.
+ (struct ParseRestrictions): Additional flag.
+
+2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
+
+ * ast/rust-ast.cc (BlockExpr::strip_tail_expr):
+ Don't normalize tail expression in this method.
+ (BlockExpr::normalize_tail_expr): New method that only does the normalization.
+ * ast/rust-expr.h: Declare new method.
+ * hir/rust-ast-lower-block.h: Normalize tail expressions on blocks before lowering.
+
+2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
+
+ * ast/rust-ast-dump.cc (Dump::visit): Print macro invocations.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * lex/rust-lex.cc (is_whitespace):add all lacked codepoints valid as whitespaces
+ (is_identifier_start):new function to check XID_Start and underscore
+ (is_identifier_continue):new function to check XID_Continue
+ (Lexer::build_token):tokenize Unicode identifiers
+ (Lexer::parse_partial_string_continue):add comments
+ (Lexer::parse_partial_unicode_escape):add comments
+ (Lexer::parse_raw_identifier):change to use `is_identifier_scontinue`
+ (Lexer::parse_identifier_or_keyword):change to use `is_identifier_continue`
+ (Lexer::parse_char_or_lifetime):change to use `is_identifier_start/continue`
+ (Lexer::skip_codepoint_input):do not attempt to skip input when bumping EOF
+ * lex/rust-lex.h:add `current_char32` field
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * lex/rust-lex.cc
+ (Lexer::classify_keyword): Check if iterator is valid before dereferencing.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-expand.cc
+ (MacroExpander::match_repetition): Remove redundant rust_error_at call.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-unify.cc (UnifyRules::go): dont check bounds on placeholders
+
+2024-01-16 tieway59 <tieway59@foxmail.com>
+
+ * typecheck/rust-tycheck-dump.h: Delete this file
+ * rust-session-manager.cc: Remove `Session::dump_type_resolution`
+ and `TYPE_RESOLUTION_DUMP`
+ * rust-session-manager.h: Likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address):
+ match the fntype to the candidate
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive.h: Store AstBuilder and location.
+ * expand/rust-derive.cc (DeriveVisitor::DeriveVisitor): Update constructor.
+ * expand/rust-derive-clone.h: Remove members now stored in `DeriveVisitor`.
+ * expand/rust-derive-copy.h: Likewise.
+ * expand/rust-derive-clone.cc (DeriveClone::DeriveClone): Update constructor.
+ * expand/rust-derive-copy.cc (DeriveCopy::DeriveCopy): Likewise.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-item.cc (CompileItem::visit): ensure assoicated types are setup
+ * typecheck/rust-hir-trait-reference.h: new interface for concrete impl block
+ * typecheck/rust-hir-trait-resolve.cc (AssociatedImplTrait::setup_raw_associated_types):
+ ensure we setup assoicated types for this impl block
+
+2024-01-16 Dave Evans <dave@dmetwo.org>
+
+ * backend/rust-compile-expr.cc (check_match_scrutinee): Add REF type to rust_assert.
+ (CompileExpr::visit): Add REF type for scrutinee_kind in MatchExpr visitor.
+
+2024-01-16 TieWay59 <tieway59@foxmail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc: Remove obsolete error diagnostic
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit):
+ use new interface
+ * typecheck/rust-type-util.cc (types_compatable): implementation of new interface
+ * typecheck/rust-type-util.h (types_compatable): prototype
+ * typecheck/rust-unify.cc (UnifyRules::expect_placeholder):
+ It is allow for unification against placeholders
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-expand-visitor.cc (derive_item): Add const
+ attribute to the trait name argument.
+ * expand/rust-macro-expand.h (struct MacroExpander): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-expand-visitor.cc (get_traits_to_derive): Change
+ assertion to allow empty derive directives.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-expand-visitor.cc (expand_attribute): Add function
+ to expand a given attribute on a given item.
+ * expand/rust-macro-expand.h (struct MacroExpander): Change
+ return type to ast fragment.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-expand-visitor.cc (get_traits_to_derive): Change
+ the function to get traits in a given attribute instead of an
+ attribute vector.
+ (ExpandVisitor::expand_struct_fields): Remove call in visitor.
+ (ExpandVisitor::expand_function_params): Likewise.
+ (ExpandVisitor::expand_closure_params): Likewise.
+ (ExpandVisitor::visit): Likewise.
+ (ExpandVisitor::expand_outer_attribute): Remove function.
+ (ExpandVisitor::visit_outer_attrs): Remove function.
+ * expand/rust-expand-visitor.h: Remove function prototypes.
+ (ExpandVisitor::visit_outer_attrs): Remove function.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-expand-visitor.h: Remove fragment collection fro
+ procedural macros.
+ * expand/rust-macro-expand.h (struct MacroExpander): Remove
+ procedural macro fragment from expander.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-fragment.cc (Fragment::Fragment): Remove
+ overwrite member in constructor.
+ (Fragment::operator=): Removal of overwrite member in copy.
+ (Fragment::should_overwrite): Remove overwrite getter.
+ * ast/rust-ast-fragment.h: Remove overwrite boolean member.
+ * expand/rust-expand-visitor.cc (derive_item): Add a function to
+ derive items using the expander for now.
+ (builtin_derive_item): Rename from derive_item to
+ builtin_derive_item.
+ (ExpandVisitor::visit): Remove visit to derive attributes.
+ (ExpandVisitor::expand_derive): Remove derive attribute visitor.
+ (ExpandVisitor::visit_attrs_with_derive): Likewise.
+ * expand/rust-expand-visitor.h: Update insertion of other kind
+ of proc macros. We no longer have an overwrite attribute in the
+ fragment.
+ * expand/rust-macro-expand.cc (MacroExpander::parse_procmacro_output):
+ Return the fragment instead of inserting it.
+ * expand/rust-macro-expand.h (struct MacroExpander): Return
+ fragment.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.h: Update enum name to match
+ definition.
+ * expand/rust-expand-visitor.cc (ExpandVisitor::expand_derive):
+ Add call to expander.
+ (ExpandVisitor::expand_outer_attribute):
+ Change call to macro expander.
+ (ExpandVisitor::expand_inner_attribute): Likewise.
+ * expand/rust-expand-visitor.h: Remove const attribute to match
+ visitor declaration. Attach result to the AST. Add condition for
+ item erasure.
+ * expand/rust-proc-macro.h: Add token collector and expansion
+ call. Add lexers and parsers for each proc macro type and uses
+ them to parse macro output.
+ * expand/rust-macro-expand.h (struct MacroExpander): Add
+ functions.
+ * expand/rust-proc-macro.cc (ProcMacroExpander::import_proc_macros):
+ Moved from here...
+ * expand/rust-macro-expand.cc (MacroExpander::import_proc_macros):
+ ... to here. Unify procedural macro parsing under one function.
+ Add a flag to determine whether it originate from a derive
+ macro.
+ (MacroExpander::parse_procmacro_output):
+ Parse macro output to statements. Store an error on parsing
+ failure.
+ * Make-lang.in: Add const_TokenPtr specific lexer.
+ * expand/rust-proc-macro-invoc-lexer.cc: New file.
+ * expand/rust-proc-macro-invoc-lexer.h: New file.
+ * rust-session-manager.cc (Session::expansion): Remove
+ ProcMacroExpander declaration.
+ * ast/rust-ast-fragment.cc (Fragment::Fragment): Add overwrite
+ flag.
+ (Fragment::should_overwrite): Add a getter to determine whether
+ the fragment shall overwrite it's parent or be appended after.
+ * ast/rust-ast-fragment.h: Add flag to declaration.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-hir-map.cc (Mappings::insert_bang_proc_macro):
+ Add a function to insert a new bang proc macro.
+ (Mappings::lookup_bang_proc_macro): Add a function to lookup a
+ bang procedural macro.
+ (Mappings::insert_derive_proc_macro): Add a function to insert a
+ derive procedural macro.
+ (Mappings::lookup_derive_proc_macro): Add a function to lookup a
+ derive procedural macro.
+ (Mappings::insert_attribute_proc_macro): Add a function to
+ insert an attribute procedural macro.
+ (Mappings::lookup_attribute_proc_macro): Add a function to
+ lookup an attribute procedural macro.
+ * util/rust-hir-map.h: Add function prototypes.
+ * expand/rust-expand-visitor.cc (ExpandVisitor::expand_outer_attribute):
+ Implement expansion of outer attributes.
+ (ExpandVisitor::expand_inner_attribute):
+ Add call for inner attribute expansion.
+ * expand/rust-expand-visitor.h:
+ Add new procedural macro expander attribute.
+ * expand/rust-proc-macro.cc (load_macros_array): Add a function
+ to load the proc macro array from a given shared object.
+ (load_macros): Add a function to retrieve procedural macro
+ vector from a given shared object.
+ (ProcMacroExpander::import_proc_macros): Add a function to load
+ procedural macros from a given extern crate name.
+ * expand/rust-proc-macro.h (RUST_PROC_MACRO_H): Add new
+ proc-macro file.
+ (class ProcMacroExpander): Add new ProcMacroExpander class.
+ * rust-session-manager.cc (Session::expansion): Create new macro
+ expander and feed it to the expand visitor.
+ * util/rust-attributes.cc: Add macro_export builtin attribute.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Fix
+ attribute collection.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.h: Make trivial visitors public.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Make-lang.in: Add rust-proc-macro object to list.
+ * expand/rust-proc-macro.cc: New file.
+ * expand/rust-proc-macro.h: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-attributes.cc: Add attribute to the table.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Move
+ implementation from here...
+ * ast/rust-ast-collector.h: ... to here.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * Make-lang.in: Add "rust-dir-owner.o".
+ * ast/rust-ast.cc: Include "rust-dir-owner.h".
+ (Module::process_file_path):
+ Handle non-mod-rs external file modules properly.
+ * parse/rust-parse-impl.h: Include "rust-dir-owner.h".
+ (Parser::parse_module):
+ Handle non-mod-rs external file modules properly.
+ * util/rust-dir-owner.cc: New file.
+ * util/rust-dir-owner.h: New file.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-builtins.cc: Fix comments.
+ (MacroBuiltin::proc_macro_builtin): Add error message.
+ * expand/rust-macro-builtins.h: Fix comments.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-trait-resolve.cc: when the bound is concrete keep the mapping
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): add missing call
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): make this the same as paths
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * util/rust-optional.h
+ (class Optional): Add volatile field to union.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-substitute-ctx.cc
+ (SubstituteCtx::substitute_metavar): Substitute crate metavar.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * parse/rust-parse-impl.h
+ (Parser::null_denotation): Allow struct expression referencing.
+
+2024-01-16 Charalampos Mitrodimas <charmitro@gmail.com>
+
+ * ast/rust-ast-dump.cc (Dump::visit):
+ print literals based on their type.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-macro-builtins.cc (MacroBuiltin::dummy): New function.
+ * expand/rust-macro-builtins.h: Declare it.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.cc (AstBuilder::struct_expr_struct): New function.
+ (AstBuilder::let): Likewise.
+ (AstBuilder::struct_expr): Likewise.
+ (AstBuilder::struct_expr_field): Likewise.
+ (AstBuilder::field_access): Likewise.
+ (AstBuilder::wildcard): Likewise.
+ * ast/rust-ast-builder.h: Likewise.
+ * expand/rust-derive-clone.cc (DeriveClone::visit_union): Implement
+ properly.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * Make-lang.in: Add new files.
+ * expand/rust-derive.cc (DeriveVisitor::derive): Call into DeriveCopy.
+ * expand/rust-derive-copy.cc: New file.
+ * expand/rust-derive-copy.h: New file.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-clone.cc (DeriveClone::visit_struct): Implement proper
+ cloning for structs with fields.
+ * ast/rust-ast-builder.cc (AstBuilder::struct_expr): New function.
+ (AstBuilder::struct_expr_field): Likewise.
+ (AstBuilder::field_access): Likewise.
+ (AstBuilder::let): Likewise.
+ * ast/rust-ast-builder.h: Declare new functions.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (convert): Use a variable instead
+ of multiple nested calls.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * lex/rust-lex.h: Make build_token method public.
+ * lex/rust-token.h: Add a setter for a token location.
+ * util/rust-token-converter.cc (convert): Add the function to
+ convert from a Span to a Location.
+ (from_ident): Convert Ident span to a Location.
+ (from_literal): Convert Literal span to a Location.
+ (from_punct): Convert Punct span to a Location.
+ (from_group): Convert Group span to a Location.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (convert): Add implementation.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (convert): Update call to
+ constructors with location information.
+ (handle_suffix): Convert token locus to a Span and use it in the
+ literal.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-expand.cc
+ (MacroExpander::try_match_rule): Don't match delimiters for root matcher.
+ (MacroExpander::match_matcher): Add option to match delimiters.
+ * expand/rust-macro-expand.h
+ (MacroExpander::match_matcher): Likewise.
+ * parse/rust-parse-impl.h
+ (Parser::skip_token): Add zero argument method.
+ * parse/rust-parse.h:
+ (Parser::skip_token): Likewise.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * Make-lang.in: remove files
+ * backend/rust-compile-block.h: fix headers
+ * backend/rust-compile-expr.h: likewise
+ * backend/rust-compile-fnparam.h: likewise
+ * backend/rust-compile-item.h: likewise
+ * backend/rust-compile-pattern.h: likewise
+ * backend/rust-compile-resolve-path.h: likewise
+ * backend/rust-compile-stmt.h: likewise
+ * typecheck/rust-autoderef.cc: likewise
+ * typecheck/rust-hir-path-probe.cc: likewise
+ * typecheck/rust-hir-path-probe.h: likewise
+ * typecheck/rust-hir-trait-reference.h: likewise
+ * typecheck/rust-hir-trait-resolve.cc: use a for loop instead
+ * typecheck/rust-hir-trait-resolve.h: fix headers
+ * typecheck/rust-hir-type-check-expr.h: likewise
+ * typecheck/rust-hir-type-check-implitem.h: likewise
+ * typecheck/rust-hir-type-check-item.h: likewise
+ * typecheck/rust-hir-type-check-path.cc: likewise
+ * typecheck/rust-hir-type-check-pattern.h: likewise
+ * typecheck/rust-hir-type-check-stmt.h: likewise
+ * typecheck/rust-hir-type-check-type.h: likewise
+ * typecheck/rust-hir-type-check-util.cc: Removed.
+ * typecheck/rust-hir-type-check-util.h: Removed.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * Make-lang.in: Add new object files to Makefile.
+ * expand/rust-expand-visitor.cc (is_derive): Move function.
+ (is_builtin): Likewise.
+ (get_traits_to_derive): New function.
+ (derive_item): Likewise.
+ (ExpandVisitor::visit): Visit item/statements containers.
+ (ExpandVisitor::visit_outer_attrs): Take a reference on the attribute
+ instead of a copy.
+ (ExpandVisitor::is_derive): Deleted function.
+ (ExpandVisitor::is_builtin): Likewise.
+ * expand/rust-expand-visitor.h (RUST_EXPAND_VISITOR_H): Add missing #ifdef
+ guards.
+ (is_derive): Declare function.
+ (is_builtin): Likewise.
+ * expand/rust-macro-builtins.cc (builtin_macro_from_string): Use new
+ MacroBuiltin::builtins map.
+ (make_macro_path_str): Likewise.
+ * expand/rust-macro-builtins.h (enum class): Add builtin derive macros.
+ * expand/rust-derive-clone.cc: New file.
+ * expand/rust-derive-clone.h: New file.
+ * expand/rust-derive.cc: New file.
+ * expand/rust-derive.h: New file.
+ * util/rust-hir-map.cc (Mappings::insert_macro_def): Fix logic for
+ setting builtin macro transcribers.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.cc: New file.
+ * ast/rust-ast-builder.h: New file.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-macro-invoc-lexer.cc: Add missing copyright header.
+ * expand/rust-macro-substitute-ctx.cc: Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-session-manager.h:
+ Include "rust-optional.h".
+ (struct TargetOptions):
+ Store values in config key/value pairs as Optional<std::string> rather than std::string.
+ * rust-session-manager.cc
+ (TargetOptions::dump_target_options):
+ Handle Optional<std::string> values.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-casts.cc (TypeCastRules::check): do coercion
+ (TypeCastRules::emit_cast_error): clang-format
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * resolve/rust-ast-resolve-stmt.cc (ResolveStmt::visit): add name resolution
+ * resolve/rust-ast-resolve-stmt.h: likewise
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): insert resolved node
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * resolve/rust-ast-resolve-pattern.cc: remove unused
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * resolve/rust-ast-resolve-item.cc (ResolveItem::visit): fix missing pop
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::visit): remove unused
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::translate): hir lowering
+ (ASTLoweringStmt::visit): likewise
+ * hir/rust-ast-lower-stmt.h: likewise
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-substitute-ctx.cc
+ (SubstituteCtx::substitute_metavar): Allow substitution failure.
+ (SubstituteCtx::substitute_token):
+ Handle substitution failure, include dollar sign in count of tokens to substitute.
+ (SubstituteCtx::substitute_tokens):
+ Include dollar sign in count of tokens to substitute.
+ * expand/rust-macro-substitute-ctx.h
+ (SubstituteCtx::substitute_metavar):
+ Adjust signature and document new substitution failure handling.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-substitute-ctx.cc
+ (SubstituteCtx::check_repetition_amount):
+ Ignore single fragments while checking repetition amount.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): stop if error
+ * typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::assemble_sized_builtin): fix sized options
+ * typecheck/rust-tyty.cc (BaseType::satisfies_bound): its ok if its an ?T
+ (BaseType::bounds_compatible): likewise
+ * typecheck/rust-tyty.h: update prototype
+ * typecheck/rust-unify.cc (UnifyRules::go): check both sides bounds
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (HIRCompileBase::resolve_deref_adjustment):
+ reuse op overload code
+ * typecheck/rust-autoderef.cc (Adjuster::try_deref_type): update
+ (Adjuster::try_raw_deref_type): likewise
+ * typecheck/rust-autoderef.h: likewise
+ * typecheck/rust-hir-dot-operator.cc (MethodResolver::select):
+ improve debug loging
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address): refactor
+ * backend/rust-compile-base.h: likewise
+ * backend/rust-compile-expr.cc (CompileExpr::visit): likewise
+ * backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): likewise
+
+2024-01-16 David Malcolm <dmalcolm@redhat.com>
+
+ * typecheck/rust-hir-trait-reference.cc (TraitItemReference::is_optional): Remove
+ stray semicolon.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-early-name-resolver.cc (EarlyNameResolver::go): Cleanup
+ order of calls when accumulating #[macro_use] macros.
+ (EarlyNameResolver::visit): Likewise.
+
+2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
+
+ * resolve/rust-early-name-resolver.cc (EarlyNameResolver::accumulate_escaped_macros):
+ Remove unnecessary visit.
+
+2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
+
+ * ast/rust-ast.cc (Attribute::check_cfg_predicate):
+ Only check first item as a predicate.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * util/rust-optional.h
+ (operator==): New for Optional<T> == Optional<U>.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * parse/rust-parse-impl.h
+ (Parser::parse_attr_input): Parse AttrInputMacro.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Propagate
+ coretype hint.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * util/rust-optional.h
+ (class Optional<T>): Improve inner state.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-substitute-ctx.cc
+ (SubstituteCtx::check_repetition_amount): Handle keywords.
+ (SubstituteCtx::substitute_token): Likewise.
+ * lex/rust-token.cc
+ (Token::get_str): Likewise.
+ * parse/rust-parse-impl.h
+ (Parser::parse_macro_match_fragment): Likewise.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast.h: Add `outer_attrs` to Item.
+ * ast/rust-expr.h: Make use of new inheritance methods.
+ * ast/rust-item.h: Likewise.
+ * ast/rust-macro.h: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (dispatch_float_literals): Remove
+ function.
+ (handle_suffix): Rename old dispatch and add one LitKind
+ argument.
+ (dispatch_integer_literals): Remove function.
+ (convert): Change call from dispatch to suffix handler.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * lex/rust-token.h: Implement hash for token id enumeration.
+ * util/rust-token-converter.cc (dispatch_float_literals): Update
+ to new internals.
+ (dispatch_integer_literals): Likewise.
+ (convert): Likewise.
+ (string_literal): Remove function.
+ (byte_string_literal): Likewise.
+ (unsigned_literal): Likewise.
+ (signed_literal): Likewise.
+ (from_literal): Update with new internals.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast-dump.cc
+ (Dump::visit): Add AttrInputMacro visitor.
+ * ast/rust-ast-dump.h:
+ (Dump::visit): Likewise.
+ * ast/rust-ast-full-decls.h
+ (class AttrInputMacro): New.
+ * ast/rust-ast-collector.cc
+ (TokenCollector::visit):
+ Add and call out to AttrInputMacro visitor.
+ * ast/rust-ast-collector.h:
+ (TokenCollector::visit): Add AttrInputMacro visitor.
+ * ast/rust-ast-visitor.h:
+ (ASTVisitor::visit): Likewise.
+ * ast/rust-ast.cc
+ (AttrInputMacro::accept_vis): New.
+ (AttrInputMacro::as_string): New.
+ (AttrInputMacro::AttrInputMacro): New.
+ (AttrInputMacro::operator=): New.
+ * ast/rust-ast.h:
+ (AttrInput::AttrInputType::MACRO): New.
+ * ast/rust-expr.h
+ (class AttrInputMacro): New.
+ * checks/errors/rust-feature-gate.h:
+ (FeatureGate::visit): Add AttrInputMacro visitor.
+ * expand/rust-cfg-strip.cc
+ (CfgStrip::visit): Likewise.
+ * expand/rust-cfg-strip.h:
+ (CfgStrip::visit): Likewise.
+ * expand/rust-expand-visitor.cc
+ (ExpandVisitor::visit): Likewise.
+ * expand/rust-expand-visitor.h:
+ (ExpandVisitor::visit): Likewise.
+ * hir/rust-ast-lower-base.cc
+ (ASTLoweringBase::visit): Likewise.
+ * hir/rust-ast-lower-base.h:
+ (ASTLoweringBase::visit): Likewise.
+ * resolve/rust-ast-resolve-base.cc
+ (ResolverBase::visit): Likewise.
+ * resolve/rust-ast-resolve-base.h:
+ (ResolverBase::visit): Likewise.
+ * resolve/rust-early-name-resolver.cc
+ (EarlyNameResolver::visit): Likewise.
+ * resolve/rust-early-name-resolver.h:
+ (EarlyNameResolver::visit): Likewise.
+ * util/rust-attributes.cc
+ (AttributeChecker::visit): Likewise.
+ (check_doc_attribute): Handle AttrInputType::MACRO.
+ * util/rust-attributes.h:
+ (AttributeChecker::visit): Add AttrInputMacro visitor.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-macro.h
+ (MacroInvocation::clone_macro_invocation_impl): Make public.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * util/rust-optional.h
+ (struct std::hash<Optional<T>>): New.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * util/rust-optional.h
+ (class Optional<T&>): Use pointers internally.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-dump.cc (Dump::visit): Implement dump for
+ `TupleIndexExpr`.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * lex/rust-token.cc
+ (token_id_keyword_string): Return std::string reference.
+ * lex/rust-token.h
+ (token_id_keyword_string): Return std::string reference.
+
+2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
+
+ * ast/rust-ast.h (Expr::as_expr_without_block): Remove.
+ (Expr::set_outer_attrs): Make public in base class.
+ * expand/rust-macro-expand.cc:
+ Add fixme comment for pre-existing bug.
+ * hir/tree/rust-hir.h: Remove Expr::as_expr_without_block.
+ * parse/rust-parse-impl.h (Parser::parse_lifetime): Use lifetime_from_token.
+ (Parser::lifetime_from_token): New method.
+ (Parser::null_denotation): Handle labelled loop expressions and for loop expressions.
+ (Parser::parse_loop_label): Make initial token a parameter.
+ (Parser::parse_labelled_loop_expr): Likewise.
+ (Parser::parse_for_loop_expr): Allow FOR token to already be skipped.
+ (Parser::parse_expr): Handle expr_can_be_stmt.
+ (Parser::parse_expr_with_block): Remove.
+ (Parser::parse_expr_stmt_with_block): Remove.
+ (Parser::parse_expr_stmt_without_block): Remove.
+ (Parser::parse_expr_without_block): Remove.
+ (Parser::parse_stmt_or_expr_with_block): Remove.
+ (Parser::parse_expr_stmt): Use parse_expr directly.
+ (Parser::parse_match_expr): Likewise.
+ (Parser::parse_stmt): Use parse_expr_stmt in more cases.
+ (Parser::parse_stmt_or_expr):
+ Rename from parse_stmt_or_expr_without_block, use parse_expr directly.
+ (Parser::parse_block_expr): Update error message.
+ * parse/rust-parse.h: Update declarations.
+
+2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
+
+ * ast/rust-ast-full-decls.h (class ExprStmtWithoutBlock): Remove.
+ (class ExprStmtWithBlock): Remove.
+ * ast/rust-stmt.h (class ExprStmtWithoutBlock): Remove.
+ (class ExprStmtWithBlock): Remove.
+ (class ExprStmt):
+ Make non-abstract, add common functionality from removed base classes.
+ * ast/rust-ast.h: Move to_stmt to base class.
+ * ast/rust-ast.cc (ExprStmtWithBlock::as_string): Remove.
+ * ast/rust-macro.h: Use new signature for to_stmt.
+ (ExprStmt::as_string): New method.
+ (ExprStmtWithoutBlock::as_string): Remove.
+ (BlockExpr::strip_tail_expr): Update for removed classes.
+ (ExprStmtWithoutBlock::accept_vis): Remove.
+ (ExprStmtWithBlock::accept_vis): Remove.
+ (ExprStmt::accept_vis): New method.
+ * ast/rust-ast-dump.cc (Dump::visit): Update for removed classes.
+ * ast/rust-ast-dump.h: Likewise.
+ * ast/rust-ast-collector.h: Likewise.
+ * ast/rust-ast-collector.cc (TokenStream::visit): Likewise.
+ * ast/rust-ast-visitor.h: Likewise.
+ * checks/errors/rust-feature-gate.h: Likewise.
+ * expand/rust-expand-visitor.cc (ExpandVisitor::visit): Likewise.
+ * expand/rust-expand-visitor.h: Likewise.
+ * expand/rust-cfg-strip.cc (CfgStrip::visit): Likewise.
+ * expand/rust-cfg-strip.h: Likewise.
+ * hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
+ * hir/rust-ast-lower-base.h: Likewise.
+ * hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Likewise.
+ * hir/rust-ast-lower-stmt.h: Likewise.
+ * util/rust-attributes.cc (AttributeChecker::visit): Likewise.
+ * util/rust-attributes.h: Likewise.
+ * resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
+ * resolve/rust-ast-resolve-base.h: Likewise.
+ * resolve/rust-ast-resolve-stmt.h: Likewise.
+ * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
+ Likewise.
+ * resolve/rust-early-name-resolver.h: Likewise.
+ * parse/rust-parse-impl.h (Parser::parse_match_expr): Likewise.
+ (Parser::parse_stmt_or_expr_without_block): Likewise.
+ * parse/rust-parse.h: Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * lex/rust-token.cc
+ (token_id_is_keyword): New.
+ (token_id_keyword_string): New.
+ * lex/rust-token.h
+ (token_id_is_keyword): New.
+ (token_id_keyword_string): New.
+ * expand/rust-macro-expand.cc
+ (MacroExpander::match_fragment): Match keywords for ident fragment.
+ * parse/rust-parse-impl.h
+ (Parser::parse_identifier_or_keyword_token): Add.
+ * parse/rust-parse.h
+ (Parser::parse_identifier_or_keyword_token): Add.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (dispatch_float_literals): Invert
+ suffix condition.
+ (dispatch_integer_literals): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (convert): Fix style.
+ (from_ident): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (dispatch_float_literals): Make
+ input immutable.
+ (dispatch_integer_literals): Likewise.
+ (convert): Likewise.
+ * util/rust-token-converter.h (convert): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (from_tokenstream): Add
+ conversion of Ident structures.
+ (from_ident): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (from_literal): Add function
+ implementation.
+ (string_literal): String literal specific handler.
+ (byte_string_literal): Byte string specific handler.
+ (unsigned_literal): Unsigned literal specific handler.
+ (signed_literal): Signed literal specific handler.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (from_punct): Add conversion
+ implementation.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (dispatch_float_literals): Accept
+ const_TokenPtr instead of TokenPtr.
+ (dispatch_integer_literals): Likewise.
+ (convert): Accept vector of const_TokenPtr instead of a vector
+ of TokenPtr.
+ * util/rust-token-converter.h (convert): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (from_tokenstream): Add vector
+ for joined punct accumulation.
+ (from_ident): Accept const pointer vector.
+ (from_literal): Likewise.
+ (from_punct): Likewise.
+ (from_group): Likewise.
+ (from_tokentree): Likewise.
+ (convert): Likewise.
+ * util/rust-token-converter.h (convert): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (from_tokenstream): Add call to
+ from_tokentree.
+ (from_tokentree): Add implementation, from the from_tokenstream
+ function.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (from_punct): Add group
+ conversion.
+ (from_group): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (to_tokenstream): Change function
+ name from to_tokenstream to convert.
+ (convert): Likewise.
+ (from_tokenstream): Add tokenstream handler.
+ (from_ident): Add empty function.
+ (from_literal): Likewise.
+ (from_punct): Likewise.
+ (from_group): Likewise.
+ * util/rust-token-converter.h (to_tokenstream): Change function
+ name from to_tokenstream to convert.
+ (convert): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-token-converter.cc (dispatch_float_literals): Remove
+ suffixed temporary variable.
+ (dispatch_integer_literals): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Make-lang.in: Add new rust-token-converter file.
+ * ast/rust-ast-collector.cc (pop_group): Function moved from
+ TokenCollector.
+ (dispatch_float_literals): Likewise.
+ (dispatch_integer_literals): Likewise.
+ (TokenCollector::collect): Removed function.
+ * ast/rust-ast-collector.h: Removed function prototype.
+ * util/rust-token-converter.cc: New file.
+ * util/rust-token-converter.h: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-collector.h (RUST_AST_TOKENSTREAM_H): Rename
+ headerguard from RUST_AST_TOKENSTREAM_H ...
+ (RUST_AST_COLLECTOR_H): ... to RUST_AST_COLLECTOR_H.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Make-lang.in: Change file name.
+ * ast/rust-ast-tokenstream.cc: Moved to...
+ * ast/rust-ast-collector.cc: ...here.
+ * ast/rust-ast-tokenstream.h: Moved to...
+ * ast/rust-ast-collector.h: ...here.
+ * rust-session-manager.cc: Change header name.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::TokenStream): Rename
+ TokenStream to TokenCollector.
+ (TokenCollector::TokenCollector): Likewise.
+ (TokenStream::collect_tokens): Likewise.
+ (TokenCollector::collect_tokens): Likewise.
+ (TokenStream::collect): Likewise.
+ (TokenCollector::collect): Likewise.
+ (TokenStream::visit): Likewise.
+ (TokenCollector::visit): Likewise.
+ (TokenStream::visit_items_joined_by_separator): Likewise.
+ (TokenCollector::visit_items_joined_by_separator): Likewise.
+ (TokenStream::visit_as_line): Likewise.
+ (TokenCollector::visit_as_line): Likewise.
+ (TokenStream::visit_items_as_lines): Likewise.
+ (TokenCollector::visit_items_as_lines): Likewise.
+ (TokenStream::visit_items_as_block): Likewise.
+ (TokenCollector::visit_items_as_block): Likewise.
+ (TokenStream::trailing_comma): Likewise.
+ (TokenCollector::trailing_comma): Likewise.
+ (TokenStream::newline): Likewise.
+ (TokenCollector::newline): Likewise.
+ (TokenStream::indentation): Likewise.
+ (TokenCollector::indentation): Likewise.
+ (TokenStream::increment_indentation): Likewise.
+ (TokenCollector::increment_indentation): Likewise.
+ (TokenStream::decrement_indentation): Likewise.
+ (TokenCollector::decrement_indentation): Likewise.
+ (TokenStream::visit_closure_common): Likewise.
+ (TokenCollector::visit_closure_common): Likewise.
+ (TokenStream::visit_loop_common): Likewise.
+ (TokenCollector::visit_loop_common): Likewise.
+ (TokenStream::visit_function_common): Likewise.
+ (TokenCollector::visit_function_common): Likewise.
+ * ast/rust-ast-tokenstream.h (class TokenStream): Likewise.
+ (class TokenCollector): Likewise.
+ * rust-session-manager.cc (Session::dump_tokenstream): Rename
+ token vector for clearer intent.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (dispatch_float_literals): Add
+ dispatch function for floating point literals.
+ (TokenStream::collect): Add call to dispatcher.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (dispatch_integer_literals):
+ Add a static function to dispatch depending on the core type.
+ (TokenStream::collect): Add call to dispatch function.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::collect): Add
+ conversion for byte string and string.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::collect): Add Ident
+ conversion.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::collect): Add joint
+ punct token conversion.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::collect): Add
+ conversion for single punctuation tokens.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (pop_group): Add a function to
+ easily collect a group from a given stack at the end of it.
+ (TokenStream::collect): Collect tokens as a rust compatible
+ Tokenstream type.
+ * ast/rust-ast-tokenstream.h (RUST_AST_TOKENSTREAM_H): Move
+ includes to stay constrained by guards.
+
+2024-01-16 M V V S Manoj Kumar <mvvsmanojkumar@gmail.com>
+
+ * ast/rust-ast-full-decls.h (enum class): Added declaration.
+ (struct AnonConst): Added declaration.
+ (struct InlineAsmRegOrRegClass): Added declaration.
+ (struct InlineAsmOperand): Added declaration.
+ (struct InlineAsmPlaceHolder): Added declaration.
+ (struct InlineAsmTemplatePiece): Added declaration.
+ (struct TupleClobber): Added declaration.
+ (struct TupleTemplateStr): Added declaration.
+ * ast/rust-expr.h (class InlineAsm): Defined all it's data members outside.
+ (enum class InlineAsmOptions): Converted this to a enum class so we could use it in the HIR.
+ (struct AnonConst): Defined it independent of the AST::InlineAsm node.
+ (struct InlineAsmRegOrRegClass): Defined it independent of the AST::InlineAsm node.
+ (struct InlineAsmOperand): Defined it independent of the AST::InlineAsm node.
+ (struct InlineAsmPlaceHolder): Defined it independent of the AST::InlineAsm node.
+ (struct InlineAsmTemplatePiece): Defined it independent of the AST::InlineAsm node.
+ (struct TupleClobber): Defined it independent of the AST::InlineAsm node.
+ (struct TupleTemplateStr): Defined it independent of the AST::InlineAsm node.
+ * hir/tree/rust-hir-expr.h (class InlineAsmReg): Added defination.
+ (class InlineAsmRegClass): Added defination.
+ (struct InlineAsmRegOrRegClass): Added defination.
+ (class InlineAsm): Added defination.
+ * hir/tree/rust-hir-full-decls.h (class InlineAsmReg): Added declaration.
+ (class InlineAsmRegClass): Added declaration.
+ (struct InlineAsmRegOrRegClass): Added declaration.
+ (class InlineAsm): Added declaration.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-base.cc: track return type in fncontext
+ * backend/rust-compile-context.h (struct fncontext): likewise
+ * backend/rust-compile-expr.cc (CompileExpr::visit): apply coercion site
+ (CompileExpr::generate_closure_function): update push_context
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::compile_function_body):
+ add missing coercion_site codegen
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::visit): refactr
+ (CompileExpr::get_fn_addr_from_dyn): likewise
+ (CompileExpr::get_receiver_from_dyn): likewise
+ (CompileExpr::type_cast_expression): likewise
+ * backend/rust-compile-type.cc (TyTyResolveCompile::visit): likewise
+ (TyTyResolveCompile::create_dyn_obj_record): likewise
+ (TyTyResolveCompile::create_slice_type_record): likewise
+ (TyTyResolveCompile::create_str_type_record): likewise
+ * backend/rust-compile-type.h: likewise
+ * backend/rust-compile.cc (HIRCompileBase::coercion_site1): likewise
+ (HIRCompileBase::coerce_to_dyn_object): refactor
+ * backend/rust-tree.h (SLICE_FLAG): removed
+ (SLICE_TYPE_P): removed
+ (RS_DST_FLAG): new flag
+ (RS_DST_FLAG_P): new predicate
+ * typecheck/rust-tyty.cc (ReferenceType::is_dyn_object): new helper
+ (ReferenceType::is_dyn_obj_type): likewise
+ (PointerType::is_dyn_object): likewise
+ (PointerType::is_dyn_obj_type): likewise
+ * typecheck/rust-tyty.h (class DynamicObjectType): moved up
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-type.cc (TyTyResolveCompile::visit): add filter
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::compile_function_body): use unit_expression
+ (HIRCompileBase::unit_expression): new helper
+ * backend/rust-compile-base.h: update prototype
+ * backend/rust-compile-block.cc (CompileBlock::visit): use unit_expression
+ * backend/rust-compile-expr.cc (CompileExpr::visit): likewise
+ (CompileExpr::generate_closure_function): likewise
+ * backend/rust-compile-implitem.cc (CompileTraitItem::visit): cleanup
+ * backend/rust-compile-item.cc (CompileItem::visit): likewise
+ * backend/rust-compile-pattern.cc (CompilePatternLet::visit): likewise
+ * backend/rust-compile-resolve-path.cc (ResolvePathRef::resolve): likewise
+ * backend/rust-compile-type.cc (TyTyResolveCompile::get_unit_type): new helper
+ (TyTyResolveCompile::visit): use new unit_type helper
+ * backend/rust-compile-type.h: likewise
+ * rust-backend.h: simplify the return_expression
+ * rust-gcc.cc (Gcc_backend::function_type): likewise
+ (Gcc_backend::return_statement): likewise
+ * backend/rust-constexpr.cc (eval_constant_expression): remove bad assertion
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * checks/lints/rust-lint-unused-var.cc (UnusedVariables::Lint): use the decl not the expr
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * parse/rust-parse-impl.h
+ (Parser::parse_trait_impl_function_or_method):
+ Parse function/method qualifiers after "default".
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-base.cc: add missing compile_locals call
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast.h (class AttrInputMetaItemContainer): Run clang-format.
+ (class DelimTokenTree): Likewise.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-early-name-resolver.cc (is_macro_use_module): New function.
+ (EarlyNameResolver::accumulate_escaped_macros): New function.
+ (EarlyNameResolver::go): Use `accumulate_escaped_macros`.
+ (EarlyNameResolver::visit): Likewise.
+ * resolve/rust-early-name-resolver.h: Declare `accumulate_escaped_macros`.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast.h: Add take_items() and set_items() method to Crate.
+ * ast/rust-item.h: Add take_items() and set_items() method to Module.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast.h (enum Kind): Add MODULE variant.
+ * ast/rust-item.h: Return Kind::MODULE in AST::Module::get_kind().
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-macro.cc (builtin_macro_from_string): Move function.
+ * ast/rust-macro.h (enum class): Move enum.
+ (builtin_macro_from_string): Move function.
+ * expand/rust-macro-builtins.cc (builtin_macro_from_string): New function.
+ (make_macro_path_str): Use new bi-map.
+ (parse_single_string_literal): Use new `BuiltinMacro` enum.
+ (MacroBuiltin::include_bytes_handler): Likewise.
+ (MacroBuiltin::include_str_handler): Likewise.
+ (MacroBuiltin::compile_error_handler): Likewise.
+ (MacroBuiltin::concat_handler): Likewise.
+ (MacroBuiltin::env_handler): Likewise.
+ (MacroBuiltin::include_handler): Likewise.
+ (MacroBuiltin::sorry): New function.
+ * expand/rust-macro-builtins.h (enum class): Move enum here.
+ (builtin_macro_from_string): New function declaration.
+ * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Use
+ new function.
+ * util/rust-hir-map.cc (Mappings::insert_macro_def): Remove old
+ builtin macro map.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-macro-builtins.cc: Include bidirectional map.
+ * util/bi-map.h: New file.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast.cc
+ (BlockExpr::strip_tail_expr):
+ Try to take new tail expression from statements list.
+ * ast/rust-expr.h
+ (BlockExpr::strip_tail_expr):
+ Replace definition with only declaration.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast.h
+ (Stmt::is_expr): New.
+ * ast/rust-stmt.h
+ (ExprStmt::is_expr): New.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-substitute-ctx.cc
+ (SubstituteCtx::substitute_repetition): Fix out-of-bounds.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Make-lang.in: Link against the static libproc_macro.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * lang.opt: Add frust-extern option.
+ * rust-session-manager.cc (Session::handle_extern_option): Add
+ frust-extern option handler.
+ * rust-session-manager.h (struct Session): Add an unordered map
+ to store library name and locations.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * parse/rust-parse-impl.h
+ (Parser::parse_generic_params):
+ Handle parameter parsing error.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc: update for op overload
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): use the predicate
+ (TypeCheckExpr::resolve_segments): cleanup
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-trait-reference.cc (AssociatedImplTrait::AssociatedImplTrait):
+ bind the predicate
+ (AssociatedImplTrait::get_trait): remove
+ (AssociatedImplTrait::get_predicate): new getter
+ * typecheck/rust-hir-trait-reference.h: bind predicate
+ * typecheck/rust-hir-type-check-item.cc: update ctor
+ * typecheck/rust-type-util.cc (lookup_associated_impl_block): new function
+ * typecheck/rust-type-util.h (class BaseType): remove unused forward decl
+ (lookup_associated_impl_block): new helper
+ * typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::is_equal): new
+ * typecheck/rust-tyty-subst.cc (SubstitutionRef::lookup_associated_impl): use new helper
+ (SubstitutionRef::monomorphize): update usage/error handling
+ * typecheck/rust-tyty-subst.h: remove old prototype
+ * typecheck/rust-tyty.h: add is_equal decl
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * typecheck/rust-hir-type-check-pattern.cc
+ (TypeCheckPattern::visit): Type check StructPatternFieldIdentPat.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/rust-ast-lower-pattern.cc
+ (ASTLoweringPattern::visit): Lower StructPatternFieldIdentPat.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::resolve_fn_trait_call):
+ return the assoicated predicate
+ * typecheck/rust-hir-type-check-expr.h: update prototype
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * hir/rust-ast-lower-implitem.h: add missing where clause lowering
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * hir/tree/rust-hir-item.h: add get_locus() const
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/tree/rust-hir-pattern.h
+ (StructPatternFieldIdentPat::get_identifier): New.
+ (StructPatternFieldIdentPat::get_pattern): New.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * ast/rust-ast-dump.cc (Dump::visit): print parentheses around
+ unique expression operand.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust-session-manager.cc
+ (Session::enable_dump): Fix error messages.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-unify.cc (UnifyRules::emit_abi_mismatch): new error method
+ (UnifyRules::expect_fndef): add ABI check
+ * typecheck/rust-unify.h: prototype for new error method
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * util/rust-abi.cc (get_abi_from_string): add ABI mapping
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * hir/tree/rust-hir-pattern.h: add missing get_mutability
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+ use new ClosureParamInfer on untyped parameters
+ * typecheck/rust-hir-type-check-pattern.cc (ClosureParamInfer::Resolve): interface
+ (ClosureParamInfer::ClosureParamInfer): constructor
+ (ClosureParamInfer::visit): visitors for each pattern
+ * typecheck/rust-hir-type-check-pattern.h (class ClosureParamInfer): new visitor
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-pattern.h: cleanup
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
+ return so we dont hit undefined behaviour
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-implitem.h: remove includes
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-item.cc (CompileItem::visit): remove bad checks
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * lang.opt: add lang option flag
+ * rust-lang.cc (grs_langhook_init_options_struct): enable by default
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::operator=):
+ we are done if other is in an error state
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-dot-operator.cc (MethodResolver::select): verify it is a method
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): use new interface
+ * typecheck/rust-hir-type-check-base.h: update prototype to include Self
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): lifewise
+ * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::resolve_impl_block_substitutions):
+ likewise
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): likewise
+ (TypeCheckExpr::resolve_segments): likewise
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
+ (TypeResolveGenericParam::visit): likewise
+ (ResolveWhereClauseItem::visit): likewise
+ * typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound): likewise
+ (TypeBoundPredicate::apply_generic_arguments): likewise
+ (TypeBoundsMappings::lookup_predicate): likewise
+ * typecheck/rust-tyty-bounds.h: likewise
+ * typecheck/rust-tyty.h:likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check.h: New error state and missing copy implementations
+ * typecheck/rust-typecheck-context.cc (TypeCheckContextItem::TypeCheckContextItem):
+ missing copy ctor
+ (TypeCheckContextItem::operator=): missing copy implementation
+ (TypeCheckContextItem::get_error): new static function
+ (TypeCheckContextItem::is_error): new method
+ (TypeCheckContextItem::get_context_type): handle error state
+ (TypeCheckContextItem::get_defid): handle error state
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check.h: new helper
+ * typecheck/rust-typecheck-context.cc (TypeCheckContext::have_function_context):
+ implementation
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check.h: Add prototype
+ * typecheck/rust-typecheck-context.cc (TypeCheckContextItem::get_defid): implementation
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc: refactor
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-autoderef.cc: don't take a reference
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise
+ * typecheck/rust-hir-type-check.h: remove reference
+ * typecheck/rust-typecheck-context.cc (TypeCheckContext::pop_return_type): likewise
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-ast-resolve-pattern.cc
+ (PatternDeclaration::visit): Handle StructPatternFieldIdentPat.
+
+2024-01-16 TieWay59 <tieway59@foxmail.com>
+
+ PR translation/108890
+ * lang.opt: Fix translation mistakes 2023 in
+ GCC/Rust [PR108890]
+ (line 67): change the inconsistent tab to spaces
+ (line 75): wrap bare placeholder `integer`
+ (line 79): remove redundant text of `Choose which`
+ (line 96): remove redundant text of `Choose which`
+ (line 112): remove redundant `Flag to`
+ (line 124): correct the exclusive term `When to stop`
+ (line 124): correct typo of `copimlation`
+
+2024-01-16 M V V S Manoj Kumar <mvvsmanojkumar@gmail.com>
+
+ * parse/rust-parse-impl.h (Parser::debug_dump_ast_output): Removed this funtion.
+ * rust-session-manager.cc (Session::enable_dump): Removed else if (arg == "parse").
+ (Session::compile_crate): Removed calls of dump_ast and dump_ast_expanded.
+ (Session::dump_ast): Removed this function.
+ (Session::dump_ast_expanded): Removed this function.
+ * rust-session-manager.h (struct CompileOptions): Removed the PARSER_AST_DUMP option.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_reference_pattern): Do not
+ call into `parse_pattern` anymore.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/rust-ast-lower-pattern.cc
+ (ASTLoweringPattern::translate): Add is_let_top_level parameter.
+ (ASTLoweringPattern::visit): Handle is_let_top_level.
+ * hir/rust-ast-lower-pattern.h
+ (class ASTLoweringPattern): Add is_let_top_level.
+ * hir/rust-ast-lower-stmt.cc
+ (ASTLoweringStmt::visit): Set is_let_top_level.
+
+2024-01-16 Zheyuan Chen <sephirotheca17@gmail.com>
+
+ * ast/rust-ast-dump.cc: fix bad formatting for associated type.
+
+2024-01-16 Sergey Bugaev <bugaevc@gmail.com>
+
+ * hir/rust-ast-lower-expr.h, hir/rust-ast-lower-expr.cc:
+ Lower AST::ErrorPropagationExpr to HIR::ErrorPropagationExpr
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix scope
+ resolution token output.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Keep
+ associated type.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit_function_common):
+ Fix function body output.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_outer_attribute): Fix
+ attribute status.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * lex/rust-token.cc (Token::as_string): Fix lifetime string
+ representation.
+
+2024-01-16 Sergey Bugaev <bugaevc@gmail.com>
+
+ * resolve/rust-ast-resolve-expr.cc: Add "break rust" Easter egg
+
+2024-01-16 Sergey Bugaev <bugaevc@gmail.com>
+
+ * resolve/rust-ast-resolve-expr.h,
+ resolve/rust-ast-resolve-expr.cc: Add ResolveExpr::funny_error
+
+2024-01-16 Sergey Bugaev <bugaevc@gmail.com>
+
+ * ast/rust-ast.h: Add AST::Kind::IDENTIFIER
+
+2024-01-16 Sergey Bugaev <bugaevc@gmail.com>
+
+ * ast/rust-ast.h (Kind): Convert into a C++ enum class
+ * expand/rust-macro-builtins.cc: Adapt to the change
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc
+ (TypeCheckExpr::visit): Add implementation for IfLetExprConseqElse.
+ * typecheck/rust-hir-type-check-expr.h:
+ (TypeCheckExpr::visit): Remove stub implementation for IfLetExprConseqElse.
+ * hir/rust-ast-lower-expr.cc
+ (ASTLoweringExpr::visit): Lower IfLetExpr{,ConseqElse}.
+ * hir/rust-ast-lower-expr.h:
+ (ASTLoweringExpr::visit): Likewise.
+ * hir/rust-ast-lower-block.h
+ (ASTLoweringIfLetBlock::visit): Lower IfLetExprConseqElse.
+ (ASTLoweringExprWithBlock::visit): Likewise.
+ * hir/rust-ast-lower.cc
+ (ASTLoweringIfLetBlock::visit): Lower IfLetExprConseqElse.
+ * hir/tree/rust-hir-expr.h
+ (IfLetExprConseqElse::IfLetExprConseqElse): Make constructor more general.
+ (IfLetExprConseqElse::vis_else_block): Add.
+ (IfLetExprConseqElse::get_else_block): Add.
+ * resolve/rust-ast-resolve-expr.cc
+ (ResolveExpr::visit): Add IfLetExprConseqElse visitor.
+ * resolve/rust-ast-resolve-expr.h
+ (ResolveExpr::visit): Add IfLetExprConseqElse visitor.
+
+2024-01-16 Sebastian Kirmayer <gnu@kirmayer.eu>
+
+ * parse/rust-parse-impl.h
+ (Parser<ManagedTokenSource>::parse_macro_match_repetition):
+ reject separator in `?` repetition
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-expr.h
+ (class IfLetExprConseqElse): Make else_block ExprWithBlock.
+ (class IfLetExprConseqIf): Remove.
+ (class IfLetExprConseqIfLet): Remove.
+ * ast/rust-ast-full-decls.h
+ (class IfLetExprConseqIf): Remove.
+ (class IfLetExprConseqIfLet): Remove.
+ * ast/rust-ast.cc
+ (IfLetExprConseqElse::as_string): Adjust output.
+ (IfLetExprConseqIf::as_string): Remove.
+ (IfLetExprConseqIfLet::as_string): Remove.
+ (IfLetExprConseqIf::accept_vis): Remove.
+ (IfLetExprConseqIfLet::accept_vis): Remove.
+ * ast/rust-ast-visitor.h
+ (ASTVisitor::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ * ast/rust-ast-dump.cc
+ (Dump::visit): Likewise.
+ * ast/rust-ast-dump.h:
+ (Dump::visit): Likewise.
+ * ast/rust-ast-tokenstream.cc
+ (TokenStream::visit): Likewise.
+ * ast/rust-ast-tokenstream.h
+ (TokenStream::visit): Likewise.
+ * util/rust-attributes.cc
+ (AttributeChecker::visit): Likewise.
+ * util/rust-attributes.h:
+ (AttributeChecker::visit): Likewise.
+ * resolve/rust-early-name-resolver.cc
+ (EarlyNameResolver::visit): Likewise.
+ * resolve/rust-early-name-resolver.h
+ (EarlyNameResolver::visit): Likewise.
+ * resolve/rust-ast-resolve-base.h
+ (ResolverBase::visit): Likewise.
+ * resolve/rust-ast-resolve-base.cc
+ (ResolverBase::visit): Likewise.
+ * checks/errors/rust-feature-gate.h
+ (FeatureGate::visit): Likewise.
+ * expand/rust-cfg-strip.cc
+ (CfgStrip::visit): Likewise.
+ * expand/rust-cfg-strip.h:
+ (CfgStrip::visit): Likewise.
+ * expand/rust-expand-visitor.cc
+ (ExpandVisitor::visit): Likewise.
+ * expand/rust-expand-visitor.h
+ (ExpandVisitor::visit): Likewise.
+ * hir/rust-ast-lower-base.cc
+ (ASTLoweringBase::visit): Likewise.
+ * hir/rust-ast-lower-base.h:
+ (ASTLoweringBase::visit): Likewise.
+ * parse/rust-parse-impl.h
+ (Parser::parse_if_let_expr): Replace IfLetExprConseqIf{,Let} with IfLetExprConseqElse.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Add struct
+ name and curly braces to output tokenstream.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * parse/rust-parse-impl.h
+ (Parser::parse_macro_match): Handle underscore.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/tree/rust-hir-full-decls.h
+ (class ExprStmtWithoutBlock): Remove.
+ (class ExprStmtWithBlock): Remove.
+ * hir/tree/rust-hir-stmt.h
+ (class ExprStmt):
+ Add remaining ExprStmtWith{,out}Block functionality.
+ (class ExprStmtWithoutBlock): Remove.
+ (class ExprStmtWithBlock): Remove.
+ * hir/rust-ast-lower-stmt.cc
+ (ASTLoweringStmt::visit):
+ Lower to HIR::ExprStmt instead of deriving class.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-compile-stmt.cc
+ (CompileStmt::visit): Unify ExprStmtWith{,out}Block visitors.
+ * backend/rust-compile-stmt.h
+ (CompileStmt::visit): Likewise.
+ * backend/rust-compile-item.h
+ (CompileItem::visit): Likewise.
+ * hir/rust-hir-dump.cc
+ (Dump::visit): Likewise.
+ * hir/rust-hir-dump.h
+ (Dump::visit): Likewise.
+ * hir/tree/rust-hir-stmt.h
+ (ExprStmt::accept_vis): Add.
+ (ExprStmtWithoutBlock::accept_vis): Remove.
+ (ExprStmtWithBlock::accept_vis): Remove.
+ * hir/tree/rust-hir.cc
+ (ExprStmt::accept_vis): Add.
+ (ExprStmtWithoutBlock::accept_vis): Remove.
+ (ExprStmtWithBlock::accept_vis): Remove.
+ * hir/tree/rust-hir-visitor.h
+ (HIRFullVisitor::visit): Likewise.
+ (HIRFullVisitorBase::visit): Likewise.
+ (HIRStmtVisitor::visit): Likewise.
+ * checks/errors/rust-const-checker.cc
+ (ConstChecker::visit): Likewise.
+ * checks/errors/rust-const-checker.h
+ (ConstChecker::visit): Likewise.
+ * checks/errors/rust-unsafe-checker.cc
+ (UnsafeChecker::visit): Likewise.
+ * checks/errors/rust-unsafe-checker.h
+ (UnsafeChecker::visit): Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.cc
+ (PrivacyReporter::visit): Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.h
+ (PrivacyReporter::visit): Likewise.
+ * checks/lints/rust-lint-marklive.h
+ (MarkLive::visit): Likewise.
+ * typecheck/rust-hir-type-check-stmt.cc
+ (TypeCheckStmt::visit): Likewise.
+ * typecheck/rust-hir-type-check-stmt.h
+ (TypeCheckStmt::visit): Likewise.
+ * typecheck/rust-tycheck-dump.h
+ (TypeResolverDump::visit): Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/tree/rust-hir-stmt.h
+ (ExprStmt::expr): Add field.
+ (ExprStmt::get_expr): Add method.
+ (ExprStmt::ExprStmt): Add copy/move constructors, modify existing constructor.
+ (ExprStmt::operator=): Add assignment operator.
+ (ExprStmtWithoutBlock::expr): Remove field.
+ (ExprStmtWithoutBlock::get_expr): Remove method.
+ (ExprStmtWithoutBlock::ExprStmt):
+ Remove copy/move constructors, modify existing constructor.
+ (ExprStmtWithoutBlock::operator=): Remove assignment operator.
+ (ExprStmtWithBlock::expr): Remove field.
+ (ExprStmtWithBlock::get_expr): Remove method.
+ (ExprStmtWithBlock::ExprStmt): Remove copy/move constructors, modify existing constructor.
+ (ExprStmtWithBlock::operator=): Remove assignment operator.
+ (ExprStmt::as_string): Add method.
+ (ExprStmtWithBlock::as_string): Remove method.
+ (ExprStmtWithoutBlock::as_string): Remove method.
+ * hir/tree/rust-hir.cc
+ (ExprStmt::as_string): Add method.
+ (ExprStmtWithBlock::as_string): Remove method.
+ (ExprStmtWithoutBlock::as_string): Remove method.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-expr.h
+ (class IfExprConseqElse): Make else_block ExprWithBlock.
+ (class IfExprConseqIf): Remove.
+ (class IfExprConseqIfLet): Remove.
+ * ast/rust-ast-full-decls.h
+ (class IfExprConseqIf): Remove.
+ (class IfExprConseqIfLet): Remove.
+ * ast/rust-ast.cc
+ (IfExprConseqElse::as_string): Adjust output.
+ (IfExprConseqIf::as_string): Remove.
+ (IfExprConseqIfLet::as_string): Remove.
+ (IfExprConseqIf::accept_vis): Remove.
+ (IfExprConseqIfLet::accept_vis): Remove.
+ * ast/rust-ast-visitor.h
+ (ASTVisitor::visit): Remove IfExprConseqIf{,Let} visitors.
+ * ast/rust-ast-tokenstream.cc
+ (TokenStream::visit): Likewise.
+ * ast/rust-ast-tokenstream.h
+ (TokenStream::visit): Likewise.
+ * ast/rust-ast-dump.cc
+ (Dump::visit): Likewise.
+ * ast/rust-ast-dump.h
+ (Dump::visit): Likewise.
+ * checks/errors/rust-feature-gate.h
+ (FeatureGate::visit): Likewise.
+ * util/rust-attributes.cc
+ (AttributeChecker::visit): Likewise.
+ * util/rust-attributes.h
+ (AttributeChecker::visit): Likewise.
+ * resolve/rust-early-name-resolver.cc
+ (EarlyNameResolver::visit): Likewise.
+ * resolve/rust-early-name-resolver.h
+ (EarlyNameResolver::visit): Likewise.
+ * resolve/rust-ast-resolve-base.h
+ (ResolverBase::visit): Likewise.
+ * resolve/rust-ast-resolve-base.cc
+ (ResolverBase::visit): Likewise.
+ * resolve/rust-ast-resolve-expr.h
+ (ResolveExpr::visit): Remove IfExprConseqIf visitor.
+ * resolve/rust-ast-resolve-expr.cc
+ (ResolveExpr::visit): Likewise.
+ * expand/rust-cfg-strip.cc
+ (CfgStrip::visit): Remove IfExprConseqIf{,Let} visitors.
+ * expand/rust-cfg-strip.h
+ (CfgStrip::visit): Likewise.
+ * expand/rust-expand-visitor.cc
+ (ExpandVisitor::visit): Likewise.
+ * expand/rust-expand-visitor.h
+ (ExpandVisitor::visit): Likewise.
+ * hir/rust-ast-lower-base.cc
+ (ASTLoweringBase::visit): Likewise.
+ * hir/rust-ast-lower-base.h
+ (ASTLoweringBase::visit): Likewise.
+ * hir/rust-ast-lower-block.h
+ (ASTLoweringIfBlock::visit): Remove IfExprConseqIf visitor.
+ (ASTLoweringExprWithBlock::visit): Likewise.
+ * hir/rust-ast-lower.cc
+ (ASTLoweringIfBlock::visit):
+ Remove IfExprConseqIf visitor, adjust IfExprConseqElse lowering.
+ * hir/rust-ast-lower-expr.h
+ (ASTLoweringExpr::visit): Remove IfExprConseqIf visitor.
+ * hir/rust-ast-lower-expr.cc
+ (ASTLoweringExpr::visit): Likewise.
+ * parse/rust-parse-impl.h
+ (Parser::parse_if_expr): Replace IfExprConseqIf{,Let} with IfExprConseqElse.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix inner
+ attribute tokenstream output.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * ast/rust-ast-dump.cc (Dump::debug): New.
+ * ast/rust-ast-dump.h (Dump::debug): Untemplate it.
+ (debug): New.
+ * ast/rust-ast.h (class Visitable): New.
+ (class TokenTree): Inherit from Visitable.
+ (class MacroMatch): Likewise.
+ (class AttrInput): Likewise.
+ (class MetaItemInner): Likewise.
+ (class Pattern): Likewise.
+ (classTypeParamBound): Likewise.
+ (class GenericParam): Likewise.
+ (class TraitItem): Likewise.
+ (classInherentImplItem): Likewise.
+ (class TraitImplItem): Likewise.
+ (class ExternalItem): Likewise.
+ (class SingleASTNode): Likewise.
+
+2024-01-16 Thomas Schwinge <thomas@codesourcery.com>
+
+ * rust-lang.cc (grs_langhook_type_for_mode): Placate clang-format.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h: Add boolean for differenciation.
+ * parse/rust-parse-impl.h (Parser::parse_doc_comment): Change
+ function interface to make code cleaner. It should return a body
+ instead of the whole attribute.
+ (Parser::parse_inner_attribute): Specify the inner status of the
+ node.
+ (Parser::parse_attribute_body): Change function interface to
+ make the code cleaner much like parse_doc_comment.
+ (Parser::parse_outer_attribute): Specify outer status of the
+ node.
+ * parse/rust-parse.h: Update functions prototypes.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile):
+ reuse resolve_method_address to monomorphize the call if required
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
+ allow matching against unimplemented trait item bounds
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-path-probe.cc: dont subst with a dynamic object
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address): moved here
+ * backend/rust-compile-base.h: refactored prototype
+ * backend/rust-compile-expr.cc (CompileExpr::resolve_method_address): refactor
+ * backend/rust-compile-expr.h: likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): remove unused
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): call destructure
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::resolve_method_address):
+ call path probe impl trait
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-expand-visitor.cc (ExpandVisitor::visit): Add call
+ to attribute expansion function.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-expand-visitor.cc (ExpandVisitor::visit_outer_attrs):
+ Change condition order.
+ (ExpandVisitor::visit_inner_using_attrs): Likewise.
+ (ExpandVisitor::visit_attrs_with_derive): Likewise.
+ (ExpandVisitor::is_builtin): Add builtin identification
+ function.
+ * expand/rust-expand-visitor.h: Add function prototype.
+ * util/rust-attributes.cc: Add missing rustc_builtin_macro
+ attribute.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-expand-visitor.cc (ExpandVisitor::expand_struct_fields):
+ Add call to expand structu fields.
+ (ExpandVisitor::expand_function_params): Add call to expand
+ function parameters.
+ (ExpandVisitor::expand_closure_params): Add call to expand
+ closure parameters.
+ (ExpandVisitor::visit): Add calls for item outer attribute
+ expansions.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-expand-visitor.cc (ExpandVisitor::expand_outer_attribute):
+ Stub for a single attribute expansion.
+ (ExpandVisitor::visit_outer_attrs): Visit the attributes to
+ expand on a given item.
+ * expand/rust-expand-visitor.h: Add function prototypes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast.h: Add getter to Expr class.
+ * ast/rust-expr.h: Add override attribute to existing getters.
+ Also implement it for RangeExpr, attempting to retrieve outer
+ attributes on those types will crash the compiler.
+ * ast/rust-macro.h: Add override attribute to existing getters.
+ * ast/rust-path.h: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-expand-visitor.cc (ExpandVisitor::visit): Add call
+ to inner attribute stub.
+ (ExpandVisitor::expand_inner_attribute): Expand one single
+ attribute.
+ (ExpandVisitor::visit_inner_using_attrs): Expand a given item
+ using a vector of attributes.
+ (ExpandVisitor::visit_inner_attrs): Visit inner attributes of a
+ given item.
+ * expand/rust-expand-visitor.h: Add function prototypes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * expand/rust-expand-visitor.cc (ExpandVisitor::visit): Add call
+ to derive expander.
+ (ExpandVisitor::expand_derive): Expand a single derive.
+ (ExpandVisitor::visit_attrs_with_derive): Visit an item with
+ derive attributes.
+ (ExpandVisitor::is_derive): Identify a derive attribute.
+ * expand/rust-expand-visitor.h: Add function prototypes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix ICE.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Remove
+ default separator.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Visit inner
+ attributes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Change token
+ type.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix existing
+ and implement remaining attribute visitors.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor
+ to the union's outer attributes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Add call to
+ inner attribute visitor.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix ICE.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Make comma
+ mandatory.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Remove
+ additional semicolon output.
+ * ast/rust-ast-tokenstream.h: Change block visitor prototype
+ with a default value for trailing tokens.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Make-lang.in: Add two new files to the list of sources.
+ * ast/rust-ast-full.h: Add new ast formatting header.
+ * ast/rust-ast.cc (enum indent_mode): Move formatting function
+ to it's own file.
+ (indent_spaces): Likewise.
+ (get_string_in_delims): Likewise.
+ (enum AttrMode): Likewise.
+ (get_mode_dump_desc): Likewise.
+ (append_attributes): Likewise.
+ (unquote_string): Likewise.
+ (GroupedExpr::as_string): Move pattern implementation to it's
+ own file.
+ (RangePattern::as_string): Likewise.
+ (RangePatternBoundLiteral::as_string): Likewise.
+ (SlicePattern::as_string): Likewise.
+ (AltPattern::as_string): Likewise.
+ (TuplePatternItemsMultiple::as_string): Likewise.
+ (TuplePatternItemsRanged::as_string): Likewise.
+ (TuplePattern::as_string): Likewise.
+ (StructPatternField::as_string): Likewise.
+ (StructPatternFieldIdent::as_string): Likewise.
+ (StructPatternFieldTuplePat::as_string): Likewise.
+ (StructPatternFieldIdentPat::as_string): Likewise.
+ (StructPatternElements::as_string): Likewise.
+ (StructPattern::as_string): Likewise.
+ (LiteralPattern::as_string): Likewise.
+ (ReferencePattern::as_string): Likewise.
+ (IdentifierPattern::as_string): Likewise.
+ (TupleStructItemsNoRange::as_string): Likewise.
+ (TupleStructItemsRange::as_string): Likewise.
+ (TupleStructPattern::as_string): Likewise.
+ (GroupedExpr::accept_vis): Likewise.
+ (LiteralPattern::accept_vis): Likewise.
+ (IdentifierPattern::accept_vis): Likewise.
+ (WildcardPattern::accept_vis): Likewise.
+ (RestPattern::accept_vis): Likewise.
+ (RangePatternBoundLiteral::accept_vis): Likewise.
+ (RangePatternBoundPath::accept_vis): Likewise.
+ (RangePatternBoundQualPath::accept_vis): Likewise.
+ (RangePattern::accept_vis): Likewise.
+ (ReferencePattern::accept_vis): Likewise.
+ (StructPatternFieldTuplePat::accept_vis): Likewise.
+ (StructPatternFieldIdentPat::accept_vis): Likewise.
+ (StructPatternFieldIdent::accept_vis): Likewise.
+ (StructPattern::accept_vis): Likewise.
+ (TupleStructItemsNoRange::accept_vis): Likewise.
+ (TupleStructItemsRange::accept_vis): Likewise.
+ (TupleStructPattern::accept_vis): Likewise.
+ (TuplePatternItemsMultiple::accept_vis): Likewise.
+ (TuplePatternItemsRanged::accept_vis): Likewise.
+ (TuplePattern::accept_vis): Likewise.
+ (GroupedPattern::accept_vis): Likewise.
+ (SlicePattern::accept_vis): Likewise.
+ (AltPattern::accept_vis): Likewise.
+ * ast/rust-ast-formatting.cc: New file.
+ * ast/rust-ast-formatting.h: New file.
+ * ast/rust-pattern.cc: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Make-lang.in: Add new file for rust-path implementation.
+ * ast/rust-ast.cc (PathInExpression::as_string): Move function
+ to the new file.
+ (PathPattern::as_string): Likewise.
+ (QualifiedPathInExpression::as_string): Likewise.
+ (ConstGenericParam::as_string): Likewise.
+ (QualifiedPathInType::as_string): Likewise.
+ (TypePath::as_string): Likewise.
+ (PathPattern::convert_to_simple_path): Likewise.
+ (TypePath::as_simple_path): Likewise.
+ (PathExprSegment::as_string): Likewise.
+ (GenericArgs::as_string): Likewise.
+ (GenericArgsBinding::as_string): Likewise.
+ (TypePath::to_trait_bound): Likewise.
+ (TypePathSegmentGeneric::as_string): Likewise.
+ (TypePathFunction::as_string): Likewise.
+ (TypePathSegmentFunction::as_string): Likewise.
+ (ConstGenericParam::accept_vis): Likewise.
+ (PathInExpression::accept_vis): Likewise.
+ (TypePathSegment::accept_vis): Likewise.
+ (TypePathSegmentGeneric::accept_vis): Likewise.
+ (TypePathSegmentFunction::accept_vis): Likewise.
+ (TypePath::accept_vis): Likewise.
+ (QualifiedPathInExpression::accept_vis): Likewise.
+ (QualifiedPathInType::accept_vis): Likewise.
+ (GenericArg::disambiguate_to_const): Likewise.
+ (GenericArg::disambiguate_to_type): Likewise.
+ * ast/rust-path.cc: New file.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-item.cc (CompileItem::visit): unwrap the constant expression
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * util/rust-lang-item.h
+ (RustLangItem::ItemType::FN): Add.
+ (RustLangItem::ItemType::FN_MUT): Add.
+ (RustLangItem::Parse): Handle FN and FN_MUT.
+ (RustLangItem::ToString): Handle FN and FN_MUT.
+
+2024-01-16 Emanuele Micheletti <micheletti.emanuele@hotmail.com>
+
+ * typecheck/rust-casts.cc (TypeCastRules::cast_rules):
+ case INTEGRAL handles TypeKind::CHAR
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
+ add check for reference marker and type's in self params
+ (ResolveItem::visit): likewise
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path):
+ remove bad generics check
+ (TypeCheckExpr::resolve_segments): likewise
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path): likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * resolve/rust-ast-resolve-item.cc
+ (ResolveTraitItems::visit): add name resolution self param
+ (ResolveItem::visit): likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::TypeBoundPredicate): this is an empty
+ (TypeBoundPredicate::operator=): likewise
+ * typecheck/rust-tyty-subst.cc (SubstitutionArgumentMappings::empty): new interface
+ (SubstitutionArgumentMappings::is_error): this marks it as an error
+ * typecheck/rust-tyty-subst.h: update prototypes
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * checks/errors/privacy/rust-privacy-reporter.cc
+ (PrivacyReporter::check_base_type_privacy): allow error types to be permissive
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit_items_as_lines):
+ Handle trailing chars.
+ (TokenStream::visit_items_as_block): Likewise.
+ (TokenStream::visit): Fix visitor.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * lex/rust-token.cc (Token::as_string): Add type hint output.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust-session-manager.cc (Session::enable_dump): Enable new
+ dump.
+ (Session::compile_crate): CLI argument parsing.
+ (Session::dump_tokenstream): Dump the tokenstream as a string in
+ the specified file.
+ * rust-session-manager.h (struct CompileOptions): Add
+ tokenstream dump option.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * lex/rust-token.cc (Token::as_string): Add as_string
+ implementation.
+ * lex/rust-token.h: Add as_string prototype.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::TokenStream): Add
+ constructor.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::collect_tokens): Add
+ getter.
+ (TokenStream::go): Rename function.
+ (TokenStream::visit): Likewise.
+ * ast/rust-ast-tokenstream.h: Add collect prototype.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Change
+ getter name.
+ * ast/rust-ast.cc (SimplePath::as_string): Change attribute
+ name.
+ * ast/rust-ast.h (class SimplePath): Refactor attribute name and
+ change getter name.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit_as_line): Add
+ formatting calls.
+ (TokenStream::visit_items_as_block): Likewise.
+ (TokenStream::newline): Add stub.
+ (TokenStream::indentation): Add stub.
+ (TokenStream::increment_indentation): Add stub.
+ (TokenStream::decrement_indentation): Add stub.
+ (TokenStream::visit): Add formatting calls.
+ (TokenStream::visit_function_common): Likewise.
+ * ast/rust-ast-tokenstream.h: Add stub prototypes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor
+ implementation.
+ * ast/rust-ast-tokenstream.h: Add additional function prototype.
+ * ast/rust-item.h: Add some getters.
+ * ast/rust-macro.h: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor.
+ * ast/rust-item.h: Add missing getters.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Add
+ visitors.
+ (TokenStream::visit_closure_common): Merge common code for
+ closure visitors.
+ * ast/rust-ast-tokenstream.h: Add function prototype.
+ * ast/rust-expr.h: Add missing move attribute getter.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Add
+ visitors.
+ (TokenStream::visit_loop_common): Merge common loop code.
+ * ast/rust-ast-tokenstream.h: Add function prototypes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Implement
+ visitor.
+ * ast/rust-ast-tokenstream.h: Add function prototype for missing
+ component.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::trailing_comma):
+ Output a trailing comma to the token stream according to the
+ configuration.
+ * ast/rust-ast-tokenstream.h: Add function prototype.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Implement
+ visitors.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-tokenstream.cc (TokenStream::visit): Implement
+ visitors.
+ * ast/rust-ast-tokenstream.h: Add function prototypes.
+ * ast/rust-ast.h: Add missing getters.
+ * ast/rust-expr.h: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Make-lang.in: Add rust-as-tokenstream to compile list.
+ * ast/rust-item.h: Add missing getter for location.
+ * ast/rust-ast-tokenstream.cc: Add ast visitor implementation.
+ * ast/rust-ast-tokenstream.h: New file.
+ * ast/rust-pattern.h: Add getter.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
+ Add implicit unit type as the return type when not specified
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * util/rust-attributes.cc: Add stable to the table of known attributes
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): return early on bad type
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::TypeCheckPattern):
+ remove assertion in favor of check
+ (TypeCheckPattern::visit): likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::generate_closure_function):
+ when its not a block we dont have any ribs to generate locals from
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * parse/rust-parse-impl.h
+ (Parser<ManagedTokenSource>::parse_expr_without_block):
+ Remove direct array expression handling.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-item.h: Fix `Visibility::has_path()` implementation.
+ * checks/errors/privacy/rust-visibility-resolver.cc
+ (VisibilityResolver::resolve_module_path): Check if we are dealing with pub(crate) properly.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Set
+ resolved_node_id when visiting root segment of SimplePath.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast.h: Call SimplePath constructor differently in
+ SimplePath::from_str
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/rust-ast-lower-type.h: Move all remaining definitions to source file.
+ * hir/rust-ast-lower-type.cc (ASTLoweringType::translate): Moved to source file.
+ (ASTLoweringType::visit): Likewise.
+ (ASTLowerGenericParam::translate): Likewise.
+ (ASTLowerGenericParam::visit): Likewise.
+ (ASTLoweringTypeBounds::translate): Likewise.
+ (ASTLoweringTypeBounds::visit): Likewise.
+ (ASTLowerWhereClauseItem::translate): Likewise.
+ (ASTLowerWhereClauseItem::visit): Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-pattern.h: Remove commented out code.
+
+2024-01-16 emanuele-em <micheletti.emanuele@hotmail.com>
+
+ * typecheck/rust-casts.cc (TypeCastRules::cast_rules): BOOL removed from switch cases
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * Make-lang.in: Rename rust-asttribute-visitor.o -> rust-cfg-strip.o
+ * expand/rust-attribute-visitor.cc: Moved to...
+ * expand/rust-cfg-strip.cc: ...here.
+ * expand/rust-attribute-visitor.h: Moved to...
+ * expand/rust-cfg-strip.h: ...here.
+ * expand/rust-macro-expand.cc: Fix include of rust-attribute-visitor.h
+ * expand/rust-macro-builtins.cc: Likewise.
+ * rust-session-manager.cc (Session::expansion): Call CfgStrip instead of
+ AttrVisitor.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * Make-lang.in: Add new object file.
+ * expand/rust-attribute-visitor.cc (AttrVisitor::go): Visit all items of a
+ crate.
+ (AttrVisitor::expand_struct_fields): Do not perform macro expansion anymore.
+ (AttrVisitor::expand_function_params): Likewise.
+ (AttrVisitor::expand_generic_args): Likewise.
+ (AttrVisitor::expand_qualified_path_type): Likewise.
+ (AttrVisitor::expand_self_param): Likewise.
+ (AttrVisitor::expand_trait_function_decl): Likewise.
+ (AttrVisitor::expand_trait_method_decl): Likewise.
+ (AttrVisitor::visit): Likewise.
+ (AttrVisitor::maybe_expand_expr): Remove function.
+ (AttrVisitor::maybe_expand_type): Likewise.
+ * expand/rust-attribute-visitor.h: Do not keep MacroExpander inside AttrVisitor
+ anymore.
+ * expand/rust-macro-expand.h (struct MacroExpander): Turn ContextType into an
+ enum class for more type safety.
+ * expand/rust-macro-expand.cc (MacroExpander::expand_crate): Use new ContextType
+ API.
+ * rust-session-manager.cc (Session::expansion): Call into ExpandVisitor.
+ * expand/rust-expand-visitor.cc: New file.
+ * expand/rust-expand-visitor.h: New file.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-macro-expand.cc (MacroExpander::expand_crate): Do not cfg-attr
+ strip in MacroExpander
+ (MacroExpander::fails_cfg): Function moved...
+ (MacroExpander::fails_cfg_with_expand): Function moved...
+ (MacroExpander::expand_cfg_attrs): Function moved...
+ * expand/rust-attribute-visitor.cc (fails_cfg): ...here.
+ (fails_cfg_with_expand): ...here.
+ (expand_cfg_attrs): ...here.
+ (AttrVisitor::expand_struct_fields): Use new functions.
+ (AttrVisitor::expand_tuple_fields): Likewise.
+ (AttrVisitor::expand_function_params): Likewise.
+ (AttrVisitor::visit): Likewise.
+ (AttrVisitor::go): New function.
+ * expand/rust-attribute-visitor.h: Declare AttrVisitor::go.
+ * expand/rust-macro-expand.h (struct MacroExpander): Remove cfg-attr related
+ functions.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_macro_definition):
+ New function.
+ * hir/rust-ast-lower-base.h: Declare `lower_macro_definition`.
+ * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Lower public
+ macro definitions.
+ * hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Likewise.
+ * hir/rust-ast-lower-stmt.h: Add visitor for `AST::MacroRulesDefinition`.
+ * hir/rust-ast-lower.cc (ASTLowering::go): Formatting.
+ (ASTLoweringBlock::visit): Visit `AST::MacroRulesDefinition`
+ (ASTLoweringIfLetBlock::visit): Formatting.
+ (ASTLoweringExprWithBlock::visit): Formatting.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Add new visitor
+ for AST::MacroRulesDefinition.
+ * hir/rust-ast-lower-item.h: Declare above mentioned visitor.
+ * metadata/rust-export-metadata.cc (ExportContext::emit_macro): New function.
+ * metadata/rust-export-metadata.h: Declare it.
+ (PublicInterface::gather_export_data): Go through each exported macro.
+ * util/rust-hir-map.cc (Mappings::insert_exported_macro): New function.
+ (Mappings::get_exported_macros): New function.
+ * util/rust-hir-map.h: Add new mappings for exported macros.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * backend/rust-compile-item.h: Revert 1c946687239b86a92839d57dfbc928ad7ce35eae.
+ * backend/rust-compile-stmt.h: Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.cc
+ (PrivacyReporter::visit): Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.h: Likewise.
+ * checks/errors/privacy/rust-pub-restricted-visitor.cc
+ (PubRestrictedVisitor::visit): Likewise.
+ * checks/errors/privacy/rust-pub-restricted-visitor.h: Likewise.
+ * checks/errors/privacy/rust-reachability.cc
+ (ReachabilityVisitor::visit): Likewise.
+ * checks/errors/privacy/rust-reachability.h: Likewise.
+ * checks/errors/privacy/rust-visibility-resolver.cc
+ (VisibilityResolver::visit): Likewise.
+ * checks/errors/privacy/rust-visibility-resolver.h: Likewise.
+ * checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
+ * checks/errors/rust-const-checker.h: Likewise.
+ * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
+ * checks/errors/rust-unsafe-checker.h: Likewise.
+ * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
+ * hir/rust-ast-lower-item.h: Likewise.
+ * hir/rust-hir-dump.cc (Dump::visit): Likewise.
+ * hir/rust-hir-dump.h: Likewise.
+ * hir/tree/rust-hir-full-decls.h (class ExportedMacro): Likewise.
+ * hir/tree/rust-hir-item.h (class ExportedMacro): Likewise.
+ * hir/tree/rust-hir-visitor.h: Likewise.
+ * hir/tree/rust-hir.cc (ExportedMacro::accept_vis): Likewise.
+ (ExportedMacro::get_locus): Likewise.
+ (ExportedMacro::get_item_kind): Likewise.
+ (ExportedMacro::clone_item_impl): Likewise.
+ * hir/tree/rust-hir.h: Likewise.
+ * metadata/rust-export-metadata.cc: Likewise.
+ * typecheck/rust-hir-type-check-item.h: Likewise.
+ * typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
+ * typecheck/rust-hir-type-check-stmt.h: Likewise.
+ * typecheck/rust-tycheck-dump.h: Likewise.
+ * util/rust-attributes.cc: Likewise.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): return a TraitObject
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-trait-resolve.cc: don't inject extra inference variables
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-dump.cc (Dump::visit): Remove extraneous semicolon when
+ dumping macro rules.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * metadata/rust-imports.cc (add_search_path): Change `Go` -> `Rust`.
+ (Import::try_package_in_directory): Likewise.
+ (Import::find_export_data): Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/rust-ast-lower-pattern.cc
+ (ASTLoweringPattern::visit): Lower AltPattern.
+ * hir/rust-ast-lower-pattern.h:
+ (ASTLoweringPattern::visit): Add AltPattern visitor.
+
+2024-01-16 Xiao Ma <turingki@yeah.net>
+ Thomas Schwinge <thomas@codesourcery.com>
+
+ * checks/errors/rust-feature-gate.cc: Adjust 'ld'->'u'.
+ * checks/errors/rust-feature.h: Adjust
+ the type of `m_issue`: 'uint64_t' -> 'unsigned'.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * ast/rust-ast.h: add const get_final_segment helper
+ * hir/rust-ast-lower-enumitem.h: dont add an item mapping for enumitems
+ * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): add enum to enum-items mappings
+ * hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): likewise
+ * hir/tree/rust-hir-item.h: add non const helper to get variants
+ * resolve/rust-ast-resolve-item.cc (ResolveItem::visit): resolve the use declaration
+ * resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): handle self
+ * resolve/rust-ast-resolve-toplevel.h: add enum item mappings to module mappings
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path): ensure variant
+ (TypeCheckExpr::resolve_segments): likewise
+ * typecheck/rust-type-util.cc (query_type): lookup enum's
+ * util/rust-hir-map.cc (Mappings::insert_hir_enumitem): enum item mappings
+ (Mappings::lookup_hir_enumitem): likewise
+ * util/rust-hir-map.h: likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * resolve/rust-ast-resolve-path.cc (ResolvePath::ResolvePath): return NodeId
+ (ResolvePath::go): update signiture
+ (ResolvePath::resolve_path): return resolved_node_id
+ * resolve/rust-ast-resolve-path.h: update prototypes
+
+2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
+
+ * hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit):
+ Add lowering for SlicePattern.
+ * hir/rust-ast-lower-pattern.h: Likewise.
+ * resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit):
+ Add name resolution visit for SlicePattern.
+ * resolve/rust-ast-resolve-pattern.h: Likewise.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * hir/rust-ast-lower-implitem.h (RUST_AST_LOWER_IMPLITEM_H): cleanup header usage
+ * hir/rust-ast-lower-item.cc: likewise
+ * hir/rust-ast-lower-item.h (RUST_AST_LOWER_ITEM): likewise
+ * hir/rust-ast-lower-stmt.cc: likewise
+ * hir/rust-ast-lower-stmt.h (RUST_AST_LOWER_STMT): likewise
+ * hir/rust-ast-lower-type.h: likewise
+ * hir/rust-ast-lower.cc: likewise
+ * hir/rust-ast-lower.h: likewise
+ * resolve/rust-ast-resolve-expr.h: likewise
+ * resolve/rust-ast-resolve-item.cc: likewise
+ * resolve/rust-ast-resolve-item.h: likewise
+ * resolve/rust-ast-resolve-stmt.cc: likewise
+ * resolve/rust-ast-resolve-stmt.h: likewise
+ * resolve/rust-ast-resolve-struct-expr-field.h: likewise
+ * resolve/rust-ast-resolve-toplevel.h: likewise
+ * resolve/rust-ast-resolve-type.h: likewise
+ * resolve/rust-ast-resolve.h: likewise
+
+2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
+
+ * resolve/rust-ast-resolve-pattern.h (class ResolvePattern): Removed.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-intrinsic.cc (move_val_init_handler): new intrinsice
+ (uninit_handler): use a builtin memcpy
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-coercion.cc (TypeCoercionRules::select): use the result
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal): fix ctor
+ * typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): likewise
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
+ * typecheck/rust-typecheck-context.cc (TypeCheckContext::push_new_loop_context): likewise
+ * typecheck/rust-tyty-util.cc (TyVar::get_implicit_infer_var): likewise
+ * typecheck/rust-tyty.cc (InferType::InferType): new ctor with type hint
+ (InferType::clone): fix ctor
+ (InferType::apply_primitive_type_hint): new function to apply possible hint
+ * typecheck/rust-tyty.h: update prototypes
+ * typecheck/rust-unify.cc (UnifyRules::expect_inference_variable): apply type hints
+ (UnifyRules::expect_bool): likewise
+ (UnifyRules::expect_char): likewise
+ (UnifyRules::expect_int): likewise
+ (UnifyRules::expect_uint): likewise
+ (UnifyRules::expect_float): likewise
+ (UnifyRules::expect_isize): likewise
+ (UnifyRules::expect_usize): likewise
+
+2024-01-16 Jiakun Fan <120090316@link.cuhk.edu.cn>
+
+ * hir/rust-hir-dump.cc (Dump::go): fix format
+ (Dump::visit): impl `visit (AST::Attribute &)`, dump inner attrs and
+ `visit (Lifetime &)`
+ * hir/rust-hir-dump.h:add `visit (AST::Attribute &)`
+
+2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
+
+ * resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go):
+ Print out consistency errors.
+ (PatternDeclaration::visit): Implement visit for AltPattern.
+ (PatternDeclaration::add_new_binding): New helper function for
+ adding a binding to identifier.
+ * resolve/rust-ast-resolve-pattern.h (struct BindingInfo):
+ New struct to facilitate checking for inconsistencies between bindings.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-compile-block.h
+ (CompileConditionalBlocks::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ (CompileExprWithBlock::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ * backend/rust-compile-expr.h
+ (CompileExpr::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ * checks/errors/rust-unsafe-checker.cc
+ (UnsafeChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ * checks/errors/rust-unsafe-checker.h
+ (UnsafeChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ * checks/errors/rust-const-checker.cc
+ (ConstChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ * checks/errors/rust-const-checker.h
+ (ConstChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ * checks/errors/privacy/rust-privacy-reporter.cc
+ (PrivacyReporter::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ * checks/errors/privacy/rust-privacy-reporter.h
+ (PrivacyReporter::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ * hir/tree/rust-hir-expr.h
+ (class IfLetExprConseqElse): Make else_block ExprWithBlock.
+ (class IfLetExprConseqIf): Remove.
+ (class IfLetExprConseqIfLet): Remove.
+ * hir/tree/rust-hir-full-decls.h
+ (class IfLetExprConseqIf): Remove.
+ (class IfLetExprConseqIfLet): Remove.
+ * hir/tree/rust-hir.cc
+ (IfLetExprConseqElse::as_string): Adjust output.
+ (IfLetExprConseqIf::as_string): Remove.
+ (IfLetExprConseqIfLet::as_string): Remove.
+ (IfLetExprConseqIf::accept_vis): Remove.
+ (IfLetExprConseqIfLet::accept_vis): Remove.
+ * hir/tree/rust-hir-visitor.h
+ (HIRFullVisitor::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ (HIRFullVisitorBase::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ (HIRExpressionVisitor::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ * hir/rust-hir-dump.cc
+ (Dump::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ * hir/rust-hir-dump.h
+ (Dump::visit): Remove IfLetExprConseqIf{,Let} visitors.
+ * typecheck/rust-hir-type-check-expr.h
+ (TypeCheckExpr::visit): Remove IfLetExprConseqIf{,Let} visitors.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc
+ (TypeCheckExpr::visit): Remove IfExprConseqIf visitor.
+ * typecheck/rust-hir-type-check-expr.h
+ (TypeCheckExpr::visit): Remove IfExprConseqIf{,Let} visitor.
+ * backend/rust-compile-block.cc
+ (CompileConditionalBlocks::visit): Remove IfExprConseqIf visitor.
+ * backend/rust-compile-block.h
+ (CompileConditionalBlocks::visit): Remove IfExprConseqIf{,Let} visitors.
+ (CompileExprWithBlock::visit):
+ Remove IfExprConseqIf{,Let} visitors, implement BlockExpr visitor.
+ * backend/rust-compile-expr.cc
+ (CompileExpr::visit): Remove IfExprConseqIf visitor.
+ * backend/rust-compile-expr.h
+ (CompileExpr::visit): Remove IfExprConseqIf{,Let} visitors.
+ * checks/lints/rust-lint-marklive.h
+ (MarkLive::visit): Remove IfExprConseqIf visitor.
+ * checks/errors/rust-const-checker.cc
+ (ConstChecker::visit): Remove IfExprConseqIf{,Let} visitors.
+ * checks/errors/rust-const-checker.h
+ (ConstChecker::visit): Remove IfExprConseqIf{,Let} visitors.
+ * checks/errors/rust-unsafe-checker.cc
+ (UnsafeChecker::visit): Remove IfExprConseqIf{,Let} visitors.
+ * checks/errors/rust-unsafe-checker.h
+ (UnsafeChecker::visit): Remove IfExprConseqIf{,Let} visitors.
+ * checks/errors/privacy/rust-privacy-reporter.cc
+ (PrivacyReporter::visit): Remove IfExprConseqIf{,Let} visitors.
+ * checks/errors/privacy/rust-privacy-reporter.h
+ (PrivacyReporter::visit): Remove IfExprConseqIf{,Let} visitors.
+ * hir/tree/rust-hir-expr.h
+ (class IfExprConseqElse): Make else_block ExprWithBlock.
+ (class IfExprConseqIf): Remove.
+ (class IfExprConseqIfLet): Remove.
+ * hir/tree/rust-hir-full-decls.h
+ (class IfExprConseqIf): Remove.
+ (class IfExprConseqIfLet): Remove.
+ * hir/tree/rust-hir.cc
+ (IfExprConseqElse::as_string): Adjust output.
+ (IfExprConseqIf::as_string): Remove.
+ (IfExprConseqIfLet::as_string): Remove.
+ (IfExprConseqIf::accept_vis): Remove.
+ (IfExprConseqIfLet::accept_vis): Remove.
+ * hir/tree/rust-hir-visitor.h
+ (HIRFullVisitor::visit): Remove IfExprConseqIf{,Let} visitors.
+ (HIRFullVisitorBase::visit): Remove IfExprConseqIf{,Let} visitors.
+ (HIRExpressionVisitor::visit): Remove IfExprConseqIf{,Let} visitors.
+ * hir/rust-hir-dump.cc
+ (Dump::visit): Remove IfExprConseqIf{,Let} visitors.
+ * hir/rust-hir-dump.h
+ (Dump::visit): Remove IfExprConseqIf{,Let} visitors.
+ * hir/rust-ast-lower.cc
+ (ASTLoweringIfBlock::visit): Replace HIR::IfExprConseqIf with HIR::IfExprConseqElse.
+
+2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
+
+ * resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
+ Push a Product context instead of an Or context.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-inherent-impl-overlap.h (class ImplItemToName): remove
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::resolve_method_address): remove unused code
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): remove infer call
+ (TypeCheckExpr::resolve_root_path): only infer when we need to
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-dot-operator.cc (MethodResolver::select): add debug
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile.cc: use unify_and instead
+ * typecheck/rust-tyty-subst.cc (SubstitutionRef::solve_missing_mappings_from_this): remove
+ * typecheck/rust-tyty-subst.h: update header
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-coercion.cc (TypeCoercionRules::select): use new unify_and interface
+ * typecheck/rust-hir-dot-operator.cc (MethodResolver::try_hook): grab bounds behind refs
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-base.cc: fix headers
+ * backend/rust-compile-base.h: likewise
+ * backend/rust-compile-expr.cc: likewise
+ * backend/rust-compile-extern.h: likewise
+ * backend/rust-compile-pattern.cc: likewise
+ * backend/rust-compile.cc: likewise
+ * typecheck/rust-autoderef.cc: likewise
+ * typecheck/rust-hir-dot-operator.cc: likewise
+ * typecheck/rust-hir-inherent-impl-overlap.h: likewise
+ * typecheck/rust-hir-path-probe.cc: likewise
+ * typecheck/rust-hir-trait-resolve.cc: likewise
+ * typecheck/rust-hir-type-check-base.cc: likewise
+ * typecheck/rust-hir-type-check-base.h (RUST_HIR_TYPE_CHECK_BASE): likewise
+ * typecheck/rust-hir-type-check-enumitem.cc: likewise
+ * typecheck/rust-hir-type-check-expr.cc: likewise
+ * typecheck/rust-hir-type-check-implitem.cc: likewise
+ * typecheck/rust-hir-type-check-item.cc: likewise
+ * typecheck/rust-hir-type-check-path.cc: likewise
+ * typecheck/rust-hir-type-check-pattern.cc: likewise
+ * typecheck/rust-hir-type-check-stmt.cc: likewise
+ * typecheck/rust-hir-type-check-struct.cc: likewise
+ * typecheck/rust-hir-type-check-type.cc: likewise
+ * typecheck/rust-hir-type-check-type.h: likewise
+ * typecheck/rust-hir-type-check.h (RUST_HIR_TYPE_CHECK): likewise
+ * typecheck/rust-tyty-bounds.cc: likewise
+ * typecheck/rust-tyty-call.cc: likewise
+ * typecheck/rust-tyty-subst.cc: likewise
+ * typecheck/rust-tyty.cc: likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty.cc (BaseType::has_subsititions_defined): new implementation
+ (BaseType::needs_generic_substitutions): likewise
+ (ProjectionType::needs_generic_substitutions): remove
+ (ProjectionType::has_subsititions_defined): remove
+ * typecheck/rust-tyty.h: update header
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): update to use new interface
+ (TypeCheckExpr::resolve_root_path): likewise
+ (TypeCheckExpr::resolve_segments): likewise
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
+ (TypeCheckType::resolve_root_path): likewise
+ * typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args): likewise
+ * typecheck/rust-tyty.cc (BaseType::supports_substitutions): likewise
+ (BaseType::can_substitute): remove
+ (BaseType::contains_type_parameters): remove
+ (handle_substitions): cleanup
+ (TupleType::handle_substitions): update
+ (FnType::handle_substitions): update
+ (ProjectionType::supports_substitutions): update
+ * typecheck/rust-tyty.h: update header
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty.h: cleanup ordering of header
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty.cc (BaseType::monomorphized_clone): new impl
+ (InferType::monomorphized_clone): remove
+ (ErrorType::monomorphized_clone): likewise
+ (ADTType::monomorphized_clone): likewise
+ (TupleType::monomorphized_clone): likewise
+ (FnType::monomorphized_clone): likewise
+ (FnPtr::monomorphized_clone): likewise
+ (ClosureType::monomorphized_clone): likewise
+ (ArrayType::clone): likewise
+ (ArrayType::get_var_element_type): likewise
+ (ArrayType::monomorphized_clone): likewise
+ (SliceType::clone): likewise
+ (SliceType::get_var_element_type): likewise
+ (SliceType::monomorphized_clone): likewise
+ (BoolType::monomorphized_clone): likewise
+ (IntType::monomorphized_clone): likewise
+ (UintType::monomorphized_clone): likewise
+ (FloatType::monomorphized_clone): likewise
+ (USizeType::monomorphized_clone): likewise
+ (ISizeType::monomorphized_clone): likewise
+ (CharType::monomorphized_clone): likewise
+ (ReferenceType::clone): likewise
+ (ReferenceType::get_var_element_type): likewise
+ (ReferenceType::monomorphized_clone): likewise
+ (PointerType::clone): likewise
+ (PointerType::get_var_element_type): likewise
+ (PointerType::monomorphized_clone): likewise
+ (ParamType::monomorphized_clone): likewise
+ (StrType::monomorphized_clone): likewise
+ (NeverType::monomorphized_clone): likewise
+ (PlaceholderType::monomorphized_clone): likewise
+ (ProjectionType::monomorphized_clone): likewise
+ (DynamicObjectType::monomorphized_clone): likewise
+ * typecheck/rust-tyty.h: update header
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty.cc (BaseType::is_unit): new implementation
+ (ErrorType::is_unit): remove
+ (TupleType::is_unit): likewise
+ (NeverType::is_unit): likewise
+ (PlaceholderType::is_unit): likewise
+ (ProjectionType::is_unit): likewise
+ * typecheck/rust-tyty.h: update header
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty.cc (BaseType::is_concrete): new implementation
+ (InferType::is_concrete): remove
+ (ErrorType::is_concrete): likewise
+ (StructFieldType::is_concrete): likewise
+ (ADTType::is_concrete): likewise
+ (TupleType::is_concrete): likewise
+ (BoolType::is_concrete): likewise
+ (IntType::is_concrete): likewise
+ (UintType::is_concrete): likewise
+ (FloatType::is_concrete): likewise
+ (USizeType::is_concrete): likewise
+ (ISizeType::is_concrete): likewise
+ (CharType::is_concrete): likewise
+ (ReferenceType::is_concrete): likewise
+ (PointerType::is_concrete): likewise
+ (ParamType::is_concrete): likewise
+ (StrType::is_concrete): likewise
+ (NeverType::is_concrete): likewise
+ (PlaceholderType::is_concrete): likewise
+ (ProjectionType::is_concrete): likewise
+ (DynamicObjectType::is_concrete): likewise
+ * typecheck/rust-tyty.h: update header
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-type.cc (TyTyResolveCompile::TyTyResolveCompile): call destructure
+ (TyTyResolveCompile::compile): use error_mark_node
+ (TyTyResolveCompile::visit): use error_mark_node
+ * backend/rust-compile-type.h: remove recursive ops
+
+2024-01-16 Tage Johansson <frans.tage@gmail.com>
+
+ * parse/rust-parse.cc: fix follow-sets
+
+2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
+
+ * resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit) :declare and
+ pass bindings to PatternDeclaration::go.
+ (ResolveExpr::resolve_closure_param): Likewise.
+ * resolve/rust-ast-resolve-expr.h: Likewise.
+ * resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit): Likewise.
+ (ResolveItem::visit): Likewise.
+ * resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go): Likewise.
+ (PatternDeclaration::visit): check for previous identifier bindings
+ before inserting the new one.
+ * resolve/rust-ast-resolve-pattern.h (enum PatternBoundCtx): New enum.
+ * resolve/rust-ast-resolve-stmt.h: pass bindings to PatterDeclaration::go.
+
+2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::generate_closure_function):
+ handle closure parameters pattern bindings using CompilePatternBindings visitor
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * README.md (process): Rename `rust1` to `crab1` in examples.
+ * Make-lang.in: Rename `rust1` to `crab1`.
+ * config-lang.in: Likewise.
+ * lang-specs.h: Likewise.
+ * rustspec.cc (lang_specific_driver): Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/tree/rust-hir-pattern.h
+ (SlicePattern::get_items): Add.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/tree/rust-hir-full-decls.h
+ (struct GenericArgsBinding): Convert to class.
+ (class GenericArgsBinding): Convert from struct.
+ (struct TypePathFunction): See above.
+ (class TypePathFunction): See above.
+ (struct QualifiedPathType): See above.
+ (class QualifiedPathType): See above.
+ * ast/rust-ast-full-decls.h
+ (struct WhereClause): See above.
+ (class WhereClause): See above.
+ (struct SelfParam): See above.
+ (class SelfParam): See above.
+ (struct FunctionQualifiers): See above.
+ (class FunctionQualifiers): See above.
+ (struct FunctionParam): See above.
+ (class FunctionParam): See above.
+ (struct StructField): See above.
+ (class StructField): See above.
+ (struct TupleField): See above.
+ (class TupleField): See above.
+ (struct TraitFunctionDecl): See above.
+ (class TraitFunctionDecl): See above.
+ (struct TraitMethodDecl): See above.
+ (class TraitMethodDecl): See above.
+ (struct NamedFunctionParam): See above.
+ (class NamedFunctionParam): See above.
+ * hir/tree/rust-hir-path.h
+ (struct GenericArgsBinding): See above.
+ (class GenericArgsBinding): See above.
+ (struct TypePathFunction): See above.
+ (class TypePathFunction): See above.
+ (struct QualifiedPathType): See above.
+ (class QualifiedPathType): See above.
+ * ast/rust-item.h
+ (struct WhereClause): See above.
+ (class WhereClause): See above.
+ (struct SelfParam): See above.
+ (class SelfParam): See above.
+ (struct FunctionQualifiers): See above.
+ (class FunctionQualifiers): See above.
+ (struct FunctionParam): See above.
+ (class FunctionParam): See above.
+ (struct StructField): See above.
+ (class StructField): See above.
+ (struct TupleField): See above.
+ (class TupleField): See above.
+ (struct TraitFunctionDecl): See above.
+ (class TraitFunctionDecl): See above.
+ (struct TraitMethodDecl): See above.
+ (class TraitMethodDecl): See above.
+ (struct NamedFunctionParam): See above.
+ (class NamedFunctionParam): See above.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/tree/rust-hir-pattern.h
+ (class AltPattern): Remove duplicate access specifier.
+ (AltPattern::get_alts): Add.
+ * hir/tree/rust-hir.cc
+ (AltPattern::as_string): Add.
+ (AltPattern::accept_vis): Add.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/tree/rust-hir-item.h (class ExportedMacro): Add new ExportedMacro class.
+ * hir/tree/rust-hir.cc (ExportedMacro::accept_vis): New function.
+ (ExportedMacro::get_locus): Likewise.
+ (ExportedMacro::get_item_kind): Likewise.
+ (ExportedMacro::clone_item_impl): Likewise.
+ * hir/tree/rust-hir-full-decls.h (class ExportedMacro): Forward declare class.
+ * backend/rust-compile-item.h: Add visitor for ExportedMacro.
+ * backend/rust-compile-stmt.h: Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.h: Likewise.
+ * checks/errors/privacy/rust-pub-restricted-visitor.cc (PubRestrictedVisitor::visit):
+ Likewise.
+ * checks/errors/privacy/rust-pub-restricted-visitor.h: Likewise.
+ * checks/errors/privacy/rust-reachability.cc (ReachabilityVisitor::visit): Likewise.
+ * checks/errors/privacy/rust-reachability.h: Likewise.
+ * checks/errors/privacy/rust-visibility-resolver.cc (VisibilityResolver::visit): Likewise.
+ * checks/errors/privacy/rust-visibility-resolver.h: Likewise.
+ * checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
+ * checks/errors/rust-const-checker.h: Likewise.
+ * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
+ * checks/errors/rust-unsafe-checker.h: Likewise.
+ * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
+ * hir/rust-ast-lower-item.h: Likewise.
+ * hir/rust-hir-dump.cc (Dump::visit): Likewise.
+ * hir/rust-hir-dump.h: Likewise.
+ * hir/tree/rust-hir-visitor.h: Likewise.
+ * metadata/rust-export-metadata.cc: Likewise.
+ * typecheck/rust-hir-type-check-item.h: Likewise.
+ * typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
+ * typecheck/rust-hir-type-check-stmt.h: Likewise.
+ * typecheck/rust-tycheck-dump.h: Likewise.
+ * hir/tree/rust-hir.h: Add new ItemKind::MacroExport variant.
+ * util/rust-attributes.cc: Add #[macro_export] attribute.
+
+2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
+
+ * backend/rust-compile-fnparam.cc (CompileFnParam::visit):
+ Added visit implementation for ReferencePattern.
+ (CompileFnParam::create_tmp_param_var):
+ Refactored duplicated code into a helper function.
+ * backend/rust-compile-fnparam.h: Added visit implementation for
+ ReferencePattern.
+ * backend/rust-compile-pattern.cc (CompilePatternBindings::visit):
+ Added visit implementation for ReferencePattern and
+ IdentifierPattern.
+ * backend/rust-compile-pattern.h: Added visit implementation for
+ ReferencePattern and IdentifierPattern.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Move
+ unloaded module item loading to...
+ * expand/rust-attribute-visitor.cc (AttrVisitor::visit): ...here.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * hir/rust-hir-dump.cc (Dump::visit): Simplify indentation dump to single line.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * ast/rust-ast-dump.cc (Indent::Indent): Move to separate file.
+ (operator<<): Move to separate file.
+ (Indent::increment): Move to separate file.
+ (Indent::decrement): Move to separate file.
+ * ast/rust-ast-dump.h (class Indent): Move to separate file.
+ * hir/rust-hir-dump.cc (Dump::Dump): Use new indentation object.
+ (Dump::go): Use new indentation object.
+ (Dump::visit): Use new indention object.
+ * hir/rust-hir-dump.h: Use new indentation object.
+ * util/rust-dump.h: New file. Moved Indentation from rust-ast-dump.cc
+
+2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
+
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
+ Add the missing infered type assignment
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ PR rust/108111
+ * ast/rust-ast-full-decls.h (StructPatternElements): Declare as a
+ class.
+ * ast/rust-item.h (EnumItem): Mark several method as being
+ overrides.
+ * ast/rust-pattern.h (StructPattern::get_locus): Add override.
+ * lex/rust-lex.h (BufferInputSource): Use reference_wrapper
+ instead of bare reference.
+ (TokenSource::get): Add method to implement the reference_wrapper
+ interface.
+ * typecheck/rust-tyty.h (TypeBoundPredicate): Add empty dtor.
+ * util/rust-buffered-queue.h (peek): Source token stream is now
+ using a reference_wrapper, use .get()
+
+2024-01-16 vincent <jfan30@u.rochester.edu>
+
+ * typecheck/rust-hir-type-check-pattern.cc
+ (TypeCheckPattern::visit): rewrite part code to helper function
+ (TypeCheckPattern::typecheck_range_pattern_bound): helper function
+ * typecheck/rust-hir-type-check-pattern.h
+ (TypeCheckPattern::typecheck_range_pattern_bound):
+ change the parameter of the function
+
+2024-01-16 goar5670 <mahadelr19@gmail.com>
+
+ * hir/tree/rust-hir-pattern.h (HIR::ReferencePattern):
+ added get_referenced_pattern function.
+ * resolve/rust-ast-resolve-pattern.h
+ (Resolve::PatternDeclaration): add visit function for
+ AST::ReferencePattern
+ * typecheck/rust-hir-type-check-pattern.cc
+ (Resolver::TypeCheckPattern): add visit function for
+ HIR::ReferencePattern
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * util/rust-lang-item.h
+ (RustLangItem::ItemType): New enumerators.
+ (RustLangItem::Parse): Parse new enumerators.
+ (RustLangItem::ToString): Handle new enumerators.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-compile-fnparam.h:
+ (CompileFnParam::visit): Add AltPattern visitor.
+ * backend/rust-compile-pattern.h:
+ (CompilePatternCaseLabelExpr::visit): Add AltPattern visitor.
+ (CompilePatternBindings::visit): Add AltPattern visitor.
+ (CompilePatternLet::visit): Add AltPattern visitor.
+ * backend/rust-compile-resolve-path.h:
+ (ResolvePathRef::visit): Add AltPattern visitor.
+ * backend/rust-compile-var-decl.h:
+ (CompileVarDecl::visit): Add AltPattern visitor.
+ * checks/errors/rust-const-checker.cc
+ (ConstChecker::visit): Add AltPattern visitor.
+ * checks/errors/rust-const-checker.h:
+ (ConstChecker::visit): Add AltPattern visitor.
+ * checks/errors/rust-unsafe-checker.cc
+ (UnsafeChecker::visit): Add AltPattern visitor.
+ * checks/errors/rust-unsafe-checker.h:
+ (UnsafeChecker::visit): Add AltPattern visitor.
+ * hir/rust-hir-dump.cc
+ (Dump::visit): Add AltPattern visitor.
+ * hir/rust-hir-dump.h:
+ (Dump::visit): Add AltPattern visitor.
+ * hir/tree/rust-hir-full-decls.h
+ (class AltPattern): Add forward declaration.
+ * hir/tree/rust-hir-pattern.h
+ (class AltPattern): New class.
+ * hir/tree/rust-hir-visitor.h:
+ (HIRFullVisitor::visit): Add AltPattern visitor.
+ (HIRFullVisitorBase::visit): Add AltPattern visitor.
+ (HIRPatternVisitor::visit): Add AltPattern visitor.
+ * hir/tree/rust-hir.h:
+ (Pattern::PatternType::ALT): New enumerator.
+ * typecheck/rust-hir-type-check-pattern.cc
+ (TypeCheckPattern::visit): Add AltPattern visitor.
+ * typecheck/rust-hir-type-check-pattern.h:
+ (TypeCheckPattern::visit): Add AltPattern visitor.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-macro.cc (builtin_macro_from_string): Add identifier
+ identification.
+ * ast/rust-macro.h (enum class): Add Stringify builtin macro
+ type.
+ * expand/rust-macro-builtins.cc (make_macro_path_str): Add path
+ for builtin stringify macro.
+ (MacroBuiltin::stringify_handler): Add handler for builtin
+ stringify macro.
+ * expand/rust-macro-builtins.h: Add stringify handler's
+ prototype.
+ * util/rust-hir-map.cc (Mappings::insert_macro_def): Add
+ stringify handler to builtin hir map.
+
+2024-01-16 Nikos Alexandris <nikos-alexandris@protonmail.com>
+
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
+ Add length checking for tuple patterns.
+ (TypeCheckPattern::emit_pattern_size_error): New function.
+ * typecheck/rust-hir-type-check-pattern.h: New function
+ emit_pattern_size_error.
+
+2024-01-16 goar5670 <mahadelr19@gmail.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_expr):
+ split LEFT_SHIFT before null_denotation.
+
+2024-01-16 Parthib <parthibdutta02@gmail.com>
+
+ * rust-object-export.cc: Modified
+ * hir/rust-ast-lower-type.cc (rust_fatal_error): Removed
+ (rust_assert): Added
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-early-name-resolver.cc
+ (EarlyNameResolver::visit):
+ Check for closure parameter without given type.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-typecheck-context.cc (TypeCheckContext::insert_resolved_predicate): remove
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * resolve/rust-ast-resolve-type.cc (ResolveRelativeQualTypePath::resolve_qual_seg): fix
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * ast/rust-path.h: add missing copy for node_id
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust-gcc.h: remove unused headers
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * ast/rust-ast.cc (QualifiedPathInType::as_string): add missing to string
+ * ast/rust-path.h: add missing copy+move constructors and assignment overloads
+ * hir/tree/rust-hir-path.h: likewise
+ * hir/tree/rust-hir.cc (QualifiedPathInType::as_string): add missing to string
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty.cc (ParamType::get_name): call destructure
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-trait-resolve.cc: use unify_and infer
+
+2024-01-16 goar5670 <mahadelr19@gmail.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_closure_param):
+ Replace parse_pattern with parse_pattern_no_alt.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_while_let_loop_expr):
+ Prevent hard error on token skip.
+ (Parser::null_denotation): Fix parser for while let expressions.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-builtins.cc (BuiltinsContext::setup): add memset builtin to the map
+ * backend/rust-compile-intrinsic.cc (uninit_handler): implement uninit intrinsic
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_slice_pattern): Add
+ closing square bracket check.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_external_type_item):
+ Fix compilation error due to unnecessary move.
+
+2024-01-16 Abdul Rafey <abdulrafeyq@gmail.com>
+
+ * hir/rust-hir-dump.cc (Dump::go): support inner attrs, crate items and node mappings
+ (Dump::visit): support functions, arith/logical exprs, let stmts and literals
+
+2024-01-16 Nikos Alexandris <nikos-alexandris@protonmail.com>
+
+ * expand/rust-macro-builtins.cc (load_file_bytes): Add location parameter.
+ (MacroBuiltin::include_bytes_handler): Pass location to load_file_bytes.
+ (MacroBuiltin::include_str_handler): Pass location to load_file_bytes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_pattern_no_alt): Handle
+ RestPattern correctly.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-pattern.h (class RestPattern): Add NodeId as well as
+ the clone_impl function.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::null_denotation): Fix if let
+ parsing.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-intrinsic.cc (op_with_overflow_inner): wraps op_with_overflow
+ (std::function<tree): likewise
+ (op_with_overflow): generate the intrinsic based on the tree_code op
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * Make-lang.in: Add rust-ast-lower-stmt.o
+ * hir/rust-ast-lower-stmt.h: Move definitions to...
+ * hir/rust-ast-lower-stmt.cc: ...here.
+
+2024-01-16 mxlol233 <mxlol233@outlook.com>
+
+ * checks/errors/rust-feature-gate.cc: Add definition
+ for `extern_types`.
+ * checks/errors/rust-feature-gate.h: Likewise.
+ * checks/errors/rust-feature.cc: Likewise.
+ * checks/errors/rust-feature.h: Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-pattern.h
+ (StructPatternElements::operator=): Clear vector before inserting.
+ (TupleStructItemsNoRange::operator=): Clear vector before inserting.
+ (TupleStructItemsRange::operator=): Clear vectors before inserting.
+ (TuplePatternItemsMultiple::operator=): Clear vector before inserting.
+ (TuplePatternItemsRanged::operator=): Clear vectors before inserting.
+ (SlicePattern::operator=): Clear vector before inserting.
+ (AltPattern::operator=): Clear vector before inserting.
+ * hir/tree/rust-hir-pattern.h
+ (StructPatternElements::operator=): Clear vector before inserting.
+ (TupleStructItemsNoRange::operator=): Clear vector before inserting.
+ (TupleStructItemsRange::operator=): Clear vectors before inserting.
+ (TuplePatternItemsMultiple::operator=): Clear vector before inserting.
+ (TuplePatternItemsRanged::operator=): Clear vectors before inserting.
+ (SlicePattern::operator=): Clear vector before inserting.
+
+2024-01-16 bl7awy <mahadelr19@gmail.com>
+
+ * typecheck/rust-casts.cc (TypeCastRules::cast_rules): Perform destructure on `from` type.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-pattern.h
+ (struct StructPatternElements): Change to class.
+ (class StructPatternElements): Change from struct.
+ * hir/tree/rust-hir-pattern.h
+ (struct StructPatternElements): Change to class.
+ (class StructPatternElements): Change from struct.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * typecheck/rust-hir-type-check-pattern.cc
+ (TypeCheckPattern::visit): Improve error messages.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/tree/rust-hir-pattern.h
+ (class TupleStructItemsNoRange): Fix formatting.
+ (class TupleStructItemsRange): Fix formatting.
+ (class TuplePatternItemsMultiple): Fix formatting.
+ (class TuplePatternItemsRanged): Fix formatting.
+ (class SlicePattern): Fix formatting.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-ast-dump.cc (Dump::visit): Add visitor.
+ * ast/rust-ast-dump.h: Add visitor prototype.
+ * ast/rust-ast-full-decls.h (class RestPattern): Add forward
+ declaration for class RestPattern.
+ * ast/rust-ast-visitor.h: Add visitor prototype.
+ * ast/rust-ast.cc (RestPattern::accept_vis): Add function to
+ accept a foreign visitor.
+ * ast/rust-pattern.h (class RestPattern): Add class RestPattern.
+ * checks/errors/rust-feature-gate.h: Add visitor prototype.
+ * expand/rust-attribute-visitor.cc (AttrVisitor::visit): Add
+ visitor implementation.
+ * expand/rust-attribute-visitor.h: Add visitor prototype.
+ * hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Add
+ visitor implementation.
+ * hir/rust-ast-lower-base.h: Add visitor prototype.
+ * resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Add
+ visitor implementation.
+ * resolve/rust-ast-resolve-base.h: Add visitor prototype.
+ * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
+ Add visitor implementation.
+ * resolve/rust-early-name-resolver.h: Add visitor prototype.
+ * util/rust-attributes.cc (AttributeChecker::visit): Add visitor
+ implementation.
+ * util/rust-attributes.h: Add visitor prototype.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty-cmp.h: remove
+ * typecheck/rust-tyty.cc (set_cmp_autoderef_mode): likewise
+ (reset_cmp_autoderef_mode): likewise
+ * typecheck/rust-tyty.h (set_cmp_autoderef_mode): likewise
+ (reset_cmp_autoderef_mode): likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-coercion.cc (TypeCoercionRules::Coerce): Add new try_flag
+ (TypeCoercionRules::TypeCoercionRules): set new try flag
+ (TypeCoercionRules::do_coercion): default to a final unify_and in the else case
+ (TypeCoercionRules::coerce_unsafe_ptr): cannot coerce to a ptr from ref during autoderef
+ (TypeCoercionRules::coerce_borrowed_pointer): respect coerceable mutability
+ * typecheck/rust-coercion.h: update header
+ * typecheck/rust-hir-dot-operator.cc (MethodResolver::select): use new TryCoerce interface
+ (MethodResolver::append_adjustments): ensure we maintain adjustment mappings
+ * typecheck/rust-hir-dot-operator.h: add new method append_adjustments
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): extra logging
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-unify.cc (UnifyRules::go): fix inference check
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-base.h: unconsify
+ * backend/rust-compile.cc (HIRCompileBase::coercion_site): likewise
+ (HIRCompileBase::coercion_site1): likewise
+ * typecheck/rust-autoderef.cc (Adjuster::try_deref_type): likewise
+ (Adjuster::try_raw_deref_type): likewise
+ (Adjuster::try_unsize_type): likewise
+ (AutoderefCycle::cycle): likewise
+ (AutoderefCycle::try_autoderefed): likewise
+ * typecheck/rust-autoderef.h: likewise
+ * typecheck/rust-coercion.cc (TypeCoercionRules::select): likewise
+ * typecheck/rust-coercion.h: likewise
+ * typecheck/rust-hir-dot-operator.cc (MethodResolver::Probe): likewise
+ (MethodResolver::select): likewise
+ * typecheck/rust-hir-dot-operator.h: likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-unify.cc (UnifyRules::go): respect the emit_errors flag
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-casts.cc (TypeCastRules::check): update to new interface
+ * typecheck/rust-coercion.cc (TypeCoercionRules::Coerce): likewise
+ (TypeCoercionRules::TryCoerce): likewise
+ (TypeCoercionRules::TypeCoercionRules): likewise
+ * typecheck/rust-coercion.h: likewise
+ * typecheck/rust-type-util.cc (coercion_site): likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-unify.cc (UnifyRules::go): allow lhs infer vars
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::resolve_method_address): update to new inteface
+ * typecheck/rust-coercion.cc (TypeCoercionRules::coerce_unsafe_ptr): likewise
+ (TypeCoercionRules::coerce_borrowed_pointer): likewise
+ * typecheck/rust-hir-type-check.h: likewise
+ * typecheck/rust-type-util.cc (unify_site_and): new interface to allow for infer and commit
+ * typecheck/rust-type-util.h (unify_site_and): likewise
+ * typecheck/rust-typecheck-context.cc (TypeCheckContext::clear_type): new interface
+ * typecheck/rust-unify.cc (UnifyRules::UnifyRules): update
+ (UnifyRules::Resolve): new optional flags for commit and infer
+ (UnifyRules::go): likewise
+ (UnifyRules::expect_adt): refactor to use new interface
+ (UnifyRules::expect_reference): likewise
+ (UnifyRules::expect_pointer): likewise
+ (UnifyRules::expect_array): likewise
+ (UnifyRules::expect_slice): likewise
+ (UnifyRules::expect_fndef): likewise
+ (UnifyRules::expect_fnptr): likewise
+ (UnifyRules::expect_tuple): likewise
+ (UnifyRules::expect_closure): likewise
+ * typecheck/rust-unify.h: refactor interface
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-unify.cc (UnifyRules::Resolve): refactor
+ (UnifyRules::commit): refactor
+ * typecheck/rust-unify.h: likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty.cc (ADTType::is_concrete): need to consider if is a num_variant
+ * typecheck/rust-tyty.h: refactor to cc file
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_external_type_item):
+ Add function to parser an external type item.
+ (Parser::parse_external_item):
+ Add identification and parsing for external type items.
+ * parse/rust-parse.h:
+ Add parser_external_type_item prototype.
+
+2024-01-16 omkar-mohanty <franzohouser@gmail.com>
+
+ * expand/rust-macro-builtins.cc
+ (MacroBuiltin::include_str_handler): eager expansion
+ (make_macro_path_str): macto to string
+ (parse_single_string_literal): check for eager invocation
+ (MacroBuiltin::assert_handler): eager expansion
+ (MacroBuiltin::include_bytes_handler): eager expansion
+ (MacroBuiltin::include_str_handler): eager expansion
+ (MacroBuiltin::compile_error_handler): eager expansion
+ (MacroBuiltin::include_handler): eager expansion
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-item.h (class Method): Add `is_default` field.
+ (class Function): Likewise.
+ * parse/rust-parse-impl.h (Parser::parse_item): Add nice error when
+ parsing `default` outside of an `impl` block
+ (Parser::parse_trait_impl_item): Allow parsing functions
+ or methods when seeing `default`.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::cast_site):
+ Remove cast_site.
+ * typecheck/rust-hir-type-check-base.h: Remove cast_site
+ prototype.
+ * typecheck/rust-type-util.cc (cast_site): Add cast_site.
+ * typecheck/rust-type-util.h (cast_site): Add cast_site
+ prototype.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-item.h: Add non-const `get_visibility` to ExternalTypeItem.
+ * ast/rust-ast-dump.cc (Dump::visit): Add implementation for ExternalTypeItem.
+ * expand/rust-attribute-visitor.cc (AttrVisitor::visit): Likewise.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-item.h (class ExternalTypeItem): New class.
+ * ast/rust-ast.cc (ExternalTypeItem::as_string): New function.
+ (ExternalTypeItem::accept_vis): Likewise.
+ * ast/rust-ast-full-decls.h (class ExternalTypeItem): Declare class.
+ * ast/rust-ast-dump.cc (Dump::visit): Add base visitor for ExternalTypeItem.
+ * ast/rust-ast-dump.h: Likewise.
+ * ast/rust-ast-visitor.h: Likewise.
+ * checks/errors/rust-feature-gate.h: Likewise.
+ * expand/rust-attribute-visitor.cc (AttrVisitor::visit): Likewise.
+ * expand/rust-attribute-visitor.h: Likewise.
+ * hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
+ * hir/rust-ast-lower-base.h: Likewise.
+ * resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
+ * resolve/rust-ast-resolve-base.h: Likewise.
+ * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Likewise.
+ * resolve/rust-early-name-resolver.h: Likewise.
+ * util/rust-attributes.cc (AttributeChecker::visit): Likewise.
+ * util/rust-attributes.h: Likewise.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-macro-invoc-lexer.cc (MacroInvocLexer::split_current_token):
+ Add proper implementation.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-item.h (class Trait): Add `has_auto` field.
+ * checks/errors/rust-feature.cc: Add handling for `feature(optin_builtin_traits)`
+ * checks/errors/rust-feature.h: Likewise.
+ * lex/rust-lex.cc: Fix keyword classification using hashmap.
+ * lex/rust-token.h: Add `auto` keyword token.
+ * parse/rust-parse-impl.h (Parser::parse_vis_item): Parse auto traits
+ on `auto` keyword.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item):
+ Remove TypeCheckBase namespace qualifier.
+ * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::coercion_site):
+ Remove coercion_site function.
+ * typecheck/rust-hir-type-check-base.h: Remove coercion_site
+ prototype.
+ * typecheck/rust-type-util.cc (coercion_site): Add coercion_site
+ function.
+ * typecheck/rust-type-util.h (coercion_site): Add coercion_site
+ prototype.
+ * typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
+ Remove TypeCheckBase namespace qualifier.
+ (TypeCheckMethodCallExpr::check): Remove TypeCheckBase namespace
+ qualifier.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * typecheck/rust-autoderef.cc: Remove TypeCheckBase qualifier.
+ * typecheck/rust-hir-trait-resolve.cc: Remove TypeCheckBase
+ qualifier.
+ * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::unify_site):
+ Remove unify_site.
+ * typecheck/rust-hir-type-check-base.h: Remove unify_site
+ header.
+ * typecheck/rust-hir-type-check.cc (TypeResolution::Resolve):
+ Remove TypeCheckBase qualifier.
+ * typecheck/rust-type-util.cc (unify_site): Add unify_site
+ function.
+ * typecheck/rust-type-util.h (unify_site): Add unify_site
+ prototype.
+ * typecheck/rust-tyty-call.cc (TypeCheckMethodCallExpr::check):
+ Remove TypeCheckBase qualifier.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_type): Allow LEFT_SHIFT to
+ start a type and then split it in `parse_qualified_path_type`
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_path_generic_args): Split leading
+ `LEFT_SHIFT` token into two `LEFT_ANGLE` tokens when parsing generic arguments.
+ (Parser::parse_type_path_segment): Allow `LEFT_ANGLE` as starting token for
+ parsing generic arguments.
+
+2024-01-16 mxlol233 <mxlol233@outlook.com>
+
+ * checks/errors/rust-feature-gate.cc: Add implementations
+ for `rustc_attri`.
+ * checks/errors/rust-feature-gate.h: Likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * parse/rust-parse-impl.h
+ (Parser::parse_pattern): Add.
+ (Parser::parse_pattern_no_alt): Rename.
+ * parse/rust-parse.h:
+ (Parser::parse_pattern): Add.
+ (Parser::parse_pattern_no_alt): Rename.
+
2024-01-04 David Malcolm <dmalcolm@redhat.com>
* lang.opt.urls: New file, autogenerated by
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ef27cf1..9cb5a9d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,1702 @@
+2024-01-16 Nathaniel Shead <nathanieloshead@gmail.com>
+
+ PR c++/113292
+ * g++.dg/modules/pr113292_a.H: New test.
+ * g++.dg/modules/pr113292_b.C: New test.
+ * g++.dg/modules/pr113292_c.C: New test.
+
+2024-01-16 Marek Polacek <polacek@redhat.com>
+
+ PR c++/113340
+ * g++.dg/cpp23/explicit-obj-diagnostics9.C: New test.
+
+2024-01-16 John David Anglin <danglin@gcc.gnu.org>
+
+ * gcc.dg/pr111409.c: Add hppa*-*-hpux* to targets which do
+ not support split DWARF.
+
+2024-01-16 waffl3x <waffl3x@protonmail.com>
+
+ PR c++/113307
+ * g++.dg/cpp23/explicit-obj-diagnostics3.C: Add test for
+ rejection of packs.
+
+2024-01-16 John David Anglin <danglin@gcc.gnu.org>
+
+ * gcc.dg/array-quals-1.c: Add .data.rel.ro.local to read only
+ sections.
+
+2024-01-16 John David Anglin <danglin@gcc.gnu.org>
+
+ * gcc.dg/atomic/stdatomic-flag.c: Remove xfail.
+ * gcc.dg/atomic/stdatomic-flag-2.c: Likewise.
+
+2024-01-16 John David Anglin <danglin@gcc.gnu.org>
+
+ PR tree-optimization/110794
+ * g++.dg/pr99966.C: xfail scan-tree-dump-not throw on hppa*64*-*-*.
+
+2024-01-16 John David Anglin <danglin@gcc.gnu.org>
+
+ * gcc.dg/c23-tag-alias-2.c: Require target lto.
+ * gcc.dg/c23-tag-alias-3.c: Likewise.
+ * gcc.dg/gnu23-tag-alias-3.c: Likewise.
+ * gcc.dg/scantest-lto.c: Likewise.
+
+2024-01-16 John David Anglin <danglin@gcc.gnu.org>
+
+ * gcc.dg/cmp-mem-const-3.c: Skip on lp64 hppa*-*-*.
+ * gcc.dg/cmp-mem-const-4.c: Likewise.
+ * gcc.dg/cmp-mem-const-5.c: Likewise.
+ * gcc.dg/cmp-mem-const-6.c: Likewise.
+
+2024-01-16 John David Anglin <danglin@gcc.gnu.org>
+
+ PR tree-optimization/91624
+ * gcc.dg/tree-ssa/sra-17.c: xfail all scan-tree-dump-times
+ checks on hppa*64*-*-*.
+ * gcc.dg/tree-ssa/sra-18.c: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/tuple_float_index.rs: New test.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * rust/compile/v0-mangle2.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/invalid_variadics.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/invalid_label_name.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/lifetime_name_validation.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/pattern_variadic.rs: New test.
+ * rust/execute/torture/named_variadic.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/extern_c_named_variadic.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/parse_variadic_function.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/issue-2709.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/not_a_float_literal_tuple_index.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/issue-2665.rs: New test.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * rust/compile/tupple_struct_pattern_tuple.rs: New test.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * rust/compile/v0-mangle1.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/closure_in_closure.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/macro-issue2653.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/macro57.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/macro_rules_macro_rules.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/while_break_expr.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/range_from_expr_for_loop.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/parse_item_default_macro.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/parse_generic_path_expr.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/match_break.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/parse_pub_unit_type.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/parse_global_path_generic.rs: New test.
+
+2024-01-16 Jakub Dupak <dev@jakubdupak.com>
+
+ * rust/compile/issue-2645.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/wrong_lhs_assignment.rs: update error message
+ * rust/compile/issue-2391.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/variadic.rs: Added new checks.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/assume.rs: New test.
+
+2024-01-16 Dave Evans <dave@dmetwo.org>
+
+ * rust/compile/issue-2431.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/privacy6.rs: Uncomment commented out functions.
+ * rust/compile/privacy9.rs: Fix unused variables.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/privacy9.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/cfg2.rs: Updated according to new message.
+ * rust/compile/issue-2139.rs: likewise.
+ * rust/compile/issue-2190-1.rs: likewise.
+ * rust/compile/method1.rs: likewise.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/execute/torture/iter1.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/generics7.rs: Added Errorcode hint.
+ * rust/compile/generics8.rs: Updated dejagnu comment.
+ * rust/compile/issue-925.rs: Added Errorcode hint.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/issue-2029.rs:
+ Updated for dejagnu testcase.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/privacy1.rs: Added errorcode.
+ * rust/compile/privacy3.rs: likewise.
+ * rust/compile/privacy4.rs: likewise.
+ * rust/compile/privacy5.rs: likewise.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/type-if.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/let_alt.rs: Updated comment.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/iterators1.rs: this should be casting to the $ty
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/execute/torture/issue-2583.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/nested_macro_definition.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/match4.rs:
+ Updated new error commment.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/issue-1725-2.rs:
+ Updated dejagnu message.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/iterators1.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/generics13.rs:
+ for dejagnu,
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/issue-2479.rs: Updated comment.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/issue-1589.rs: Updated comment for dejagnu.
+ * rust/compile/trait-cycle.rs: New relevant test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/generics10.rs: for dejagnu.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/generics6.rs: Updated dejagnu comment.
+ * rust/compile/generics7.rs: likewise.
+ * rust/compile/issue-925.rs: likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/issue-2514.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/match5.rs:
+ Updated comment for dejagnu.
+ * rust/compile/pattern-struct.rs: New test for ICE.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/inline_2.rs: Added new message.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/auto_trait_invalid.rs:
+ Updated comment.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/bad_inner_doc.rs:
+ Updated comment to pass testcase.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/inline_2.rs: Added new case.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/bad_as_bool_char.rs:
+ Updated comment to pass test case.
+ * rust/compile/cast1.rs: likewise.
+ * rust/compile/cast4.rs: likewise.
+ * rust/compile/cast5.rs: likewise.
+ * rust/compile/all-cast.rs: New test for all error codes.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/attr_deprecated_2.rs:
+ Updated comment to pass the testcase.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/abi-options1.rs: updated comment for testcase.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/arrays2.rs: changed comment to pass
+ testcase.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * rust/compile/unicode_norm1.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/name_resolution10.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/name_resolution6.rs: New test.
+ * rust/compile/name_resolution7.rs: New test.
+ * rust/compile/name_resolution8.rs: New test.
+ * rust/compile/name_resolution9.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/undeclared_label.rs: New test for E0426.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/feature.rs: Added new unknown feature.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/arrays1.rs: changed comment to pass testcase.
+ * rust/compile/bad_type1.rs: likewise.
+ * rust/compile/bad_type2.rs: likewise.
+ * rust/compile/const_generics_6.rs: likewise.
+ * rust/compile/deadcode_err1.rs: likewise.
+ * rust/compile/deadcode_err2.rs: likewise.
+ * rust/compile/func1.rs: likewise.
+ * rust/compile/func3.rs: likewise.
+ * rust/compile/func4.rs: likewise.
+ * rust/compile/func5.rs: likewise.
+ * rust/compile/generics1.rs: likewise.
+ * rust/compile/generics2.rs: likewise.
+ * rust/compile/generics3.rs: likewise.
+ * rust/compile/implicit_returns_err1.rs: likewise.
+ * rust/compile/implicit_returns_err2.rs: likewise.
+ * rust/compile/implicit_returns_err3.rs: likewise.
+ * rust/compile/implicit_returns_err4.rs: likewise.
+ * rust/compile/issue-1152.rs: likewise.
+ * rust/compile/issue-2477.rs: likewise.
+ * rust/compile/reference1.rs: likewise.
+ * rust/compile/stmt_with_block_err1.rs: likewise.
+ * rust/compile/traits1.rs: likewise.
+ * rust/compile/traits2.rs: likewise.
+ * rust/compile/tuple_mismatch.rs: likewise.
+ * rust/compile/tuple_struct3.rs: likewise.
+ * rust/compile/mismatched-types.rs: New test from rustc.
+
+2024-01-16 Marc Poulhiès <dkm@kataplop.net>
+
+ * rust/compile/empty_file: New file.
+ * rust/compile/issue-2421_str.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2479.rs: New test.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * rust/compile/bad-crate-name.rs: Moved to...
+ * rust/compile/bad-crate-name1.rs: ...here.
+ * rust/compile/bad-crate-name2.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2477.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/bounds1.rs: Apply sized trait
+ * rust/compile/canonical_paths1.rs: likewise
+ * rust/compile/cast_generics.rs: likewise
+ * rust/compile/closure_no_type_anno.rs: likewise
+ * rust/compile/complex_qualified_path_in_expr.rs: likewise
+ * rust/compile/const-issue1440.rs: likewise
+ * rust/compile/const_generics_1.rs: likewise
+ * rust/compile/const_generics_8.rs: likewise
+ * rust/compile/derive_macro1.rs: likewise
+ * rust/compile/derive_macro3.rs: likewise
+ * rust/compile/derive_macro4.rs: likewise
+ * rust/compile/derive_macro6.rs: likewise
+ * rust/compile/expected_type_args2.rs: likewise
+ * rust/compile/expected_type_args3.rs: likewise
+ * rust/compile/generics1.rs: likewise
+ * rust/compile/generics11.rs: likewise
+ * rust/compile/generics12.rs: likewise
+ * rust/compile/generics2.rs: likewise
+ * rust/compile/generics3.rs: likewise
+ * rust/compile/generics4.rs: likewise
+ * rust/compile/generics6.rs: likewise
+ * rust/compile/generics7.rs: likewise
+ * rust/compile/generics8.rs: likewise
+ * rust/compile/if_let_expr.rs: likewise
+ * rust/compile/issue-1005.rs: likewise
+ * rust/compile/issue-1019.rs: likewise
+ * rust/compile/issue-1031.rs: likewise
+ * rust/compile/issue-1034.rs: likewise
+ * rust/compile/issue-1128.rs: likewise
+ * rust/compile/issue-1129-2.rs: likewise
+ * rust/compile/issue-1130.rs: likewise
+ * rust/compile/issue-1131.rs: likewise
+ * rust/compile/issue-1165.rs: likewise
+ * rust/compile/issue-1173.rs: likewise
+ * rust/compile/issue-1235.rs: likewise
+ * rust/compile/issue-1237.rs: likewise
+ * rust/compile/issue-1289.rs: likewise
+ * rust/compile/issue-1383.rs: likewise
+ * rust/compile/issue-1447.rs: likewise
+ * rust/compile/issue-1589.rs: likewise
+ * rust/compile/issue-1725-1.rs: likewise
+ * rust/compile/issue-1725-2.rs: likewise
+ * rust/compile/issue-1773.rs: likewise
+ * rust/compile/issue-1786.rs: likewise
+ * rust/compile/issue-1893.rs: likewise
+ * rust/compile/issue-1901.rs: likewise
+ * rust/compile/issue-1930.rs: likewise
+ * rust/compile/issue-1981.rs: likewise
+ * rust/compile/issue-2019-1.rs: likewise
+ * rust/compile/issue-2019-2.rs: likewise
+ * rust/compile/issue-2019-3.rs: likewise
+ * rust/compile/issue-2036.rs: likewise
+ * rust/compile/issue-2037.rs: likewise
+ * rust/compile/issue-2070.rs: likewise
+ * rust/compile/issue-2105.rs: likewise
+ * rust/compile/issue-2106.rs: likewise
+ * rust/compile/issue-2135.rs: likewise
+ * rust/compile/issue-2136-1.rs: likewise
+ * rust/compile/issue-2136-2.rs: likewise
+ * rust/compile/issue-2139.rs: likewise
+ * rust/compile/issue-2142.rs: likewise
+ * rust/compile/issue-2165.rs: likewise
+ * rust/compile/issue-2166.rs: likewise
+ * rust/compile/issue-2190-1.rs: likewise
+ * rust/compile/issue-2190-2.rs: likewise
+ * rust/compile/issue-2195.rs: likewise
+ * rust/compile/issue-2238.rs: likewise
+ * rust/compile/issue-2304.rs: likewise
+ * rust/compile/issue-850.rs: likewise
+ * rust/compile/issue-855.rs: likewise
+ * rust/compile/issue-925.rs: likewise
+ * rust/compile/macro-issue1400.rs: likewise
+ * rust/compile/macro20.rs: likewise
+ * rust/compile/macro23.rs: likewise
+ * rust/compile/macro40.rs: likewise
+ * rust/compile/macro54.rs: likewise
+ * rust/compile/name_resolution2.rs: likewise
+ * rust/compile/name_resolution4.rs: likewise
+ * rust/compile/nested_generic.rs: likewise
+ * rust/compile/parse_associated_type_as_generic_arg.rs: likewise
+ * rust/compile/parse_associated_type_as_generic_arg2.rs: likewise
+ * rust/compile/parse_associated_type_as_generic_arg3.rs: likewise
+ * rust/compile/parse_complex_generic_application.rs: likewise
+ * rust/compile/parse_complex_generic_application2.rs: likewise
+ * rust/compile/path_as_generic_arg.rs: likewise
+ * rust/compile/privacy4.rs: likewise
+ * rust/compile/privacy6.rs: likewise
+ * rust/compile/sizeof-stray-infer-var-bug.rs: likewise
+ * rust/compile/stmt_with_block_dot.rs: likewise
+ * rust/compile/torture/associated_types1.rs: likewise
+ * rust/compile/torture/forward_decl_5.rs: likewise
+ * rust/compile/torture/generics1.rs: likewise
+ * rust/compile/torture/generics10.rs: likewise
+ * rust/compile/torture/generics11.rs: likewise
+ * rust/compile/torture/generics12.rs: likewise
+ * rust/compile/torture/generics13.rs: likewise
+ * rust/compile/torture/generics14.rs: likewise
+ * rust/compile/torture/generics15.rs: likewise
+ * rust/compile/torture/generics16.rs: likewise
+ * rust/compile/torture/generics17.rs: likewise
+ * rust/compile/torture/generics18.rs: likewise
+ * rust/compile/torture/generics19.rs: likewise
+ * rust/compile/torture/generics2.rs: likewise
+ * rust/compile/torture/generics20.rs: likewise
+ * rust/compile/torture/generics21.rs: likewise
+ * rust/compile/torture/generics22.rs: likewise
+ * rust/compile/torture/generics23.rs: likewise
+ * rust/compile/torture/generics24.rs: likewise
+ * rust/compile/torture/generics25.rs: likewise
+ * rust/compile/torture/generics26.rs: likewise
+ * rust/compile/torture/generics27.rs: likewise
+ * rust/compile/torture/generics28.rs: likewise
+ * rust/compile/torture/generics29.rs: likewise
+ * rust/compile/torture/generics3.rs: likewise
+ * rust/compile/torture/generics30.rs: likewise
+ * rust/compile/torture/generics31.rs: likewise
+ * rust/compile/torture/generics32.rs: likewise
+ * rust/compile/torture/generics4.rs: likewise
+ * rust/compile/torture/generics5.rs: likewise
+ * rust/compile/torture/generics6.rs: likewise
+ * rust/compile/torture/generics7.rs: likewise
+ * rust/compile/torture/generics8.rs: likewise
+ * rust/compile/torture/generics9.rs: likewise
+ * rust/compile/torture/intrinsics-2.rs: likewise
+ * rust/compile/torture/intrinsics-6.rs: likewise
+ * rust/compile/torture/intrinsics-7.rs: likewise
+ * rust/compile/torture/intrinsics-8.rs: likewise
+ * rust/compile/torture/issue-1024.rs: likewise
+ * rust/compile/torture/issue-1075.rs: likewise
+ * rust/compile/torture/issue-1432.rs: likewise
+ * rust/compile/torture/issue-1555.rs: likewise
+ * rust/compile/torture/issue-368.rs: likewise
+ * rust/compile/torture/issue-808.rs: likewise
+ * rust/compile/torture/issue-862.rs: likewise
+ * rust/compile/torture/issue-893-2.rs: likewise
+ * rust/compile/torture/issue-893.rs: likewise
+ * rust/compile/torture/must_use2.rs: likewise
+ * rust/compile/torture/nested_fn2.rs: likewise
+ * rust/compile/torture/phantom_data.rs: likewise
+ * rust/compile/torture/range-lang-item1.rs: likewise
+ * rust/compile/torture/traits1.rs: likewise
+ * rust/compile/torture/traits11.rs: likewise
+ * rust/compile/torture/traits12.rs: likewise
+ * rust/compile/torture/traits13.rs: likewise
+ * rust/compile/torture/traits14.rs: likewise
+ * rust/compile/torture/traits15.rs: likewise
+ * rust/compile/torture/traits16.rs: likewise
+ * rust/compile/torture/traits17.rs: likewise
+ * rust/compile/torture/traits18.rs: likewise
+ * rust/compile/torture/traits19.rs: likewise
+ * rust/compile/torture/traits2.rs: likewise
+ * rust/compile/torture/traits3.rs: likewise
+ * rust/compile/torture/traits4.rs: likewise
+ * rust/compile/torture/traits5.rs: likewise
+ * rust/compile/torture/traits6.rs: likewise
+ * rust/compile/torture/traits7.rs: likewise
+ * rust/compile/torture/traits8.rs: likewise
+ * rust/compile/torture/traits9.rs: likewise
+ * rust/compile/torture/transmute-size-check-1.rs: likewise
+ * rust/compile/torture/transmute1.rs: likewise
+ * rust/compile/torture/uninit-intrinsic-1.rs: likewise
+ * rust/compile/torture/utf8_identifiers.rs: likewise
+ * rust/compile/traits1.rs: likewise
+ * rust/compile/traits10.rs: likewise
+ * rust/compile/traits11.rs: likewise
+ * rust/compile/traits12.rs: likewise
+ * rust/compile/traits2.rs: likewise
+ * rust/compile/traits3.rs: likewise
+ * rust/compile/traits4.rs: likewise
+ * rust/compile/traits5.rs: likewise
+ * rust/compile/traits6.rs: likewise
+ * rust/compile/traits7.rs: likewise
+ * rust/compile/traits8.rs: likewise
+ * rust/compile/traits9.rs: likewise
+ * rust/compile/type-bindings1.rs: likewise
+ * rust/compile/unconstrained_type_param.rs: likewise
+ * rust/compile/unsafe10.rs: likewise
+ * rust/execute/torture/closure1.rs: likewise
+ * rust/execute/torture/closure2.rs: likewise
+ * rust/execute/torture/closure3.rs: likewise
+ * rust/execute/torture/closure4.rs: likewise
+ * rust/execute/torture/coercion1.rs: likewise
+ * rust/execute/torture/coercion2.rs: likewise
+ * rust/execute/torture/coercion3.rs: likewise
+ * rust/execute/torture/copy_nonoverlapping1.rs: likewise
+ * rust/execute/torture/derive_macro1.rs: likewise
+ * rust/execute/torture/derive_macro3.rs: likewise
+ * rust/execute/torture/derive_macro4.rs: likewise
+ * rust/execute/torture/index1.rs: likewise
+ * rust/execute/torture/issue-1120.rs: likewise
+ * rust/execute/torture/issue-1133.rs: likewise
+ * rust/execute/torture/issue-1198.rs: likewise
+ * rust/execute/torture/issue-1232.rs: likewise
+ * rust/execute/torture/issue-1249.rs: likewise
+ * rust/execute/torture/issue-1436.rs: likewise
+ * rust/execute/torture/issue-1496.rs: likewise
+ * rust/execute/torture/issue-1720-2.rs: likewise
+ * rust/execute/torture/issue-1720.rs: likewise
+ * rust/execute/torture/issue-2052.rs: likewise
+ * rust/execute/torture/issue-2179.rs: likewise
+ * rust/execute/torture/issue-2180.rs: likewise
+ * rust/execute/torture/issue-2236.rs: likewise
+ * rust/execute/torture/issue-647.rs: likewise
+ * rust/execute/torture/issue-845.rs: likewise
+ * rust/execute/torture/issue-851.rs: likewise
+ * rust/execute/torture/issue-858.rs: likewise
+ * rust/execute/torture/macros23.rs: likewise
+ * rust/execute/torture/macros28.rs: likewise
+ * rust/execute/torture/method2.rs: likewise
+ * rust/execute/torture/method3.rs: likewise
+ * rust/execute/torture/method4.rs: likewise
+ * rust/execute/torture/operator_overload_1.rs: likewise
+ * rust/execute/torture/operator_overload_10.rs: likewise
+ * rust/execute/torture/operator_overload_11.rs: likewise
+ * rust/execute/torture/operator_overload_12.rs: likewise
+ * rust/execute/torture/operator_overload_2.rs: likewise
+ * rust/execute/torture/operator_overload_3.rs: likewise
+ * rust/execute/torture/operator_overload_4.rs: likewise
+ * rust/execute/torture/operator_overload_5.rs: likewise
+ * rust/execute/torture/operator_overload_6.rs: likewise
+ * rust/execute/torture/operator_overload_7.rs: likewise
+ * rust/execute/torture/operator_overload_8.rs: likewise
+ * rust/execute/torture/operator_overload_9.rs: likewise
+ * rust/execute/torture/prefetch_data.rs: likewise
+ * rust/execute/torture/ref-pattern2.rs: likewise
+ * rust/execute/torture/slice-magic.rs: likewise
+ * rust/execute/torture/slice-magic2.rs: likewise
+ * rust/execute/torture/slice1.rs: likewise
+ * rust/execute/torture/str-layout1.rs: likewise
+ * rust/execute/torture/trait1.rs: likewise
+ * rust/execute/torture/trait10.rs: likewise
+ * rust/execute/torture/trait11.rs: likewise
+ * rust/execute/torture/trait12.rs: likewise
+ * rust/execute/torture/trait13.rs: likewise
+ * rust/execute/torture/trait2.rs: likewise
+ * rust/execute/torture/trait3.rs: likewise
+ * rust/execute/torture/trait4.rs: likewise
+ * rust/execute/torture/trait5.rs: likewise
+ * rust/execute/torture/trait6.rs: likewise
+ * rust/execute/torture/trait7.rs: likewise
+ * rust/execute/torture/trait8.rs: likewise
+ * rust/execute/torture/trait9.rs: likewise
+ * rust/execute/torture/transmute1.rs: likewise
+ * rust/execute/torture/wrapping_op1.rs: likewise
+ * rust/execute/torture/wrapping_op2.rs: likewise
+ * rust/link/generic_function_0.rs: likewise
+ * rust/link/generic_function_1.rs: likewise
+ * rust/compile/issue-2375.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/non_member_const.rs: add missing error message
+ * rust/compile/issue-2478.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/break2.rs: Modified file to pass test case.
+ * rust/compile/break_with_value_inside_loop.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/proc_macro_attribute_non_root_function.rs: New test.
+ * rust/compile/proc_macro_attribute_non_root_method.rs: New test.
+ * rust/compile/proc_macro_attribute_non_root_module.rs: New test.
+ * rust/compile/proc_macro_derive_non_root_function.rs: New test.
+ * rust/compile/proc_macro_derive_non_root_method.rs: New test.
+ * rust/compile/proc_macro_derive_non_root_module.rs: New test.
+ * rust/compile/proc_macro_non_root_function.rs: New test.
+ * rust/compile/proc_macro_non_root_method.rs: New test.
+ * rust/compile/proc_macro_non_root_module.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/proc_macro_pub_function.rs: New test.
+ * rust/compile/proc_macro_pub_module.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/proc_macro_attribute_crate_type.rs: Replace
+ dg-excess-errors with dg-error and fix the line so the test
+ can pass.
+ * rust/compile/proc_macro_crate_type.rs: Likewise.
+ * rust/compile/proc_macro_derive_crate_type.rs: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/proc_macro_attribute_private.rs: New test.
+ * rust/compile/proc_macro_derive_private.rs: New test.
+ * rust/compile/proc_macro_private.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/proc_macro_derive_non_function.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/proc_macro_attribute_non_function.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/proc_macro_non_function.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/abi-vardaic.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/non_member_const.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/break1.rs: Modified to pass test case.
+ * rust/compile/continue1.rs: likewise.
+ * rust/compile/break_continue_outside_loop.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/proc_macro_derive_malformed.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/proc_macro_attribute_crate_type.rs: New test.
+ * rust/compile/proc_macro_crate_type.rs: New test.
+ * rust/compile/proc_macro_derive_crate_type.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/found_struct.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/changed_intrinsics.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/torture/intrinsics-3.rs: Updated comment to pass the test case.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/bad_pub_enumitems.rs: changed comment to pass test cases.
+ * rust/compile/dup_fields.rs: likewise.
+ * rust/execute/same_field_name.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/wrong_lhs_assignment.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/func2.rs: updated comment to pass new test cases.
+ * rust/compile/tuple_struct2.rs: likewise.
+ * rust/compile/wrong_no_of_parameters.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+ GuillaumeGomez <guillaume1.gomez@gmail.com>
+
+ * rust/compile/name_resolution1.rs: New test.
+ * rust/compile/name_resolution2.rs: New test.
+ * rust/compile/name_resolution3.rs: New test.
+ * rust/compile/name_resolution4.rs: New test.
+ * rust/compile/name_resolution5.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/link/trait_import_0.rs: Mark test as xfail.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/break-rust2.rs: Updated comment to pass testcase.
+ * rust/compile/const_generics_3.rs: likewise.
+ * rust/compile/const_generics_4.rs: likewise.
+ * rust/compile/not_find_value_in_scope.rs: New test.
+
+2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
+
+ * rust/compile/missing_constructor_fields.rs: New test.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * rust/compile/broken_utf8.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/macro-issue2273.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2105.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/rust_abi.rs: New test.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * rust/compile/bytecharstring.rs:add test for it
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/macro56.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-1981.rs: Fix badly copied libcore code test
+ * rust/compile/issue-2330.rs: New test.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * rust/compile/torture/raw_identifiers.rs: New test.
+ * rust/compile/torture/utf8_identifiers.rs: New test.
+
+2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
+
+ * rust/compile/torture/utf8_whitespaces.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/macro-issue2268.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/macro-issue2264.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2304.rs: New test.
+
+2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
+
+ * rust/compile/macro54.rs: New test.
+ * rust/compile/macro55.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-1893.rs: fully compile the test case
+
+2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
+
+ * rust/compile/braced_macro_arm.rs: New test.
+ * rust/compile/braced_macro_statements1.rs: New test.
+ * rust/compile/braced_macro_statements2.rs: New test.
+ * rust/compile/braced_macro_statements3.rs: New test.
+ * rust/compile/issue-2225.rs: Update test.
+ * rust/compile/macro53.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/macro6.rs: Remove check for direct error.
+ * rust/compile/macro7.rs: Likewise.
+ * rust/compile/macro-issue2229.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2036.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2019-2.rs: New test.
+ * rust/compile/issue-2019-3.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2019-1.rs: New test.
+
+2024-01-16 Dave Evans <dave@dmetwo.org>
+
+ * rust/compile/issue-1813.rs: New test.
+
+2024-01-16 TieWay59 <tieway59@foxmail.com>
+
+ * rust/compile/break1.rs: remove dg-error "failed to type resolve expression"
+ * rust/compile/break2.rs: Likewise
+ * rust/compile/cfg2.rs: Likewise
+ * rust/compile/continue1.rs: Likewise
+ * rust/compile/generics4.rs: Likewise
+ * rust/compile/generics6.rs: Likewise
+ * rust/compile/generics7.rs: Likewise
+ * rust/compile/issue-2029.rs: Likewise
+ * rust/compile/issue-2139.rs: Likewise
+ * rust/compile/issue-2190-1.rs: Likewise
+ * rust/compile/issue-925.rs: Likewise
+ * rust/compile/method1.rs: Likewise
+ * rust/compile/shadow1.rs: Likewise
+ * rust/compile/type-bindings1.rs: Likewise
+ * rust/compile/unary_negation.rs: Likewise
+ * rust/compile/unary_not.rs: Likewise
+ * rust/compile/unconstrained_type_param.rs: Likewise
+ * rust/compile/usize1.rs: Likewise
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/traits2.rs: update error message
+ * rust/compile/traits3.rs: update error message
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/derive_empty.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/test_mod.rs: Moved to...
+ * rust/compile/issue-1089/test_mod.rs: ...here.
+ * rust/compile/mod_missing_middle.rs: Fix paths.
+ * rust/compile/missing_middle/both_path.rs: Moved to...
+ * rust/compile/mod_missing_middle/missing_middle/both_path.rs: ...here.
+ * rust/compile/missing_middle/explicit.not.rs: Moved to...
+ * rust/compile/mod_missing_middle/missing_middle/explicit.not.rs: ...here.
+ * rust/compile/missing_middle/other.rs: Moved to...
+ * rust/compile/mod_missing_middle/missing_middle/explicit.not/other.rs: ...here.
+ * rust/compile/missing_middle/inner_path.rs: Moved to...
+ * rust/compile/mod_missing_middle/missing_middle/inner_path.rs: ...here.
+ * rust/compile/missing_middle/outer_path.rs: Moved to...
+ * rust/compile/mod_missing_middle/missing_middle/outer_path.rs: ...here.
+ * rust/compile/missing_middle/sub/mod.rs: Moved to...
+ * rust/compile/mod_missing_middle/missing_middle/sub/mod.rs: ...here.
+ * rust/compile/torture/modules/mod.rs: Moved to...
+ * rust/compile/torture/extern_mod1/modules/mod.rs: ...here.
+ * rust/execute/torture/modules/mod.rs: Moved to...
+ * rust/execute/torture/extern_mod4/modules/mod.rs: ...here.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/derive_macro8.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2165.rs: New test.
+ * rust/compile/issue-2166.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/struct-expr-parse.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/derive_macro7.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/derive_macro4.rs: New test.
+ * rust/compile/derive_macro6.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/execute/torture/derive_macro4.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/macro-delim.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/macro43.rs: Fix test with new derive macros.
+ * rust/compile/derive_macro1.rs: New test.
+ * rust/compile/derive_macro3.rs: New test.
+ * rust/execute/torture/derive_macro1.rs: New test.
+ * rust/execute/torture/derive_macro3.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/cfg6.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2195.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2238.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/issue-2225.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/issue-2207.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/execute/torture/issue-2236.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2190-1.rs: New test.
+ * rust/compile/issue-2190-2.rs: New test.
+
+2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
+
+ * rust/compile/nested_macro_use3.rs: New test.
+
+2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
+
+ * rust/compile/cfg-attr.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/doc_macro.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/macro-issue2194.rs: New test.
+
+2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
+
+ * rust/compile/for_expr.rs: New test.
+ * rust/compile/issue-407-2.rs: Update compiler output.
+ * rust/compile/issue-407.rs: Update compiler output.
+ * rust/compile/issue-867.rs: Update compiler output.
+ * rust/compile/issue-2189.rs: New test.
+ * rust/compile/macro_call_statement.rs: New test.
+ * rust/compile/stmt_with_block_dot.rs: New test.
+ * rust/compile/torture/loop8.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/macro-issue2192.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/const-issue1440.rs: Remove LE conditional compilation.
+ * rust/compile/torture/issue-1432.rs: Likewise.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/execute/torture/coercion3.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/execute/torture/issue-2179.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/execute/torture/issue-2180.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2188.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/parse_specialization.rs:
+ Add "default unsafe" coverage.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2178.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/macro_use1.rs: New test.
+ * rust/execute/torture/macro_use1.rs: New test.
+ * rust/compile/nested_macro_use1.rs: New test.
+ * rust/compile/nested_macro_use2.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/issue-1446.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/execute/torture/cfg-tail.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/macro52.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/issue-2125.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2135.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2106.rs: New test.
+ * rust/compile/issue-1524.rs: regression (placeholder generic)
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2142.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2136-1.rs: New test.
+ * rust/compile/issue-2136-2.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2139.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-1893.rs: regression
+ * rust/compile/traits12.rs: rustc uses a custom error message here
+ * rust/compile/unconstrained_type_param.rs: extra error message
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/execute/torture/issue-1852-1.rs: New test.
+ * rust/execute/torture/issue-1852.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/issue-1807.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/let_alt.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-852.rs: New test.
+
+2024-01-16 Sergey Bugaev <bugaevc@gmail.com>
+
+ * lib/prune.exp (prune_ices):
+ Also prune "You have broken GCC Rust. This is a feature."
+ * rust/compile/break-rust1.rs: New test
+ * rust/compile/break-rust2.rs: New test
+ * rust/compile/break-rust3.rs: New test
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/if_let_expr.rs: Increase test coverage.
+
+2024-01-16 Sebastian Kirmayer <gnu@kirmayer.eu>
+
+ * rust/compile/macro-issue2092.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/macro51.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2070.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/execute/torture/issue-2080.rs: New test.
+
+2024-01-16 Emanuele Micheletti <micheletti.emanuele@hotmail.com>
+
+ * rust/compile/cast5.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/const_generics_5.rs: update test case
+ * rust/compile/issue-2043.rs: New test.
+ * rust/compile/issue-2039.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2042.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-925.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/bounds1.rs: Moved to...
+ * rust/compile/bounds1.rs: ...here.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2029.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/execute/torture/issue-2052.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/array4.rs: New test.
+ * rust/execute/torture/arrays.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/privacy8.rs: New test.
+
+2024-01-16 emanuele-em <micheletti.emanuele@hotmail.com>
+
+ * rust/compile/cast4.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/macro49.rs: New test.
+ * rust/compile/macro50.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-2037.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-1893.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-850.rs: New test.
+ * rust/compile/issue-855.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-1981.rs: New test.
+
+2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
+
+ * rust/compile/torture/alt_patterns1.rs: New test.
+
+2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
+
+ * rust/compile/multiple_bindings2.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/sizeof-stray-infer-var-bug.rs: New test.
+
+2024-01-16 Tage Johansson <frans.tage@gmail.com>
+
+ * rust/compile/macro47.rs: Test that :vis can be followed by some keywords
+ * rust/compile/macro48.rs: Test that :vis cannot be followed by the keyword priv
+
+2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
+
+ * rust/compile/multiple_bindings1.rs: New test.
+
+2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
+
+ * rust/execute/torture/closure4.rs: New test.
+ * rust/execute/torture/ref-pattern2.rs: New test.
+
+2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
+
+ * rust/compile/ref_pattern_fn_param.rs: Moved to...
+ * rust/compile/ref_pattern_fn_param1.rs: ...here.
+ * rust/compile/ref_pattern_fn_param2.rs: New test.
+ * rust/execute/torture/ref-pattern1.rs: New test.
+
+2024-01-16 goar5670 <mahadelr19@gmail.com>
+
+ * rust/compile/ref_pattern_fn_param.rs: New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/lang-impl.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/stringify.rs: Add a basic test with some text.
+ * rust/execute/torture/builtin_macro_stringify.rs: Verify the
+ text is left as is without any other macro expansion.
+
+2024-01-16 Nikos Alexandris <nikos-alexandris@protonmail.com>
+
+ * rust/compile/tuple_mismatch.rs: New test.
+
+2024-01-16 goar5670 <mahadelr19@gmail.com>
+
+ * rust/compile/complex_qualified_path_in_expr.rs : New test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/closure_no_type_anno.rs: Extend test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-1524.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/parse_associated_type_as_generic_arg3.rs: remove -fsyntax-only
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/parse_associated_type_as_generic_arg.rs: it now works without -fsyntax-only
+ * rust/compile/parse_associated_type_as_generic_arg2.rs: likewise
+
+2024-01-16 goar5670 <mahadelr19@gmail.com>
+
+ * rust/compile/closure_no_type_anno.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/while_let_expr.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/torture/uninit-intrinsic-1.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/zero_sized_slice.rs: New test.
+
+2024-01-16 Nikos Alexandris <nikos-alexandris@protonmail.com>
+
+ * rust/compile/builtin_macro_include_bytes_location_info.rs: New test.
+ * rust/compile/builtin_macro_include_str_location_info.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/slice_rest_pattern.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/if_let_expr.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/torture/intrinsics-8.rs: New test.
+
+2024-01-16 mxlol233 <mxlol233@outlook.com>
+
+ * rust/compile/feature_extern_types.rs:New file.
+
+2024-01-16 bl7awy <mahadelr19@gmail.com>
+
+ * rust/compile/cast_generics.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-1901.rs: New test.
+
+2024-01-16 Philip Herron <herron.philip@googlemail.com>
+
+ * rust/compile/issue-1930.rs: New test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/extern_type_item_missing_semi.rs: New failing
+ test.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/extern_type_item.rs: New test.
+
+2024-01-16 omkar-mohanty <franzohouser@gmail.com>
+
+ * rust/compile/builtin_macro_eager3.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/parse_invalid_specialization.rs: New test.
+ * rust/compile/parse_specialization.rs: New test.
+ * rust/compile/default_not_a_kw.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/expand_macro_qual_path_in_type.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/auto_trait_invalid.rs: New test.
+ * rust/compile/auto_trait_valid.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/parse_associated_type_as_generic_arg3.rs: New test.
+
+2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust/compile/parse_associated_type_as_generic_arg.rs: New test.
+ * rust/compile/parse_associated_type_as_generic_arg2.rs: New test.
+ * rust/compile/path_as_generic_arg.rs: New test.
+ * rust/compile/nested_generic.rs: New test.
+
+2024-01-16 mxlol233 <mxlol233@outlook.com>
+
+ * rust/compile/builtin_macro_compile_error.rs: Add
+ crate feature `rustc_attri`.
+ * rust/compile/builtin_macro_concat.rs: Likewise.
+ * rust/compile/builtin_macro_eager1.rs: Likewise.
+ * rust/compile/builtin_macro_eager2.rs: Likewise.
+ * rust/compile/builtin_macro_env.rs: Likewise.
+ * rust/compile/builtin_macro_include_bytes.rs:
+ Likewise.
+ * rust/compile/builtin_macro_include_str.rs:
+ Likewise.
+ * rust/compile/builtin_macro_not_found.rs:
+ Likewise.
+ * rust/compile/builtin_macro_recurse2.rs:
+ Likewise.
+ * rust/compile/feature_rust_attri0.rs:New file.
+ * rust/compile/feature_rust_attri1.rs:New file.
+ * rust/compile/include_empty.rs:Add crate feature
+ `rustc_attri`.
+ * rust/compile/issue-1830_bytes.rs:Likewise.
+ * rust/compile/issue-1830_str.rs:Likewise.
+ * rust/compile/macro42.rs:Likewise.
+ * rust/execute/torture/builtin_macro_cfg.rs:
+ Likewise.
+ * rust/execute/torture/builtin_macro_concat.rs:
+ Likewise.
+ * rust/execute/torture/builtin_macro_env.rs:
+ Likewise.
+ * rust/execute/torture/builtin_macro_include_bytes.rs:
+ Likewise.
+ * rust/execute/torture/builtin_macro_include_str.rs:
+ Likewise.
+ * rust/execute/torture/builtin_macro_line.rs:
+ Likewise.
+ * rust/execute/torture/builtin_macros1.rs:
+ Likewise.
+ * rust/execute/torture/builtin_macros3.rs:
+ Likewise.
+ * rust/execute/torture/macros29.rs:Likewise.
+ * rust/execute/torture/macros30.rs:Likewise.
+ * rust/execute/torture/macros31.rs:Likewise.
+
+2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
+
+ PR target/112573
+ * gcc.target/aarch64/pr112573.c: Add new test.
+
+2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * rust/compile/pattern-or.rs: New test.
+
+2024-01-16 Daniel Cederman <cederman@gaisler.com>
+
+ * gcc.dg/lto/pr88077_0.c: Change type to match alignment for SPARC
+
+2024-01-16 Daniel Cederman <cederman@gaisler.com>
+
+ * gcc.dg/ifcvt-4.c: Skip for SPARC V8
+
+2024-01-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/113372
+ PR middle-end/90348
+ PR middle-end/110115
+ PR middle-end/111422
+ * gcc.dg/torture/bitint-49.c: New test.
+ * gcc.c-torture/execute/pr90348.c: New test.
+ * gcc.c-torture/execute/pr110115.c: New test.
+ * gcc.c-torture/execute/pr111422.c: New test.
+
+2024-01-16 Feng Xue <fxue@os.amperecomputing.com>
+
+ * gcc.target/aarch64/bb-slp-pr113091.c: New test.
+
+2024-01-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/113404
+ * gcc.target/riscv/rvv/base/big_endian-1.c: New test.
+ * gcc.target/riscv/rvv/base/big_endian-2.c: New test.
+
+2024-01-16 Kewen Lin <linkw@linux.ibm.com>
+
+ PR testsuite/109705
+ * lib/target-supports.exp (check_effective_target_vect_long_mult):
+ Fix powerpc*-*-* checks.
+
+2024-01-16 Yanzhang Wang <yanzhang.wang@intel.com>
+
+ * gcc.target/riscv/rvv/base/abi-call-args-1-run.c: Delete the
+ -Wno-psabi.
+ * gcc.target/riscv/rvv/base/abi-call-args-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-call-args-2-run.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-call-args-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-call-args-3-run.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-call-args-3.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-call-args-4-run.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-call-args-4.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-call-error-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-call-return-run.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-call-return.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-call-variant_cc.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-callee-saved-1-save-restore.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-callee-saved-1-zcmp.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-callee-saved-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-callee-saved-2-save-restore.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c: Ditto.
+ * gcc.target/riscv/rvv/base/abi-callee-saved-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/fixed-point-vxrm-error.c: Ditto.
+ * gcc.target/riscv/rvv/base/fixed-point-vxrm.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-cvt-f.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-cvt-x.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-cvt-xu.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-10.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-11.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-12.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-13.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-14.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-15.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-16.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-17.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-18.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-19.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-20.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-21.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-22.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-23.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-24.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-25.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-26.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-27.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-28.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-29.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-3.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-30.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-31.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-32.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-33.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-34.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-35.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-36.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-37.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-38.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-39.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-4.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-40.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-41.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-42.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-43.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-44.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-45.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-46.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-47.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-48.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-49.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-5.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-50.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-51.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-52.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-53.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-54.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-55.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-56.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-57.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-58.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-59.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-6.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-60.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-61.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-62.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-63.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-64.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-65.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-66.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-67.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-68.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-69.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-7.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-70.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-71.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-72.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-73.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-74.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-75.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-76.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-77.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-8.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-dynamic-frm-9.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-autovec-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-autovec-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-autovec-3.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-autovec-4.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-error.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-insert-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-insert-10.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-insert-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-insert-3.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-insert-4.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-insert-5.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-insert-7.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-insert-8.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-insert-9.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-run-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-run-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-run-3.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-run-4.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm-run-5.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-frm.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-fwmacc.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-macc.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-madd.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-msac.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-msub.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-ncvt-f.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-ncvt-x.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-ncvt-xu.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-nmacc.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-nmadd.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-nmsac.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-nmsub.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-rec7.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-redosum.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-redusum.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-single-div.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-single-mul.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-single-rdiv.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-single-rsub.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-single-sub.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-sqrt.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-wcvt-x.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-wcvt-xu.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-widening-add.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-widening-mul.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-widening-sub.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-wmsac.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-wnmacc.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-wnmsac.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-wredosum.c: Ditto.
+ * gcc.target/riscv/rvv/base/float-point-wredusum.c: Ditto.
+ * gcc.target/riscv/rvv/base/intrisinc-vrgatherei16.c: Ditto.
+ * gcc.target/riscv/rvv/base/no-honor-frm-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/overloaded_rv32_vadd.c: Ditto.
+ * gcc.target/riscv/rvv/base/overloaded_rv32_vfadd.c: Ditto.
+ * gcc.target/riscv/rvv/base/overloaded_rv32_vget_vset.c: Ditto.
+ * gcc.target/riscv/rvv/base/overloaded_rv32_vloxseg2ei16.c: Ditto.
+ * gcc.target/riscv/rvv/base/overloaded_rv32_vmv.c: Ditto.
+ * gcc.target/riscv/rvv/base/overloaded_rv32_vreinterpret.c: Ditto.
+ * gcc.target/riscv/rvv/base/overloaded_rv64_vadd.c: Ditto.
+ * gcc.target/riscv/rvv/base/overloaded_rv64_vfadd.c: Ditto.
+ * gcc.target/riscv/rvv/base/overloaded_rv64_vget_vset.c: Ditto.
+ * gcc.target/riscv/rvv/base/overloaded_rv64_vloxseg2ei16.c: Ditto.
+ * gcc.target/riscv/rvv/base/overloaded_rv64_vmv.c: Ditto.
+ * gcc.target/riscv/rvv/base/overloaded_rv64_vreinterpret.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr110119-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr110119-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr110265-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr110265-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr110265-3.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr110277-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr110277-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr110299-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr110299-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr110299-3.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr110299-4.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr111720-0.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr111720-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr111720-10.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr111720-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr111720-3.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr111720-4.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr111720-5.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr111720-6.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr111720-7.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr111720-8.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr111720-9.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr111935.c: Ditto.
+ * gcc.target/riscv/rvv/base/scalar-move-merged-run-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/simplify-vdiv.c: Ditto.
+ * gcc.target/riscv/rvv/base/simplify-vrsub.c: Ditto.
+ * gcc.target/riscv/rvv/base/tuple-intrinsic.c: Ditto.
+ * gcc.target/riscv/rvv/base/tuple_vundefined.c: Ditto.
+ * gcc.target/riscv/rvv/base/vcreate.c: Ditto.
+ * gcc.target/riscv/rvv/base/vlmul_ext-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/vslide1down-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/vslide1down-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/vslide1down-3.c: Ditto.
+ * gcc.target/riscv/rvv/base/vslide1up-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/vslide1up-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/vslide1up-3.c: Ditto.
+ * gcc.target/riscv/rvv/base/zvbb-intrinsic.c: Ditto.
+ * gcc.target/riscv/rvv/base/zvbb_vandn_vx_constraint.c: Ditto.
+ * gcc.target/riscv/rvv/base/zvbc-intrinsic.c: Ditto.
+ * gcc.target/riscv/rvv/base/zvbc_vx_constraint-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/zvbc_vx_constraint-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/zvfhmin-intrinsic.c: Ditto.
+ * gcc.target/riscv/rvv/base/zvkg-intrinsic.c: Ditto.
+ * gcc.target/riscv/rvv/base/zvkned-intrinsic.c: Ditto.
+ * gcc.target/riscv/rvv/base/zvknha-intrinsic.c: Ditto.
+ * gcc.target/riscv/rvv/base/zvknhb-intrinsic.c: Ditto.
+ * gcc.target/riscv/rvv/base/zvksed-intrinsic.c: Ditto.
+ * gcc.target/riscv/rvv/base/zvksh-intrinsic.c: Ditto.
+
+2024-01-16 Yanzhang Wang <yanzhang.wang@intel.com>
+
+ * gcc.target/riscv/rvv/base/binop_vx_constraint-120.c: Delete the -Wno-psabi.
+ * gcc.target/riscv/rvv/base/integer_compare_insn_shortcut.c: Ditto.
+ * gcc.target/riscv/rvv/base/mask_insn_shortcut.c: Ditto.
+ * gcc.target/riscv/rvv/base/misc_vreinterpret_vbool_vint.c: Ditto.
+ * gcc.target/riscv/rvv/base/pr110109-2.c: Ditto.
+ * gcc.target/riscv/rvv/base/scalar_move-9.c: Ditto.
+ * gcc.target/riscv/rvv/base/spill-10.c: Ditto.
+ * gcc.target/riscv/rvv/base/spill-11.c: Ditto.
+ * gcc.target/riscv/rvv/base/spill-9.c: Ditto.
+ * gcc.target/riscv/rvv/base/vlmul_ext-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/zero_base_load_store_optimization.c: Ditto.
+ * gcc.target/riscv/rvv/base/zvfh-intrinsic.c: Ditto.
+ * gcc.target/riscv/rvv/base/zvfh-over-zvfhmin.c: Ditto.
+ * gcc.target/riscv/rvv/vsetvl/vsetvl-1.c: Ditto.
+ * gcc.target/riscv/rvv/base/vector-abi-1.c: Removed.
+ * gcc.target/riscv/rvv/base/vector-abi-2.c: Removed.
+ * gcc.target/riscv/rvv/base/vector-abi-3.c: Removed.
+ * gcc.target/riscv/rvv/base/vector-abi-4.c: Removed.
+ * gcc.target/riscv/rvv/base/vector-abi-5.c: Removed.
+ * gcc.target/riscv/rvv/base/vector-abi-6.c: Removed.
+ * gcc.target/riscv/rvv/base/vector-abi-7.c: Removed.
+ * gcc.target/riscv/rvv/base/vector-abi-8.c: Removed.
+
2024-01-16 David Malcolm <dmalcolm@redhat.com>
PR analyzer/106229
diff --git a/libgrust/ChangeLog b/libgrust/ChangeLog
index fa9e210..0697468 100644
--- a/libgrust/ChangeLog
+++ b/libgrust/ChangeLog
@@ -1,3 +1,679 @@
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro_internal/proc_macro.h (enum ProcmacroTag): Add
+ explicit value for proc macro tag enum.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/bridge.rs: Add license text.
+ * libproc_macro/bridge/ffistring.rs: Likewise.
+ * libproc_macro/bridge/group.rs: Likewise.
+ * libproc_macro/bridge/ident.rs: Likewise.
+ * libproc_macro/bridge/literal.rs: Likewise.
+ * libproc_macro/bridge/punct.rs: Likewise.
+ * libproc_macro/bridge/span.rs: Likewise.
+ * libproc_macro/bridge/token_stream.rs: Likewise.
+ * libproc_macro/group.rs: Likewise.
+ * libproc_macro/ident.rs: Likewise.
+ * libproc_macro/lib.rs: Likewise.
+ * libproc_macro/literal.rs: Likewise.
+ * libproc_macro/punct.rs: Likewise.
+ * libproc_macro/span.rs: Likewise.
+ * libproc_macro/token_stream.rs: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro_internal/rust/bridge.rs: Moved to...
+ * libproc_macro/bridge.rs: ...here.
+ * libproc_macro_internal/rust/bridge/ffistring.rs: Moved to...
+ * libproc_macro/bridge/ffistring.rs: ...here.
+ * libproc_macro_internal/rust/bridge/group.rs: Moved to...
+ * libproc_macro/bridge/group.rs: ...here.
+ * libproc_macro_internal/rust/bridge/ident.rs: Moved to...
+ * libproc_macro/bridge/ident.rs: ...here.
+ * libproc_macro_internal/rust/bridge/literal.rs: Moved to...
+ * libproc_macro/bridge/literal.rs: ...here.
+ * libproc_macro_internal/rust/bridge/punct.rs: Moved to...
+ * libproc_macro/bridge/punct.rs: ...here.
+ * libproc_macro_internal/rust/bridge/span.rs: Moved to...
+ * libproc_macro/bridge/span.rs: ...here.
+ * libproc_macro_internal/rust/bridge/token_stream.rs: Moved to...
+ * libproc_macro/bridge/token_stream.rs: ...here.
+ * libproc_macro_internal/rust/group.rs: Moved to...
+ * libproc_macro/group.rs: ...here.
+ * libproc_macro_internal/rust/ident.rs: Moved to...
+ * libproc_macro/ident.rs: ...here.
+ * libproc_macro_internal/rust/lib.rs: Moved to...
+ * libproc_macro/lib.rs: ...here.
+ * libproc_macro_internal/rust/literal.rs: Moved to...
+ * libproc_macro/literal.rs: ...here.
+ * libproc_macro_internal/rust/punct.rs: Moved to...
+ * libproc_macro/punct.rs: ...here.
+ * libproc_macro_internal/rust/span.rs: Moved to...
+ * libproc_macro/span.rs: ...here.
+ * libproc_macro_internal/rust/token_stream.rs: Moved to...
+ * libproc_macro/token_stream.rs: ...here.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Makefile.am: Change library name.
+ * Makefile.in: Likewise.
+ * configure.ac: Likewise.
+ * configure: Regenerate.
+ * libproc_macro/Makefile.am: Moved to...
+ * libproc_macro_internal/Makefile.am: ...here.
+ * libproc_macro/Makefile.in: Moved to...
+ * libproc_macro_internal/Makefile.in: ...here.
+ * libproc_macro/bridge.h: Moved to...
+ * libproc_macro_internal/bridge.h: ...here.
+ * libproc_macro/ffistring.cc: Moved to...
+ * libproc_macro_internal/ffistring.cc: ...here.
+ * libproc_macro/ffistring.h: Moved to...
+ * libproc_macro_internal/ffistring.h: ...here.
+ * libproc_macro/group.cc: Moved to...
+ * libproc_macro_internal/group.cc: ...here.
+ * libproc_macro/group.h: Moved to...
+ * libproc_macro_internal/group.h: ...here.
+ * libproc_macro/ident.cc: Moved to...
+ * libproc_macro_internal/ident.cc: ...here.
+ * libproc_macro/ident.h: Moved to...
+ * libproc_macro_internal/ident.h: ...here.
+ * libproc_macro/literal.cc: Moved to...
+ * libproc_macro_internal/literal.cc: ...here.
+ * libproc_macro/literal.h: Moved to...
+ * libproc_macro_internal/literal.h: ...here.
+ * libproc_macro/proc_macro.cc: Moved to...
+ * libproc_macro_internal/proc_macro.cc: ...here.
+ * libproc_macro/proc_macro.h: Moved to...
+ * libproc_macro_internal/proc_macro.h: ...here.
+ * libproc_macro/punct.cc: Moved to...
+ * libproc_macro_internal/punct.cc: ...here.
+ * libproc_macro/punct.h: Moved to...
+ * libproc_macro_internal/punct.h: ...here.
+ * libproc_macro/registration.h: Moved to...
+ * libproc_macro_internal/registration.h: ...here.
+ * libproc_macro/rust/bridge.rs: Moved to...
+ * libproc_macro_internal/rust/bridge.rs: ...here.
+ * libproc_macro/rust/bridge/ffistring.rs: Moved to...
+ * libproc_macro_internal/rust/bridge/ffistring.rs: ...here.
+ * libproc_macro/rust/bridge/group.rs: Moved to...
+ * libproc_macro_internal/rust/bridge/group.rs: ...here.
+ * libproc_macro/rust/bridge/ident.rs: Moved to...
+ * libproc_macro_internal/rust/bridge/ident.rs: ...here.
+ * libproc_macro/rust/bridge/literal.rs: Moved to...
+ * libproc_macro_internal/rust/bridge/literal.rs: ...here.
+ * libproc_macro/rust/bridge/punct.rs: Moved to...
+ * libproc_macro_internal/rust/bridge/punct.rs: ...here.
+ * libproc_macro/rust/bridge/span.rs: Moved to...
+ * libproc_macro_internal/rust/bridge/span.rs: ...here.
+ * libproc_macro/rust/bridge/token_stream.rs: Moved to...
+ * libproc_macro_internal/rust/bridge/token_stream.rs: ...here.
+ * libproc_macro/rust/group.rs: Moved to...
+ * libproc_macro_internal/rust/group.rs: ...here.
+ * libproc_macro/rust/ident.rs: Moved to...
+ * libproc_macro_internal/rust/ident.rs: ...here.
+ * libproc_macro/rust/lib.rs: Moved to...
+ * libproc_macro_internal/rust/lib.rs: ...here.
+ * libproc_macro/rust/literal.rs: Moved to...
+ * libproc_macro_internal/rust/literal.rs: ...here.
+ * libproc_macro/rust/punct.rs: Moved to...
+ * libproc_macro_internal/rust/punct.rs: ...here.
+ * libproc_macro/rust/span.rs: Moved to...
+ * libproc_macro_internal/rust/span.rs: ...here.
+ * libproc_macro/rust/token_stream.rs: Moved to...
+ * libproc_macro_internal/rust/token_stream.rs: ...here.
+ * libproc_macro/span.cc: Moved to...
+ * libproc_macro_internal/span.cc: ...here.
+ * libproc_macro/span.h: Moved to...
+ * libproc_macro_internal/span.h: ...here.
+ * libproc_macro/tokenstream.cc: Moved to...
+ * libproc_macro_internal/tokenstream.cc: ...here.
+ * libproc_macro/tokenstream.h: Moved to...
+ * libproc_macro_internal/tokenstream.h: ...here.
+ * libproc_macro/tokentree.cc: Moved to...
+ * libproc_macro_internal/tokentree.cc: ...here.
+ * libproc_macro/tokentree.h: Moved to...
+ * libproc_macro_internal/tokentree.h: ...here.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/literal.cc (Literal__from_string): Add
+ implementation with call to constructor.
+ (Literal::make_literal): Add new constructor which calls the
+ callback.
+ * libproc_macro/literal.h: Add new constructor's
+ prototype.
+ * libproc_macro/proc_macro.cc (bridge_is_available):
+ Change symbol name to match convention.
+ * libproc_macro/registration.h: Add lit_from_str
+ symbol.
+ * libproc_macro/tokenstream.cc (TokenStream::make_tokenstream):
+ Change symbol name to disambiguate with literal from string.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/proc_macro.cc: Remove type alias.
+ * libproc_macro/registration.h: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/proc_macro.h (proc_macro_register_from_str):
+ Remove rogue function prototype.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/proc_macro.cc (not_available): Remove
+ function.
+ * libproc_macro/proc_macro.h (not_available): Remove
+ function prototype.
+ * libproc_macro/registration.h: Change symbol type.
+ * libproc_macro/bridge.h: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/proc_macro.cc (bridge_is_available):
+ Add bridge function.
+ * libproc_macro/proc_macro.h (bridge_is_available):
+ Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/proc_macro.cc (not_available): Add a
+ function to express bridge unavailability.
+ * libproc_macro/proc_macro.h (not_available): Likewise.
+ * libproc_macro/registration.h: Add symbol type.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/proc_macro.cc (Procmacro::make_bang):
+ Change symbol name.
+ * libproc_macro/registration.h: Likewise.
+ * libproc_macro/tokenstream.cc (TokenStream::make_tokenstream): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/literal.cc (Literal__from_string):
+ Update to match rust interface.
+ * libproc_macro/literal.h (Literal__from_string):
+ Likewise.
+ * libproc_macro/tokenstream.cc (TokenStream__from_string):
+ Likewise.
+ * libproc_macro/tokenstream.h (TokenStream__from_string):
+ Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/rust/bridge/literal.rs: Change extern C
+ function argument from raw string pointer and length to
+ FFIString.
+ * libproc_macro/rust/bridge/token_stream.rs: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/rust/bridge/ident.rs: Change raw
+ pointer string with an FFIString.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/ident.cc (Ident__new): Constructor
+ accepts an FFIString now.
+ (Ident__new_raw): Likewise.
+ (Ident::clone): Internal members change means clone also change.
+ (Ident::make_ident): Change constructor call.
+ (Ident::drop): Add call to FFIString::clone.
+ * libproc_macro/ident.h (struct Ident): Remove raw
+ pointer and length, add an FFIString inside instead.
+ (Ident__new): Change constructor.
+ (Ident__new_raw): Change constructor.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/proc_macro.cc (proc_macro_register_from_str):
+ Add registration function.
+ * libproc_macro/proc_macro.h (proc_macro_register_from_str):
+ Add registration function prototype.
+ * libproc_macro/tokenstream.cc (TokenStream::make_tokenstream):
+ Add a new constructor from a string that uses the registered
+ callback.
+ (TokenStream__from_string): Add call to new constructor.
+ * libproc_macro/tokenstream.h: Add registration
+ declaration.
+ * libproc_macro/registration.h: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/ffistring.cc (FFIString::make_ffistring):
+ Add explicit sizeof and utf-8 warning.
+ (FFIString::clone): Add explicit sizeof and utf-8 warning.
+ * libproc_macro/ident.cc (Ident::clone): Likewise.
+ (Ident::make_ident): Likewise.
+ * libproc_macro/tokenstream.cc (TokenStream::grow):
+ Fix vector growth.
+ (TokenStream__clone): Add explicit sizeof.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/tokenstream.cc (TokenStream::grow): Add
+ minimum growing capacity.
+ (TokenStream::push): Change condition.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/proc_macro.h (struct CustomDerivePayload):
+ Rename from CustomDerivePayload to...
+ (struct CustomDerive): ... CustomDerive
+ (struct AttrPayload): Rename from AttrPayload to ...
+ (struct Attribute): ... Attribute
+ (struct BangPayload): Rename from BangPayload to ...
+ (struct Bang): ... Bang
+ (union ProcmacroPayload): Update union with new names.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/proc_macro.h (struct ProcmacroArray):
+ Add ProcmacroArray definition.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/Makefile.am: Add span.cc
+ * libproc_macro/Makefile.in: Regenerate.
+ * libproc_macro/span.cc: New file.
+ * libproc_macro/span.h: New file.
+ * libproc_macro/group.cc (Group::make_group): Add span
+ argument.
+ * libproc_macro/group.h (GROUP_H): Add include
+ directive for spans.
+ * libproc_macro/ident.cc (Ident__new): Add span
+ argument.
+ (Ident__new_raw): Likewise.
+ (Ident::make_ident): Likewise.
+ * libproc_macro/ident.h (Ident__new): Likewise.
+ (Ident__new_raw): Likewise.
+ * libproc_macro/literal.cc (Literal::clone): Clone the
+ span.
+ (Literal::make_literal): Add span argument.
+ (Literal::make_u8): Likewise.
+ (Literal::make_u16): Likewise.
+ (Literal::make_u32): Likewise.
+ (Literal::make_u64): Likewise.
+ (Literal::make_i8): Likewise.
+ (Literal::make_i16): Likewise.
+ (Literal::make_i32): Likewise.
+ (Literal::make_i64): Likewise.
+ (Literal::make_string): Likewise.
+ (Literal::make_byte_string): Likewise.
+ (Literal::make_f32): Likewise.
+ (Literal::make_f64): Likewise.
+ (Literal::make_char): Likewise.
+ (Literal::make_usize): Likewise.
+ (Literal::make_isize): Likewise.
+ * libproc_macro/literal.h (struct Literal): Add span to
+ Literal structure.
+ * libproc_macro/punct.cc (Punct::make_punct): Add span
+ argument to punct constructor.
+ * libproc_macro/punct.h (struct Punct): Add span to
+ Punct structure.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/rust/bridge/group.rs: Add span member
+ to the Group structure.
+ * libproc_macro/rust/bridge/ident.rs: Likewise with the
+ Ident structure.
+ * libproc_macro/rust/bridge/literal.rs: Likewise with
+ the Literal structure.
+ * libproc_macro/rust/bridge/punct.rs: Likewise with the
+ Punct structure.
+ * libproc_macro/rust/bridge/span.rs: Add span
+ internals.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/rust/bridge/ffistring.rs: Implement
+ From trait for FFIString.
+ * libproc_macro/rust/bridge/literal.rs: Change
+ constructor call.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/ffistring.cc (FFIString::make_ffistring):
+ Add copy from source pointer.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/literal.h: Remove has_suffix member
+ attribute from Literal.
+ * libproc_macro/literal.cc: Update constructors.
+ * libproc_macro/rust/bridge/literal.rs: Remove
+ has_suffix attribute from Literal.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/Makefile.am: Add ffistring unit to
+ compiled objects list.
+ * libproc_macro/Makefile.in: Regenerate.
+ * libproc_macro/literal.cc (Literal::drop): Change with
+ a call to ffistring drop function.
+ (Literal::make_literal): Add new helper constructor
+ (Literal__drop): Remove this function.
+ (Literal__string): Likewise.
+ (Literal__byte_string): Likewise.
+ (Literal__from_string): Moved this function.
+ (Literal::make_unsigned): Changed the constructor to match the
+ new layout.
+ (Literal::make_signed): Likewise.
+ (Literal::clone): Reimplement th eclone function.
+ (Literal::make_u8): Changed the constructor, make suffixed by
+ default.
+ (Literal::make_u16): Likewise.
+ (Literal::make_u32): Likewise.
+ (Literal::make_u64): Likewise.
+ (Literal::make_i8): Likewise.
+ (Literal::make_i16): Likewise.
+ (Literal::make_i32): Likewise.
+ (Literal::make_i64): Likewise.
+ (Literal::make_string): Likewise.
+ (Literal::make_byte_string): Likewise.
+ (Literal::make_f32): Likewise.
+ (Literal::make_f64): Likewise.
+ (Literal::make_char): Likewise.
+ (Literal::make_usize): Likewise.
+ (Literal::make_isize): Likewise.
+ (LitKind::make_byte): Add new helper constructor to avoid having
+ to set the payload value.
+ (LitKind::make_char): Likewise.
+ (LitKind::make_integer): Likewise.
+ (LitKind::make_float): Likewise.
+ (LitKind::make_str): Likewise.
+ (LitKind::make_str_raw): Add a new helper constructor which
+ takes the payload value as an argument.
+ (LitKind::make_byte_str): Add new helper constructor to avoid
+ mistakes with payload value.
+ (LitKind::make_byte_str_raw): Add a new helper constructor which
+ takes the payload value as an argument.
+ * libproc_macro/literal.h: Add new functions prototype.
+ (enum UnsignedTag): Removed because it is now unused.
+ (struct Payload128): Likewise.
+ (union UnsignedPayload): Likewise.
+ (struct Unsigned): Likewise.
+ (enum SignedTag): Likewise.
+ (union SignedPayload): Likewise.
+ (struct Signed): Likewise.
+ (enum LiteralTag): Likewise.
+ (enum LitKindTag): Likewise.
+ (struct StringPayload): Likewise.
+ (struct ByteStringPayload): Likewise.
+ (union LitKindPayload): Likewise.
+ (struct UnsignedSuffixPayload): Likewise.
+ (struct LitKind): Add new literal kind struct representation to
+ match the enum on rust side.
+ (struct SignedSuffixPayload): Removed because now unused.
+ (struct UsizePayload): Likewise.
+ (struct IsizePayload): Likewise.
+ (struct Float32Payload): Likewise.
+ (struct Float64Payload): Likewise.
+ (union LiteralPayload): Likewise.
+ (struct Literal): Changed the internals of the structure.
+ (Literal__drop): Removed the drop function fom the c interface.
+ (Literal__string): Removed unused function.
+ (Literal__byte_string): Removed unused function.
+ * libproc_macro/ffistring.cc: New file.
+ * libproc_macro/ffistring.h: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/rust/bridge.rs: Add ffistring module.
+ * libproc_macro/rust/bridge/literal.rs: Rework type
+ internals.
+ * libproc_macro/rust/bridge/ffistring.rs: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/proc_macro.cc (Procmacro::make_derive):
+ Add custom derive macro constructor.
+ (Procmacro::make_attribute): Add attribute macro constructor.
+ (Procmacro::make_bang): Add bang macro constructor.
+ * libproc_macro/proc_macro.h (struct Procmacro):
+ Add helper function prototypes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/proc_macro.h (struct CustomDerivePayload):
+ Add C compatible payload structure.
+ (struct AttrPayload): Likewise.
+ (struct BangPayload): Likewise.
+ (enum ProcmacroTag): Add tag for tagged union.
+ (union ProcmacroPayload): Proc macro payload union.
+ (struct Procmacro): Tagged union.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/proc_macro.h: Add Literal, Punct,
+ Group, TokenTree and Tokenstream headers.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Makefile.am: Remove libtool forwarding.
+ * Makefile.in: Regenerate.
+ * libproc_macro/Makefile.am: Creates an archive instead
+ of using libtool.
+ * libproc_macro/Makefile.in: Regenerate.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/group.cc (Group::make_group): Remove
+ internal namespace.
+ (Group::drop): Likewise.
+ * libproc_macro/group.h (enum Delimiter): Make members
+ upercase.
+ (struct Group):
+ * libproc_macro/ident.cc (Ident::drop): Remove internal
+ namespace.
+ * libproc_macro/ident.h (Ident__clone): Likewise.
+ * libproc_macro/literal.cc (Literal::make_isize):
+ Likewise.
+ * libproc_macro/literal.h (union LiteralPayload):
+ Likewise.
+ (Literal__from_string): Likewise.
+ * libproc_macro/punct.cc (Punct::make_punct): Likewise.
+ * libproc_macro/punct.h (enum Spacing): Make members
+ uppercase.
+ * libproc_macro/tokenstream.cc (TokenStream::make_tokenstream):
+ Remove internal namespace.
+ (TokenStream::grow): Likewise.
+ (TokenStream::push): Likewise.
+ (TokenSream__push): Likewise.
+ (TokenStream__clone): Likewise.
+ (TokenStream__drop): Likewise.
+ * libproc_macro/tokenstream.h (struct TokenStream):
+ Likewise.
+ (TokenSream__push): Likewise.
+ (TokenStream__drop): Likewise.
+ * libproc_macro/tokentree.cc (TokenTree::make_tokentree):
+ Likewise.
+ (TokenTree::drop): Likewise.
+ * libproc_macro/tokentree.h (union TokenTreePayload):
+ Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/group.cc (Group::drop): Add Procmacro
+ namespace.
+ * libproc_macro/group.h: Likewise.
+ * libproc_macro/ident.cc (Ident::drop): Likewise.
+ * libproc_macro/ident.h (Ident__clone): Likewise.
+ * libproc_macro/literal.cc (Literal::make_isize):
+ Likewise.
+ * libproc_macro/literal.h (Literal__from_string):
+ Likewise.
+ * libproc_macro/punct.cc (Punct::make_punct): Likewise.
+ * libproc_macro/punct.h: Likewise.
+ * libproc_macro/tokenstream.cc (TokenStream__drop):
+ Likewise.
+ * libproc_macro/tokenstream.h (TokenStream__drop):
+ Likewise.
+ * libproc_macro/tokentree.cc (TokenTree::drop):
+ Likewise.
+ * libproc_macro/tokentree.h: Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/literal.cc (Literal::drop): Change
+ delete operator to delete[].
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/rust/bridge/token_stream.rs: Implement
+ drop.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/group.cc (Group::drop): Add drop
+ implementation.
+ * libproc_macro/group.h: Add drop prototype.
+ * libproc_macro/tokenstream.cc (TokenStream::drop): Add
+ drop implementation.
+ (TokenStream__drop): Change to a call to TokenStream::drop.
+ * libproc_macro/tokenstream.h: Add drop prototype.
+ * libproc_macro/tokentree.cc (TokenTree::drop): Add
+ drop implementation.
+ * libproc_macro/tokentree.h: Add drop prototype.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/literal.cc (Literal__drop): Replace
+ implementation by a call to Literal::drop.
+ (Literal::drop): Add drop implementation.
+ * libproc_macro/literal.h: Add function prototype.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/ident.cc (Ident__drop): Replace by call
+ to Ident::drop.
+ (Ident::drop): Add drop function.
+ * libproc_macro/ident.h: Add drop prototype.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/group.cc: New file.
+ * libproc_macro/group.h: New file.
+ * libproc_macro/tokenstream.cc: New file.
+ * libproc_macro/tokenstream.h: New file.
+ * libproc_macro/tokentree.cc: New file.
+ * libproc_macro/tokentree.h: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/punct.cc: New file.
+ * libproc_macro/punct.h: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/ident.cc (Ident::make_ident): Add Ident
+ namespace.
+ * libproc_macro/ident.h (Ident__clone): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/ident.cc (Ident__new): Use named
+ constructor.
+ (Ident__new_raw): Use named constructor.
+ (Ident__clone): Use clone member function.
+ (Ident::clone): Make clone const.
+ (Ident::make_ident): Add named construcot.
+ * libproc_macro/ident.h (struct Ident): Add named
+ constructor prototypes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/rust/bridge/ident.rs: Change drop
+ function interface.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/ident.cc: New file.
+ * libproc_macro/ident.h: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/literal.cc (Literal__string): Add call
+ to named constructor.
+ (Literal__byte_string): Likewise.
+ (Literal::make_unsigned): Add function.
+ (Literal::make_signed): Add function.
+ (Literal::clone): Likewise.
+ (Literal::make_u8): Likewise.
+ (Literal::make_u16): Likewise.
+ (Literal::make_u32): Likewise.
+ (Literal::make_u64): Likewise.
+ (Literal::make_i8): Likewise.
+ (Literal::make_i16): Likewise.
+ (Literal::make_i32): Likewise.
+ (Literal::make_i64): Likewise.
+ (Literal::make_string): Likewise.
+ (Literal::make_byte_string): Likewise.
+ (Literal::make_f32): Likewise.
+ (Literal::make_f64): Likewise.
+ (make_char): Likewise.
+ (Literal::make_char): Likewise.
+ (make_usize): Likewise.
+ (Literal::make_usize): Likewise.
+ (make_isize): Likewise.
+ (Literal::make_isize): Likewise.
+ * libproc_macro/literal.h: Add prototypes.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/literal.cc (Literal__from_string):
+ Add abort because unimplemented.
+ * libproc_macro/literal.h (Literal__from_string): Add
+ namespace.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/rust/bridge/literal.rs: Make the
+ pointer mutable.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/literal.h (Literal__drop): Implement
+ drop.
+ (Literal__string): Constructor from a string function prototype.
+ (Literal__byte_string): Constructor from a byte string function
+ prototype.
+ (Literal__from_string): Add function body, no implementation
+ yet.
+ * libproc_macro/literal.cc: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/proc_macro.h (PROC_MACRO_H): Add
+ literal header include directive.
+ * libproc_macro/literal.h: New file.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/proc_macro.cc (test): Remove dummy
+ function.
+ * libproc_macro/proc_macro.h (test): Likewise.
+
+2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * libproc_macro/rust/bridge.rs: New file.
+ * libproc_macro/rust/bridge/group.rs: New file.
+ * libproc_macro/rust/bridge/ident.rs: New file.
+ * libproc_macro/rust/bridge/literal.rs: New file.
+ * libproc_macro/rust/bridge/punct.rs: New file.
+ * libproc_macro/rust/bridge/span.rs: New file.
+ * libproc_macro/rust/bridge/token_stream.rs: New file.
+ * libproc_macro/rust/group.rs: New file.
+ * libproc_macro/rust/ident.rs: New file.
+ * libproc_macro/rust/lib.rs: New file.
+ * libproc_macro/rust/literal.rs: New file.
+ * libproc_macro/rust/punct.rs: New file.
+ * libproc_macro/rust/span.rs: New file.
+ * libproc_macro/rust/token_stream.rs: New file.
+
2024-01-08 Thomas Schwinge <thomas@codesourcery.com>
PR rust/113056