aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/rust/ChangeLog')
-rw-r--r--gcc/rust/ChangeLog2581
1 files changed, 2581 insertions, 0 deletions
diff --git a/gcc/rust/ChangeLog b/gcc/rust/ChangeLog
index b871717..31c731b 100644
--- a/gcc/rust/ChangeLog
+++ b/gcc/rust/ChangeLog
@@ -1,3 +1,2584 @@
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path):
+ catch nullptr root_tyty
+
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options):
+ check for null and empty and add missing delete call
+
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty-subst.h: check for min range
+
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options): check for input
+
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * hir/rust-hir-dump.cc (Dump::visit): check has type
+ * hir/tree/rust-hir-type.cc (BareFunctionType::BareFunctionType): likewise
+
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-constexpr.cc (eval_store_expression): turn this back on
+
+2025-03-31 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-macro-builtins-log-debug.cc:
+ Add newline to end of file.
+
+2025-03-31 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-forever-stack.h
+ (ForeverStack::get_prelude): Rename to...
+ (ForeverStack::get_lang_prelude): ...here.
+ (ForeverStack::prelude): Rename to...
+ (ForeverStack::lang_prelude): ...here.
+ (ForeverStack::ForeverStack): Handle renames.
+ * resolve/rust-forever-stack.hxx
+ (ForeverStack::push_inner): Likewise.
+ (ForeverStack::resolve_segments): Likewise.
+ (ForeverStack::resolve_path): Likewise.
+ (ForeverStack::get_prelude): Rename to...
+ (ForeverStack::get_lang_prelude): ...here and handle renames.
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Handle renames.
+
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-context.h: only push named types
+ * backend/rust-compile-type.cc (TyTyResolveCompile::visit): run the type hasher
+
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): check for Expr trait
+ * hir/rust-hir-dump.cc (Dump::visit): expr is optional
+
+2025-03-31 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-forever-stack.hxx: Add a new specialized function
+ to retrieve the last "real" segment depending on the namespace.
+ * resolve/rust-forever-stack.h: Add new function prototype.
+ * resolve/rust-early-name-resolver-2.0.cc (Early::finalize_rebind_import):
+ Set declared name according to the selected segment, if there is a self
+ suffix in the use declaration then select the previous segment.
+
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::unit_expression): pass ctx
+ * backend/rust-compile-base.h: cant be static
+ * backend/rust-compile-intrinsic.cc (try_handler_inner): pass ctx
+ * backend/rust-compile-type.cc
+ (TyTyResolveCompile::get_unit_type): update to grab the first locus
+ (TyTyResolveCompile::visit): pass ctx
+ * backend/rust-compile-type.h: likewise
+
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-dot-operator.cc:
+
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): check for super mid path
+
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::address_expression): new helper constexpr
+ * backend/rust-compile-base.h: prototype
+ * backend/rust-compile-type.cc (TyTyResolveCompile::visit): call constexpr helper
+
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::resolve_impl_block_substitutions):
+ Track the polarity
+ * typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::validate_type_implements_this):
+ new validator
+ * typecheck/rust-tyty.h: new prototypes
+
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::array_value_expr): add value chk for array expr
+
+2025-03-31 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-trait-reference.h: add default infer arg
+ * typecheck/rust-hir-trait-resolve.cc: dont add new infer vars
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): dont infer
+
+2025-03-31 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * checks/errors/rust-ast-validation.cc
+ (ASTValidation::visit): Allow constant items lacking expressions
+ if and only if they're associated with a trait definition, not a
+ trait implementation.
+
+2025-03-31 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * hir/rust-ast-lower-base.cc
+ (ASTLoweringBase::lower_literal): Lower raw string literals into
+ normal string literals.
+
+2025-03-31 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * checks/errors/borrowck/ffi-polonius/Cargo.lock: Regenerate.
+ * checks/errors/borrowck/ffi-polonius/Cargo.toml: Update to use source patching instead of
+ vendoring, lower edition to 2018.
+ * checks/errors/borrowck/ffi-polonius/vendor/log/Cargo.toml: Change edition to 2018.
+ * checks/errors/borrowck/ffi-polonius/vendor/log/src/lib.rs: Remove uses of unstable
+ feature.
+ * checks/errors/borrowck/ffi-polonius/.cargo/config.toml: Removed.
+
+2025-03-31 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/tree/rust-hir-stmt.h (class LetStmt): Add optional diverging else expression.
+ * hir/tree/rust-hir-stmt.cc: Likewise.
+ * hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Add handling for lowering
+ diverging else.
+
+2025-03-31 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-ast-resolve-stmt.h: Add handling for diverging else.
+ * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Likewise.
+
+2025-03-31 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Add handling for diverging else
+ expression.
+
+2025-03-31 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * parse/rust-parse-impl.h (Parser::parse_let_stmt): Add new parsing in case of `else` token.
+
+2025-03-31 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-stmt.h (class LetStmt): Add optional expression for diverging else.
+ * ast/rust-ast-builder.cc (Builder::let): Use new API.
+
+2025-03-26 Iain Sandoe <iain@sandoe.co.uk>
+
+ * metadata/rust-export-metadata.cc
+ (PublicInterface::write_to_path): Use 'lbasename()' instead of
+ 'basename()'.
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-path-probe.cc: update call
+ * typecheck/rust-hir-trait-reference.cc (TraitReference::lookup_trait_item): track predicate
+ (TraitReference::is_equal): likewise
+ (TraitReference::is_object_safe): likewise
+ (TraitReference::satisfies_bound): likewise
+ * typecheck/rust-hir-trait-reference.h: likewise
+ * typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): likewise
+ * typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::TypeBoundPredicate): track super traits
+ (TypeBoundPredicate::operator=): likewise
+ (TypeBoundPredicate::apply_generic_arguments): ensure we apply to super predicates
+ (TypeBoundPredicateItem::operator=): take copy of parent predicate
+ (TypeBoundPredicateItem::error): pass error instead of nullptr
+ (TypeBoundPredicateItem::is_error): update to no longer check for nullptr
+ (TypeBoundPredicateItem::get_parent): updated
+ (TypeBoundPredicateItem::get_tyty_for_receiver): likewise
+ (TypeBoundPredicate::get_associated_type_items): likewise
+ * typecheck/rust-tyty-bounds.h (class TypeBoundPredicateItem): move
+ * typecheck/rust-tyty-subst.cc: flag to handle placeholder Self on traits
+ * typecheck/rust-tyty-subst.h (class TypeBoundPredicateItem): likewise
+ * typecheck/rust-tyty.h (class TypeBoundPredicateItem): refactored
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Add visitor for StructExprFieldIdentifier.
+ * resolve/rust-late-name-resolver-2.0.h
+ (Late::visit): Likewise.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Make sure to return early after a resolution
+ error, improve the resolution error message, fix a typo, handle
+ ambiguous resolutions, and remove an old comment.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-ast-resolve-expr.cc
+ (ResolveExpr::visit): Modify error message.
+ * resolve/rust-ast-resolve-implitem.h
+ (ResolveToplevelImplItem::visit): Likewise.
+ (ResolveTopLevelTraitItems::visit): Likewise.
+ (ResolveToplevelExternItem::visit): Likewise.
+ * resolve/rust-ast-resolve-stmt.cc
+ (ResolveStmt::visit): Likewise.
+ * resolve/rust-ast-resolve-stmt.h
+ (ResolveStmt::visit): Likewise.
+ * resolve/rust-ast-resolve-toplevel.h
+ (ResolveTopLevel::visit): Likewise.
+ * resolve/rust-ast-resolve-type.h
+ (ResolveGenericParams::visit): Likewise.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast-visitor.cc
+ (DefaultASTVisitor::visit): Make sure to always visit the struct
+ name.
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Avoid visiting the struct name twice.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-derive-clone.cc
+ (DeriveClone::clone_impl): Avoid using the same node id multiple
+ times.
+ (DeriveClone::clone_enum_identifier): Likewise.
+ (DeriveClone::clone_enum_tuple): Likewise.
+ * expand/rust-derive-copy.cc
+ (DeriveCopy::copy_impl): Likewise.
+ * resolve/rust-ast-resolve-item.cc
+ (flatten_list): Likewise.
+ * resolve/rust-ast-resolve-path.cc
+ (ResolvePath::resolve_path): Prevent reinsertion of resolutions.
+ * resolve/rust-ast-resolve-type.cc
+ (ResolveRelativeTypePath::go): Likewise.
+ * typecheck/rust-hir-type-check-expr.cc
+ (TypeCheckExpr::resolve_fn_trait_call): Likewise.
+ * resolve/rust-name-resolver.cc
+ (Resolver::insert_resolved_name): Catch multiple resolution
+ insertions.
+ (Resolver::insert_resolved_type): Likewise.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-ast-resolve-path.cc
+ (ResolvePath::resolve_path): Adjust the error message for a lower
+ self segment in the middle of a path.
+ * resolve/rust-ast-resolve-type.cc
+ (ResolveRelativeTypePath::go): Likewise.
+
+2025-03-24 Ryutaro Okada <1015ryu88@gmail.com>
+
+ * typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
+ emit an error for type or const parameters on foreign items
+
+2025-03-24 Liam Naddell <liamnprg@gmail.com>
+
+ * resolve/rust-forever-stack.h (ForeverStack): Add a dedicated prelude node for
+ the Language prelude
+ * resolve/rust-forever-stack.hxx (ForeverStack): Add support code for the
+ prelude node
+ * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Move
+ language prelude builtins to the prelude context
+ * resolve/rust-name-resolution-context.cc
+ (NameResolutionContext::scoped): Add code for handling
+ the prelude corner case
+ * resolve/rust-rib.h (Rib::Kind): Add a special Prelude rib type
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-forever-stack.hxx: Fix the id comparison.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-forever-stack.hxx: Insert a new segment with the crate's
+ name as canonical's path prefix.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * util/rust-hir-map.cc (Mappings::lookup_crate_num): Add function to
+ retrieve crate number from it's node id.
+ (Mappings::node_is_crate): change function with call to
+ lookup_crate_num to avoid looping through all crates.
+ (Mappings::insert_ast_crate): Populate node id to crate number map.
+ * util/rust-hir-map.h: Change function prototype.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-finalize-imports-2.0.cc (FinalizeImports::FinalizeImports):
+ Remove constructor.
+ (FinalizeImports::go): Remove function.
+ (FinalizeImports::visit): Likewise.
+ * resolve/rust-finalize-imports-2.0.h (class FinalizeImports): Remove
+ FinalizeImports class.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-early-name-resolver-2.0.cc (Early::Early): Move the
+ top level visitor from the function scope to attributes.
+ (Early::go): Remove top level visitor creation and adapt calling code.
+ Remove call to mapping resolution and import finalization.
+ (Early::finalize_simple_import): Move the finalization from it's
+ visitor.
+ (Early::finalize_glob_import): Likewise.
+ (Early::finalize_rebind_import): Likewise.
+ (Early::visit): Add mapping resolution and finalization in
+ UseDeclaration visitor function.
+ * resolve/rust-finalize-imports-2.0.cc (finalize_simple_import): Move
+ function.
+ (finalize_glob_import): Likewise.
+ (finalize_rebind_import): Likewise.
+ (FinalizeImports::visit): Remove call to finalizers.
+ * resolve/rust-early-name-resolver-2.0.h (class Early): Add top level
+ attribute.
+ * resolve/rust-finalize-imports-2.0.h: Add function prototypes.
+ * resolve/rust-toplevel-name-resolver-2.0.h: Change getter return type
+ to reference.
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-trait-resolve.cc (TraitResolver::ResolveHirItem): new helper
+ * typecheck/rust-hir-trait-resolve.h: add helper prototype
+ * typecheck/rust-type-util.cc (query_type): add debug
+ * typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::scan): check for recursion
+ * typecheck/rust-tyty.cc (VariantDef::is_equal): fix is equal check
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): track DefId of origin
+ * typecheck/rust-tyty.cc (BaseType::monomorphized_clone): likewise
+ (ADTType::ADTType): likewise
+ (ADTType::get_id): likewise
+ (ADTType::clone): likewise
+ * typecheck/rust-tyty.h: likewise
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-resolve-path.cc (ResolvePathRef::Compile): remove visitor
+ (ResolvePathRef::ResolvePathRef): likewise
+ (ResolvePathRef::visit): likewise
+ * backend/rust-compile-resolve-path.h (class ResolvePathRef): likewise
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-compile-intrinsic.cc
+ (assume_handler): Fix copy/paste error.
+ * typecheck/rust-hir-type-check-pattern.cc
+ (TypeCheckPattern::visit): Fix spelling mistake.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-rib.cc (Rib::Definition::to_string): Add enum variant
+ status.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-forever-stack.h: Add new function to insert enum
+ variants and add argument to resolver's get function to explicitely
+ skip enum variants.
+ * resolve/rust-forever-stack.hxx: Update function
+ definitions.
+ * resolve/rust-name-resolution-context.cc (NameResolutionContext::insert_variant):
+ Add function to insert enum variants.
+ * resolve/rust-name-resolution-context.h: Add function's prototype.
+ * resolve/rust-rib.cc (Rib::Definition::Definition): Add new boolean to
+ hint at enum variant provenance.
+ (Rib::Definition::is_variant): New getter for variant status.
+ (Rib::Definition::Shadowable): Update constructor to opt out of enum
+ variants.
+ (Rib::Definition::Globbed): Likewise.
+ (Rib::Definition::NonShadowable): Change constructor to forward enum
+ variant provenance status.
+ * resolve/rust-rib.h: Update function prototypes.
+ * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::insert_enum_variant_or_error_out):
+ Add function to insert enum variants in the name resolver.
+ (TopLevel::visit): Update several enum variant's visitor function
+ with the new enum variant name resolving code.
+ * resolve/rust-toplevel-name-resolver-2.0.h: Update function
+ prototypes.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-forever-stack.hxx: Output rib kind.
+ * resolve/rust-rib.h: Add function to get string representation from
+ a rib kind.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-forever-stack.h
+ (ForeverStack::ForeverStack): Set the node id of the root node
+ to that of the current crate.
+ * resolve/rust-forever-stack.hxx
+ (ForeverStack::find_starting_point): Use the node id of the root
+ node during resolution of crate segments.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-macro-expand.cc: Use new SubstituteCtx API.
+ * expand/rust-macro-expand.h: Likewise.
+ * expand/rust-macro-substitute-ctx.cc: Implement proper expansion of $crate.
+ * expand/rust-macro-substitute-ctx.h: Adapt APIs to take macro definition when
+ substituting.
+ * util/rust-hir-map.cc (Mappings::insert_macro_def): Store crate information when
+ inserting macro definition in mappings.
+ (Mappings::lookup_macro_def_crate): New.
+ * util/rust-hir-map.h: Adapt mappings to store crate in which macros were defined.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Call DefaultResolver::visit earlier, in order to
+ ensure it is called even if Late::visit returns early.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * util/rust-edition.cc: New file.
+ * util/rust-edition.h: New file.
+ * Make-lang.in: Add rust-edition.o to the object list.
+ * ast/rust-pattern.cc: Remove inclusion of
+ rust-session-manager.h.
+ * expand/rust-macro-expand.cc: Likewise.
+ * expand/rust-macro-builtins-helpers.h: Likewise.
+ * expand/rust-macro-builtins-include.cc: Include
+ rust-session-manager.h.
+ * expand/rust-macro-builtins-utility.cc: Likewise.
+ * lex/rust-lex.cc: Include rust-edition.h instead of
+ rust-session-manager.h.
+ (Lexer::classify_keyword): Use get_rust_edition instead of
+ Session and CompileOptions.
+ * parse/rust-parse-impl.h: Include rust-edition.h instead of
+ rust-session-manager.h.
+ (Parser::parse_async_item): Use get_rust_edition instead of
+ Session and CompileOptions.
+ * checks/errors/rust-feature.h: Include rust-edition.h instead
+ of rust-session-manager.h.
+ (class Feature): Use Rust::Edition instead of
+ Rust::CompileOptions::Edition.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust-session-manager.cc (Session::compile_crate): Call DesugarQuestionMark::go().
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/rust-ast-lower-base.cc: Adapt functions for ErrorPropagationExpr and MacroInvocation.
+ * hir/rust-ast-lower-base.h: Mark them as final.
+ * hir/rust-ast-lower-expr.cc: Remove previous definition for those overrides.
+ * hir/rust-ast-lower-expr.h: Likewise.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * Make-lang.in: Compile it.
+ * ast/rust-desugar-question-mark.cc: New file.
+ * ast/rust-desugar-question-mark.h: New file.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-early-name-resolver-2.0.cc
+ (Early::visit): Adjust error produced when macro resolution
+ fails.
+ * resolve/rust-early-name-resolver.cc
+ (EarlyNameResolver::visit): Likewise.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-forever-stack.hxx
+ (ForeverStack::find_starting_point): Stop when hitting a lang
+ item segment.
+ (ForeverStack::resolve_segments): Resolve lang item segments.
+ (ForeverStacl::resolve_path): Handle single segment lang item
+ paths and add comment.
+ * util/rust-unwrap-segment.cc
+ (unwrap_segment_get_lang_item): Add.
+ * util/rust-unwrap-segment.h
+ (unwrap_segment_get_lang_item): Add.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-expand-visitor.cc (ExpandVisitor::visit): Correctly visit the generic args
+ of a generic type path segment.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-early-name-resolver.cc: Remove definitions.
+ * resolve/rust-early-name-resolver.h: Remove declarations.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Add base implementation
+ for visitor.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-early-name-resolver-2.0.cc:
+ Include rust-attribute-values.h.
+ (Early::visit): If a module has a macro_use attribute, avoid
+ pushing a new textual macro scope.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-ast-resolve-type.cc
+ (ResolveRelativeTypePath::go): Adjust error message to match
+ the 2.0 name resolver.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/rust-hir-dump.cc: Check unique_ptr members are present before
+ visiting them.
+ * hir/tree/rust-hir-path.h: Add `has_{type, trait}` methods to
+ QualifiedPathInType.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * Make-lang.in: Compile it.
+ * expand/rust-derive.cc (DeriveVisitor::derive): Call it.
+ * expand/rust-derive-hash.cc: New file.
+ * expand/rust-derive-hash.h: New file.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-debug.cc (ptrify): Remove function.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.cc (Builder::statementify): New.
+ (Builder::function): Add generic params optional argument.
+ (Builder::path_in_expression): Add opening_scope_resolution optional argument.
+ (Builder::block): Add function for creating empty blocks.
+ (Builder::generic_type_param): New.
+ * ast/rust-ast-builder.h (ptrify): New.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast.h
+ (SingleASTNode::take_trait_item): Remove.
+ (SingleASTNode::take_impl_item): Remove.
+ (SingleASTNode::take_trait_impl_item): Remove.
+ * expand/rust-expand-visitor.cc
+ (ExpandVisitor::visit): Replace calls to aforementioned
+ functions with calls to SingleASTNode::take_assoc_item.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * expand/rust-expand-visitor.cc
+ (ExpandVisitor::visit): Override DefaultASTVisitor in order to
+ expand a module's items, rather than directly visit them.
+ * expand/rust-expand-visitor.h
+ (ExpandVisitor::visit): Add override.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-path.h
+ (PathInExpression::get_pattern_node_id): Remove.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-eq.cc: Copy `Eq` typepath.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-eq.cc: Adapt functions to return two generated impls.
+ * expand/rust-derive-eq.h: Likewise.
+ * expand/rust-derive.cc (DeriveVisitor::derive): Likewise.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-partial-eq.cc: Adapt signatures to generate two impls.
+ * expand/rust-derive-partial-eq.h: Likewise.
+ * expand/rust-derive.cc (DeriveVisitor::derive): Adapt to multiple item generation.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive.cc (DeriveVisitor::derive): Return a vector of items.
+ * expand/rust-derive.h: Change return type.
+ * expand/rust-expand-visitor.cc: Insert all generated items into the AST.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-partial-eq.cc: New file.
+ * expand/rust-derive-partial-eq.h: New file.
+ * expand/rust-derive.cc (DeriveVisitor::derive): Call them.
+ * Make-lang.in: Compile them.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-clone.cc: Cleanup implementation, avoid repetitions.
+ * expand/rust-derive-clone.h: Likewise.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.cc (Builder::literal_bool): New method.
+ (Builder::comparison_expr): Likewise.
+ (Builder::boolean_operation): Likewise.
+ * ast/rust-ast-builder.h: Declare them.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.cc (Builder::block): Change return type.
+ (Builder::loop): Use new APIs.
+ * ast/rust-ast-builder.h: Change return type of block functions.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive.cc (DeriveVisitor::derive): Call into DeriveEq.
+ * expand/rust-derive-eq.cc: New file.
+ * expand/rust-derive-eq.h: New file.
+ * Make-lang.in: Compile them.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): When visiting a PathInExpression instance, call
+ into DefaultResolver::visit, ensuring generic arguments are
+ visited.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-toplevel-name-resolver-2.0.cc
+ (TopLevel::visit): When visiting an external crate declaration,
+ handle failed crate name lookups. This can happen when
+ Session::load_extern_crate fails to load a crate during the
+ CfgStrip phase.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-forever-stack.hxx
+ (ForeverStack::resolve_segments): Add comments explaining
+ the behaviour of a while loop.
+
+2025-03-24 Benjamin Thos <benjamin.thos@epita.fr>
+
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+ Add check on if-expr.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-forever-stack.hxx
+ (ForeverStack::find_starting_point): Be more careful about
+ applying ForeverStack::find_closest_module.
+ (ForeverStack::resolve_segments): Allow traversal into parent
+ nodes when not in a module node or root node, which
+ ForeverStack::find_starting_point previously made moot through
+ use of ForeverStack::find_closest_module. Also, when a child
+ node lookup fails when resolving in the type namespace, attempt
+ a rib lookup as a fallback.
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Avoid throwing a resolution error for type paths
+ when the typechecker may be able to finish the resolution. Also,
+ throw an error when a resolution is ambiguous.
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-type.cc (TyTyResolveCompile::visit): new tyty::OpaqueType
+ * backend/rust-compile-type.h: likewise
+ * checks/errors/borrowck/rust-bir-fact-collector.h: likewise
+ * checks/errors/borrowck/rust-bir-place.h: likewise
+ * checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::check_base_type_privacy):
+ likewise
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
+ * typecheck/rust-hir-type-check-type.h: likewise
+ * typecheck/rust-substitution-mapper.cc (SubstMapperInternal::visit): likewise
+ * typecheck/rust-substitution-mapper.h: likewise
+ * typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::assemble_sized_builtin): likewise
+ * typecheck/rust-tyty-call.h: likewise
+ * typecheck/rust-tyty-cmp.h (class OpaqueCmp): likewise
+ * typecheck/rust-tyty-variance-analysis-private.h: likewise
+ * typecheck/rust-tyty-visitor.h: likewise
+ * typecheck/rust-tyty.cc (TypeKindFormat::to_string): likewise
+ (BaseType::is_unit): likewise
+ (BaseType::destructure): likewise
+ (BaseType::has_substitutions_defined): likewise
+ (BaseType::needs_generic_substitutions): likewise
+ (OpaqueType::OpaqueType): likewise
+ (OpaqueType::can_resolve): likewise
+ (OpaqueType::accept_vis): likewise
+ (OpaqueType::as_string): likewise
+ (OpaqueType::get_name): likewise
+ (OpaqueType::can_eq): likewise
+ (OpaqueType::clone): likewise
+ (OpaqueType::resolve): likewise
+ (OpaqueType::is_equal): likewise
+ (OpaqueType::handle_substitions): likewise
+ * typecheck/rust-tyty.h (enum TypeKind): likewise
+ (class OpaqueType): likewise
+ * typecheck/rust-unify.cc (UnifyRules::go): likewise
+ (UnifyRules::expect_inference_variable): likewise
+ (UnifyRules::expect_adt): likewise
+ (UnifyRules::expect_str): likewise
+ (UnifyRules::expect_reference): likewise
+ (UnifyRules::expect_pointer): likewise
+ (UnifyRules::expect_param): likewise
+ (UnifyRules::expect_array): likewise
+ (UnifyRules::expect_slice): likewise
+ (UnifyRules::expect_fndef): likewise
+ (UnifyRules::expect_fnptr): likewise
+ (UnifyRules::expect_tuple): likewise
+ (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
+ (UnifyRules::expect_placeholder): likewise
+ (UnifyRules::expect_projection): likewise
+ (UnifyRules::expect_dyn): likewise
+ (UnifyRules::expect_opaque): likewise
+ * typecheck/rust-unify.h: likewise
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * checks/errors/borrowck/rust-bir-builder-struct.h: remove HIR::ImplTraitTypeOneBound
+ * checks/errors/borrowck/rust-function-collector.h: likewise
+ * checks/errors/rust-const-checker.cc (ConstChecker::visit): likewise
+ * checks/errors/rust-const-checker.h: likewise
+ * checks/errors/rust-hir-pattern-analysis.cc (PatternChecker::visit): likewise
+ * checks/errors/rust-hir-pattern-analysis.h: likewise
+ * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): likewise
+ * checks/errors/rust-unsafe-checker.h: likewise
+ * hir/rust-ast-lower-type.cc (ASTLoweringType::translate): likewise
+ (ASTLoweringType::visit): likewise
+ * hir/rust-ast-lower-type.h: cleanup
+ * hir/rust-hir-dump.cc (Dump::visit): remove ImplTraitTypeOneBound
+ * hir/rust-hir-dump.h: likewise
+ * hir/tree/rust-hir-full-decls.h (class ImplTraitTypeOneBound): likewise
+ * hir/tree/rust-hir-type.h (class ImplTraitTypeOneBound): likewise
+ * hir/tree/rust-hir-visitor.h: likewise
+ * hir/tree/rust-hir.cc (ImplTraitTypeOneBound::as_string): likewise
+ (ImplTraitTypeOneBound::accept_vis): likewise
+ * resolve/rust-ast-resolve-type.cc (ResolveType::go): likewise
+ (ResolveType::visit): likewise
+ * resolve/rust-ast-resolve-type.h: add name resolution
+ * typecheck/rust-hir-type-check-type.h: likewise
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): improve error diag
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_self): add location mappings
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path): check for self
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit): use new api
+ (ResolveItem::visit): likewise
+ (ResolveExternItem::visit): likewise
+ * resolve/rust-ast-resolve-stmt.h: likewise
+ * resolve/rust-ast-resolve-type.h (class ResolveGenericParam): remove
+ (class ResolveGenericParams): added new api
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-base.cc (walk_types_to_constrain): recursive walker
+ * typecheck/rust-tyty.cc (BaseType::get_subst_argument_mappings): new helper
+ * typecheck/rust-tyty.h: prototype
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-base.h: add flag
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
+ * typecheck/rust-tyty-bounds.cc: new diagnostic
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): remove name resolution info
+ (TypeCheckType::resolve_root_path): likewise
+ * typecheck/rust-hir-type-check-type.h: likewise
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-type.cc (TyTyResolveCompile::get_implicit_enumeral_node_type):
+ use repr
+ (TyTyResolveCompile::visit): update prototype
+ * backend/rust-compile-type.h: likewise
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-intrinsic.cc (variant_count_handler): new intrinsic
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-intrinsic.cc (discriminant_value_handler): new handler
+ * typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item): track the defid
+ * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options): default isize
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): special case CallExpr
+ * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): parse repr options enum
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): remove bad diagnostic
+ * typecheck/rust-tyty.cc (PlaceholderType::PlaceholderType): track defid
+ (PlaceholderType::clone): likewise
+ (PlaceholderType::get_def_id): likeiwse
+ * typecheck/rust-tyty.h: placeholder track defid
+ * util/rust-lang-item.cc: add new lang items
+ * util/rust-lang-item.h: likewise
+
+2025-03-24 GS-GOAT <86884129+GS-GOAT@users.noreply.github.com>
+
+ * typecheck/rust-autoderef.cc
+ (insert_implicit_type): Update single-parameter call to
+ pass explicit HirId.
+ * typecheck/rust-hir-type-check-expr.cc: Same.
+ * typecheck/rust-hir-type-check-pattern.cc: Same.
+ * typecheck/rust-hir-type-check.h: Removed call
+ to the duplicate interface.
+ * typecheck/rust-typecheck-context.cc
+ (TypeCheckContext::insert_implicit_type): Removed the
+ interface with no HirId field.
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty-subst.cc (SubstitutionRef::monomorphize): remove diagnostic
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * rust-session-manager.cc (Session::compile_crate): Call the visitor.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-desugar-for-loops.cc: New file.
+ * ast/rust-desugar-for-loops.h: New file.
+ * hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Make lowering of for-loops an
+ unreachable.
+ * Make-lang.in: Compile it.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.h: Mark all arguments as &&.
+ * ast/rust-ast-builder.cc (Builder::let): Likewise.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * util/rust-unwrap-segment.cc: New file.
+ * util/rust-unwrap-segment.h: New file.
+ * Make-lang.in: Add rust-unwrap-segment.o to the object list.
+ * resolve/rust-forever-stack.hxx: Include rust-unwrap-segment.h.
+ (ForeverStack::find_starting_point): Use unwrap_type_segment.
+ (ForeverStack::resolve_segments): Likewise.
+ (ForeverStack::resolve_path): Likewise.
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Resolve type paths using
+ NameResolutionContext::resolve_path.
+ * resolve/rust-name-resolution-context.h
+ (NameResolutionContext::resolve_path): Use
+ unwrap_segment_node_id.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-macro-builtins-asm.cc (strip_double_quotes): Special case empty
+ strings ("\"\"").
+ (parse_reg_operand): Remove use of the `struct` keyword.
+ (parse_reg_operand_in): Likewise.
+ (parse_reg_operand_out): Likewise.
+ * expand/rust-macro-builtins.cc: Add llvm_asm! built-in macro as an alias to asm!.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Add
+ warning about current code.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive.cc (DeriveVisitor::derive): Call DeriveDefault.
+ * expand/rust-derive-default.cc: New file.
+ * expand/rust-derive-default.h: New file.
+ * Make-lang.in: Compile them.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.cc (Builder::qualified_path_in_expression): New.
+ (Builder::function): Change the return type.
+ * ast/rust-ast-builder.h: Declare qualified_path_in_expression functions.
+ * expand/rust-derive-debug.cc (DeriveDebug::stub_debug_fn): Adapt to new APIs.
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::visit): remove receiver interface
+ * backend/rust-compile-item.cc (CompileItem::visit): monomorphize trait to impl item
+ * backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): use trait item Self
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): remove receiver interface
+ (TypeCheckExpr::resolve_fn_trait_call): 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
+ * typecheck/rust-hir-type-check.h: likewise
+ * typecheck/rust-typecheck-context.cc (TypeCheckContext::insert_receiver): remove
+ (TypeCheckContext::lookup_receiver): remove
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-substitution-mapper.cc (SubstMapperInternal::visit):
+ continue on for trait item mode.
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::check_base_type_privacy):
+ Add guard for placeholder
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-type-util.cc (coercion_site): allow inference vars
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-path-probe.cc (PathProbeType::visit): remove assertion
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty.cc (ClosureType::setup_fn_once_output): add checks for lang items
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-early-name-resolver-2.0.cc
+ (Early::resolve_glob_import): Use
+ NameResolutionContext::resolve_path instead of
+ ForeverStack::resolve_path.
+ (Early::visit): Likewise.
+ (Early::visit_attributes): Likewise.
+ * resolve/rust-early-name-resolver-2.0.h
+ (Early::resolve_path_in_all_ns): Likewise.
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Likewise, insert segment resolutions not
+ handled by NameResolutionContext::resolve_path, and avoid throwing
+ an error when path resolution could be finished by the typechecker.
+ * resolve/rust-name-resolution-context.h
+ (NameResolutionContext::resolve_path): Add.
+ * typecheck/rust-hir-type-check-path.cc
+ (TypeCheckExpr::resolve_root_path): Use segment node ids instead
+ of the path node id to look up segment resolutions when using
+ the 2.0 resolver, as is done with the 1.0 resolver.
+ * typecheck/rust-hir-type-check-type.cc
+ (TypeCheckType::resolve_root_path): Likewise.
+ * resolve/rust-forever-stack.h
+ (ForeverStack::resolve_path): Add callback parameter for
+ inserting segment resolutions.
+ (ForeverStack::find_starting_point): Likewise.
+ (ForeverStack::resolve_segments): Likewise.
+ * resolve/rust-forever-stack.hxx
+ (ForeverStack::find_starting_point): Likewise.
+ (ForeverStack::resolve_segments): Likewise.
+ (ForeverStack::resolve_path): Likewise and avoid resolving
+ inside TraitOrImpl ribs.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-compile-expr.cc
+ (CompileExpr::generate_closure_function): Take
+ NameResolutionContext by reference instead of by value.
+ * backend/rust-compile-item.cc
+ (CompileItem::visit): Likewise.
+ * backend/rust-compile-resolve-path.cc
+ (ResolvePathRef::resolve): Likewise.
+ * checks/lints/rust-lint-marklive.cc
+ (MarkLive::find_ref_node_id): Likewise.
+ * typecheck/rust-hir-type-check-enumitem.cc
+ (TypeCheckEnumItem::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-path.cc
+ (TypeCheckExpr::resolve_root_path): Likewise.
+ * typecheck/rust-hir-type-check-type.cc
+ (TypeCheckType::resolve_root_path): Likewise.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.h: Declare it.
+ * ast/rust-ast-builder.cc (Builder::return_expr): Define it.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-debug.cc: New file.
+ * expand/rust-derive-debug.h: New file.
+ * Make-lang.in: Compile them.
+ * expand/rust-derive.cc (DeriveVisitor::derive): Call into DeriveDebug.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-clone.cc: Cleanup using DeriveVisitor::setup_impl_generics.
+ * expand/rust-derive-copy.cc: Likewise.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive.cc (DeriveVisitor::setup_impl_generics): New method.
+ * expand/rust-derive.h: Declare it, define DeriveVisitor::ImplGenerics struct.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.cc: New methods.
+ * ast/rust-ast-builder.h: Declare them.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.cc (Builder::type_path): New functions.
+ * ast/rust-ast-builder.h: Declare them.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * checks/lints/rust-lint-scan-deadcode.h: Check if the field name starts with an
+ underscore before warning.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-lang-item.cc: New items.
+ * util/rust-lang-item.h: Likewise.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Special case lang item paths.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-forever-stack.hxx
+ (ForeverStack::dfs_rib): Fix const implementation.
+
+2025-03-24 Liam Naddell <liamnprg@gmail.com>
+
+ * expand/rust-macro-builtins-utility.cc: Add macro expansion for
+ option_env with eager expansion
+ * expand/rust-macro-builtins.cc: Add option_env to builtin list
+ * expand/rust-macro-builtins.h: Add option_env handler to header
+ file
+ * resolve/rust-late-name-resolver-2.0.cc: Prevent NR2.0 from
+ recursing into lang-item segments
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast.h: Add new Expr::Kinds.
+ * ast/rust-expr.h: Implement missing get_expr_kind(), Add get_function_expr_ptr()
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-pattern.cc (CompilePatternBindings::visit): make recursive
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): handle ref flag
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-lang-item.h: Declare it.
+ * util/rust-lang-item.cc: Use it.
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::visit): disable overflow checks
+ * lang.opt: new flag
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-resolve-path.cc (ResolvePathRef::resolve): Do
+ not use query system for unit struct but compile it's constructor
+ instead.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_path_to_trait):
+ Query all namespaces.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-forever-stack.h: Make debug functions const.
+ * resolve/rust-forever-stack.hxx: Likewise.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit):
+ Clone expr instead of taking it.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-item.h: Remove query mode.
+ * backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile):
+ Likewise.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-ast-resolve-toplevel.h: Add struct to name namespace.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-name-resolver.h: Add new degug dump for old name
+ resolver.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Change label
+ push function from type rib to label rib.
+ * resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
+ Likewise.
+ (ResolveItem::visit): Likewise.
+ (ResolveExternItem::visit): Likewise.
+ * resolve/rust-ast-resolve-stmt.h: Likewise.
+ * resolve/rust-ast-resolve.cc (NameResolution::go): Likewise.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * backend/rust-compile-resolve-path.cc (ResolvePathRef::visit): Call into
+ resolve_path_like instead.
+ (ResolvePathRef::resolve_path_like): New.
+ (ResolvePathRef::resolve): Call into resolve_with_node_id.
+ * backend/rust-compile-resolve-path.h: Declare new functions and document them.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-path.h: New function.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * checks/lints/rust-lint-marklive.cc (MarkLive::visit): Adapt to lang items.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * backend/rust-compile-resolve-path.cc (ResolvePathRef::visit): Adapt visitor to lang item
+ HIR::PathInExpressions.
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): Likewise.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/tree/rust-hir-path.h: Adapt PathPattern to accept lang-item paths.
+ * hir/tree/rust-hir-path.cc: Assert we are dealing with a segmented path, create lang-item
+ constructors.
+ * hir/tree/rust-hir.cc (PathPattern::convert_to_simple_path): Likewise.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Adapt visitor to lang item
+ PathInExpressions.
+ * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
+ * expand/rust-cfg-strip.cc (CfgStrip::visit): Likewise.
+ * expand/rust-expand-visitor.cc (ExpandVisitor::visit): Likewise.
+ * hir/rust-ast-lower.cc (ASTLoweringExprWithBlock::visit): Likewise.
+ (ASTLowerPathInExpression::visit): Likewise.
+ * resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Likewise.
+ * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Likewise.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-lang-item.cc (LangItem::IsEnumVariant): New function.
+ * util/rust-lang-item.h: Declare it.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-hir-map.cc (Mappings::get_lang_item_node): Better formatting when a lang
+ item does not exist when it should.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-collect-lang-items.h: Declare visitor.
+ * ast/rust-collect-lang-items.cc (CollectLangItems::visit): New.
+
+2025-03-24 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): add guard
+
+2025-03-24 Dylan Gardner <dylan@gardnermedia.com>
+
+ * rust-session-manager.cc (Session::handle_crate_name): Remove
+ crate name inference
+ (Session::compile_crate): Add crate name inference and error if
+ inferred name is empty. Remove CompileOptions::get_instance ()
+ that returned a local copy of the options. Rename
+ crate_name_changed to crate_name_found to match semantics.
+ (rust_crate_name_validation_test): Test inferring ".rs" name
+ * rust-session-manager.h: Modify handle_crate_name definition to
+ include filename.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add
+ ClosureExprInnerTyped visit implementation.
+ (add_captures): Add a function to avoid code duplication.
+ * resolve/rust-late-name-resolver-2.0.h: Add function prototype.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add environment
+ collection.
+ * resolve/rust-late-name-resolver-2.0.h: Add function prototype.
+ * resolve/rust-name-resolver.cc (Resolver::get_captures): Add assertion
+ to prevent NR2 usage with nr1 capture functions.
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Use
+ nr2 captures.
+ * util/rust-hir-map.cc (Mappings::add_capture): Add function to
+ register capture for a given closure.
+ (Mappings::lookup_captures): Add a function to lookup all captures
+ available for a given closure.
+ * util/rust-hir-map.h: Add function prototypes.
+
+2025-03-24 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Error out if a type path has multiple segments,
+ as we currently ignore every segment except the last.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * backend/rust-compile-expr.cc (check_match_scrutinee): Allow anything to be used as a
+ match scrutinee, not just ADTs.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-lang-item.h: Add handling for Result::Ok, Result::Err, Try, Try::into_result,
+ Try::from_ok, Try::from_err.
+ * util/rust-lang-item.cc: Likewise.
+
+2025-03-24 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add "rust"
+ identifier detection akin to nr1.
+ (funny_ice_finalizer): Copy ICE finalizer from nr1.
+ * resolve/rust-late-name-resolver-2.0.h: Add funny_error member
+ context state.
+ * Make-lang.in: Add new translation unit for new ice finalizer.
+ * resolve/rust-ast-resolve-expr.cc: Move ice
+ finalizer to it's own file.
+ * resolve/rust-ice-finalizer.cc: New file.
+ * resolve/rust-ice-finalizer.h: New file.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-copy.cc: Always add an extra Copy bound on generic Copy impls.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-clone.cc (DeriveClone::visit_union): Use lang items for Copy and
+ Sized bounds.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-clone.cc: Add extra bound when deriving generic Clone
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.cc (Builder::new_type_param): Add optional extra trait bounds.
+ * ast/rust-ast-builder.h: Likewise.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/rust-hir-dump.cc (Dump::do_typepathsegment): Add handling for lang items.
+
+2025-03-24 lishin <lishin1008@gmail.com>
+
+ * util/rust-lang-item.cc: Add receiver to map.
+ * util/rust-lang-item.h: Define LangItem::Kind::RECEIVER.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Register auto traits in mappings.
+ * util/rust-hir-map.cc (Mappings::insert_auto_trait): New.
+ (Mappings::get_auto_traits): New.
+ * util/rust-hir-map.h: Declare them.
+ * typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::scan): Add auto trait bounds when
+ scanning.
+
+2025-03-24 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::add_trait_bound): New function.
+ * typecheck/rust-hir-type-bounds.h: Declare it.
+ (TypeBoundsProbe::assemble_builtin_candidate): Call into add_trait_bound.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Improve formatting.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-clone.cc (DeriveClone::clone_enum_struct): New function for deriving
+ enum struct variants.
+ (DeriveClone::visit_enum): Call into the new function.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-clone.cc (DeriveClone::variant_match_path): New function.
+ (DeriveClone::clone_enum_identifier): Rename.
+ (DeriveClone::clone_enum_tuple): New function.
+ (DeriveClone::visit_enum): Visit tuple variants properly.
+ * expand/rust-derive-clone.h: Declare new functions.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.cc: Add new methods for constructing struct exprs.
+ * ast/rust-ast-builder.h: Mention how to build tuple expressions.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-clone.cc: Clone enum identifier variants properly
+ * expand/rust-derive-clone.h: Declare new functions used.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-clone.cc (DeriveClone::clone_call): Mention using `clone_fn`
+ lang item in the future.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-clone.cc (DeriveClone::visit_union): Create a lang item path
+ instead of a regular path.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.cc: New functions.
+ * ast/rust-ast-builder.h: Declare them.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-copy.cc: Use lang item path.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-clone.cc (DeriveClone::visit_union): Manually generate
+ the struct used for asserting a union implements Copy.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.cc (Builder::struct_struct): New function.
+ * ast/rust-ast-builder.h (vec): New function.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Visit tuple pattern items as
+ separated by commas.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-collector.cc (TokenCollector::visit): Fix collector to better
+ handle lang item type path segments.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-hir-map.cc (Mappings::get_lang_item_node): New.
+ * util/rust-hir-map.h: New function.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-lang-item.cc (LangItem::PrettyString): New.
+ * util/rust-lang-item.h: New.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-collect-lang-items.cc (CollectLangItems::visit): New.
+ * ast/rust-collect-lang-items.h: New.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/rust-ast-lower-type.cc (ASTLowerTypePath::visit): Adapt code to lang item
+ type path segments.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path): Adapt
+ code to handle lang item type paths.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-path.h: Rework how lang item paths are represented.
+ * ast/rust-path.cc: Likewise.
+ * ast/rust-item.h: Likewise.
+ * ast/rust-ast.cc: Likewise.
+ * ast/rust-ast-collector.cc: Adapt to new lang item path system.
+ * ast/rust-ast-collector.h: Likewise.
+ * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
+ * ast/rust-ast-visitor.h: Likewise.
+ * expand/rust-derive-copy.cc: Likewise.
+ * expand/rust-derive.h: Likewise.
+ * hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
+ * hir/rust-ast-lower-base.h: Likewise.
+ * hir/rust-ast-lower-type.cc (ASTLowerTypePath::translate): Likewise.
+ (ASTLowerTypePath::visit): Likewise.
+ * hir/rust-ast-lower-type.h: Likewise.
+ * resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
+ * resolve/rust-ast-resolve-base.h: Likewise.
+ * resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Likewise.
+ * resolve/rust-ast-resolve-type.h: Likewise.
+ * resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): Likewise.
+ * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Likewise.
+ * resolve/rust-late-name-resolver-2.0.h: Likewise.
+ * hir/tree/rust-hir-path.cc (TypePathSegment::TypePathSegment): Likewise.
+ (TypePathSegmentGeneric::TypePathSegmentGeneric): Likewise.
+ * hir/tree/rust-hir-path.h: Likewise.
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path): Likewise.
+ * ast/rust-ast-builder.cc: Likewise.
+ * ast/rust-ast-builder.h: Likewise.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-collect-lang-items.cc (get_lang_item_attr): Show unknown attribute upon error.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-attribute-values.h: Declare new attribute value.
+ * util/rust-attributes.cc: Use it.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast.cc (BlockExpr::normalize_tail_expr): Remove overzealous
+ std::move
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast-collector.cc
+ (TokenCollector::visit): Remove visitor for NamedFunctionParam.
+ * ast/rust-ast-collector.h
+ (TokenCollector::visit): Likewise.
+ * ast/rust-ast-full-decls.h
+ (class NamedFunctionParam): Remove forward declaration.
+ * ast/rust-ast-visitor.cc
+ (DefaultASTVisitor::visit): Remove visitor for
+ NamedFunctionParam.
+ * ast/rust-ast-visitor.h
+ (DefaultASTVisitor::visit): Likewise.
+ * ast/rust-ast.cc
+ (NamedFunctionParam::as_string): Remove.
+ * ast/rust-item.h
+ (class NamedFunctionParam): Remove.
+ (class ExternalFunctionItem): Remove.
+ * parse/rust-parse-impl.h
+ (Parser::parse_named_function_param): Remove.
+ (Parser::parse_named_function_params): Remove.
+ * parse/rust-parse.h
+ (Parser::parse_named_function_param): Remove.
+ (Parser::parse_named_function_params): Remove.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-early-name-resolver-2.0.cc
+ (Early::visit): Resolve the pending eager invocations inside
+ builtin macro invocations.
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): hir lowering
+ * hir/rust-ast-lower-stmt.h: likewise
+ * resolve/rust-ast-resolve-stmt.cc (ResolveStmt::visit): name resolution
+ * resolve/rust-ast-resolve-stmt.h: likewise
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * Make-lang.in: Handle rust-forever-stack.cc.
+ * resolve/rust-forever-stack.h
+ (class ForeverStackStore): Add.
+ * resolve/rust-forever-stack.cc: New file, based on
+ rust-forever-stack.hxx.
+
+2025-03-21 Om Swaroop Nayak <96killerat96@gmail.com>
+
+ * ast/rust-collect-lang-items.cc (get_lang_item_attr): "removed checker fn"
+ * util/rust-attributes.cc (Attributes::is_lang_item): "added fn"
+ * util/rust-attributes.h: "added fn"
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * checks/errors/rust-readonly-check.cc (check_decl): improve mut check
+ (emit_error): helper
+ (check_modify_expr): likewise
+ (readonly_walk_fn): reuse helper
+ (ReadonlyCheck::Lint): cleanup context each run
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast-visitor.cc
+ (DefaultASTVisitor::visit): When visiting a TraitImpl, visit its
+ trait path.
+
+2025-03-21 liushuyu <liushuyu011@gmail.com>
+
+ * backend/rust-compile-intrinsic.cc: add the new `catch_unwind` variant
+ of the `try` intrinsic: this variant can be seen on Rust 1.78+
+ and returns `()` instead of `i32`.
+
+2025-03-21 liushuyu <liushuyu011@gmail.com>
+
+ * backend/rust-compile-intrinsic.cc: add `try` intrinsic handler.
+ * lang.opt: add `-frust-panic` option.
+ * rust-lang.cc: enable exception handler code generation.
+ * rust-session-manager.cc: add getter and setter for panic
+ strategy option.
+ * rust-session-manager.h: Likewise.
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::visit): implement coercion
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): this is an LUB
+ * typecheck/rust-unify.cc (UnifyRules::go): remove unify ! coercion
+
+2025-03-21 Nobel <nobel2073@gmail.com>
+
+ * typecheck/rust-casts.cc (TypeCastRules::cast_rules): Add rule.
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::visit): new layout
+ * backend/rust-compile-pattern.cc (CompilePatternCheckExpr::visit): likewise
+ (CompilePatternBindings::visit): likewise
+ * backend/rust-compile-resolve-path.cc: likewise
+ * backend/rust-compile-type.cc (TyTyResolveCompile::visit): implement new layout
+ * rust-gcc.cc (constructor_expression): get rid of useless assert
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-toplevel-name-resolver-2.0.cc
+ (TopLevel::visit): Insert a definition for Self when visiting
+ InherentImpl and TraitImpl instances.
+ * resolve/rust-toplevel-name-resolver-2.0.h
+ (TopLevel::visit): Add visitors for InherentImpl and TraitImpl.
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * hir/rust-hir-dump.cc (Dump::visit): add null guard
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::visit): handle partial_eq possible call
+ * backend/rust-compile-expr.h: handle case where lang item calls differ from name
+ * hir/tree/rust-hir-expr.cc (OperatorExprMeta::OperatorExprMeta): new helper
+ * hir/tree/rust-hir-expr.h: likewise
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): handle partial_eq
+ (TypeCheckExpr::resolve_operator_overload): likewise
+ * typecheck/rust-hir-type-check-expr.h: likewise
+ * util/rust-lang-item.cc (LangItem::ComparisonToLangItem): map comparison to lang item
+ (LangItem::ComparisonToSegment): likewise
+ * util/rust-lang-item.h: new lang items PartialOrd and Eq
+ * util/rust-operators.h (enum class): likewise
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): check for error
+ * typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): likewise and remove debug error
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-default-resolver.cc
+ (DefaultResolver::visit): Make sure to scope visitation of the
+ children of type definition items.
+ * resolve/rust-default-resolver.h
+ (DefaultResolver::visit): Add overrides for TupleStruct, Union,
+ and TypeAlias.
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Remove override for Enum.
+ * resolve/rust-late-name-resolver-2.0.h
+ (Late::visit): Likewise.
+ * resolve/rust-toplevel-name-resolver-2.0.cc
+ (TopLevel::visit): Rely more on DefaultResolver::visit.
+ * resolve/rust-toplevel-name-resolver-2.0.h
+ (TopLevel::visit): Remove override for BlockExpr.
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * hir/rust-hir-dump.cc (Dump::do_qualifiedpathtype): add guard
+ (Dump::do_traitfunctiondecl): likewise
+ (Dump::visit): likewise
+
+2025-03-21 Prajwal S N <prajwalnadig21@gmail.com>
+
+ * typecheck/rust-hir-type-check.h (class TypeCheckContext): add
+ header file and use StackedContexts for blocks
+ * typecheck/rust-typecheck-context.cc: update methods
+ * typecheck/rust-hir-trait-resolve.cc: refactor function calls
+ * typecheck/rust-hir-type-check-implitem.cc: refactor function calls
+ * typecheck/rust-hir-type-check-type.cc: refactor function calls
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast.h: Add new Kind enums, remove Node class.
+ * ast/rust-builtin-ast-nodes.h: Use new Kind enums.
+ * ast/rust-expr.h (class LoopLabel): Likewise.
+ * ast/rust-item.h: Likewise.
+ * ast/rust-macro.h: Likewise.
+ * ast/rust-path.h: Likewise.
+ * expand/rust-macro-builtins-helpers.cc: Likewise.
+ * expand/rust-macro-builtins-utility.cc (MacroBuiltin::concat_handler): Likewise.
+ (MacroBuiltin::stringify_handler): Likewise.
+ * resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Likewise.
+ * resolve/rust-early-name-resolver.cc: Likewise.
+ * hir/rust-ast-lower.cc (ASTLoweringBlock::visit): Likewise.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-toplevel-name-resolver-2.0.cc
+ (TopLevel::visit): Add visitor for TraitItemType.
+ * resolve/rust-toplevel-name-resolver-2.0.h
+ (TopLevel::visit): Likewise.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-ast-resolve-type.cc (ResolveType::visit): New visitor to handle
+ ParenthesizedType.
+ * resolve/rust-ast-resolve-type.h: Likewise.
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): Likewise.
+ * typecheck/rust-hir-type-check-type.h: Likewise.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/rust-ast-lower-type.cc (ASTLoweringType::visit): Add implementation for
+ ParenthesizedType.
+ * hir/rust-ast-lower-type.h: Declare that new visitor.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast-builder-type.cc: Remove inclusion of
+ rust-make-unique.h.
+ * ast/rust-ast-builder.cc: Likewise.
+ (Builder::array): Use std::make_unique instead of
+ Rust::make_unique.
+ * ast/rust-ast.cc (Attribute::get_traits_to_derive): Likewise.
+ * ast/rust-macro.h: Remove inclusion of rust-make-unique.h.
+ (MacroRulesDefinition::mbe): Use std::make_unique instead of
+ Rust::make_unique.
+ (MacroRulesDefinition::decl_macro): Likewise.
+ * ast/rust-path.h
+ (PathInExpression::PathInExpression): Likewise.
+ (QualifiedPathInExpression::QualifiedPathInExpression):
+ Likewise.
+ * backend/rust-compile-pattern.cc
+ (CompilePatternCheckExpr::visit): Likewise.
+ * expand/rust-derive-copy.cc
+ (DeriveCopy::copy_impl): Likewise.
+ * expand/rust-expand-format-args.cc
+ (expand_format_args): Likewise.
+ * expand/rust-macro-builtins-asm.cc: Remove inclusion of
+ rust-make-unique.h.
+ (parse_asm): Use std::make_unique instead of Rust::make_unique.
+ * hir/rust-ast-lower-expr.cc
+ (ASTLoweringExpr::visit): Likewise.
+ * hir/tree/rust-hir-expr.cc
+ (StructExprStructFields::StructExprStructFields): Likewise.
+ (StructExprStructFields::operator=): Likewise.
+ * hir/tree/rust-hir.cc
+ (TypePath::to_trait_bound): Likewise.
+ * lex/rust-token.h: Remove inclusion of rust-make-unique.h.
+ (Token::Token): Use std::make_unique instead of
+ Rust::make_unique.
+ * metadata/rust-import-archive.cc: Remove inclusion of
+ rust-make-unique.h.
+ (Import::find_archive_export_data): Use std::make_unique instead
+ of Rust::make_unique.
+ * metadata/rust-imports.cc: Remove inclusion of
+ rust-make-unique.h.
+ (Import::find_export_data): Use std::make_unique instead of
+ Rust::make_unique.
+ (Import::find_object_export_data): Likewise.
+ * parse/rust-parse-impl.h: Remove inclusion of
+ rust-make-unique.h.
+ (Parser::parse_function_param): Use std::make_unique instead of
+ Rust::make_unique.
+ (Parser::parse_self_param): Likewise.
+ (Parser::parse_array_expr): Likewise.
+ * typecheck/rust-hir-type-check-enumitem.cc
+ (TypeCheckEnumItem::visit): Likewise.
+ * typecheck/rust-hir-type-check-implitem.cc
+ (TypeCheckTopLevelExternItem::visit): Likewise.
+ (TypeCheckImplItem::visit): Likewise.
+ * typecheck/rust-hir-type-check-type.cc
+ (TypeResolveGenericParam::visit): Likewise.
+ * typecheck/rust-hir-type-check.cc: Remove inclusion of
+ rust-make-unique.h.
+ (TraitItemReference::get_type_from_fn): Use std::make_unique
+ instead of Rust::make_unique.
+ * typecheck/rust-tyty-bounds.cc
+ (TypeCheckBase::get_predicate_from_bound): Likewise.
+ * util/rust-make-unique.h: Removed.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-item.h: Add EnumItem::Kind for differentiating all variants that may be
+ used inside an enum declaration.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-ast-visitor.cc
+ (DefaultASTVisitor::visit): Visit implicit Self parameters of
+ traits.
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Resolve implicit Self parameters of traits.
+ * resolve/rust-late-name-resolver-2.0.h:
+ (Late::visit): Add trait visitor.
+ * resolve/rust-toplevel-name-resolver-2.0.cc
+ (TopLevel::visit): Insert resolutions for Self type parameters
+ as well.
+
+2025-03-21 Liam Naddell <liamnprg@gmail.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc:
+ Change the late name resolver to enter proper lexical scope during typechecking
+ * resolve/rust-late-name-resolver-2.0.h:
+ Add needed prototype to header
+ * resolve/rust-toplevel-name-resolver-2.0.cc:
+ Add generic parameters to enum's scoped RIB to allow for proper name resolution on types.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-builder.cc: Add new functions.
+ * ast/rust-ast-builder.h: Declare them.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-path.h: Add two new constructors.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-collect-lang-items.cc (CollectLangItems::visit): Add visitor for collecting
+ functions that might be lang items.
+ * ast/rust-collect-lang-items.h: Likewise.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-lang-item.h: Add new lang items.
+ * util/rust-lang-item.cc: Likewise.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-lang-item.h: Add Sync marker trait.
+ * util/rust-lang-item.cc: Likewise.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * typecheck/rust-hir-type-check-type.cc: Add TODO note.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-ast-resolve-type.cc (ResolveTypeToCanonicalPath::visit): Resolve additional
+ trait bounds.
+ * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Error out properly on unresolved
+ type-path instead of crashing.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * typecheck/rust-hir-path-probe.cc: Fix typos.
+ * typecheck/rust-hir-path-probe.h: Likewise.
+ * typecheck/rust-hir-type-check-path.cc: Likewise.
+
+2025-03-21 Nobel <nobel2073@gmail.com>
+
+ * typecheck/rust-casts.cc (TypeCastRules::cast_rules): Add rule.
+
+2025-03-21 Sri Ganesh Thota <sriganeshthota12345@gmail.com>
+
+ * ast/rust-item.h: I have changed helper constructor for typepath
+ to be a delegating constructor.
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-fnparam.cc (CompileFnParam::visit): compile tuple patterns
+ (CompileSelfParam::compile): update return type
+ (CompileFnParam::create_tmp_param_var): return Bvariable not tree to stop ICE
+ * backend/rust-compile-fnparam.h: update prototype
+ * backend/rust-compile-pattern.cc (CompilePatternBindings::visit): implement TuplePattern
+ * backend/rust-compile-pattern.h: update prototype
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * rust-gcc.cc (operator_to_tree_code): ! expressions are BIT_NOT_EXPR
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-path.h: Adapt children of Path to fix some NodeId issues.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc (Late::visit): New.
+ * resolve/rust-late-name-resolver-2.0.h: New.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/rust-ast-lower-type.cc (ASTLowerTypePath::translate): Adapt to
+ handle lang item paths.
+ (ASTLowerTypePath::visit): Likewise.
+ (ASTLowerTypePath::translate_type_path): New.
+ (ASTLowerTypePath::translate_lang_item_type_path): New.
+ * hir/rust-ast-lower-type.h: Adapt to handle lang item paths.
+ * resolve/rust-ast-resolve-type.h: Likewise.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Adapt resolver
+ to lang item paths.
+ * resolve/rust-ast-resolve-type.h: Likewise.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-item.h: Add new method to specifically get a type-path.
+ * ast/rust-path.cc (LangItemPath::as_string): Implement properly.
+ * hir/rust-ast-lower-type.cc (ASTLowerTypePath::translate): Adapt
+ visitor to use the new LangItemPath.
+ * hir/rust-ast-lower-type.h: Likewise.
+ * resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Likewise.
+ * resolve/rust-ast-resolve-type.h: Likewise.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * expand/rust-derive-copy.cc: Use new LangItemPath for derive(Copy).
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-path.h (class LangItemPath): New.
+ (class TypePath): Adapt to accomodate LangItemPath.
+ * ast/rust-ast.cc (TraitImpl::as_string): Use new checks for lang items.
+ (QualifiedPathType::as_string): Likewise.
+ (FormatArgs::set_outer_attrs): Likewise.
+ * ast/rust-item.h (class TraitImpl): Likewise.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-forever-stack.h
+ (ForeverStack::find_starting_point): Use type
+ 'std::reference_wrapper<Node> &' instead of 'Node &' for
+ parameter starting_point.
+ * resolve/rust-forever-stack.hxx
+ (ForeverStack::find_starting_point): Likewise.
+ (ForeverStack::resolve_path): Handle change to
+ ForeverStack::find_starting_point.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path):
+ Remove unused capture in lambda.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-attributes.h (class Attributes): New.
+ * util/rust-attributes.cc: Implement Attributes::is_known().
+ * ast/rust-collect-lang-items.cc (is_known_attribute): Remove.
+ (get_lang_item_attr): Call Attributes::is_known() instead.
+ * hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_outer_attributes): Likewise.
+ (ASTLoweringBase::is_known_attribute): Remove.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * Make-lang.in: Add new object file.
+ * rust-session-manager.cc (Session::compile_crate): Call CollectLangItems.
+ * ast/rust-collect-lang-items.cc: New file.
+ * ast/rust-collect-lang-items.h: New file.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-hir-map.h: Keep a NodeId mappings for lang items.
+ * util/rust-hir-map.cc (Mappings::insert_lang_item_node): New function.
+ (Mappings::lookup_lang_item_node): Likewise.
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * hir/rust-hir-dump.cc (Dump::visit): add missing check for no return value
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-constexpr.cc (eval_store_expression): check for null
+ (eval_call_expression): remove bad warning
+ * rust-gcc.cc (arithmetic_or_logical_expression): add warnings
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-base.cc: apply coercion site to result
+ * backend/rust-compile-base.h: update prototype
+ * backend/rust-compile-implitem.cc (CompileTraitItem::visit): send in coercion info
+ * backend/rust-compile-item.cc (CompileItem::visit): likewise
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * resolve/rust-ast-resolve-item.cc (ResolveItem::visit): remove assertions
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-ast-visitor.h: Replace context with StackedContexts.
+ * ast/rust-ast-visitor.cc (ContextualASTVisitor::visit): Use new APIs.
+ * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Likewise.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-stacked-contexts.h: Add new method to see what context we are currently in.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/tree/rust-hir-item.h: Remove TraitItemFunc::has_block_defined()
+ * backend/rust-compile-implitem.cc (CompileTraitItem::visit):
+ Call TraitItemFunc::has_definition() instead.
+ * checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
+ * checks/errors/rust-hir-pattern-analysis.cc (PatternChecker::visit): Likewise.
+ * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
+ * typecheck/rust-hir-trait-resolve.cc (ResolveTraitItemToRef::visit): Likewise.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-hir-map.h: Move definitions from header...
+ * util/rust-hir-map.cc: ...to source file.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * util/rust-lang-item.h: Fix comment location to align with other comments.
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-type.cc (TyTyResolveCompile::visit): call lauout type directly
+ * rust-backend.h (struct_type): add optional layout parameter
+ (union_type): likewise
+ (fill_in_fields): likewise
+ * rust-gcc.cc (struct_type): likewise
+ (union_type): likewise
+ (fill_in_fields): only layout if we required
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-casts.cc (TypeCastRules::cast_rules): allow casts to float
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): track trait
+ * typecheck/rust-hir-type-check-implitem.cc: trait block
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): dont when dyn
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): look at Self contenxt
+ (TypeCheckType::resolve_root_path): track if Self
+ (TypeCheckType::resolve_associated_type): look at current context for associated types
+ * typecheck/rust-hir-type-check-type.h: change prototype
+ * typecheck/rust-hir-type-check.h (class TypeCheckBlockContextItem):
+ new context system to track current state
+ * typecheck/rust-typecheck-context.cc (TypeCheckContext::have_block_context): likewise
+ (TypeCheckContext::peek_block_context): likewise
+ (TypeCheckContext::push_block_context): likewise
+ (TypeCheckContext::pop_block_context): likewise
+ (TypeCheckBlockContextItem::Item::Item): likewise
+ (TypeCheckBlockContextItem::TypeCheckBlockContextItem): likewise
+ (TypeCheckBlockContextItem::is_impl_block): likewise
+ (TypeCheckBlockContextItem::is_trait_block): likewise
+ (TypeCheckBlockContextItem::get_impl_block): likewise
+ (TypeCheckBlockContextItem::get_trait): likewise
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * hir/rust-hir-dump.cc (Dump::visit): add missing null checks
+
+2025-03-21 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-base.cc: Prepend crate name to function's ir
+ name.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-name-resolver.cc: Include options.txt.
+ (Resolver::insert_resolved_name): Assert that name resolution
+ 2.0 is disabled.
+ (Resolver::lookup_resolved_name): Likewise.
+ (Resolver::insert_resolved_type): Likewise.
+ (Resolver::lookup_resolved_type): Likewise.
+ (Resolver::insert_resolved_label): Likewise.
+ (Resolver::lookup_resolved_label): Likewise.
+ (Resolver::insert_resolved_macro): Likewise.
+ (Resolver::lookup_resolved_macro): Likewise.
+ (Resolver::insert_resolved_misc): Likewise.
+ (Resolver::lookup_resolved_misc): Likewise.
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * backend/rust-compile-expr.cc (check_match_scrutinee): check for empty match
+ (CompileExpr::visit): fix assertion
+ * checks/errors/rust-hir-pattern-analysis.cc (check_match_usefulness): check for empty
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): resolve to !
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * hir/rust-hir-dump.cc (Dump::visit): add guards
+
+2025-03-21 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * ast/rust-stmt.h: Remove stdlib include and use rust-system instead.
+ * backend/rust-compile-expr.cc: Likewise.
+ * backend/rust-mangle-legacy.cc: Likewise.
+ * backend/rust-mangle-v0.cc: Likewise.
+ * hir/rust-hir-dump.cc: Likewise.
+ * typecheck/rust-hir-type-check-type.cc: Likewise.
+ * typecheck/rust-tyty.cc: Likewise.
+ * typecheck/rust-tyty.h: Likewise.
+ * util/rust-common.h: Likewise.
+ * util/rust-token-converter.cc: Likewise.
+ * util/rust-token-converter.h: Likewise.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * typecheck/rust-hir-type-check-expr.cc: Add includes.
+ (TypeCheckExpr::visit): Use name resolver 2.0.
+ (TypeCheckExpr::resolve_operator_overload): Likewise.
+ (TypeCheckExpr::resolve_fn_trait_call): Likewise.
+ * typecheck/rust-hir-type-check-path.cc
+ (TypeCheckExpr::visit): Likewise.
+ (TypeCheckExpr::resolve_segments): Likewise.
+ * typecheck/rust-hir-type-check-type.cc
+ (TypeCheckType::resolve_segments): Likewise.
+ (ResolveWhereClauseItem::visit): Likewise.
+ (TypeCheckType::visit): Avoid usage of
+ Resolver::get_unit_type_node_id when handling TupleType, use
+ name resolver 2.0 when handling QualifiedPathInType.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Call DefaultResolver::visit when visiting
+ TypePath.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * checks/errors/privacy/rust-privacy-reporter.cc
+ (PrivacyReporter::check_for_privacy_violation): Use name
+ resolver 2.0.
+
+2025-03-21 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::visit): Change call.
+ (CompileExpr::resolve_operator_overload): Update function arguments.
+ * backend/rust-compile-expr.h: Change the function's prototype to use
+ a reference wrapper instead of a reference within the optional.
+
+2025-03-21 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * typecheck/rust-tyty.h: Change initializer list to default constructor
+ call.
+
+2025-03-21 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Add template
+ to tl::optional.
+ * hir/rust-ast-lower-type.cc (ASTLowerGenericParam::visit): Likewise.
+ * typecheck/rust-hir-type-check-type.cc (TypeResolveGenericParam::visit):
+ Likewise.
+
+2025-03-21 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Do not
+ get a reference if the pattern does not exist.
+ (TypeCheckMethodCallExpr::check): Likewise.
+
+2025-03-21 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Change the
+ ternary expression with a more readable if.
+
+2025-03-21 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * typecheck/rust-tyty.h: Reverse monomorphization during cloning and
+ make a new function to explicitly monomorphize.
+ * typecheck/rust-tyty.cc: Use monomorphization when required.
+
+2025-03-21 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * hir/rust-ast-lower-type.cc (ASTLowerGenericParam::visit): Forward
+ an optional to the constructor.
+ * hir/tree/rust-hir-item.cc (TypeParam::TypeParam): Use an optional
+ in the constructor.
+ (TypeParam::operator=): Ensure the TypeParam has a type properly.
+ (TypeParam::get_type_mappings): Likewise.
+ * hir/tree/rust-hir-item.h: Wrap the type smart pointer into an
+ optional.
+ * hir/tree/rust-hir.cc (TypeParam::as_string): Unwrap optional type
+ correctly.
+
+2025-03-21 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-expr.cc (CompileExpr::visit): Call getter
+ instead of size function.
+ * checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit):
+ Only check privacy if the type is present.
+ * hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Use an optional.
+ * hir/tree/rust-hir-generic-param.h: Assert type before getting it.
+ * hir/tree/rust-hir-item.h: Assert pointers before dereference, fix
+ has_type condition.
+ * hir/tree/rust-hir-path.h: Add more assertions.
+ * hir/tree/rust-hir-stmt.cc: Change constructor with optionals.
+ * hir/tree/rust-hir-stmt.h: Use optionals over smart pointers to
+ emphasize these fields might be missing.
+ * hir/tree/rust-hir.cc (LetStmt::as_string): Use getters.
+ * typecheck/rust-hir-type-check-expr.cc: Clone structures to prevent
+ parent's fields from being nulled by the move operation.
+ * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): Use
+ optionals.
+ * typecheck/rust-tyty.cc: Likewise.
+ * typecheck/rust-tyty.h: Likewise.
+
+2025-03-21 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * Make-lang.in: Add new files.
+ * hir/tree/rust-hir-item.h: Move Item definition and remove
+ implementations to their corresponding cc file.
+ * hir/tree/rust-hir-expr.h: Move implementation to the corresponding
+ cc file.
+ * 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-visitor.h: Likewise.
+ * hir/tree/rust-hir.h: Likewise.
+ * hir/tree/rust-hir.cc (Crate::Crate): Add implementations from Crate
+ and remove ConstGenericParam implementations to move them to their
+ own file.
+ * hir/tree/rust-hir-attrs.h: New file.
+ * hir/tree/rust-hir-bound-abstract.h: New file.
+ * hir/tree/rust-hir-bound.h: New file.
+ * hir/tree/rust-hir-expr-abstract.h: New file.
+ * hir/tree/rust-hir-expr.cc: New file.
+ * hir/tree/rust-hir-generic-param.cc: New file.
+ * hir/tree/rust-hir-generic-param.h: New file.
+ * hir/tree/rust-hir-item.cc: New file.
+ * hir/tree/rust-hir-literal.h: New file.
+ * hir/tree/rust-hir-node.h: New file.
+ * hir/tree/rust-hir-path.cc: New file.
+ * hir/tree/rust-hir-pattern-abstract.h: New file.
+ * hir/tree/rust-hir-simple-path.h: New file.
+ * hir/tree/rust-hir-stmt.cc: New file.
+ * hir/tree/rust-hir-trait-bound.h: New file.
+ * hir/tree/rust-hir-type-abstract.cc: New file.
+ * hir/tree/rust-hir-type-abstract.h: New file.
+ * hir/tree/rust-hir-type-no-bounds.h: New file.
+ * hir/tree/rust-hir-type.cc: New file.
+ * hir/tree/rust-hir-visibility.h: New file.
+ * hir/tree/rust-hir-visitable.h: New file.
+ * checks/lints/rust-lint-marklive.h: Use References.
+ * hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Reformat
+ vectors.
+ * hir/rust-hir-dump.cc (Dump::visit): Use reference.
+ * typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve):
+ Use references.
+ * typecheck/rust-tyty-bounds.cc: Likewise.
+
+2025-03-21 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-base.cc: Use FnParam getter.
+ * backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
+ * backend/rust-compile-intrinsic.cc: Likewise.
+ * backend/rust-compile-type.cc: Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit):
+ Only visit childrens if not missing.
+ * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Use
+ a reference instead of a raw pointer.
+ * hir/tree/rust-hir-expr.h: Add presence function for return
+ expression.
+ * hir/tree/rust-hir-item.h: Remove take_param_name.
+ * hir/tree/rust-hir.h: Make mapping getter const.
+ * typecheck/rust-hir-dot-operator.cc (MethodResolver::Select): Use
+ getter.
+ * typecheck/rust-hir-type-check-expr.cc: Likewise.
+ * typecheck/rust-hir-type-check-implitem.cc: Use FnParam vector instead
+ of std::pair of Pattern and BaseType.
+ * typecheck/rust-hir-type-check-item.cc: Likewise.
+ * typecheck/rust-hir-type-check.cc: Likewise.
+ * typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Use getters.
+ (TypeCheckMethodCallExpr::check): Likewise.
+ * typecheck/rust-tyty-cmp.h: Likewise.
+ * typecheck/rust-tyty.cc: Use FnParam.
+ * typecheck/rust-tyty.h (class FnParam): Add FnParam to handle function
+ parameters instead of handling std::pairs.
+ * typecheck/rust-unify.cc (UnifyRules::expect_fndef): Use getters.
+ (UnifyRules::expect_fnptr): Likewise.
+
+2025-03-21 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * backend/rust-compile-base.cc (HIRCompileBase::compile_function_body):
+ Remove usage of get function to retrieve a raw pointer.
+ * backend/rust-compile-base.h:
+ Change API usage from raw pointer to a reference.
+ * backend/rust-compile-block.cc (CompileBlock::compile): Likewise.
+ (CompileBlock::visit): Likewise.
+ (CompileConditionalBlocks::visit): Likewise.
+ * backend/rust-compile-block.h: Likewise.
+ * backend/rust-compile-expr.cc (CompileExpr::Compile): Likewise.
+ (CompileExpr::visit): Likewise.
+ (check_match_scrutinee): Likewise.
+ (CompileExpr::array_value_expr): Likewise.
+ (CompileExpr::array_copied_expr): Likewise.
+ (CompileExpr::generate_closure_function): Likewise.
+ (CompileExpr::generate_possible_fn_trait_call): Likewise.
+ * backend/rust-compile-expr.h: Likewise.
+ * backend/rust-compile-fnparam.cc (CompileFnParam::compile): Likewise.
+ (CompileFnParam::visit): Likewise.
+ * backend/rust-compile-fnparam.h: Likewise.
+ * backend/rust-compile-implitem.cc (CompileTraitItem::visit): Likewise.
+ * backend/rust-compile-intrinsic.cc (compile_fn_params): Likewise.
+ * backend/rust-compile-item.cc (CompileItem::visit): Likewise.
+ * backend/rust-compile-pattern.cc (CompilePatternCheckExpr::visit):
+ Likewise.
+ (compile_range_pattern_bound): Likewise.
+ (CompilePatternBindings::visit): Likewise.
+ (CompilePatternLet::visit): Likewise.
+ * backend/rust-compile-pattern.h: Likewise.
+ * backend/rust-compile-resolve-path.cc (ResolvePathRef::resolve):
+ Likewise.
+ (HIRCompileBase::query_compile): Likewise.
+ * backend/rust-compile-stmt.cc (CompileStmt::visit): Likewise.
+ * backend/rust-compile-struct-field-expr.cc (CompileStructExprField::Compile):
+ Likewise.
+ (CompileStructExprField::visit): Likewise.
+ * backend/rust-compile-struct-field-expr.h: Likewise.
+ * backend/rust-compile-type.cc (TyTyResolveCompile::visit): Likewise.
+ * backend/rust-compile-var-decl.h: Likewise.
+ * backend/rust-compile.cc: Likewise.
+ * backend/rust-mangle-v0.cc (v0_inherent_or_trait_impl_path): Likewise.
+ * checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit):
+ Likewise.
+ * checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h: Likewise.
+ * checks/errors/borrowck/rust-bir-builder-pattern.h: Likewise.
+ * checks/errors/borrowck/rust-bir-builder-struct.h: Likewise.
+ * checks/errors/borrowck/rust-bir-builder.h: Likewise.
+ * checks/errors/borrowck/rust-function-collector.h: Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::check_type_privacy):
+ Likewise.
+ (PrivacyReporter::visit): Likewise.
+ * checks/errors/privacy/rust-privacy-reporter.h: Likewise.
+ * checks/errors/privacy/rust-reachability.cc (ReachabilityVisitor::visit):
+ Likewise.
+ * checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
+ * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit):
+ Likewise.
+ * checks/lints/rust-lint-marklive.cc (MarkLive::visit): Likewise.
+ * checks/lints/rust-lint-marklive.h: 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-pattern.h: Likewise.
+ * hir/tree/rust-hir-stmt.h: Likewise.
+ * hir/tree/rust-hir-type.h: Likewise.
+ * hir/tree/rust-hir.h: Likewise.
+ * typecheck/rust-autoderef.cc: Likewise.
+ * typecheck/rust-hir-dot-operator.cc (MethodResolver::select):
+ Likewise.
+ * typecheck/rust-hir-inherent-impl-overlap.h: Likewise.
+ * typecheck/rust-hir-path-probe.cc (PathProbeType::process_impl_item_candidate):
+ Likewise.
+ (PathProbeImplTrait::process_trait_impl_items_for_candidates): Likewise.
+ * typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait):
+ Likewise.
+ (TraitItemReference::resolve_item): Likewise.
+ * typecheck/rust-hir-type-check-base.cc: Likewise.
+ * typecheck/rust-hir-type-check-base.h: Likewise.
+ * typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::Resolve):
+ Likewise.
+ (TypeCheckEnumItem::visit): Likewise.
+ * typecheck/rust-hir-type-check-enumitem.h: Likewise.
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::Resolve):
+ Likewise.
+ (TypeCheckExpr::visit): Likewise.
+ (TypeCheckExpr::resolve_fn_trait_call): Likewise.
+ * typecheck/rust-hir-type-check-expr.h: Likewise.
+ * typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::Resolve):
+ Likewise.
+ (TypeCheckTopLevelExternItem::visit): Likewise.
+ (TypeCheckImplItem::visit): Likewise.
+ (TypeCheckImplItemWithTrait::visit): Likewise.
+ * typecheck/rust-hir-type-check-implitem.h: Likewise.
+ * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): Likewise.
+ (TypeCheckItem::resolve_impl_item): Likewise.
+ (TypeCheckItem::resolve_impl_block_substitutions): Likewise.
+ (TypeCheckItem::resolve_impl_block_self): Likewise.
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): Likewise.
+ (TypeCheckExpr::resolve_segments): Likewise.
+ * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::Resolve):
+ Likewise.
+ (TypeCheckPattern::visit): Likewise.
+ (ClosureParamInfer::Resolve): Likewise.
+ (ClosureParamInfer::visit): Likewise.
+ * typecheck/rust-hir-type-check-pattern.h: Likewise.
+ * typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::Resolve):
+ Likewise.
+ (TypeCheckStmt::visit): Likewise.
+ * typecheck/rust-hir-type-check-stmt.h: Likewise.
+ * typecheck/rust-hir-type-check-struct-field.h: Likewise.
+ * typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::TypeCheckStructExpr):
+ Likewise.
+ (TypeCheckStructExpr::Resolve): Likewise.
+ (TypeCheckStructExpr::resolve): Likewise.
+ (TypeCheckStructExpr::visit): Likewise.
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckResolveGenericArguments::resolve):
+ Likewise.
+ (TypeCheckType::Resolve): Likewise.
+ (TypeCheckType::visit): Likewise.
+ (TypeCheckType::resolve_root_path): Likewise.
+ (TypeResolveGenericParam::Resolve): Likewise.
+ (TypeResolveGenericParam::visit): Likewise.
+ (ResolveWhereClauseItem::visit): Likewise.
+ * typecheck/rust-hir-type-check-type.h: Likewise.
+ * typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn):
+ Likewise.
+ * typecheck/rust-hir-type-check.h: Likewise.
+ * typecheck/rust-type-util.cc (query_type): Likewise.
+ * typecheck/rust-typecheck-context.cc (TypeCheckContextItem::TypeCheckContextItem):
+ Likewise.
+ * typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::scan): Likewise.
+ (TypeCheckBase::get_predicate_from_bound): Likewise.
+ * typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Likewise.
+ (TypeCheckMethodCallExpr::go): Likewise.
+ (TypeCheckMethodCallExpr::check): Likewise.
+ * typecheck/rust-tyty-subst.cc: Likewise.
+ * typecheck/rust-tyty.cc (BaseType::monomorphized_clone): Likewise.
+ (VariantDef::VariantDef): Remove copy constructor.
+ (VariantDef::operator=): Change to move operator.
+ (VariantDef::get_discriminant): Replace return type to a reference
+ instead of a reference to a unique pointer.
+ (VariantDef::clone): Change to references.
+ (VariantDef::monomorphized_clone): Likewise.
+ (FnType::as_string): Likewise.
+ (FnType::clone): Likewise.
+ * typecheck/rust-tyty.h: Likewise.
+ * util/rust-hir-map.cc (Mappings::insert_hir_impl_block): Likewise.
+ * backend/rust-compile-asm.cc: Use a reference instead of the raw
+ pointer value.
+ * checks/errors/borrowck/rust-bir-builder-pattern.cc: Use references.
+ * checks/errors/rust-hir-pattern-analysis.cc: Likewise.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-toplevel-name-resolver-2.0.cc
+ (TopLevel::visit): Use DefaultResolver::visit and avoid a call
+ to Identifier::as_string while handling instances of StaticItem.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-forever-stack.h
+ (ForeverStack::push): Accept argument of type Rib::Kind rather
+ than Rib.
+ * resolve/rust-forever-stack.hxx
+ (ForeverStack::push): Likewise.
+ * resolve/rust-name-resolution-context.cc
+ (NameResolutionContext::scoped): Likewise.
+ * resolve/rust-name-resolution-context.h
+ (NameResolutionContext::scoped): Likewise.
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::resolve_impl_block_substitutions):
+ dont check for unconstrained when the self is not resolved
+ * typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path):
+ remove bad debug error diagnostic
+ * typecheck/rust-tyty-subst.cc: likewise
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * ast/rust-expr.h: Remove invalid usage of `struct`.
+ * backend/rust-compile-asm.h: Remove unused `translated` member.
+ * backend/rust-compile-asm.cc (CompileAsm::CompileAsm): Remove usage
+ of `translated` member.
+ * checks/errors/rust-unsafe-checker.h: Mark visitor as `override`.
+ * hir/tree/rust-hir-expr.h (struct AnonConst): Remove unused `locus`
+ member.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * typecheck/rust-tyty-call.h: Remove unused context member.
+
+2025-03-21 Arthur Cohen <arthur.cohen@embecosm.com>
+
+ * hir/tree/rust-hir.h: Add override qualifier to overriden method.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-item.h
+ (Trait::self_param): Add.
+ (Trait::Trait): Initialize self_param.
+ (Trait::operator=): Copy self_param.
+ (Trait::insert_implicit_self): Remove.
+ (Trait::get_implicit_self): Add.
+ * hir/rust-ast-lower-item.cc
+ (ASTLoweringItem::visit): Make sure implicit self is still
+ lowered to HIR.
+ * resolve/rust-ast-resolve-item.cc
+ (ResolveItem::visit): Adjust handling of implicit self.
+ * resolve/rust-early-name-resolver.cc
+ (EarlyNameResolver::visit): Add commit to Trait visitor
+ mentioning that implicit self is not visited.
+ * resolve/rust-toplevel-name-resolver-2.0.cc
+ (TopLevel::visit): Remove call to Trait::insert_implicit_self.
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): fix the ty_id
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-tyty.cc (PlaceholderType::can_resolve): check for empty mappings
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * checks/errors/privacy/rust-privacy-reporter.cc:
+ Include rust-immutable-name-resolution-context.h.
+ (is_child_module): Use ForeverStack::is_module_descendant if name
+ resolution 2.0 is enabled.
+ * resolve/rust-forever-stack.h
+ (ForeverStack::is_module_descendant): Add.
+ (ForeverStack::dfs_node): Add.
+ * resolve/rust-forever-stack.hxx
+ (ForeverStack::dfs_rib): Use ForeverStack::dfs_node.
+ (ForeverStack::dfs_node): Add.
+ (ForeverStack::is_module_descendant): Add.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * checks/errors/privacy/rust-visibility-resolver.cc:
+ Add includes.
+ (VisibilityResolver::resolve_module_path): Use name resolver 2.0
+ (when enabled) to lookup path resolutions.
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path): dont infer here
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Handle StructExprStruct and use
+ ForeverStack::resolve_path instead of ForeverStack::get to
+ resolve struct expression paths.
+ * resolve/rust-late-name-resolver-2.0.h
+ (Late::visit): Handle StructExprStruct.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-compile-context.cc
+ (Context::setup_builtins): Use TypeCheckContext::get_builtins
+ instead of Resolver::get_builtin_types,
+ TypeCheckContext::lookup_type_by_node_id, and
+ TypeCheckContext::lookup_type.
+ * typecheck/rust-hir-type-check.h
+ (TypeCheckContext::get_builtins): Add.
+ * typecheck/rust-typecheck-context.cc
+ (TypeCheckContext::get_builtins): Add.
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): remove hack
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * typecheck/rust-tyty.cc
+ (TupleType::get_unit_type): Remove parameter, cache return
+ value.
+ * typecheck/rust-tyty.h
+ (TupleType::get_unit_type): Remove parameter.
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::setup_builtin_types): Adjust calls to get_unit_type.
+ * resolve/rust-name-resolver.cc
+ (Resolver::generate_builtins): Likewise.
+ * typecheck/rust-hir-type-check-expr.cc
+ (TypeCheckExpr::visit): Likewise.
+ * typecheck/rust-hir-type-check-implitem.cc
+ (TypeCheckTopLevelExternItem::visit): Likewise.
+ (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-type.cc
+ (TypeCheckType::visit): Likewise.
+ * typecheck/rust-hir-type-check.cc
+ (TraitItemReference::get_type_from_fn): Likewise.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Handle SelfParam.
+ * resolve/rust-late-name-resolver-2.0.h
+ (Late::visit): Likewise.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * typecheck/rust-hir-trait-resolve.cc: Add includes.
+ (TraitResolver::resolve_path_to_trait):
+ Use name resolution 2.0 resolver when enabled.
+
+2025-03-21 Marc Poulhiès <dkm@kataplop.net>
+
+ * backend/rust-compile-block.h: Adjust after removal of
+ HIR::IfLetExpr and HIR::IfLetExprConseqElse.
+ * backend/rust-compile-expr.h: Likewise.
+ * checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
+ (ExprStmtBuilder::visit): Likewise.
+ * checks/errors/borrowck/rust-bir-builder-expr-stmt.h: Likewise.
+ * checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h:
+ Likewise.
+ * checks/errors/borrowck/rust-bir-builder-struct.h: Likewise.
+ * checks/errors/borrowck/rust-function-collector.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.
+ * hir/rust-ast-lower-block.h (ASTLoweringIfLetBlock::translate):
+ Change return type.
+ * hir/rust-ast-lower.cc (ASTLoweringIfLetBlock::desugar_iflet):
+ New.
+ (ASTLoweringIfLetBlock::visit(AST::IfLetExpr &)): Adjust and use
+ desugar_iflet.
+ * hir/rust-ast-lower.h: Add comment.
+ * hir/rust-hir-dump.cc (Dump::do_ifletexpr): Remove.
+ (Dump::visit(IfLetExpr&)): Remove.
+ (Dump::visit(IfLetExprConseqElse&)): Remove.
+ * hir/rust-hir-dump.h (Dump::do_ifletexpr): Remove.
+ (Dump::visit(IfLetExpr&)): Remove.
+ (Dump::visit(IfLetExprConseqElse&)): Remove.
+ * hir/tree/rust-hir-expr.h (class IfLetExpr): Remove.
+ (class IfLetExprConseqElse): Remove.
+ * hir/tree/rust-hir-full-decls.h (class IfLetExpr): Remove.
+ (class IfLetExprConseqElse): Remove.
+ * hir/tree/rust-hir-visitor.h: Adjust after removal of
+ HIR::IfLetExpr and HIR::IfLetExprConseqElse.
+ * hir/tree/rust-hir.cc (IfLetExpr::as_string): Remove.
+ (IfLetExprConseqElse::as_string): Remove.
+ (IfLetExpr::accept_vis): Remove.
+ (IfLetExprConseqElse::accept_vis): Remove.
+ * hir/tree/rust-hir.h: Adjust after removal of HIR::IfLetExpr and
+ HIR::IfLetExprConseqElse.
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
+ Likewise.
+ * typecheck/rust-hir-type-check-expr.h: Likewise.
+ * checks/errors/rust-hir-pattern-analysis.cc
+ (PatternChecker::visit (IfLetExpr &)): Remove.
+ (PatternChecker::visit (IfLetExprConseqElse &)): Remove.
+ * checks/errors/rust-hir-pattern-analysis.h (visit(IfLetExpr &)): Remove.
+ (visit(IfLetExprConseqElse &)): Remove.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * checks/errors/rust-unsafe-checker.cc: Add includes.
+ (UnsafeChecker::visit): Use 2.0 version of resolver when name
+ resolution 2.0 is enabled.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * backend/rust-compile-implitem.cc
+ (CompileTraitItem::visit): Use name resolver 2.0 (when enabled)
+ to obtain canonical paths for instances of TraitItemConst and
+ TraitItemFunc.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * typecheck/rust-hir-type-check.cc: Add includes.
+ (TraitItemReference::get_type_from_fn): Use
+ ForeverStack::to_canonical_path when name resolution 2.0 is
+ enabled.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * ast/rust-path.h
+ (PathIdentSegment::is_super_segment): Rename to...
+ (PathIdentSegment::is_super_path_seg): ...here.
+ (PathIdentSegment::is_crate_segment): Rename to...
+ (PathIdentSegment::is_crate_path_seg): ...here.
+ (PathIdentSegment::is_lower_self): Rename to...
+ (PathIdentSegment::is_lower_self_seg): ...here.
+ (PathIdentSegment::is_big_self): Rename to...
+ (PathIdentSegment::is_big_self_seg): ...here.
+ (PathExprSegment::is_super_path_seg): Handle renames.
+ (PathExprSegment::is_crate_path_seg): Likewise.
+ (PathExprSegment::is_lower_self_seg): Likewise.
+ (TypePathSegment::is_crate_path_seg): Likewise.
+ (TypePathSegment::is_super_path_seg): Likewise.
+ (TypePathSegment::is_big_self_seg): Likewise.
+ (TypePathSegment::is_lower_self_seg): Likewise.
+ * ast/rust-ast-collector.cc
+ (TokenCollector::visit): Likewise.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-late-name-resolver-2.0.cc
+ (Late::visit): Visit the initialization expressions of let
+ statements before visiting their patterns.
+
+2025-03-21 Owen Avery <powerboat9.gamer@gmail.com>
+
+ * resolve/rust-toplevel-name-resolver-2.0.cc
+ (TopLevel::visit): Insert trait names into the type namespace.
+
+2025-03-21 Philip Herron <herron.philip@googlemail.com>
+
+ * typecheck/rust-hir-trait-reference.h: new get locus helper
+ * typecheck/rust-hir-trait-resolve.cc (AssociatedImplTrait::get_locus): implemention
+ * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::resolve_operator_overload):
+ fix overload
+
2025-03-19 Owen Avery <powerboat9.gamer@gmail.com>
* resolve/rust-toplevel-name-resolver-2.0.cc