2026-10-13  Utkarsh Bahuguna  <utkarshbahuguna10@gmail.com>

	* rust-gcc.cc (arithmetic_or_logical_expression): Use build2_loc
	instead of fold_build2_loc.
	* backend/rust-constexpr.cc (eval_check_overflow_p): New function.
	(eval_binary_expression): Use it.

2026-10-13  Arthur Cohen  <arthur.cohen@opensrcsec.com>

	* checks/errors/feature/rust-feature-defs.h (FEATURE_ACTIVE): New feature.
	* expand/rust-derive.cc (DeriveVisitor::derive): Add base handling for CoercePointee derive.
	* expand/rust-macro-builtins.cc: Add CoercePointee as a built-in derive
	* expand/rust-macro-builtins.h (enum class): Likewise.
	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_derive_attribute): Special case
	derive(CoercePointee).
	* rust-session-manager.h (should_support_coerce_pointee): New method.
	* expand/rust-derive-coerce-pointee.cc: New file.
	* expand/rust-derive-coerce-pointee.h: New file.
	* Make-lang.in: Compile it.

2026-10-13  Arthur Cohen  <arthur.cohen@opensrcsec.com>

	* checks/errors/feature/rust-feature-gate.cc (FeatureGate::visit): Add missing call to
	default visitor for ExternType items.

2026-10-13  Pierre-Emmanuel Patry  <pierre.emmanuel.patry@opensrcsec.com>

	* util/rust-hir-map.cc (CrateMappings::CrateMappings): Update variable
	name at call site.
	(CrateMappings::get_next_crate_num): Likewise.
	(CrateMappings::set_current_crate): Likewise.
	(CrateMappings::get_current_crate): Likewise.
	(CrateMappings::get_ast_crate): Likewise.
	(CrateMappings::get_ast_crate_by_node_id_raw): Likewise.
	(CrateMappings::insert_ast_crate): Likewise.
	* util/rust-hir-map.h (class CrateMappings): Rename variables.

2026-10-13  Pierre-Emmanuel Patry  <pierre.emmanuel.patry@opensrcsec.com>

	* expand/rust-macro-expand.h (struct MacroExpander): Update call name.
	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_derive_attribute):
	Likewise.
	(Early::visit_non_builtin_attribute): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit_extern_crate):
	Likewise.
	* util/rust-hir-map.cc (ProcMacroMappings::insert_derive_def): Remove.
	(ProcMacroMappings::insert_bang_def): Remove.
	(ProcMacroMappings::insert_attribute_def): Remove.
	(ProcMacroMappings::lookup_derive_def): Remove.
	(ProcMacroMappings::lookup_bang_def): Remove.
	(ProcMacroMappings::lookup_attribute_def): Remove.
	(ProcMacroMappings::insert_derive_invocation): Remove.
	(ProcMacroMappings::lookup_derive_invocation): Remove.
	(ProcMacroMappings::insert_bang_invocation): Remove.
	(ProcMacroMappings::lookup_bang_invocation): Remove.
	(ProcMacroMappings::insert_attribute_invocation): Remove.
	(ProcMacroMappings::lookup_attribute_invocation): Remove.
	* util/rust-hir-map.h (class ProcMacroMappings): Convert to struct.
	(struct ProcMacroDefinitionMappings): Add definition mappings.
	(struct ProcMacroInvocationsMappings): Add invocation mappings.
	(struct ProcMacroMappings): Use two new separate fields for definitions
	and invocations.

2026-10-13  Pierre-Emmanuel Patry  <pierre.emmanuel.patry@opensrcsec.com>

	* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::go):
	Update function call name.
	* expand/rust-macro-substitute-ctx.cc: Likewise.
	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit_extern_crate):
	Likewise.
	* rust-session-manager.cc (Session::load_extern_crate): Likewise.
	* util/rust-hir-map.cc (CrateMappings::get_next_crate_num): Likewise.
	(CrateMappings::get_crate_name): Remove.
	(CrateMappings::set_crate_name): Remove.
	(CrateMappings::get_current_crate_name): Update with new lookup
	function.
	(CrateMappings::lookup_crate_name): Use internal storage getter.
	(ProcMacroMappings::insert_bang_proc_macros): Remove.
	(ProcMacroMappings::lookup_derive_proc_macros): Remove.
	(ProcMacroMappings::lookup_bang_proc_macros): Remove.
	(ProcMacroMappings::lookup_attribute_proc_macros): Remove.
	* util/rust-hir-map.h (enum class): Move enum.
	(class Mapping): Add a getter to const storage in order to allow
	iteration on existing mappings. Also add a const getter.
	(class CrateMappings): Add proc macro crate mappings. Convert
	crate_name getter/setter to Mapping.
	(class ProcMacroMappings): Remove crate related mappings.

2026-10-13  Pierre-Emmanuel Patry  <pierre.emmanuel.patry@opensrcsec.com>

	* backend/rust-compile-item.cc (CompileItem::visit): Adapt call name.
	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile):
	Likewise.
	* backend/rust-mangle-v0.cc (v0_path): Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc
	(VisibilityResolver::resolve_module_path): Likewise.
	* checks/errors/rust-const-checker.cc (ConstChecker::check_function_call):
	Likewise.
	* checks/errors/rust-readonly-check.cc (ReadonlyChecker::visit):
	Likewise.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::check_use_of_static):
	Likewise.
	(UnsafeChecker::check_function_call): Likewise.
	(UnsafeChecker::check_function_attr): Likewise.
	* checks/lints/rust-lint-marklive.cc (MarkLive::go): Likewise.
	(MarkLive::visit): Likewise.
	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_extern_block):
	Likewise.
	* hir/rust-ast-lower-block.h: Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::translate): Likewise.
	* hir/rust-ast-lower-implitem.cc (ASTLowerImplItem::visit): Likewise.
	(ASTLowerTraitItem::translate): Likewise.
	(ASTLowerTraitItem::visit): Likewise.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::translate): Likewise.
	(ASTLoweringItem::visit): Likewise.
	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::translate):
	Likewise.
	* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::translate): Likewise.
	* hir/rust-ast-lower-struct-field-expr.h: Likewise.
	* hir/rust-ast-lower-type.cc (ASTLoweringType::translate): Likewise.
	(ASTLowerGenericParam::translate): Likewise.
	* hir/rust-ast-lower.cc (ASTLowerPathInExpression::visit): Likewise.
	(ASTLowerQualPathInExpression::visit): Likewise.
	* hir/tree/rust-hir-pattern-abstract.cc (PathPattern::is_refutable):
	Likewise.
	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_path_to_trait):
	Likewise.
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit):
	Likewise.
	(TypeCheckExpr::resolve_root_path): Likewise.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
	Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path):
	Likewise.
	* typecheck/rust-type-util.cc (query_type): Likewise.
	* util/rust-hir-map.cc (Mappings::resolve_nodeid_to_stmt): Likewise.
	(Mappings::build_impl_indexes): Likewise.
	(Mappings::insert_trait_item_mapping): Likewise.
	* util/rust-hir-map.h: Change HIR mapping name to their plural
	counterpart.

2026-10-13  Pierre-Emmanuel Patry  <pierre.emmanuel.patry@opensrcsec.com>

	* ast/rust-collect-lang-items.cc (CollectLangItems::visit): Adapt name
	at call site.
	* backend/rust-compile-expr.cc: Likewise.
	* backend/rust-compile-type.cc (TyTyResolveCompile::get_unit_type):
	Likewise.
	* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::go):
	Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc
	(VisibilityResolver::resolve_module_path): Likewise.
	* expand/rust-macro-expand.h (struct MacroExpander): Likewise.
	* expand/rust-macro-substitute-ctx.cc: Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_lifetime):
	Likewise.
	(ASTLoweringBase::lower_loop_label): Likewise.
	(ASTLoweringBase::lower_path_expr_seg): Likewise.
	(ASTLoweringBase::lower_self): Likewise.
	(ASTLoweringBase::lower_extern_block): Likewise.
	* hir/rust-ast-lower-block.h: Likewise.
	* hir/rust-ast-lower-enumitem.h: Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
	* hir/rust-ast-lower-extern.h: Likewise.
	* hir/rust-ast-lower-implitem.cc (ASTLowerImplItem::visit): Likewise.
	(ASTLowerTraitItem::visit): Likewise.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
	(ASTLoweringSimplePath::lower): Likewise.
	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Likewise.
	* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Likewise.
	* hir/rust-ast-lower-type.cc (ASTLowerTypePath::visit): Likewise.
	(ASTLowerQualifiedPathInType::visit): Likewise.
	(ASTLoweringType::visit): Likewise.
	(ASTLowerGenericParam::visit): Likewise.
	(ASTLoweringTypeBounds::visit): Likewise.
	(ASTLowerWhereClauseItem::visit): Likewise.
	* hir/rust-ast-lower.cc (ASTLowering::go): Likewise.
	(ASTLoweringBlock::visit): Likewise.
	(ASTLoweringIfBlock::visit): Likewise.
	(ASTLoweringIfLetBlock::desugar_iflet): Likewise.
	(ASTLoweringIfLetBlock::visit): Likewise.
	(ASTLowerStructExprField::visit): Likewise.
	(ASTLoweringExprWithBlock::visit): Likewise.
	(ASTLowerPathInExpression::visit): Likewise.
	(ASTLoweringBase::lower_qual_path_type): Likewise.
	(ASTLowerQualPathInExpression::visit): Likewise.
	* metadata/rust-export-metadata.cc (PublicInterface::gather_export_data):
	Likewise.
	(PublicInterface::write_to_object_file): Likewise.
	(PublicInterface::write_to_path): Likewise.
	(PublicInterface::expected_metadata_filename): Likewise.
	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Likewise.
	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_derive_attribute):
	Likewise.
	(Early::visit_non_builtin_attribute): Likewise.
	* resolve/rust-forever-stack.h: Likewise.
	* resolve/rust-name-resolution-context.h: Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit_extern_crate):
	Likewise.
	* rust-session-manager.cc (Session::handle_crate_name): Likewise.
	(Session::compile_crate): Likewise.
	(Session::load_extern_crate): Likewise.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal):
	Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Likewise.
	(TypeCheckExpr::resolve_fn_trait_call): Likewise.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
	Likewise.
	(TypeCheckImplItem::resolve_function_signature): Likewise.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
	Likewise.
	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve):
	Likewise.
	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn):
	Likewise.
	* typecheck/rust-type-util.cc (query_type): Likewise.
	* typecheck/rust-tyty-bounds.cc: Likewise.
	* typecheck/rust-tyty-subst.cc (SubstitutionParamMapping::override_context):
	Likewise.
	* typecheck/rust-tyty-util.cc (TyVar::monomorphized_clone): Likewise.
	* typecheck/rust-tyty.cc (InferType::clone): Likewise.
	(VariantDef::clone): Likewise.
	(VariantDef::monomorphized_clone): Likewise.
	(ConstInferType::clone): Likewise.
	* util/rust-hir-map.cc (Mappings::get_ast_crate_by_node_id): Likewise.
	(Mappings::insert_macro_def): Likewise.
	(Mappings::insert_glob_container): Likewise.
	* util/rust-hir-map.h: Rename pmacro_mappings to pmacro and
	crate_mappings to crate.

2026-10-13  Pierre-Emmanuel Patry  <pierre.emmanuel.patry@opensrcsec.com>

	* backend/rust-compile-item.cc (CompileItem::visit): Use new hir
	category.
	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile):
	Likewise.
	* backend/rust-mangle-v0.cc (v0_path): Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc
	(VisibilityResolver::resolve_module_path): Likewise.
	* checks/errors/rust-const-checker.cc (ConstChecker::check_function_call):
	Likewise.
	* checks/errors/rust-readonly-check.cc (ReadonlyChecker::visit):
	Likewise.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::check_use_of_static):
	Likewise.
	(UnsafeChecker::check_function_call): Likewise.
	(UnsafeChecker::check_function_attr): Likewise.
	* checks/lints/rust-lint-marklive.cc (MarkLive::go): Likewise.
	(MarkLive::visit): Likewise.
	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_extern_block):
	Likewise.
	* hir/rust-ast-lower-block.h: Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::translate): Likewise.
	* hir/rust-ast-lower-implitem.cc (ASTLowerImplItem::visit): Likewise.
	(ASTLowerTraitItem::translate): Likewise.
	(ASTLowerTraitItem::visit): Likewise.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::translate): Likewise.
	(ASTLoweringItem::visit): Likewise.
	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::translate):
	Likewise.
	* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::translate): Likewise.
	* hir/rust-ast-lower-struct-field-expr.h: Likewise.
	* hir/rust-ast-lower-type.cc (ASTLoweringType::translate): Likewise.
	(ASTLowerGenericParam::translate): Likewise.
	* hir/rust-ast-lower.cc (ASTLowerPathInExpression::visit): Likewise.
	(ASTLowerQualPathInExpression::visit): Likewise.
	* hir/tree/rust-hir-pattern-abstract.cc (PathPattern::is_refutable):
	Likewise.
	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_path_to_trait):
	Likewise.
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit):
	Likewise.
	(TypeCheckExpr::resolve_root_path): Likewise.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
	Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path):
	Likewise.
	* typecheck/rust-type-util.cc (query_type): Likewise.
	* util/rust-hir-map.cc (Mappings::insert_hir_item): Move to dedicated
	mappings within the hir category.
	(Mappings::lookup_hir_item): Likewise.
	(Mappings::insert_hir_trait_item): Likewise.
	(Mappings::lookup_hir_trait_item): Likewise.
	(Mappings::insert_hir_extern_block): Likewise.
	(Mappings::lookup_hir_extern_block): Likewise.
	(Mappings::insert_module): Likewise.
	(Mappings::lookup_module): Likewise.
	(Mappings::insert_hir_expr): Likewise.
	(Mappings::lookup_hir_expr): Likewise.
	(Mappings::insert_hir_path_expr_seg): Likewise.
	(Mappings::lookup_hir_path_expr_seg): Likewise.
	(Mappings::insert_hir_generic_param): Likewise.
	(Mappings::lookup_hir_generic_param): Likewise.
	(Mappings::insert_hir_type): Likewise.
	(Mappings::lookup_hir_type): Likewise.
	(Mappings::insert_hir_stmt): Likewise.
	(Mappings::lookup_hir_stmt): Likewise.
	(Mappings::insert_hir_param): Likewise.
	(Mappings::lookup_hir_param): Likewise.
	(Mappings::insert_hir_self_param): Likewise.
	(Mappings::lookup_hir_self_param): Likewise.
	(Mappings::insert_hir_struct_field): Likewise.
	(Mappings::lookup_hir_struct_field): Likewise.
	(Mappings::insert_hir_pattern): Likewise.
	(Mappings::lookup_hir_pattern): Likewise.
	(Mappings::resolve_nodeid_to_stmt): Likewise.
	(Mappings::build_impl_indexes): Likewise.
	(Mappings::insert_trait_item_mapping): Likewise.
	* util/rust-hir-map.h (class HIRMappings): Add new class for all hir
	related mappings.
	* util/rust-hir-map.hxx: New file.

2026-10-13  Pierre-Emmanuel Patry  <pierre.emmanuel.patry@opensrcsec.com>

	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::check_violation_inner):
	Use ast category.
	* checks/errors/privacy/rust-pub-restricted-visitor.cc
	(PubRestrictedVisitor::is_restriction_valid): Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc (VisibilityResolver::go):
	Likewise.
	(VisibilityResolver::resolve_and_update): Likewise.
	(VisibilityResolver::visit): Likewise.
	* util/rust-hir-map.cc (Mappings::insert_visibility): Move to
	ASTMappings.
	(Mappings::lookup_visibility): Likewise.
	* util/rust-hir-map.h (class ASTMappings): Add a mapping class
	dedicated to mapping an id to an Item. Add a specialized ASTMappings
	class to hold all ast related mappings.

2026-10-13  Pierre-Emmanuel Patry  <pierre.emmanuel.patry@opensrcsec.com>

	* expand/rust-macro-expand.h (struct MacroExpander): Apply new name.
	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_derive_attribute):
	Likewise.
	(Early::visit_non_builtin_attribute): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit_extern_crate):
	Likewise.
	* util/rust-hir-map.cc (ProcMacroMappings::insert_bang_proc_macros):
	Use new member name.
	(ProcMacroMappings::lookup_derive_proc_macros): Likewise.
	(ProcMacroMappings::lookup_bang_proc_macros): Likewise.
	(ProcMacroMappings::lookup_attribute_proc_macros): Likewise.
	(ProcMacroMappings::insert_derive_proc_macro_def): Likewise.
	(ProcMacroMappings::insert_derive_def): Likewise.
	(ProcMacroMappings::insert_bang_proc_macro_def): Likewise.
	(ProcMacroMappings::insert_bang_def): Likewise.
	(ProcMacroMappings::insert_attribute_proc_macro_def): Likewise.
	(ProcMacroMappings::insert_attribute_def): Likewise.
	(ProcMacroMappings::lookup_derive_proc_macro_def): Likewise.
	(ProcMacroMappings::lookup_derive_def): Likewise.
	(ProcMacroMappings::lookup_bang_proc_macro_def): Likewise.
	(ProcMacroMappings::lookup_bang_def): Likewise.
	(ProcMacroMappings::lookup_attribute_proc_macro_def): Likewise.
	(ProcMacroMappings::lookup_attribute_def): Likewise.
	(ProcMacroMappings::insert_derive_invocation): Likewise.
	(ProcMacroMappings::lookup_derive_proc_macro_invocation): Likewise.
	(ProcMacroMappings::lookup_derive_invocation): Likewise.
	(ProcMacroMappings::insert_bang_invocation): Likewise.
	(ProcMacroMappings::lookup_bang_invocation): Likewise.
	(ProcMacroMappings::insert_attribute_invocation): Likewise.
	(ProcMacroMappings::lookup_attribute_invocation): Likewise.
	* util/rust-hir-map.h (class ProcMacroMappings): Rename member maps as
	well as some functions to remove the proc macro mention.

2026-10-13  Pierre-Emmanuel Patry  <pierre.emmanuel.patry@opensrcsec.com>

	* expand/rust-macro-expand.h (struct MacroExpander): Use new macro
	category.
	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_derive_attribute):
	Likewise.
	(Early::visit_non_builtin_attribute): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit_extern_crate):
	Likewise.
	* rust-session-manager.cc (Session::load_extern_crate): Likewise.
	* util/rust-hir-map.cc (Mappings::insert_derive_proc_macros): Move to
	specialized macro class declartion.
	(Mappings::insert_bang_proc_macros): Move from here...
	(ProcMacroMappings::insert_bang_proc_macros): ... to here.
	(Mappings::insert_attribute_proc_macros): Likewise.
	(Mappings::lookup_derive_proc_macros): Likewise.
	(ProcMacroMappings::lookup_derive_proc_macros): Likewise.
	(Mappings::lookup_bang_proc_macros): Likewise.
	(ProcMacroMappings::lookup_bang_proc_macros): Likewise.
	(Mappings::lookup_attribute_proc_macros): Likewise.
	(ProcMacroMappings::lookup_attribute_proc_macros): Likewise.
	(Mappings::insert_derive_proc_macro_def): Likewise.
	(ProcMacroMappings::insert_derive_proc_macro_def): Likewise.
	(Mappings::insert_bang_proc_macro_def): Likewise.
	(ProcMacroMappings::insert_bang_proc_macro_def): Likewise.
	(Mappings::insert_attribute_proc_macro_def): Likewise.
	(ProcMacroMappings::insert_attribute_proc_macro_def): Likewise.
	(Mappings::lookup_derive_proc_macro_def): Likewise.
	(ProcMacroMappings::lookup_derive_proc_macro_def): Likewise.
	(Mappings::lookup_bang_proc_macro_def): Likewise.
	(ProcMacroMappings::lookup_bang_proc_macro_def): Likewise.
	(Mappings::lookup_attribute_proc_macro_def): Likewise.
	(ProcMacroMappings::lookup_attribute_proc_macro_def): Likewise.
	(Mappings::insert_derive_proc_macro_invocation): Likewise.
	(Mappings::lookup_derive_proc_macro_invocation): Likewise.
	(ProcMacroMappings::lookup_derive_proc_macro_invocation): Likewise.
	(Mappings::insert_bang_proc_macro_invocation): Likewise.
	(Mappings::lookup_bang_proc_macro_invocation): Likewise.
	(Mappings::insert_attribute_proc_macro_invocation): Likewise.
	(Mappings::lookup_attribute_proc_macro_invocation): Likewise.
	* util/rust-hir-map.h (class ProcMacroMappings): Add specialized class
	for macro mappings.

2026-10-13  Pierre-Emmanuel Patry  <pierre.emmanuel.patry@opensrcsec.com>

	* ast/rust-collect-lang-items.cc (CollectLangItems::visit): Use sub
	category.
	* backend/rust-compile-expr.cc: Likewise.
	* backend/rust-compile-type.cc (TyTyResolveCompile::get_unit_type): Likewise.
	* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::go): Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc
	(VisibilityResolver::resolve_module_path): Likewise.
	* expand/rust-macro-substitute-ctx.cc: Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_lifetime): Likewise.
	(ASTLoweringBase::lower_loop_label): Likewise.
	(ASTLoweringBase::lower_path_expr_seg): Likewise.
	(ASTLoweringBase::lower_self): Likewise.
	(ASTLoweringBase::lower_extern_block): Likewise.
	* hir/rust-ast-lower-block.h: Likewise.
	* hir/rust-ast-lower-enumitem.h: Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
	* hir/rust-ast-lower-extern.h: Likewise.
	* hir/rust-ast-lower-implitem.cc (ASTLowerImplItem::visit): Likewise.
	(ASTLowerTraitItem::visit): Likewise.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
	(ASTLoweringSimplePath::lower): Likewise.
	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Likewise.
	* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Likewise.
	* hir/rust-ast-lower-type.cc (ASTLowerTypePath::visit): Likewise.
	(ASTLowerQualifiedPathInType::visit): Likewise.
	(ASTLoweringType::visit): Likewise.
	(ASTLowerGenericParam::visit): Likewise.
	(ASTLoweringTypeBounds::visit): Likewise.
	(ASTLowerWhereClauseItem::visit): Likewise.
	* hir/rust-ast-lower.cc (ASTLowering::go): Likewise.
	(ASTLoweringBlock::visit): Likewise.
	(ASTLoweringIfBlock::visit): Likewise.
	(ASTLoweringIfLetBlock::desugar_iflet): Likewise.
	(ASTLoweringIfLetBlock::visit): Likewise.
	(ASTLowerStructExprField::visit): Likewise.
	(ASTLoweringExprWithBlock::visit): Likewise.
	(ASTLowerPathInExpression::visit): Likewise.
	(ASTLoweringBase::lower_qual_path_type): Likewise.
	(ASTLowerQualPathInExpression::visit): Likewise.
	* metadata/rust-export-metadata.cc (PublicInterface::gather_export_data):
	Likewise.
	(PublicInterface::write_to_object_file): Likewise.
	(PublicInterface::write_to_path): Likewise.
	(PublicInterface::expected_metadata_filename): Likewise.
	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Likewise.
	* resolve/rust-forever-stack.h: Likewise.
	* resolve/rust-name-resolution-context.h: Likewise.
	* rust-session-manager.cc (Session::handle_crate_name): Likewise.
	(Session::compile_crate): Likewise.
	(Session::load_extern_crate): Likewise.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal):
	Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Likewise.
	(TypeCheckExpr::resolve_fn_trait_call): Likewise.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
	Likewise.
	(TypeCheckImplItem::resolve_function_signature): Likewise.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
	Likewise.
	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve):
	Likewise.
	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn):
	Likewise.
	* typecheck/rust-type-util.cc (query_type): Likewise.
	* typecheck/rust-tyty-bounds.cc: Likewise.
	* typecheck/rust-tyty-subst.cc (SubstitutionParamMapping::override_context):
	Likewise.
	* typecheck/rust-tyty-util.cc (TyVar::monomorphized_clone): Likewise.
	* typecheck/rust-tyty.cc (InferType::clone): Likewise.
	(ConstInferType::clone): Likewise.
	* util/rust-hir-map.cc (CrateMappings::CrateMappings): Add a new
	specialized class to keep all crate related mappings.
	(Mappings::Mappings): Move some member functions to CrateMappings.
	(Mappings::get_next_crate_num): Likewise.
	(CrateMappings::get_next_crate_num): Likewise.
	(Mappings::set_current_crate): Likewise.
	(CrateMappings::set_current_crate): Likewise.
	(Mappings::get_current_crate): Likewise.
	(CrateMappings::get_current_crate): Likewise.
	(Mappings::get_crate_name): Likewise.
	(CrateMappings::get_crate_name): Likewise.
	(Mappings::lookup_crate_num): Likewise.
	(CrateMappings::lookup_crate_num): Likewise.
	(Mappings::set_crate_name): Likewise.
	(CrateMappings::set_crate_name): Likewise.
	(Mappings::get_current_crate_name): Likewise.
	(CrateMappings::get_current_crate_name): Likewise.
	(Mappings::lookup_crate_name): Likewise.
	(CrateMappings::lookup_crate_name): Likewise.
	(Mappings::crate_num_to_nodeid): Likewise.
	(CrateMappings::crate_num_to_nodeid): Likewise.
	(Mappings::node_is_crate): Likewise.
	(CrateMappings::node_is_crate): Likewise.
	(Mappings::get_ast_crate): Likewise.
	(CrateMappings::get_ast_crate): Likewise.
	(Mappings::get_ast_crate_by_node_id): Likewise.
	(Mappings::get_ast_crate_by_node_id_raw): Likewise.
	(CrateMappings::get_ast_crate_by_node_id_raw): Likewise.
	(Mappings::insert_ast_crate): Likewise.
	(CrateMappings::insert_ast_crate): Likewise.
	(Mappings::insert_macro_def): Likewise.
	(Mappings::insert_glob_container): Likewise.
	* util/rust-hir-map.h (class Mappings): Move some declarations from
	here...
	(class CrateMappings): ...to here.

2026-10-13  Yap Zhi Heng  <yapzhhg@gmail.com>

	* util/rust-intrinsic-values.h (Rust::Values::Intrinsics): Add entries for atomic_store,
	atomic_store_rel, atomic_load, atomic_load_acq.
	* backend/rust-compile-intrinsic.cc (generic_intrinsics): Likewise.

2026-10-13  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/rust-ast-validation.cc
	(ASTValidation::visit (Function)): Emit error on complex
	patterns in non-extern bodyless functions as well.

2026-10-13  Utkarsh Bahuguna  <utkarshbahuguna10@gmail.com>

	* ast/rust-ast-builder.cc (Builder::new_type_param): Handle
	FUNCTION segments.

2026-10-13  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::Late):
	Initialize in_bodyless_params.
	(Late::visit (FunctionParam)): New function definition, skip
	visiting the patterns of function parameters on bodyless
	functions.
	(Late::visit_function_params): Set in_bodyless_params.
	* resolve/rust-late-name-resolver-2.0.h
	(Late::visit (FunctionParam)): New function declaration.
	(Late::in_bodyless_params): New member variable.

2026-10-13  Yap Zhi Heng  <yapzhhg@gmail.com>

	* lang.opt: Remove frust-c-style-string-literals option.
	* rust-session-manager.h (Session): New should_support_cstr_parsing function.
	* parse/rust-parse-impl-expr.hxx (Parser<ManagedTokenSource>::parse_literal_expr):
	Replace old flag_c_style_string_literals check with should_support_cstr_parsing.
	(Parser<ManagedTokenSource>::null_denotation_not_path): Likewise.
	* parse/rust-parse.h: Import rust-session-manager.h to access Session class.

2026-10-13  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-base.cc (walk_type_to_constrain): walk binding args

2026-10-13  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): add missing

2026-10-13  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-dot-operator.cc (MethodResolver::try_hook): use new helper
	* typecheck/rust-hir-path-probe-expr.cc (PathProbeExpr::probe_bounds): likewise
	* typecheck/rust-hir-path-probe-type.cc (TypePathProbe::probe_generic): likewise
	* typecheck/rust-hir-type-check-type.cc (TypeResolveGenericParam::visit): likewise
	(TypeResolveGenericParam::apply_trait_bounds): track new decl id
	* typecheck/rust-hir-type-check.h: new helper
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::predicates_for_type): impl
	* typecheck/rust-tyty.cc (ParamType::ParamType): new decl id
	(ParamType::clone): likewise
	* typecheck/rust-tyty.h: likewise

2026-10-13  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-coercion.cc (TypeCoercionRules::TryCoerce): add flag
	(TypeCoercionRules::TypeCoercionRules): Likewise.
	(TypeCoercionRules::do_coercion): Likewise.
	(TypeCoercionRules::coerce_unsafe_ptr): Likewise.
	(TypeCoercionRules::coerce_borrowed_pointer): Likewise.
	(TypeCoercionRules::select): Likewise.
	* typecheck/rust-coercion.h: Likewise.
	* typecheck/rust-hir-dot-operator.cc (MethodResolver::try_select_predicate_candidates):
	Likewise.
	* typecheck/rust-type-util.cc (unify_site_and): Likewise.
	* typecheck/rust-type-util.h (unify_site_and): Likewise.
	* typecheck/rust-unify.cc (UnifyRules::UnifyRules): Likewise.
	(UnifyRules::Resolve): Likewise.
	(UnifyRules::resolve_subtype): Likewise.
	(UnifyRules::expect_never): Likewise.
	* typecheck/rust-unify.h: Likewise.

2026-10-13  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-type-util.cc (normalize_projection): resolve through super traits
	* typecheck/rust-typecheck-context.cc: disable infer for trait-self
	* typecheck/rust-tyty-subst.cc: reuse to handle nested arguments
	* typecheck/rust-unify.cc (UnifyRules::go): relax infer on adts

2026-10-13  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (ParamType::clone): add guard

2026-10-13  Arthur Cohen  <arthur.cohen@opensrcsec.com>

	* parse/rust-parse.h: Remove field and associated method for
	retrieving the errors.

2026-10-13  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-context.cc (Context::type_hasher): track active adt's
	* backend/rust-compile-context.h: likewise
	* backend/rust-compile-type.cc (type_reaches_adt): likewise
	(is_recursive_adt): new helper
	(TyTyResolveCompile::compile): check for active adt
	(TyTyResolveCompile::visit): setup placeholder node then layout
	* rust-session-manager.cc (Session::compile_crate): saw errors early return
	* typecheck/rust-hir-type-check-item.cc (validate_adt_size): new helper
	(TypeCheckItem::visit): setup type node then add variants
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): check for incomplete
	* typecheck/rust-hir-type-check.h: new helpers
	* typecheck/rust-typecheck-context.cc (make_adt_substitution_key): likewise
	* typecheck/rust-tyty.cc (BaseType::monomorphized_clone): early return
	(BaseType::contains_infer): track visited for recursive safety
	(BaseType::is_concrete): likewise
	(ADTType::is_equal): likewise
	(ADTType::handle_substitions): likewise
	(FnPtr::as_string): likewise
	(PointerType::as_string): likewise
	* typecheck/rust-tyty.h: recusision safety
	* typecheck/rust-unify.cc (UnifyRules::UnifyRules): new ActiveADT's guard
	(UnifyRules::Resolve): likewise
	(UnifyRules::resolve_subtype): likewise
	(UnifyRules::expect_adt): likewise
	* typecheck/rust-unify.h: likewise

2026-10-13  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-base.cc (walk_type_to_constrain): walk the generics as well

2026-10-13  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-name-resolver.cc (Scope::Scope): Remove function
	definition.
	(Scope::insert): Likewise.
	(Scope::lookup): Likewise.
	(Scope::lookup_decl_type): Likewise.
	(Scope::lookup_rib_for_decl): Likewise.
	(Scope::iterate): Likewise.
	(Scope::peek): Likewise.
	(Scope::push): Likewise.
	(Scope::pop): Likewise.
	(Scope::append_reference_for_def): Likewise.
	(Scope::decl_was_declared_here): Likewise.
	* resolve/rust-name-resolver.h (class Scope): Remove.

2026-10-13  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item): track lifetimes

2026-10-13  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-resolve-path.cc: return a constructor for this ADT
	* backend/rust-constexpr.cc (adjust_temp_type): check for constructor
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): this is a coercion site

2026-10-13  Philip Herron  <herron.philip@googlemail.com>

	* expand/rust-expand-visitor.cc (builtin_derive_item): check for null and remove

2026-10-13  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): always update const type
	* typecheck/rust-unify.cc (UnifyRules::expect_array): emit_error=false

2026-10-13  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): check for const args
	* hir/tree/rust-hir-expr.cc (CallExpr::CallExpr): add new helper to parse attribute
	(CallExpr::operator=): new member
	* hir/tree/rust-hir-expr.h (class CallExpr): new helper
	* hir/tree/rust-hir-item.cc (Function::get_legacy_const_generic_indexes): likewise
	* hir/tree/rust-hir-item.h: likewise
	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): handle const args
	* typecheck/rust-tyty-subst.cc (SubstitutionRef::resolve_const_argument): refactor out
	* typecheck/rust-tyty-subst.h: likewise

2026-10-08  Guillaume Gomez  <contact@guillaume-gomez.fr>

	* Make-lang.in: Add compilation of `attr-handlers.c` in
	Rust front-end.
	* rust-attribs.cc (handle_leaf_attribute)
	(handle_const_attribute) (handle_pure_attribute)
	(handle_novops_attribute) (handle_nothrow_attribute)
	(handle_returns_twice_attribute) (handle_type_generic_attribute)
	(handle_fnspec_attribute) (handle_hot_attribute): Rename to `rust_`
	equivalent to avoid conflict with `attr-handlers.h` functions and remove
	the functions provided by `attr-handlers.c`.

2026-09-16  Yap Zhi Heng  <yapzhhg@gmail.com>

	* Make-lang.in: Compile the new rust-compile-platform-intrinsic files.
	* backend/rust-compile-base.cc (HIRCompileBase::setup_abi_options): Make the
	PLATFORM_INTRINSIC case use the `cdecl` ABI.
	* backend/rust-compile-platform-intrinsic.cc: New file to handle compilation of
	'platform-intrinsic' extern functions.
	* backend/rust-compile-platform-intrinsic.h: Header file for the formentioned file.
	* backend/rust-compile-expr.cc (CompileExpr::visit (HIR::CallExpr)): Add new
	conditions to compile platform-intrinsic extern functions.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_generic_params):
	Check 'platform-intrinsic' extern functions for const parameters.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit (HIR::TupleIndexExpr)):
	Fix resolved tuple expression not destructuring.

2026-09-16  Arthur Cohen  <arthur.cohen@opensrcsec.com>

	* checks/errors/feature/rust-feature-defs-rfl.h: Add cfi_encoding RfL feature.
	* checks/errors/feature/rust-feature-gate.cc (FeatureGate::visit): Add visitor
	for attributes in general, and warn on cfi_encoding being used.
	* checks/errors/feature/rust-feature-gate.h: Declare the attribute visitor.
	* util/rust-attribute-values.h: Add #[cfi_encoding].
	* util/rust-attributes.cc: Likewise.

2026-09-16  Arthur Cohen  <arthur.cohen@opensrcsec.com>

	* checks/errors/feature/rust-feature-gate.cc (FeatureGate::gate): Move into public
	methods, use GateResult enum.
	* checks/errors/feature/rust-feature-gate.h: Add new GateResult enum.

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-casts.cc (TypeCastRules::cast_rules): fix bad const cast
	* util/rust-attribute-values.h: add attribute
	* util/rust-attributes.cc: likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::TypeBoundPredicate): remove.
	(TypeBoundPredicate::operator=): Likewise.
	(TypeBoundPredicateItem::get_tyty_for_receiver): Likewise.
	* typecheck/rust-tyty-subst.cc (SubstitutionArgumentMappings::error): Likewise.
	(SubstitutionArgumentMappings::empty): Likewise.
	(SubstitutionArgumentMappings::on_param_subst): Likewise.
	(SubstitutionArgumentMappings::get_subst_cb): Likewise.
	* typecheck/rust-tyty-subst.h (std::function<void): Likewise.
	* typecheck/rust-tyty.cc (ParamType::handle_substitions): Likewise.

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* expand/rust-derive-ord.cc (DeriveOrd::cmp_fn): use Self

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-type-util.cc (query_type): dont query non const candidates

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
	use probe expr on last seg

2026-09-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-expr.cc
	(ClosureParam::ClosureParam): Set locus.
	(ClosureParam::operator=): Likewise.
	(ClosureExpr::ClosureExpr): Likewise.
	(ClosureExpr::operator=): Likewise.
	* typecheck/rust-hir-type-check-expr.cc
	(TypeCheckExpr::visit (ClosureExpr)): Use
	Mappings::get_lang_item.

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): make addressable
	* backend/rust-constexpr.cc (eval_store_expression): port over missing cp/constexpr.cc

2026-09-16  Arthur Cohen  <arthur.cohen@opensrcsec.com>

	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Change extern type codegen from
	empty struct to the void type node.

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* hir/tree/rust-hir-item.h: missing non const helper.
	* typecheck/rust-hir-type-check-base.h: new defer_bindings.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit): new helper
	(TypeCheckImplItem::resolve_function_signature): Likewise.
	(TypeCheckImplItem::visit): Likewise.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):  Likewise.
	(TypeCheckItem::resolve_function_signature):  Likewise.
	(TypeCheckItem::resolve_impl_block_substitutions):  Likewise.
	* typecheck/rust-hir-type-check-type.cc (ResolveWhereClauseItem::Resolve): new helper
	(ResolveWhereClauseItem::visit): support defer.
	* typecheck/rust-hir-type-check-type.h: update header.
	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): call new helper
	* typecheck/rust-tyty-bounds.cc: defer flag

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc: check candidate self

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-base.cc: walk type bindings

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): grab lifetimes

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): add missing checks

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): stop on ParamTypes

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-typecheck-context.cc (TypeCheckContext::pop_return_type):
	push expected null

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): update
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::resolve_impl_block_substitutions):
	likewise
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): 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_resolved_predicate):
	likewise
	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::TypeBoundPredicate): likewise
	(TypeBoundPredicate::operator=): remove deadcode
	(TypeBoundsMappings::add_bound): use ref
	* typecheck/rust-tyty-call.cc (validate_call_argument_associated_impl_bounds): use ref
	* typecheck/rust-tyty.cc (BaseType::BaseType): likewise
	(BaseType::inherit_bound): likewise
	(ParamType::ParamType): likewiase
	* typecheck/rust-tyty.h: likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* checks/errors/privacy/rust-reachability.cc: dont need to assert
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): push const ctx
	* 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-type.cc (TypeCheckType::visit): likewse
	* typecheck/rust-hir-type-check.h: likewise
	* typecheck/rust-type-util.cc (query_type): check const_context_p

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-substitution-mapper.cc (SubstMapper::valid_type): check for dyn object
	(SubstMapper::visit): substitution on it
	* typecheck/rust-substitution-mapper.h: add impl

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-pattern.cc (CompilePatternCheckExpr::visit): handle non ADT
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-dot-operator.cc (MethodResolver::Select): optional result type
	* typecheck/rust-hir-dot-operator.h: likewise
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::ResolveOpOverload): defer flag
	(TypeCheckExpr::visit): pass throw the borrow
	* typecheck/rust-hir-type-check-expr.h: likewise
	* typecheck/rust-hir-type-check.h (struct DeferredOpOverload): new
	* typecheck/rust-type-util.cc (unify_site): like parameter ordering
	(unify_site_and): likewise
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::compute_ambigious_op_overload): new
	(TypeCheckContext::compute_inference_variables): likewise
	(TypeCheckContext::compute_infer_var): likewise
	* typecheck/rust-unify.cc (UnifyRules::Resolve): fix arguments
	(UnifyRules::resolve_subtype):likewise
	* typecheck/rust-unify.h: likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-ast-lower-item.cc (register_adt_impl): remove
	(ASTLoweringItem::visit): likewise
	* rust-session-manager.cc (Session::compile_crate): call new indexer
	* typecheck/rust-hir-dot-operator.cc
	(MethodResolver::try_select_predicate_candidates): use indexes
	* typecheck/rust-hir-path-probe-expr.cc (PathProbeExpr::probe_adt_impls): likewise
	* typecheck/rust-hir-path-probe-impl-trait.cc
	(PathProbeImplTrait::process_trait_impl_items_for_candidates): likewise
	* typecheck/rust-hir-path-probe-type.cc (TypePathProbe::probe_adt): likewise
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::scan): likewise
	* util/rust-hir-map.cc (Mappings::Mappings): new indexer
	(Mappings::insert_hir_impl_block): likewise
	(Mappings::insert_adt_impl_mapping): likewise
	(Mappings::build_impl_indexes): likewise
	(Mappings::insert_trait_impl_mapping): likewise
	(Mappings::insert_trait_item_mapping): likewise
	* util/rust-hir-map.h: likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-dot-operator.cc: use item name indexes
	* util/rust-hir-map.cc (Mappings::insert_hir_impl_block): new index
	(Mappings::insert_trait_item_mapping): likewise
	* util/rust-hir-map.h: likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::scan): use trait index

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): use sperate index
	* util/rust-hir-map.cc (Mappings::insert_hir_impl_block): new indexes
	* util/rust-hir-map.h: likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): look at predicates first

2026-09-16  Yap Zhi Heng  <yapzhhg@gmail.com>

	* rust-lang.cc (grs_langhook_pushdecl): Remove rust_unreachable().

2026-09-16  Pierre-Emmanuel Patry  <pierre.emmanuel.patry@opensrcsec.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::visit): Return on
	error.

2026-09-16  Pierre-Emmanuel Patry  <pierre.emmanuel.patry@opensrcsec.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::finalize_rebind_import):
	Use a reverse iterator instead of an index.

2026-09-16  Pierre-Emmanuel Patry  <pierre.emmanuel.patry@opensrcsec.com>

	* util/rust-hir-map.cc (Mappings::get_ast_crate_by_node_id_raw): Use
	appropriate getter.

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc: remove old hack

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* ast/rust-path.cc (GenericArgsBinding::as_string): new format
	* ast/rust-path.h (struct GenericArgsBinding): new kinds for bindings
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_binding): new
	* hir/tree/rust-hir-path.cc (GenericArgsBinding::GenericArgsBinding): likewise
	(GenericArgsBinding::operator=): likewise
	* hir/tree/rust-hir-path.h (class GenericArgsBinding): likewise
	* hir/tree/rust-hir.cc (GenericArgsBinding::to_string): likewise
	* parse/rust-parse-impl.hxx: peek for both types
	* typecheck/rust-type-util.cc (normalize_projection): track constrains
	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::TypeBoundPredicate): new ctor
	(TypeBoundPredicate::operator=): likewise
	* typecheck/rust-tyty-subst.cc (SubstitutionArgumentMappings::get_constraint_args): new
	* typecheck/rust-tyty-subst.h: new
	* typecheck/rust-unify.cc (UnifyRules::expect_projection): fix loop

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::Resolve): new mode
	(TypeCheckType::visit): likewise
	(ResolveWhereClauseItem::visit): remove nr usage
	* typecheck/rust-hir-type-check-type.h: new mode

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-variance-analysis.cc (GenericTyPerCrateCtx::debug_print_solutions):
	we can switch into a substitutionref base class to make this generic

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-bounds.cc: handle assertion

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-variance-analysis.cc (GenericTyVisitorCtx::lookup_or_add_type):
	handle the other tyty types

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-ast-lower-implitem.cc (ASTLowerTraitItem::visit): lower where clauses

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-base.cc (walk_type_to_constrain): prototype
	(walk_types_to_constrain): make sure to walk the argument too

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-path-probe-expr.cc (PathProbeExpr::probe_adt_impls): check impls first
	(PathProbeExpr::probe_fallback_impls): likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-extern.h: compile it down
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): make empty struct
	* checks/errors/rust-hir-pattern-analysis.cc (PlaceInfo::specialize): add missng case
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit): create adt
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::assemble_marker_builtins): not sized
	* typecheck/rust-tyty.h: new kind

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item): can be recusive

2026-09-16  Lishin  <lishin1008@gmail.com>

	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
	(ExprStmtBuilder::visit): Pass the struct expression HIR ID.
	* checks/errors/borrowck/rust-bir-builder-internal.h
	(AbstractBuilder::push_tmp_assignment): Propagate move sites.
	(AbstractBuilder::move_place): Likewise.
	(AbstractBuilder::move_all): Likewise.
	* checks/errors/borrowck/rust-bir-drop-analysis.cc
	(annotate_drop_statements): Reject multiple move sources.

2026-09-16  Lishin  <lishin1008@gmail.com>

	* backend/rust-compile-context.h
	(Context::insert_drop_flag): New function.
	(Context::lookup_drop_flag): Likewise.
	(Context::drop_flags): New member.
	* backend/rust-compile-drop-builder.cc
	(DropBuilder::maybe_create_drop_flag): New function.
	(DropBuilder::drop_flag_assignment): Likewise.
	* backend/rust-compile-drop-builder.h
	(DropBuilder::maybe_create_drop_flag): New declaration.
	(DropBuilder::drop_flag_assignment): Likewise.
	* backend/rust-compile-drop.cc
	(CompileDrop::build_current_scope_drop_cleanup): Check Drop flags before
	running conditional Drops.
	* backend/rust-compile-pattern.cc
	(CompilePatternLet::visit): Set the Drop flag after initialization.
	* backend/rust-compile-stmt.cc
	(CompileStmt::visit): Create Drop flags and clear them after moves.
	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
	(ExprStmtBuilder::visit): Pass expression HirIds to BIR.
	* checks/errors/borrowck/rust-bir-builder-internal.h
	(AbstractBuilder::push_assignment): Pass move-site HirIds.
	(AbstractExprBuilder::return_place): Likewise.
	* checks/errors/borrowck/rust-bir-drop-analysis.cc
	(is_straight_line): Remove.
	(record_drop_for_backend): Rename from
	record_drop_for_straight_line_backend.
	(annotate_drop_statements): Record conditional Drops and move
	sources.
	(DropAnalysis::clear): Clear the new analysis results.
	(DropAnalysis::needs_drop_flag): New function.
	(DropAnalysis::lookup_move_source): Likewise.
	(DropAnalysis::analyze): Record results for the backend.
	* checks/errors/borrowck/rust-bir-drop-analysis.h
	(DropAnalysis::needs_drop_flag): New declaration.
	(DropAnalysis::lookup_move_source): Likewise.
	(DropAnalysis::conditionally_dropped): New member.
	(DropAnalysis::move_sources): Likewise.
	* checks/errors/borrowck/rust-bir.h
	(Statement::make_assignment): Accept a move-site HirId.
	(Statement::Statement): Likewise.
	(Statement::get_move_site): New function.
	(Statement::move_site): New member.

2026-09-16  Yap Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-builtins.cc (BuiltinsContext::register_llvm_to_gcc_builtin): Add entries
	for vcvtph2ps & vcvtps2ph cases (currently unused due to the reason mentioned above).
	* backend/rust-compile-extern.h (CompileExternItem::visit(HIR::ExternalFunctionItem)):
	Remove placeholder function in the FORWARD_ARGUMENTS case under compilation of UNADJUSTED
	ABI.
	(CompileExternItem::compile_x86_forwarding_adapter): New function to adapt LLVM's addcarryx
	function signatures by simply forwarding the parameters and return var without changes.

2026-09-16  Yap Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-builtins.h (LlvmBuiltinMappingResult): New enum.
	(LlvmBuiltinAdapter): New enum.
	(LlvmBuiltinMapping): New enum.
	(BuiltinsContext::map_llvm_to_gcc_builtin): New function for LLVM built-in mapping.
	(BuiltinsContext::register_builtin): New function for registering built-ins.
	(BuiltinsContext::register_llvm_to_gcc_builtin): New function.
	(BuiltinsContext::llvm_to_gcc_builtin): New map to translate function names.
	* backend/rust-builtins.cc (BuiltinsContext::map_llvm_to_gcc_builtin): Implementation.
	(BuiltinsContext::register_llvm_to_gcc_builtin): Implementation.
	(BuiltinsContext::register_builtin): Implementation.
	(BuiltinsContext::setup): Call register_llvm_to_gcc_builtin during setup.
	* rust-lang.cc (grs_langhook_builtin_function): Register GCC built-in functions.
	* backend/rust-compile-extern.h (CompileExternItem::OutputTupleOrder): New enum to denote
	the tuple field order of the LLVM built-in's return type.
	(CompileExternItem::compile_x86_output_pointer_adapter): New function to adapt LLVM's
	rdseed, rdrand, addcarry, subborrow function signatures to GCC's equivalents.
	(CompileExternItem::visit (HIR::ExternalFunctionItem)): Handle UNADJUSTED ABI case by
	properly resolving LLVM intrinsic function names.

2026-09-16  Yap Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-builtins.h (BuiltinsContext::SetupState): New enum.
	* backend/rust-builtins.cc (BuiltinsContext::get): Ensure that BuiltinsContext is only
	initialized once.
	(BuiltinsContext::BuiltinsContext): Likewise.
	(BuiltinsContext::setup): Call targetm.init_builtins to make GCC builtins available
	to the frontend.
	* rust-gcc.cc (init): Eagerly initialize BuiltinsContext.

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-reference.cc (TraitItemReference::get_tyty): early guard
	(TraitReference::resolve_default_function_bodies): new body resolver
	* typecheck/rust-hir-trait-reference.h: new prototypes
	* typecheck/rust-hir-trait-resolve.cc (TraitItemReference::on_resolved): resolve body
	(TraitItemReference::resolve_default_function_body): likewise
	(TraitItemReference::resolve_item): clearing pending
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::ResolveTraitSignature): new
	(TypeCheckItem::resolve_trait): likewise
	(TypeCheckItem::visit): likewise
	* typecheck/rust-hir-type-check-item.h: likewise
	* typecheck/rust-type-util.cc (query_type): get signiture

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItem::visit):
	check need to resolve body
	* typecheck/rust-hir-type-check-implitem.h: new resolve sig
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::Resolve): check recursion
	(TypeCheckItem::ResolveFunctionSignature): new helper
	(TypeCheckItem::ResolveImplBlockSelf): missing lifetime pin
	(TypeCheckItem::visit): likewise
	* typecheck/rust-hir-type-check-item.h: new helper
	* typecheck/rust-hir-type-check.h: track function body pending
	* typecheck/rust-type-util.cc (query_type): track associated self
	(normalize_projection): check compatable
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::mark_function_body_pending):
	marker to make sure body gets resolved later
	(TypeCheckContext::clear_function_body_pending): clear market
	(TypeCheckContext::function_body_pending): new set

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItem::visit): seperate
	(TypeCheckImplItem::resolve_function_signature): likewise
	* typecheck/rust-hir-type-check-implitem.h: seperate
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): likewise
	(TypeCheckItem::resolve_function_signature): likewise
	* typecheck/rust-hir-type-check-item.h: likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-dot-operator.cc:

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-path-probe-expr.cc (PathProbeExpr::Probe): simpler interface
	(PathProbeExpr::probe): based of the receiver
	(PathProbeExpr::visit): no longer needed
	(PathProbeExpr::probe_adt_impls): new probe
	(PathProbeExpr::probe_fallback_impls): fallback to iterate impls
	(PathProbeExpr::process_enum_item_for_candiates): removed
	(PathProbeExpr::process_enum_item_for_candidates): likewise
	(PathProbeExpr::process_impl_items_for_candidates): likewise
	(PathProbeExpr::process_impl_item_candidate): likewise
	(PathProbeExpr::probe_bounds): fall back to the impl iter
	(PathProbeExpr::insert_candidate): acumulate
	* typecheck/rust-hir-path-probe-expr.h (class PathProbeExpr): new interface
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::TypeCheckExpr): likewise
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* Make-lang.in: new object
	* typecheck/rust-hir-path-probe.cc (PathProbeType::PathProbeType): refactor
	(PathProbeType::Probe): likewise
	(PathProbeType::visit): likewise
	(PathProbeType::process_enum_item_for_candiates): likewise
	(PathProbeType::process_impl_items_for_candidates): likewise
	(PathProbeType::process_impl_item_candidate): likewise
	(PathProbeType::is_receiver_generic): likewise
	* typecheck/rust-hir-path-probe.h (class PathProbeType): likewise
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): likewise
	* typecheck/rust-hir-path-probe-expr.cc: New file.
	* typecheck/rust-hir-path-probe-expr.h: New file.

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* Make-lang.in: new object
	* backend/rust-compile-base.cc: refactor
	* backend/rust-compile-drop.cc: likewise
	* backend/rust-compile-resolve-path.cc: likewise
	* typecheck/rust-hir-path-probe.cc (PathProbeImplTrait::PathProbeImplTrait): likewise
	(PathProbeImplTrait::Probe): likewise
	(PathProbeImplTrait::process_trait_impl_items_for_candidates): likewise
	* typecheck/rust-hir-path-probe.h (class PathProbeImplTrait): likewise
	* typecheck/rust-hir-path-probe-impl-trait.cc: New file.
	* typecheck/rust-hir-path-probe-impl-trait.h: New file.

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* Make-lang.in: new object
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_associated_type): helper
	* typecheck/rust-hir-type-check-type.h: new interface
	* typecheck/rust-hir-path-probe-type.cc: New file.
	* typecheck/rust-hir-path-probe-type.h: New file.

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-ast-lower-item.cc (register_adt_impl): new mappings
	(ASTLoweringItem::visit): tracker function
	* typecheck/rust-hir-path-probe.cc (PathProbeType::process_impl_items_for_candidates):
	iterator
	* util/rust-hir-map.cc (Mappings::insert_adt_impl_mapping): helper
	* util/rust-hir-map.h: likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-path-probe.cc (PathProbeType::Probe): filter

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-type-util.cc (lookup_associated_impl_block): add filter
	(normalize_projection): likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): dp trait lookup
	* typecheck/rust-tyty.cc (BaseType::satisfies_bound): add filter

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::validate_type_implements_this): filter

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-bounds.h: optional trait arg
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::TypeBoundsProbe): likewise
	(TypeBoundsProbe::Probe): likewise
	(TypeBoundsProbe::is_bound_satisfied_for_type): use specified trait
	(TypeBoundsProbe::scan): try to scan for indexed traits

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-dot-operator.cc (MethodResolver::MethodResolver): new optional filter
	(MethodResolver::Probe): likewise
	(MethodResolver::try_select_predicate_candidates): likewise
	(MethodResolver::select): likewise
	* typecheck/rust-hir-dot-operator.h: likewise
	* typecheck/rust-hir-type-check-expr.cc: pass lang item trait
	* util/rust-hir-map.cc: new helper to scan implblocks
	* util/rust-hir-map.h: likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): add mapping
	* rust-session-manager.cc (Session::compile_crate): make sure nr context is ready
	* typecheck/rust-hir-path-probe.cc
	(PathProbeImplTrait::process_trait_impl_items_for_candidates): use the new filter
	* util/rust-hir-map.cc (Mappings::insert_trait_impl_mapping): new helper
	* util/rust-hir-map.h: likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-hir-dump.cc (Dump::do_typepathfunction): add guard

2026-09-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* typecheck/rust-tyty.h: Rename FN_VARADIC_FLAG -> FN_VARIADIC_FLAG.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit): Use
	the new name.

2026-09-16  Yap Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-compile-var-decl.h (CompileVarDecl::visit (StructPattern)): Compile
	variable declarations for use within CompilePatternLet::visit(StructPattern).
	* backend/rust-compile-pattern.h (CompilePatternLet::visit (StructPattern)):
	Remove rust_sorry_at.
	* backend/rust-compile-pattern.cc (CompilePatternLet::visit (StructPattern)):
	Compile bindings for struct fields.

2026-09-16  Lishin  <lishin1008@gmail.com>

	* checks/errors/borrowck/rust-bir-drop-analysis.cc
	(struct BlockInitializationState): New struct.
	(is_straight_line): New function.
	(set_initialized): Likewise.
	(set_uninitialized): Likewise.
	(merge_state): Likewise.
	(update_state_for_statement): Likewise.
	(classify_drop): Likewise.
	(compute_entry_states): Likewise.
	(record_drop_for_straight_line_backend): Likewise.
	(annotate_drop_statements): Likewise.
	(DropAnalysis::analyze): Propagate initialization state across the
	CFG and classify Drop statements.
	* checks/errors/borrowck/rust-bir-drop-analysis.h: Update class
	comment.

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-resolve.cc (AssociatedImplTrait::bind_impl_for_projection):
	switch between generics
	(AssociatedImplTrait::bind_impl_for_bound): likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* rust-diagnostics.cc (rust_debug_loc): rename
	(rust_debug_loc_internal): no longer check if debug is enabled
	* rust-diagnostics.h (rust_debug): new wrapper
	(rust_debug_loc): likewise
	(rust_debug_loc_internal): likewise

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-base.cc (walk_type_to_constrain): walk const generics

2026-09-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-type-util.cc (normalize_projection): add check

2026-09-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc
	(DefaultResolver::visit (Function)): Don't pass a path parameter
	to function NameResolutionContext::scoped.

2026-09-16  Utkarsh Bahuguna  <utkarshbahuguna10@gmail.com>

	* parse/rust-parse-impl-path.hxx (Parser::parse_path_in_expression):
	Report an error when the initial segment of a scoped path fails to
	parse.
	* parse/rust-parse-impl.hxx (Parser::parse_stmt_or_expr): Remove the
	redundant expected-identifier error guard.

2026-09-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc
	(TypeCheckExpr::visit (BoxExpr)): Attempt to resolve lang item,
	instead of just looking it up.
	(TypeCheckExpr::visit (RangeFromToExpr)): Likewise.
	(TypeCheckExpr::visit (RangeFromExpr)): Likewise.
	(TypeCheckExpr::visit (RangeToExpr)): Likewise.
	(TypeCheckExpr::visit (RangeFullExpr)): Likewise.

2026-09-16  Yap Zhi Heng  <yapzhhg@gmail.com>

	* util/rust-abi.h (ABI): Add PLATFORM_INTRINSIC and UNADJUSTED variants.
	* util/rust-abi.cc (ABI::get_abi_from_string): Implement cases for PLATFORM_INTRINSIC &
	UNADJUSTED.
	(ABI::get_string_from_abi): Ditto.

2026-09-10  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): make vector
	* rust-gcc.cc (struct_field_expression): we use bit field acces for lanes
	(constructor_expression): special case VECTOR
	(convert_tree): likewise for canonical main variant

2026-09-10  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-constexpr.cc (eval_constant_expression): port over goto
	(potential_constant_expression_1): likewise

2026-09-10  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-expr.h (LlvmInlineAsm::LlvmInlineAsm): Initialize
	more member variables.
	(LlvmInlineAsm::get_dialect): Make function const qualified.
	(LlvmInlineAsm::is_stack_aligned): Likewise.
	(LlvmInlineAsm::is_volatile): Likewise.
	* backend/rust-compile-asm.cc
	(CompileLlvmAsm::construct_operands): Handle llvm-specific "=*m"
	constraint.
	(CompileLlvmAsm::tree_codegen_asm): Handle change from multiple
	template strings to a single template string.
	* hir/rust-ast-lower-expr.cc (convert_template_str): New
	function.
	(check_llvm_asm_support): Remove unnecessary parameters and
	expand the set of allowed llvm_asm usages.
	(ASTLoweringExpr::visit (LlvmInlineAsm)): Adjust lowering.
	* hir/tree/rust-hir-expr.h (LlvmInlineAsm::templates): Remove
	member variable and replace with...
	(LlvmInlineAsm::template_str): ...new member variable.
	(LlvmInlineAsm::LlvmInlineAsm): Handle member variable changes.
	(LlvmInlineAsm::get_templates): Remove member function and
	replace with...
	(LlvmInlineAsm::get_template): ...new member function.
	* hir/tree/rust-hir-visitor.cc
	(DefaultHIRVisitor::walk (LlvmInlineAsm)): Visit outer
	attributes.
	* typecheck/rust-hir-type-check-expr.cc
	(TypeCheckExpr::visit (LlvmInlineAsm)): Adjust comments.

2026-09-10  Yap Zhi Heng  <yapzhhg@gmail.com>

	* util/rust-lang-item.h (LangItem::Kind): Add lang item declarations for missing
	lang items required for core 1.49 compilation.
	* util/rust-lang-item.cc (LangItem::lang_items): Ditto.

2026-09-10  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-diagnostics.cc (rust_debug_fmt_at): New function
	definition.
	* rust-diagnostics.h (rust_debug_fmt): New function-like macro
	definition.
	(rust_debug_fmt_at): New function declaration.

2026-09-10  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-reference.h: add emit_errors option
	* typecheck/rust-hir-trait-resolve.cc (AssociatedImplTrait::bind_impl_for_projection): new
	(AssociatedImplTrait::bind_impl_for_bound): call new validate function
	* typecheck/rust-type-util.cc (lookup_associated_impl_block): make this more generic
	* typecheck/rust-tyty-call.cc (validate_call_argument_associated_impl_bounds): new
	(TypeCheckCallExpr::visit): for each call arg validate and bind
	(TypeCheckMethodCallExpr::check): likewise

2026-09-10  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/errors/rust-unsafe-checker.cc (check_static_mut)
	(check_extern_static, check_unsafe_call, check_extern_call)
	(check_target_attr): Return whether the operation requires unsafe and
	only error outside of an unsafe context.
	(UnsafeChecker::mark_unsafe_used): New.
	(UnsafeChecker::check_use_of_static)
	(UnsafeChecker::check_function_call)
	(UnsafeChecker::check_function_attr): Mark the unsafe block as used.
	(UnsafeChecker::visit): Mark used and warn on unnecessary unsafe block.
	* checks/errors/rust-unsafe-checker.h (UnsafeChecker): Add
	mark_unsafe_used and used_unsafe_blocks.

2026-09-10  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/rust-ast-lower.cc (ASTLoweringBlock::visit): Check if a
	statement is an item before warning.

2026-09-10  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-constexpr.cc (maybe_fold_reference_address_to_pointer): port over from cp
	(eval_binary_expression): likewise

2026-09-10  Philip Herron  <herron.philip@googlemail.com>

	* parse/rust-parse-impl.hxx:
	* typecheck/rust-hir-type-check-base.cc:

2026-09-10  Philip Herron  <herron.philip@googlemail.com>

	* ast/rust-ast-visitor.cc (ContextualASTVisitor::visit): missing visitor
	* ast/rust-ast-visitor.h: prototype

2026-09-10  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Handle Box
	receivers correctly during dynamic dispatch.
	* typecheck/rust-hir-dot-operator.cc (MethodResolver::try_hook):
	Extract the inner type of a Box to resolve trait methods.
	* util/rust-lang-item.cc (Rust::LangItem::lang_items): Register
	dispatch_from_dyn to the BiMap.
	* util/rust-lang-item.h (class LangItem): Add DISPATCH_FROM_DYN
	to the Kind enum.

2026-09-10  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-expr.cc (compile_box): Remove DST guard.
	(build_box_inner_ptr): Add fat pointer control.
	(CompileExpr::visit): Add auto-deref for box.
	(HIRCompileBase::resolve_deref_adjustment): Return fat or thin
	pointer.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Add auto-deref for box.
	* typecheck/rust-tyty.cc (ADTType::is_box): New function.
	* typecheck/rust-tyty.h (class BaseType): New declaration.

2026-09-10  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	New.
	* checks/lints/unused/rust-unused-checker.h (UnusedChecker::visit):
	New.

2026-09-10  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-collector.cc
	(TokenCollector::visit (LlvmInlineAsm)): Improve accuracy of
	token collection.
	* ast/rust-ast-pointer-visitor.cc
	(PointerVisitor::visit (LlvmInlineAsm)): Visit outer attributes.
	* ast/rust-ast-visitor.cc
	(DefaultASTVisitor::visit (LlvmInlineAsm)): Likewise.
	* ast/rust-expr.h (LlvmInlineAsm::templates): Remove member
	variable and replace with...
	(LlvmInlineAsm::template_str): ...new member variable.
	(LlvmInlineAsm::LlvmInlineAsm): Initialize template_str.
	(LlvmInlineAsm::get_templates): Remove member function.
	(LlvmInlineAsm::set_template): New member function.
	(LlvmInlineAsm::get_template): Likewise.
	* expand/rust-macro-builtins-asm.cc (parse_llvm_templates):
	Rename to...
	(parse_llvm_template): ...here and adjust to not expect multiple
	template strings.
	(parse_llvm_asm): Handle rename of parse_llvm_templates to
	parse_llvm_template.
	* hir/rust-ast-lower-expr.cc (check_llvm_asm_support): Handle
	changes to LlvmInlineAsm.
	(ASTLoweringExpr::visit (LlvmInlineAsm)): Likewise.

2026-09-10  Lucas Ly Ba  <hi@lucaslyba.com>

	* typecheck/rust-hir-type-check-item.cc
	(check_repr_c_enum_discriminants): New.
	(TypeCheckItem::visit): Check repr(C) enum discriminants.

2026-09-10  Lishin  <lishin1008@gmail.com>

	* backend/rust-compile-drop.cc
	(CompileDrop::build_current_scope_drop_cleanup): Skip definitely
	dead Drop candidates.
	* checks/errors/borrowck/rust-bir-drop-analysis.cc
	(DropAnalysis::get): New function.
	(DropAnalysis::clear): Likewise.
	(DropAnalysis::is_definitely_dead): Likewise.
	(DropAnalysis::analyze): Record dead whole-local HirIds.
	* checks/errors/borrowck/rust-bir-drop-analysis.h
	(DropAnalysis::get): New declaration.
	(DropAnalysis::clear): Likewise.
	(DropAnalysis::is_definitely_dead): Likewise.
	(DropAnalysis::definitely_dead): New member.
	* checks/errors/borrowck/rust-borrow-checker.cc
	(BorrowChecker::go): Clear old Drop analysis results and analyze
	each BIR function.

2026-09-10  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Add
	indirect field access for DST's and new borrow approach for fat
	pointers.
	(resolve_unsized_adt_adjustment): Correct GIMPLE generation for
	nested unsized ADTs.
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Add
	DST ADT support.
	(TyTyResolveCompile::create_dyn_adt_record): New function.
	* backend/rust-compile-type.h (create_dyn_adt_record): New
	declaration.
	* backend/rust-intrinsic-handlers.cc (get_inner_dst): New
	function.
	(size_of_val_handler): Add DST ADT support.
	(min_align_of_val_handler): Likewise.
	* typecheck/rust-coercion.cc
	(TypeCoercionRules::coerce_unsized_adt): Skip zero-sized fields
	during coercion.
	* backend/rust-compile.cc (HIRCompileBase::coerce_to_dyn_object):
	Remove unnecessary ref wrapping.
	* typecheck/rust-tyty.cc (ADTType::is_unsized): New function.
	(ReferenceType::is_dyn_object): Add DST ADT support.
	(ReferenceType::is_dyn_adt_type): New function.
	(PointerType::is_dyn_object): Add DST ADT support.
	(PointerType::is_dyn_adt_type): New function.
	* typecheck/rust-tyty.h (is_unsized): New declaration.

2026-09-10  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-base.h (resolve_adjustments): Fix typo.
	(resolve_unsized_adt_adjustment): New declaration.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Fix typo.
	(HIRCompileBase::resolve_unsized_adt_adjustment): New function.
	(HIRCompileBase::resolve_unsized_adjustment): Use it.
	(CompileExpr::generate_possible_fn_trait_call): Likewise.
	(HIRCompileBase::coercion_site): Fix typo.
	* typecheck/rust-coercion.cc
	(TypeCoercionRules::coerce_unsized): Use helper functions.
	(TypeCoercionRules::unwrap_ptrs_and_refs): New function.
	(TypeCoercionRules::coerce_unsized_array_to_slice): Likewise.
	(TypeCoercionRules::coerce_unsized_dyn): Likewise.
	(TypeCoercionRules::coerce_unsized_adt): Liksewise.
	(TypeCoercionRules::apply_reborrow_adjustment): Likewise.
	* typecheck/rust-coercion.h (struct CoercionSetup): New struct.
	(coerce_unsized): Add is_inner parameter.
	(unwrap_ptrs_and_refs): New declaration.
	(coerce_unsized_array_to_slice): Likewise.
	(coerce_unsized_dyn): Likewise.
	(coerce_unsized_adt): Likewise.
	* util/rust-lang-item.cc (Rust::LangItem::lang_items): Add
	coerce_unsized to the BiMap.
	* util/rust-lang-item.h (class LangItem): Add COERCE_UNSIZED to
	the Kind enum.

2026-09-10  Enes Cevik  <enes@nsvke.com>

	* typecheck/rust-coercion.cc
	(TypeCoercionRules::coerce_unsized): Add array-to-slice coercion
	support.

2026-09-10  Enes Cevik  <enes@nsvke.com>

	* typecheck/rust-tyty.cc (BaseType::unsize_to): New function.
	(BaseType::satisfies_bound): Use it.
	* typecheck/rust-tyty.h (class BaseType): New declaration.
	* util/rust-lang-item.cc (Rust::LangItem::lang_items): Add
	unsize to the BiMap.
	* util/rust-lang-item.h (class LangItem): Add UNSIZE to the Kind
	enum.

2026-09-10  Lishin  <lishin1008@gmail.com>

	* checks/errors/borrowck/rust-bir-drop-analysis.cc
	(BasicBlockIdHash): New helper.
	(DropAnalysis::analyze): Use unordered_set for visited block tracking.
	* checks/errors/borrowck/rust-bir-drop-analysis.h: Include rust-bir.h
	directly and remove Function forward declaration.
	* checks/errors/borrowck/rust-bir-place.h
	(IndexVec::IndexVec): Add comment for sized constructor.

2026-09-10  Lishin  <lishin1008@gmail.com>

	* Make-lang.in: Add rust-bir-drop-analysis.o.
	* checks/errors/borrowck/rust-bir.h:
	(Statement::DropStyle): New enum.
	(Statement::Kind): Add DROP.
	(Statement::make_drop): New function.
	(Statement::get_drop_style): Likewise.
	(Statement::set_drop_style): Likewise.
	* checks/errors/borrowck/rust-bir-builder-internal.h:
	(AbstractBuilder::declare_argument): New function.
	(AbstractBuilder::push_drop): Likewise.
	(AbstractBuilder::push_function_argument_drops): Likewise.
	(AbstractBuilder::pop_scope): Schedule Drop statements.
	(AbstractBuilder::unwind_until): Likewise.
	(AbstractBuilder::push_return): Schedule function argument drops.
	* checks/errors/borrowck/rust-bir-builder.h
	(Builder::handle_param): Use declare_argument for function
	parameters.
	* checks/errors/borrowck/rust-bir-dump.cc (Dump::visit): Dump
	Drop classifications.
	* checks/errors/borrowck/rust-bir-fact-collector.h
	(FactCollector::visit): Handle Drop statements.
	* checks/errors/borrowck/rust-borrow-checker.cc
	(BorrowChecker::go): Run BIR Drop analysis.
	* checks/errors/borrowck/rust-bir-drop-analysis.cc: New file.
	* checks/errors/borrowck/rust-bir-drop-analysis.h: New file.

2026-09-10  Lishin  <lishin1008@gmail.com>

	* checks/errors/borrowck/rust-bir-place.h
	(IndexVec::IndexVec): Create the requested number of elements.

2026-09-10  Utkarsh Bahuguna  <utkarshbahuguna10@gmail.com>

	* util/rust-hir-map.h (Mappings::insert_extern_crate_id)
	(Mappings::is_extern_crate): New declaration.
	(Mappings::extern_crate_ids): New member.
	* util/rust-hir-map.cc (Mappings::insert_extern_crate_id)
	(Mappings::is_extern_crate): New function.
	* resolve/rust-toplevel-name-resolver-2.0.h
	(TopLevel::visit (ExternCrate)): New declaration.
	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::check_multiple_insertion_error): Select E0259, E0260 or
	E0428 based on the colliding declarations.
	(TopLevel::visit (ExternCrate)): New function definition.

2026-09-10  Lishin  <lishin1008@gmail.com>

	* backend/rust-compile-block.cc (is_control_flow_expr): New helper.
	(CompileBlock::visit): Emit tail-position break and continue
	expressions as statements.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Return the
	translated expression for unlabeled break instead of emitting it
	directly.

2026-09-10  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-pattern.cc
	(CompilePatternBindings::visit (SlicePattern)): Assert that the
	rest pattern isn't bound (currently unsupported).
	* checks/errors/borrowck/rust-bir-builder-pattern.cc
	(PatternBindingBuilder::visit (SlicePattern)): Handle bound rest
	pattern.
	* checks/errors/rust-ast-validation.cc
	(ASTValidation::visit (AST::SlicePattern)): Likewise.
	* hir/rust-ast-lower-pattern.cc
	(ASTLoweringPattern::visit (AST::SlicePattern)): Likewise.
	* hir/rust-hir-dump.cc (Dump::visit (SlicePatternItemsHasRest)):
	Likewise.
	* hir/tree/rust-hir-pattern.h
	(SlicePatternItemsHasRest::rest_bind): New member variable.
	(SlicePatternItemsHasRest::SlicePatternItemsHasRest): Initialize
	rest_bind.
	(SlicePatternItemsHasRest::operator=): Likewise.
	(SlicePatternItemsHasRest::has_rest_bind): New member function.
	(SlicePatternItemsHasRest::get_rest_bind): Likewise.
	* hir/tree/rust-hir-visitor.cc
	(DefaultHIRVisitor::walk (SlicePatternItemsHasRest)): Handle
	bound rest pattern.
	* hir/tree/rust-hir.cc (SlicePatternItemsHasRest::to_string):
	Likewise.
	* typecheck/rust-hir-type-check-pattern.cc
	(TypeCheckPattern::visit (SlicePattern)): Assert that the rest
	pattern isn't bound (currently unsupported).

2026-09-10  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-tyty.h (ADTType::ReprKind): Add new SIMD variant.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options): Parse
	#[repr(simd)] attribute, rename inline_option to repr_option.
	* typecheck/rust-hir-type-check-item.h (TypeCheckItem::validate_repr_simd): New
	function.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::validate_repr_simd):
	Implement type-checking of #[repr(simd)] structs.
	(TypeCheckItem::visit (HIR::TupleStruct)): Support type-checking simd representation.
	(TypeCheckItem::visit (HIR::StructStruct)): Ditto.

2026-09-10  Enes Cevik  <enes@nsvke.com>

	* resolve/rust-early-name-resolver-2.0.cc
	(Early::resolve_rebind_import): Use the final segment's NodeId
	for 'self' imports instead of the parent's to avoid clashing with
	glob imports.

2026-09-10  Enes Cevik  <enes@nsvke.com>

	* util/rust-lang-item.cc (Rust::LangItem::lang_items): Add pin
	and unpin lang items to the BiMap.
	* util/rust-lang-item.h (class LangItem): Add PIN and UNPIN to
	the Kind enum.

2026-09-10  Enes Cevik  <enes@nsvke.com>

	* typecheck/rust-tyty-bounds.cc
	(TypeBoundsProbe::add_trait_bound): Check all fields of an ADT.
	* typecheck/rust-tyty.cc (BaseType::satisfies_bound): Reject
	trait if there is a negative impl.

2026-09-10  Aiman Najjar  <aiman.najjar@hurranet.com>

	* checks/lints/unused/rust-unused-checker.cc
	(UnusedChecker::visit): Update logic for checking unused
	assignments.
	* checks/lints/unused/rust-unused-context.cc
	(UnusedContext::add_assign): Use new set to track unused
	assignments.
	(UnusedContext::remove_assign): Update to track only last
	assignment.
	(UnusedContext::is_variable_assigned): Likewise.
	(UnusedContext::is_assign_unused): New helper function to
	check if given id was marked as unused by collector.
	* checks/lints/unused/rust-unused-context.h:
	(class UnusedContext): Add new set to track unused assignments and
	changed current structure to track only last assignment per
	variable (one to one map).

2026-09-10  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-desugar-apit.cc (DesugarApit::visit): Call DefaultASTVisitor::visit
	on the function we're currently visiting.

2026-09-10  Arthur Cohen  <arthur.cohen@embecosm.com>

	* hir/rust-ast-lower-type.h: New enum, change API to use it.
	* hir/rust-ast-lower-implitem.cc (ASTLowerImplItem::visit): Use the new ImplTrait enum.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
	* hir/rust-ast-lower-type.cc (ASTLoweringType::ASTLoweringType): Likewise.
	(ASTLoweringType::translate): Likewise.
	(ASTLoweringType::visit): Likewise.

2026-09-10  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-lang-item.h: Add enum value for VaListImpl.
	* util/rust-lang-item.cc: Register it.

2026-09-10  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-lang-item.h: Add enum value for Freeze.
	* util/rust-lang-item.cc: Register it.

2026-09-10  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-attributes.h: Change Attributes::is_known API to return an enum, add
	AttributeKnowledge result enum.
	* util/rust-attribute-values.h: Add more known tool attributes.
	* util/rust-attributes.cc (Attributes::is_known): Check for tool attributes and
	adapt return type.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_outer_attributes): Use new
	API and ignore tool attributes.
	* resolve/rust-early-name-resolver-2.0.cc (Early::visit): Likewise.

2026-09-10  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-collect-lang-items.cc (get_lang_item_attr): Remove attribute checking
	code as this will be done during lowering.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_outer_attributes): Mention
	the attribute which is unknown.

2026-09-10  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-builder.h: Add new parameter to Builder::new_type_param to avoid
	recreating default type parameters when building the new type parameter.
	* ast/rust-ast-builder.cc: Implement the change.
	* expand/rust-derive.cc: Use it in setup_impl_generics.

2026-09-10  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	New.
	* checks/lints/unused/rust-unused-checker.h (UnusedChecker::visit):
	New.

2026-09-10  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-expand-visitor.cc
	(ExpandVisitor::expand_struct_fields): Remove function
	definition.
	(ExpandVisitor::expand_tuple_fields): Likewise.
	(ExpandVisitor::visit (Function)): Visit outer attributes, add
	comment about inner attribute visiting.
	(ExpandVisitor::visit (StructStruct)): Remove function
	definition.
	(ExpandVisitor::visit (TupleStruct)): Likewise.
	(ExpandVisitor::visit (EnumItemTuple)): Likewise.
	(ExpandVisitor::visit (EnumItemStruct)): Likewise.
	(ExpandVisitor::visit (Union)): Likewise.
	(ExpandVisitor::visit (ExternalStaticItem)): Likewise.
	* expand/rust-expand-visitor.h
	(ExpandVisitor::visit (StructStruct)): Remove function
	declaration.
	(ExpandVisitor::visit (TupleStruct)): Likewise.
	(ExpandVisitor::visit (EnumItemTuple)): Likewise.
	(ExpandVisitor::visit (EnumItemStruct)): Likewise.
	(ExpandVisitor::visit (Union)): Likewise.
	(ExpandVisitor::visit (ExternalStaticItem)): Likewise.
	(ExpandVisitor::expand_fields): Likewise.

2026-09-08  Kael Andrew Alonzo Franco  <kaelfandrew@gmail.com>

	PR middle-end/126622
	* backend/rust-builtins.cc (DEF_ATTR_INT): Use
	build_int_cst (integer_type_node, cst).

2026-09-04  Kael Andrew Alonzo Franco  <kaelfandrew@gmail.com>

	PR middle-end/125507
	* backend/rust-tree.h (struct lang_decl_base): Remove ENUM_BITFIELD.
	(struct rust_cp_binding_level): Ditto.

2026-08-07  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.h: Declare new cache API.
	* resolve/rust-forever-stack.hxx: Implement it and use it within
	dfs_cache.

2026-08-07  Lishin  <lishin1008@gmail.com>

	* backend/rust-compile-base.cc
	(HIRCompileBase::compile_function): Create separate argument and
	function body drop scopes. Register parameter drop candidates in
	the argument scope and clean up the function body before the arguments.

2026-08-07  Yap Zhi Heng  <yapzhhg@gmail.com>

	* expand/rust-macro-builtins.cc: Made it more explicit that cfg_select! is
	backported.
	* rust-session-manager.h (Session::should_support_cfg_select): New function to
	check whether cfg_select! should be compiled.
	* resolve/rust-early-name-resolver-2.0.cc (Early::visit(MacroInvocation)):
	Conditionally resolve cfg_select!.
	* expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Ditto.

2026-08-07  Yap Zhi Heng  <yapzhhg@gmail.com>

	* expand/rust-macro-builtins.h (BuiltinMacro::CfgSelect): New enum variant.
	(MacroBuiltin::cfg_select_handler): New function definition.
	* expand/rust-macro-builtins.cc (MacroBuiltin::builtins): New cfg_select entry.
	(MacroBuiltin::builtin_transcribers): New cfg_select_handler entry.
	* expand/rust-macro-builtins-utility.cc (MacroBuiltin::cfg_select_handler): Implement
	parsing of compilation configuration predicates and expansion of block expressions based
	on which predicate was matched.

2026-08-07  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-type.cc
	(TyTyResolveCompile::visit): If type contains unsafe_cell type,
	do not mark it as const.
	* typecheck/rust-tyty.cc (ADTType::contains_unsafe_cell): New
	function.
	(TupleType::contains_unsafe_cell): Likewise.
	(ArrayType::contains_unsafe_cell): Likewise.
	(SliceType::contains_unsafe_cell): Likewise.
	* typecheck/rust-tyty.h (contains_unsafe_cell): New declaration.
	* util/rust-lang-item.cc (Rust::LangItem::lang_items): Add
	unsafe_cell to the BiMap.
	* util/rust-lang-item.h (class LangItem): Add UNSAFE_CELL to the
	Kind enum.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-collector.cc
	(TokenCollector::visit (SlicePatternItemsNoRest)): Remove
	function definition.
	(TokenCollector::visit (SlicePatternItemsHasRest)): Likewise.
	(TokenCollector::visit (SlicePattern)): Handle sub-patterns.
	* ast/rust-ast-collector.h
	(TokenCollector::visit (SlicePatternItemsNoRest)): Remove
	function declaration.
	(TokenCollector::visit (SlicePatternItemsHasRest)): Likewise.
	* ast/rust-ast-full-decls.h (class SlicePatternItemsNoRest):
	Remove forward declaration.
	(class SlicePatternItemsHasRest): Likewise.
	* ast/rust-ast-pointer-visitor.cc
	(PointerVisitor::visit (SlicePatternItemsNoRest)): Remove
	function definition.
	(PointerVisitor::visit (SlicePatternItemsHasRest)): Likewise.
	(PointerVisitor::visit (SlicePattern)): New function
	definition.
	* ast/rust-ast-pointer-visitor.h
	(PointerVisitor::visit (SlicePatternItemsNoRest)): Remove
	function declaration.
	(PointerVisitor::visit (SlicePatternItemsHasRest)): Likewise.
	(PointerVisitor::visit (SlicePattern)): New function
	declaration.
	* ast/rust-ast-visitor.cc
	(DefaultASTVisitor::visit (SlicePatternItemsNoRest)): Remove
	function definition.
	(DefaultASTVisitor::visit (SlicePatternItemsHasRest)): Likewise.
	(DefaultASTVisitor::visit (SlicePattern)): Handle sub-patterns.
	* ast/rust-ast-visitor.h
	(ASTVisitor::visit (SlicePatternItemsNoRest)): Remove function
	declaration.
	(ASTVisitor::visit (SlicePatternItemsHasRest)): Likewise.
	(DefaultASTVisitor::visit (SlicePatternItemsNoRest)): Likewise.
	(DefaultASTVisitor::visit (SlicePatternItemsHasRest)): Likewise.
	* ast/rust-pattern.cc (SlicePatternItemsNoRest::as_string):
	Remove function definition.
	(SlicePatternItemsHasRest::as_string): Likewise.
	(SlicePattern::as_string): Use as_string on sub patterns
	directly.
	(SlicePatternItemsNoRest::accept_vis): Remove function
	definition.
	(SlicePatternItemsHasRest::accept_vis): Likewise.
	* ast/rust-pattern.h (class SlicePatternItems): Remove.
	(class SlicePatternItemsNoRest): Remove.
	(class SlicePatternItemsHasRest): Remove.
	(SlicePattern::items): Remove member variable.
	(SlicePattern::patterns): New member variable.
	(SlicePattern::SlicePattern): Adjust to match member variable
	adjustments.
	(SlicePattern::get_items): Remove function.
	(SlicePattern::get_patterns): New function.
	(class CloneableDelegate<std::unique_ptr<SlicePatternItems>>):
	Remove specialization.
	* checks/errors/rust-ast-validation.cc
	(ASTValidation::visit (SlicePattern)): New function to check for
	too many RestPattern sub-patterns.
	* checks/errors/rust-ast-validation.h
	(ASTValidation::visit (SlicePattern)): New function declaration.
	* expand/rust-cfg-strip.cc
	(CfgStrip::visit (SlicePatternItemsNoRest)): Remove function
	definition.
	(CfgStrip::visit (SlicePatternItemsHasRest)): Likewise.
	(CfgStrip::visit (SlicePattern)): Directly visit sub-patterns.
	* expand/rust-cfg-strip.h
	(CfgStrip::visit (SlicePatternItemsNoRest)): Remove function
	declaration.
	(CfgStrip::visit (SlicePatternItemsHasRest)): Likewise.
	* expand/rust-derive.h
	(DeriveVisitor::visit (SlicePatternItemsNoRest)): Remove
	function.
	(DeriveVisitor::visit (SlicePatternItemsHasRest)): Likewise.
	* hir/rust-ast-lower-base.cc
	(ASTLoweringBase::visit (SlicePatternItemsNoRest)): Remove
	function definition.
	(ASTLoweringBase::visit (SlicePatternItemsHasRest)): Likewise.
	(ASTLoweringBase::lower_slice_pattern_no_rest): Likewise.
	(ASTLoweringBase::lower_slice_pattern_has_rest): Likewise.
	* hir/rust-ast-lower-base.h
	(ASTLoweringBase::visit (SlicePatternItemsNoRest)): Remove
	function declaration.
	(ASTLoweringBase::visit (SlicePatternItemsHasRest)): Likewise.
	(ASTLoweringBase::lower_slice_pattern_no_rest): Likewise.
	(ASTLoweringBase::lower_slice_pattern_has_rest): Likewise.
	* hir/rust-ast-lower-pattern.cc (lower_pattern_seq): New
	function.
	(ASTLoweringPattern::visit (SlicePattern)): Handle changes to
	AST SlicePattern.
	* parse/rust-parse-impl-pattern.hxx
	(Parser::parse_slice_pattern): Likewise.

2026-08-07  Enes Cevik  <enes@nsvke.com>

	* hir/rust-ast-lower-base.cc (warn_if_stub_lang_item): New
	function.
	(ASTLoweringBase::handle_lang_item_attribute): Emit a warning
	if lang item is stub.
	* util/rust-lang-item.cc (Rust::LangItem::lang_items): Add new
	lang items to the BiMap.
	* util/rust-lang-item.h (class LangItem): Add new lang items
	to Kind enum.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-derive-clone.cc (DeriveClone::clone_call): Use the
	canonical path to Clone.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-dump.cc (Dump::Dump): Add a default indentation level of
	four and dump newlines.
	* ast/rust-ast-dump.h: Add newline and indentation level configuration
	options.
	* metadata/rust-export-metadata.cc (ExportContext::emit_crate): Do not
	export indentation and newlines.
	* rust-session-manager.cc (Session::dump_ast_pretty_internal): Use an
	indentation level of 4 and dump newlines.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-collect-lang-items.cc (CollectLangItems::visit): Visit
	extern crate's content when collecting lang items.
	* ast/rust-collect-lang-items.h: Add function protototype.
	* metadata/rust-export-metadata.cc (ExportContext::push_module_scope):
	Remove.
	(ExportContext::emit_crate): Add a function to export the whole crate.
	(ExportContext::pop_module_scope): Remove.
	(ExportContext::emit_trait): Likewise.
	(ExportContext::emit_use_declaration): Likewise.
	(ExportContext::emit_function): Likewise.
	(ExportContext::emit_extern_block): Likewise.
	(ExportContext::emit_module): Likewise.
	(class ExportVisItems): Likewise.
	(PublicInterface::gather_export_data): Dump the AST.
	* metadata/rust-export-metadata.h: Update prototypes.

2026-08-07  Aiman Najjar  <aiman.najjar@hurranet.com>

	* checks/lints/unused/rust-unused-context.cc
	(UnusedContext::remove_assign): Fix issue with duplicate
	removal of unused-assignment for the same id.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc
	(DefaultResolver::visit (Crate)): Call maybe_prelude_import.
	(DefaultResolver::visit (Module)): Likewise.
	* resolve/rust-default-resolver.h
	(DefaultResolver::maybe_prelude_import): New virtual member
	function.
	* resolve/rust-early-name-resolver-2.0.cc
	(Early::maybe_prelude_import): New member function definition.
	(Early::finalize_glob_import): Mark visitor as dirty when
	first setting ctx.prelude.
	* resolve/rust-early-name-resolver-2.0.h
	(Early::maybe_prelude_import): New member function declaration.
	* resolve/rust-late-name-resolver-2.0.cc
	(Late::visit (IdentifierExpr)): Remove ad-hoc prelude import
	handling.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-finalize-imports-2.0.cc
	(GlobbingVisitor::glob_definitions): Offload details to
	Rib::insert_globbed.
	(GlobbingVisitor::glob_definition): Remove member function
	definition.
	* resolve/rust-finalize-imports-2.0.h
	(GlobbingVisitor::glob_definition): Remove member function
	declaration.
	* resolve/rust-rib.cc (Rib::insert_globbed): New member function
	definition.
	* resolve/rust-rib.h (Rib::insert_globbed): New member function
	declaration.

2026-08-07  Utkarsh Bahuguna  <utkarshbahuguna10@gmail.com>

	* checks/lints/rust-lint-marklive.cc (MarkLive::visit_path_segment):
	Mark types in generic arguments as live.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-early-name-resolver-2.0.cc
	(Early::resolve_glob_import): Handle glob imports that appear
	after other imports in a use declaration.
	* resolve/rust-early-name-resolver-2.0.h
	(Early::ImportMappings::insert): Remove member functions, as
	they're both broken and unused.
	* resolve/rust-toplevel-name-resolver-2.0.cc (flatten): Remove
	redundant break statement.

2026-08-07  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-block.h: Remove RangeFromToInclExpr visit.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
	* 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-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-hir-dump.cc (Dump::visit): Likewise.
	* hir/rust-hir-dump.h: Likewise.
	* hir/tree/rust-hir-expr.cc
	(RangeFromToInclExpr::RangeFromToInclExpr): Likewise.
	(RangeFromToInclExpr::operator=): Likewise.
	* hir/tree/rust-hir-expr.h (class RangeFromToInclExpr): Remove
	class.
	* hir/tree/rust-hir-full-decls.h (class RangeFromToInclExpr):
	Remove forward declaration.
	* hir/tree/rust-hir-visitor.cc (DefaultHIRVisitor::walk): Remove
	RangeFromToInclExpr visit.
	* hir/tree/rust-hir-visitor.h: Likewise.
	* hir/tree/rust-hir.cc (RangeFromToInclExpr::to_string): Remove.
	(RangeFromToInclExpr::accept_vis): Remove.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Remove.
	* typecheck/rust-hir-type-check-expr.h: Remove
	RangeFromToInclExpr visit.

2026-08-07  Enes Cevik  <enes@nsvke.com>

	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Add
	desugaring for range_inclusive_new lang item.
	* util/rust-lang-item.cc (Rust::LangItem::lang_items): Add
	range_inclusive_new to the BiMap.
	* util/rust-lang-item.h (class LangItem): Add RANGE_INCLUSIVE_NEW
	to the Kind enum.

2026-08-07  Lishin  <lishin1008@gmail.com>

	* backend/rust-compile-drop-builder.cc
	(DropBuilder::get_block_drop_candidate_stack): Remove.
	* backend/rust-compile-drop-builder.h
	(DropBuilder::get_block_drop_candidate_stack): Remove declaration.
	* backend/rust-compile-expr.cc
	(CompileExpr::visit (HIR::ReturnExpr &)): Stop emitting drops manually.
	Store the return statement in translated.

2026-08-07  Lishin  <lishin1008@gmail.com>

	* backend/rust-compile-drop-builder.cc
	(DropBuilder::get_block_drop_candidate_stack): New function returning all
	active block drop candidate scopes.
	* backend/rust-compile-drop-builder.h
	(DropBuilder::get_block_drop_candidate_stack): Declare.
	* backend/rust-compile-drop.h:
	(CompileDrop::emit_drop_candidate_calls): Declare.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Save return values and
	emit drops before explicit return statements.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-derive.cc (DeriveVisitor::setup_impl_generics):
	Create a constant generic argument from a constant generic
	parameter.

2026-08-07  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit(StructStruct)): Update
	E0690 error message to use the correct variable for number of fields.
	* typecheck/rust-tyty.cc (ArrayType::is_zero_sized): Catch edge case of array's element
	type being a ZST with capacity is more than 0.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-early-name-resolver-2.0.cc
	(Early::finalize_glob_import): Check if the globbing visitor was
	marked dirty.
	* resolve/rust-finalize-imports-2.0.cc
	(GlobbingVisitor::glob_definitions): Mark dirty if a definition
	was inserted.
	(GlobbingVisitor::glob_definition): Replace silent failure with
	assertion.
	* resolve/rust-finalize-imports-2.0.h
	(GlobbingVisitor::GlobbingVisitor): Initialize dirty member
	variable.
	(GlobbingVisitor::is_dirty): New member function.
	(GlobbingVisitor::dirty): New member variable.

2026-08-07  Islam-Imad  <islamimad404@gmail.com>

	* backend/rust-compile-context.h (RUST_COMPILE_CONTEXT): loop
	labels context functions.
	- insert_break_label
	- lookup_break_label
	- insert_continue_label
	- lookup_continue_label
	- push/pop/peek end_label (similar to begin_label).
	* backend/rust-compile-expr.cc (CompileExpr::visit): handle loop
	labels construction in WhileExpr, ForExpr, ContinueExpr and BreakExpr.
	(CompileExpr::construct_block_label): construct break label
	instead of normal label to unify handling break statement.
	(CompileExpr::construct_loop_labels): construct while/for loops
	labels (continue label before loop, break label after loop).
	* backend/rust-compile-expr.h (RUST_COMPILE_EXPR):
	construct_loop_labels function header.
	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Fix
	labels.
	* resolve/rust-default-resolver.h: Fix labels.
	* resolve/rust-name-resolution-context.cc (NameResolutionContext::insert): Fix labels.
	(NameResolutionContext::insert_shadowable): Fix labels.
	(NameResolutionContext::insert_globbed): Fix labels.
	(NameResolutionContext::scoped): Fix labels.

2026-08-07  Lishin  <lishin1008@gmail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::compile_function_body):
	Stop emitting drops directly in functions.
	(HIRCompileBase::compile_function): Use try-finally drop cleanup.
	(HIRCompileBase::compile_constant_item): Use try-finally drop cleanup.
	* backend/rust-compile-drop.cc
	(CompileDrop::emit_current_scope_drop_calls): Remove.
	* backend/rust-compile-drop.h: Remove the unused function declaration.
	* backend/rust-compile-expr.cc
	(CompileExpr::generate_closure_function): Use try-finally drop cleanup.

2026-08-07  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	Warn on a no-mangle generic function.

2026-08-07  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	Warn on unnecessary braces around an assigned value.

2026-08-07  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/rust-lint-scan-deadcode.h
	(ScanDeadcode::visit(HIR::ConstantItem))
	(ScanDeadcode::visit(HIR::StaticItem)): New.
	* checks/lints/unused/rust-unused-checker.cc
	(UnusedChecker::visit(HIR::ConstantItem)): Remove unused-item check,
	keep visibility lint.
	(UnusedChecker::visit(HIR::StaticItem)): Remove unused-item check,
	keep naming lint.

2026-08-07  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-tyty.h (BaseType::is_zero_sized): New function.
	(TupleType::is_zero_sized): New function.
	(ArrayType::is_zero_sized): New function.
	(ADTType::is_zero_sized): New function.
	* typecheck/rust-tyty.cc (BaseType::is_zero_sized): Implement checking of
	whether a type is zero-sized.
	(TupleType::is_zero_sized): Ditto.
	(ArrayType::is_zero_sized): Ditto.
	(ADTType::is_zero_sized): Ditto.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit (StructStruct)): Update
	transparent repr type-checking to check for zero-sized members.
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit (TyTy::ADTType)): Support
	compilation of transparent repr structs with more than 1 fields.

2026-08-07  Yap Zhi Heng  <yapzhhg@gmail.com>

	* rust-session-manager.h (Session::LoadedCrate): Add explicit constructor.

2026-08-07  Egas Ribeiro  <egas.g.ribeiro@tecnico.ulisboa.pt>
	    João Novo  <joao.c.novo@tecnico.ulisboa.pt>

	* checks/errors/rust-hir-pattern-analysis.cc
	(PatternChecker::visit): Diagnose refutable patterns in Function
	parameters and LetStmt bindings.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Remove
	pattern kind whitelist; only error on bare literal patterns at
	lowering.

2026-08-07  Egas Ribeiro  <egas.g.ribeiro@tecnico.ulisboa.pt>
	    João Novo  <joao.c.novo@tecnico.ulisboa.pt>

	* Make-lang.in: Add rust-hir-pattern-abstract.o.
	* hir/tree/rust-hir-path.h: Add is_refutable overrides.
	* hir/tree/rust-hir-pattern-abstract.h (class BaseType): Add
	typed is_refutable virtual method.
	* hir/tree/rust-hir-pattern.h: Add is_refutable to all pattern
	kinds.
	* hir/tree/rust-hir-pattern-abstract.cc: New file. Implement
	typed is_refutable for PathPattern, SlicePattern,
	TupleStructPattern.

2026-08-07  Egas Ribeiro  <egas.g.ribeiro@tecnico.ulisboa.pt>
	    João Novo  <joao.c.novo@tecnico.ulisboa.pt>

	* hir/tree/rust-hir-pattern.h: Add const overloads.

2026-08-07  Yap Zhi Heng  <yapzhhg@gmail.com>

	* expand/rust-macro-expand.cc (transcribe_expression (Parser<MacroInvocLexer>)):
	Prevent the same trailing semicolon warning from being generated at the same loc.

2026-08-07  Enes Cevik  <enes@nsvke.com>

	* checks/errors/rust-builtin-attribute-checker.cc
	(attribute_checking_handlers): Add rustc_conversion_suggestion
	attribute to map.
	(check_valid_attribute_for_item): Add warning for new attribute.
	* util/rust-attribute-values.h (class Attributes): Add
	RUSTC_CONVERSION_SUGGESTION constexpr.
	* util/rust-attributes.cc (__definitions): Add
	BuiltinAttrDefinition for new attribute.

2026-08-07  Enes Cevik  <enes@nsvke.com>

	* checks/errors/rust-builtin-attribute-checker.cc
	(check_inner_attribute): Add warning for needs_allocator.
	* util/rust-attribute-values.h (class Attributes): Add
	NEEDS_ALLOCATOR constexpr.
	* util/rust-attributes.cc (__definitions): Add
	BuiltinAttrDefinition for new attribute.

2026-08-07  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	New.
	* checks/lints/unused/rust-unused-checker.h (UnusedChecker::visit):
	New.

2026-08-07  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-intrinsic.cc (generic_intrinsics): Add
	assert_zero_valid to map.
	* backend/rust-intrinsic-handlers.cc
	(assert_zero_valid_handler): New function.
	* backend/rust-intrinsic-handlers.h (assert_zero_valid_handler):
	New declaration.
	* typecheck/rust-hir-type-check-intrinsic.cc
	(IntrinsicChecker::intrinsic_rules): Add new signature rule for
	assert_zero_valid.
	* util/rust-intrinsic-values.h (class Intrinsics): Add
	ASSERT_ZERO_VALID constexpr.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-forever-stack.hxx
	(ForeverStack::find_starting_point): Handle a final super
	segment and super segments after a lowercase self segment.
	* resolve/rust-name-resolution-context.hxx
	(NameResolutionContext::resolve_path): Handle cases where
	find_starting_point resolves the final segment.

2026-08-07  Lishin  <lishin1008@gmail.com>

	* backend/rust-compile-context.h:
	(Context::pop_block_impl): Wrap Drop cleanup in an EH_ELSE_EXPR.

2026-08-07  Lishin  <lishin1008@gmail.com>

	* backend/rust-compile-block.cc
	(CompileBlock::visit): Build current scope drop cleanup and
	pass it when popping the block.
	* backend/rust-compile-context.h
	(Context::pop_block): Use pop_block_impl.
	(Context::pop_block_with_cleanup): New function for popping
	a block with cleanup code.
	(Context::pop_block_impl): New helper that adds the block
	statements directly, or wraps them in TRY_FINALLY_EXPR when
	cleanup is present.

2026-08-07  Lishin  <lishin1008@gmail.com>

	* backend/rust-compile-drop.cc
	(CompileDrop::build_current_scope_drop_cleanup): New function to
	build current scope drop calls as a statement tree.
	(CompileDrop::emit_current_scope_drop_calls): Use it.
	* backend/rust-compile-drop.h
	(CompileDrop::build_current_scope_drop_cleanup): Declare.

2026-08-07  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): Warn on
	a trait object with a `Drop` bound.
	* rust-lang.cc (grs_langhook_init_options_struct): Enable warn_unused.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::visit (ExternalTypeItem)): New function definition.
	* resolve/rust-toplevel-name-resolver-2.0.h
	(TopLevel::visit (ExternalTypeItem)): New function declaration.

2026-08-07  Lishin  <lishin1008@gmail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::compile_function):
	Track droppable function parameters in the function scope.

2026-08-07  Lishin  <lishin1008@gmail.com>

	* backend/rust-compile-base.cc
	(HIRCompileBase::compile_function_body): Emit current scope drops
	for unit tail expressions.

2026-08-07  Lishin  <lishin1008@gmail.com>

	* backend/rust-compile-base.cc
	(HIRCompileBase::compile_function_body): Store non-unit tail expression
	results before emitting current scope drops.

2026-08-07  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	New.
	* checks/lints/unused/rust-unused-checker.h (UnusedChecker::visit):
	New.

2026-08-07  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options): New
	check for `#[repr(align)]` to enforce having a parameter that is a power of 2.

2026-08-07  Yap Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-compile-expr.h (CompileExpr::compile_transparent_field_access): New
	helper function.
	* backend/rust-compile-expr.cc (CompileExpr::compile_transparent_field_access):
	Implement helper function for accessing the field of #[repr(transparent)] ADTs.
	(CompileExpr::visit (HIR::StructExprStructFields)): Support struct field construction
	properly for #[repr(transparent)] structs.
	(CompileExpr::visit (HIR::FieldAccessExpr)): Implement proper compilation of field
	access for #[repr(transparent)] ADTs.
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit (TyTy::ADTType)): Implement
	proper compilation of typing for #[repr(transparent)] ADTs.

2026-08-07  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-tyty.h (TyTy::ADTType::ReprKind): Add TRANSPARENT variant.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options):
	Add parsing of transparent repr, throw error for invalid repr.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit (StructStruct)):
	Throw error if #[repr(transparent)] struct/enum has more than 1 field.

2026-08-07  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-expand.h (struct MacroExpander): Make `crate` member public for
	sub-expanders to access its inner attributes.
	* ast/rust-ast-builder.h: Add `Source` enum to discriminate between AST node generation
	within `core` and within other crates.
	* ast/rust-ast-builder.cc: Use the new enum for building paths properly.
	* ast/rust-desugar-for-loops.cc (DesugarForLoops::desugar): Likewise.
	(DesugarForLoops::go): Likewise.
	* ast/rust-desugar-for-loops.h: Likewise.
	* ast/rust-desugar-question-mark.cc (DesugarQuestionMark::go): Likewise.
	(DesugarQuestionMark::desugar): Likewise.
	* ast/rust-desugar-question-mark.h: Likewise.
	* ast/rust-desugar-try-block.cc (DesugarTryBlock::go): Likewise.
	(DesugarTryBlock::desugar): Likewise.
	* ast/rust-desugar-try-block.h: Likewise.
	* ast/rust-desugar-while-let.cc (DesugarWhileLet::desugar): Likewise.
	(DesugarWhileLet::go): Likewise.
	* ast/rust-desugar-while-let.h: Likewise.
	* ast/rust-expression-yeast.cc (ExpressionYeast::go): Likewise.
	(ExpressionYeast::dispatch_loops): Likewise.
	(ExpressionYeast::reseat): Likewise.
	* ast/rust-expression-yeast.h (RUST_EXPRESSION_YEAST): Likewise.
	* expand/rust-derive-clone.cc (DeriveClone::DeriveClone): Likewise.
	* expand/rust-derive-clone.h: Likewise.
	* expand/rust-derive-copy.cc (DeriveCopy::DeriveCopy): Likewise.
	* expand/rust-derive-copy.h: Likewise.
	* expand/rust-derive-debug.cc (DeriveDebug::DeriveDebug): Likewise.
	(DeriveDebug::stub_debug_fn): Likewise.
	* expand/rust-derive-debug.h: Likewise.
	* expand/rust-derive-default.cc (DeriveDefault::DeriveDefault): Likewise.
	(DeriveDefault::default_call): Likewise.
	* expand/rust-derive-default.h: Likewise.
	* expand/rust-derive-eq.cc (get_eq_trait_path): Likewise.
	(DeriveEq::DeriveEq): Likewise.
	* expand/rust-derive-eq.h: Likewise.
	* expand/rust-derive-hash.cc (DeriveHash::DeriveHash): Likewise.
	(DeriveHash::hash_call): Likewise.
	(DeriveHash::hash_fn): Likewise.
	* expand/rust-derive-hash.h: Likewise.
	* expand/rust-derive-ord.cc (DeriveOrd::DeriveOrd): Likewise.
	(DeriveOrd::cmp_call): Likewise.
	(DeriveOrd::cmp_fn): Likewise.
	(DeriveOrd::make_equal): Likewise.
	(DeriveOrd::recursive_match): Likewise.
	* expand/rust-derive-ord.h: Likewise.
	* expand/rust-derive-partial-eq.cc (DerivePartialEq::DerivePartialEq): Likewise.
	* expand/rust-derive-partial-eq.h: Likewise.
	* expand/rust-derive.cc (DeriveVisitor::DeriveVisitor): Likewise.
	(DeriveVisitor::derive): Likewise.
	* expand/rust-derive.h: Likewise.
	* expand/rust-expand-format-args.cc (format_arg): Likewise.
	(expand_format_args): Likewise.
	* expand/rust-expand-visitor.cc (builtin_derive_item): Likewise.
	(ExpandVisitor::expand_inner_stmts): Likewise.
	* expand/rust-macro-builtins-log-debug.cc (MacroBuiltin::assert_handler): Likewise.
	* expand/rust-macro-builtins-utility.cc (MacroBuiltin::option_env_handler): Likewise.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-finalize-imports-2.0.cc (GlobbingVisitor::go):
	Use visit_container.
	(GlobbingVisitor::visit_crate_container)
	(GlobbingVisitor::visit_module_container)
	(GlobbingVisitor::visit_enum_container, GlobbingVisitor::visit):
	Remove member functions.
	(GlobbingVisitor::visit_container)
	(GlobbingVisitor::glob_definitions)
	(GlobbingVisitor::glob_definition): New member functions.
	* resolve/rust-finalize-imports-2.0.h (class GlobbingVisitor):
	Remove DefaultASTVisitor as base class.
	(GlobbingVisitor::visit_crate_container)
	(GlobbingVisitor::visit_module_container)
	(GlobbingVisitor::visit_enum_container, GlobbingVisitor::visit):
	Remove member functions.
	(GlobbingVisitor::visit_container)
	(GlobbingVisitor::glob_definitions)
	(GlobbingVisitor::glob_definition): New member functions.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/feature/rust-feature-collector.cc: Include
	"rust-session-manager.h".
	(FeatureCollector::collect): Automatically enable
	EXTENDED_KEY_VALUE_ATTRIBUTES when targeting compatibility with
	rust versions before 1.50.
	* expand/rust-macro-expand.cc: Include "rust-session-manager.h".
	(MacroExpander::expand_invoc): Use Session to determine whether
	offset_of is supported.
	* lang.opt (frust-assume-builtin-offset-of): Remove option,
	superseded by...
	(frust-compat-version): ...new option.
	* resolve/rust-early-name-resolver-2.0.cc: Include
	"rust-session-manager.h".
	(Early::visit (MacroInvocation)): Use Session to determine
	whether offset_of is supported.
	* rust-session-manager.cc (Session::handle_option): Handle
	frust-compat-version.
	* rust-session-manager.h (CompileOptions::compat_version): New
	member variable.
	(CompileOptions::set_compat_version): New member function.
	(CompileOptions::get_compat_version): Likewise.
	(Session::get_compat_version): Likewise.
	(Session::should_support_offset_of): Likewise.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-forever-stack.h (ForeverStackBase::Node::Node):
	Initialize all namespace ribs with a Rib::Kind.
	(ForeverStackBase::Node::rib): Replace member variable with member
	function taking namespace.
	(ForeverStackBase::Node::rib_values): New member variable.
	(ForeverStackBase::Node::rib_types): New member variable.
	(ForeverStackBase::Node::rib_labels): New member variable.
	(ForeverStackBase::Node::rib_macros): New member variable.
	(ForeverStackBase::ForeverStackBase): New constructor taking
	references to top-level nodes.
	(ForeverStack::root): Move member variable to...
	(ForeverStackBase::root): ...here and make it a reference.
	(ForeverStack::lang_prelude): Move member variable to...
	(ForeverStackBase::lang_prelude): ...here and make it a
	reference.
	(ForeverStack::extern_prelude): Move member variable to...
	(ForeverStackBase::extern_prelude): ...here and make it a
	reference.
	(ForeverStack::ForeverStack): Initialize ForeverStackBase
	and take top-level nodes as by-reference arguments.
	(ForeverStack::push_inner): Take Rib::Kind instead of Rib.
	* resolve/rust-forever-stack.hxx (ForeverStackBase::is_prelude):
	Use value rib to get rib kind.
	(ForeverStack::push_inner): Take Rib::Kind instead of Rib.
	(ForeverStack::pop): Use namespace specific ribs.
	(ForeverStack::insert_at_root): Likewise.
	(ForeverStack::insert_lang_prelude): Likewise.
	(ForeverStack::peek): Likewise.
	(ForeverStack::get): Likewise.
	(ForeverStack::get_lang_prelude): Likewise.
	(ForeverStack::find_closest_module): Likewise.
	(ForeverStack::dfs): Likewise.
	(ForeverStack::dfs_rib): Likewise.
	(ForeverStack::stream_node): Likewise.
	* resolve/rust-name-resolution-context.cc
	(NameResolutionContext::merge): Likewise.
	(NameResolutionContext::NameResolutionContext): Initialize
	top-level nodes and construct ForeverStack instances with
	references.
	* resolve/rust-name-resolution-context.h
	(NameResolutionContext::Node): New type alias to
	ForeverStackBase::Node.
	(NameResolutionContext::root): New member variable.
	(NameResolutionContext::lang_prelude): New member variable.
	(NameResolutionContext::extern_prelude): New member variable.
	* resolve/rust-name-resolution-context.hxx
	(NameResolutionContext::should_search_prelude): Use namespace
	specific rib.
	(NameResolutionContext::resolve_path): Simplify mapping to and
	from type namespace nodes (now a no-op). Also, use namespace
	specific ribs for looking up final segments.
	(NameResolutionContext::resolve_segments): Use namespace
	specific ribs.
	(NameResolutionContext::resolve_final_segment): Likewise.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-identifier-path.cc
	(IdentifierPathPass::reseat (Pattern)): Remember to visit a
	pattern's sub-patterns, if we didn't convert it into a
	PathInExpression.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-collector.cc
	(TokenCollector::visit (TypePathSegmentGeneric)): Remove
	duplicate push of segment identifier.

2026-08-07  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_generic_params):
	Warn on `Drop` bounds on generic parameters.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/rust-builtin-attribute-checker.cc (no_mangle):
	Remove function.
	(rustc_std_internal_symbol): Likewise.
	(rustc_allocator): Likewise.
	(rustc_allocator_nounwind): Likewise.
	(expect_no_input): New function.
	(attribute_checking_handlers): Use expect_no_input, new entry
	for GLOBAL_ALLOCATOR.
	(check_valid_attribute_for_item): Verify that GLOBAL_ALLOCATOR
	attributes only appear on static items.
	* util/rust-attribute-values.h (Attributes::GLOBAL_ALLOCATOR):
	New static constexpr member variable.
	* util/rust-attributes.cc (__definitions): New entry for
	GLOBAL_ALLOCATOR.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc
	(DefaultResolver::visit (TypeParam)): Visit bounds outside of
	ForwardTypeParamBan rib.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-forever-stack.h (class ForeverStackBase): New.
	(class ForeverStack): Use ForeverStackBase as a base class.
	(class ForeverStack::Link): Move to...
	(class ForeverStackBase::Link): ...here.
	(class ForeverStack::LinkCmp): Move to...
	(class ForeverStackBase::LinkCmp): ...here.
	(class ForeverStack::Node): Move to...
	(class ForeverStackBase::Node): ...here.
	(ForeverStackBase::Node::is_root): Mark inline.
	(ForeverStackBase::Node::is_prelude): Likewise.
	(ForeverStackBase::Node::is_leaf): Likewise.
	(ForeverStackBase::Node::insert_child): Likewise.
	* resolve/rust-forever-stack.hxx (ForeverStack::Node::is_root):
	Move to...
	(ForeverStackBase::Node::is_root): ...here.
	(ForeverStack::Node::is_prelude): Move to...
	(ForeverStackBase::Node::is_prelude): ...here.
	(ForeverStack::Node::is_leaf): Move to...
	(ForeverStackBase::Node::is_leaf): ...here.
	(ForeverStack::Node::insert_child): Move to...
	(ForeverStackBase::Node::insert_child): ...here.

2026-08-07  Owen Avery  <powerboat9.gamer@gmail.com>

	* Make-lang.in (GRS_OBJS): Remove rust-forever-stack.o.
	* resolve/rust-forever-stack.h (class ForeverStackStore):
	Remove.
	* resolve/rust-forever-stack.cc: Removed.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-builder.cc (Builder::type_path_segment): Remove name.
	(Builder::type_path_segment_generic): Likewise.
	(Builder::single_generic_type_path): Likewise.
	(Builder::type_path): Likewise.
	* ast/rust-ast-builder.h: Update function prototypes.
	* expand/rust-derive-clone.cc (DeriveClone::visit_union): do not inject
	trait name.
	* expand/rust-derive-copy.cc: Likewise.
	* expand/rust-derive-eq.cc (DeriveEq::assert_param_is_eq): Likewise.
	* expand/rust-derive-partial-eq.cc: Likewise.
	* util/rust-hir-map.cc (Mappings::get_lang_item_identifier): Add a
	function to retrieve a lang item identifier from it's kind.
	* util/rust-hir-map.h: Add function prototype.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h (class Identifier): Move from here to
	rust-ast-identifiers.h.
	(operator<<): Likewise.
	* ast/rust-ast-identifier.h: New file.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-session-manager.cc (Session::dump_hir_pretty): Update error type
	name.
	(Session::load_extern_crate): Likewise.
	* rust-session-manager.h: Change error type name.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* metadata/rust-export-metadata.cc (ExportContext::begin_extern_block):
	Delete function.
	(ExportContext::end_extern_block): Likewise.
	(ExportContext::begin_module): Likewise.
	(ExportContext::end_module): Likewise.
	(ExportContext::emit_extern_block): Merge both begin/end within one
	function that calls the visitor in between.
	(ExportContext::emit_module): Likewise.
	* metadata/rust-export-metadata.h: Update function prototypes.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* metadata/rust-export-metadata.cc (ExportContext::begin_extern_block):
	Dump the prefix of an extern block.
	(ExportContext::end_extern_block): Likewise with extern block suffix.
	* metadata/rust-export-metadata.h: Add function prototypes.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-resolve-builtins.cc (class LangPreludeSingleton): Add a
	singleton to store node and hir ids.
	(setup_lang_prelude): Use the new singleton store.
	(TYPE0): Change reference to singleton.
	(TYPE1): Likewise.
	(setup_type_ctx): Use the new singleton store.
	(find_builtin_node_id): Likewise.
	* rust-session-manager.cc (Session::load_extern_crate): Setup builtin
	types.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-name-resolution-context.cc (CanonicalPathRecordNormal::as_path):
	Use context and retrieve parent from its node id.
	(CanonicalPathRecordImpl::as_path): Likewise.
	(CanonicalPathRecordTraitImpl::as_path): Likewise.
	(NameResolutionContext::merge): Merge both record map.
	* resolve/rust-name-resolution-context.h: Change parent handle
	representation from reference to node id.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-name-resolution-context.cc (NameResolutionContext::merge):
	Merge nr usage binding when merging nr contexts.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-session-manager.cc (Session::load_extern_crate): Run late name
	resolver on extern crates.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-builder.cc (Builder::type_path_segment): Add segment
	name argument.
	(Builder::type_path_segment_generic): Likewise.
	(Builder::single_generic_type_path): Likewise.
	(Builder::type_path): Likewise.
	* ast/rust-ast-builder.h: Add segment name string to ctor.
	* ast/rust-path.h: Make segment name mandatory.
	* expand/rust-derive-clone.cc (DeriveClone::visit_union): Forward
	segment name.
	* expand/rust-derive-copy.cc: Likewise.
	* expand/rust-derive-eq.cc (DeriveEq::assert_param_is_eq): Likewise.
	* expand/rust-derive-partial-eq.cc: Likewise.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add a new file with a visitor to collect and load
	extern crates.
	* expand/rust-cfg-strip.cc (CfgStrip::visit): Remove extern crate
	loading from cfgstrip step.
	* resolve/rust-default-resolver.cc (DefaultResolver::visit_extern_crate):
	Do not visit the extern crate. We do not need to resolve it since it is
	already done.
	* resolve/rust-forever-stack.hxx: Do not assign unused result.
	* resolve/rust-name-resolution-context.cc (NameResolutionContext::merge):
	Add a function to merge an extern crate's nr context at some location
	within another name resolution context.
	* resolve/rust-name-resolution-context.h: Add function prototype.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit_extern_crate):
	Do not visit extern crate.
	* rust-session-manager.cc (Session::expansion): Collect extern crates,
	load them and merge them into the main crate.
	(Session::dump_hir_pretty): Change function return type.
	(Session::load_extern_crate): Change return type to collect extern
	crates name resolution context.
	* rust-session-manager.h: Update function prototype.
	* expand/rust-extern-crate-loader.cc: New file.
	* expand/rust-extern-crate-loader.h: New file.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* metadata/rust-export-metadata.cc (ExportContext::emit_trait): Use
	AST node instead.
	(ExportContext::emit_function): Likewise.
	(ExportContext::emit_use_declaration): likewise.
	(ExportContext::begin_module): Likewise.
	(ExportContext::end_module): Likewise.
	(class ExportVisItems): Use DefaultASTVisitor instead.
	(PublicInterface::gather_export_data): Lookup the AST crate and visit
	its items.
	* metadata/rust-export-metadata.h: Update function prototys with AST
	nodes.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* metadata/rust-export-metadata.cc (ExportContext::begin_module):
	Add a function to emit the module preamble.
	(ExportContext::end_module): Add function to emit public module brace
	suffix.
	* metadata/rust-export-metadata.h: Add function prototypes.

2026-08-07  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-lex.h: Return an empty file name when file is missing.

2026-07-08  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): respect context for labels

2026-07-08  Lucas Ly Ba  <hi@lucaslyba.com>

	* hir/tree/rust-hir-item.h (ExternBlock): Track whether the ABI
	was explicit and expose it through has_abi.
	* hir/tree/rust-hir-item.cc (ExternBlock::ExternBlock): Likewise.
	(ExternBlock::operator=): Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_extern_block):
	Forward the AST has_abi flag to the HIR node.
	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	New.
	* checks/lints/unused/rust-unused-checker.h (UnusedChecker::visit):
	New.

2026-07-08  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile.cc
	(HIRCompileBase::compute_address_for_trait_item): Ensure the
	impl block type matches the receiver type.

2026-07-08  Philip Herron  <herron.philip@googlemail.com>

	* rust-gcc.cc (pointer_type): turn on can alias

2026-07-08  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-intrinsic.cc (generic_intrinsics): Add
	min_align_of_val_handler to the map.
	* backend/rust-intrinsic-handlers.cc (min_align_of_val_handler):
	New function.
	* backend/rust-intrinsic-handlers.h (min_align_of_val_handler):
	New declaration.
	* typecheck/rust-hir-type-check-intrinsic.cc
	(IntrinsicChecker::intrinsic_rules): Add min_align_of_val
	signature rule to the map.
	* util/rust-intrinsic-values.h (class Intrinsics): Add
	MIN_ALIGN_OF_VAL constexpr.

2026-07-08  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-intrinsic.cc (generic_intrinsics): Add
	size_of_val_handler to the map.
	* backend/rust-intrinsic-handlers.cc (size_of_val_handler): New
	function.
	* backend/rust-intrinsic-handlers.h (size_of_val_handler): New
	declaration.
	* typecheck/rust-hir-type-check-intrinsic.cc
	(IntrinsicChecker::intrinsic_rules): Add size_of_val signature
	rule to the map.
	* util/rust-intrinsic-values.h (class Intrinsics): Add
	SIZE_OF_VAL constexpr.

2026-07-08  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (UnifyRules::expect_adt): check defid

2026-07-08  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): check valid

2026-07-08  João Novo  <joao.c.novo@tecnico.ulisboa.pt>

	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
	Add check for infer type on struct's attribute or its subtypes.
	* typecheck/rust-tyty.cc (BaseType::contains_infer):
	Add check for an array type's capacity being an infer type.

2026-07-08  Enes Cevik  <enes@nsvke.com>

	* ast/rust-expr.h (BoxExpr): Add comment description to class.
	* backend/rust-compile-block.h (visit): Add stub for BoxExpr.
	* backend/rust-compile-expr.cc (compile_box_struct): New
	function.
	(compile_box): New function.
	(build_box_inner_ptr): New function.
	(CompileExpr::visit): Implement BoxExpr lowering using
	exchange_malloc and constructor expressions. Handle owned_box
	in FieldAccessExpr and DereferenceExpr.
	(HIRCompileBase::resolve_deref_adjustment): Support owned_box
	in deref adjustments.
	* backend/rust-compile-expr.h (visit): Declare BoxExpr visitor.
	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
	(ExprStmtBuilder::visit): Evaluate inner expression and push
	tmp assignment for BoxExpr.
	* checks/errors/borrowck/rust-bir-builder-expr-stmt.h (visit):
	Declare BoxExpr visitor.
	* checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h
	(visit): Mark BoxExpr as unreachable.
	* checks/errors/borrowck/rust-bir-builder-struct.h (visit):
	Likewise.
	* checks/errors/borrowck/rust-function-collector.h (visit):
	Add visit stub for BoxExpr.
	* checks/errors/privacy/rust-privacy-reporter.cc
	(PrivacyReporter::visit): Delegate privacy reporting to inner
	expression of BoxExpr.
	* checks/errors/privacy/rust-privacy-reporter.h (visit):
	Declare BoxExpr visitor.
	* checks/errors/rust-const-checker.cc (ConstChecker::visit):
	Delegate const checking to inner expression.
	* checks/errors/rust-const-checker.h (visit): Declare BoxExpr
	visitor.
	* checks/errors/rust-hir-pattern-analysis.cc
	(PatternChecker::visit): Delegate pattern analysis to inner
	expression.
	* checks/errors/rust-hir-pattern-analysis.h (visit): Declare
	BoxExpr visitor.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit):
	Delegate unsafe checking to inner expression.
	* checks/errors/rust-unsafe-checker.h (visit): Declare BoxExpr
	visitor.
	* checks/lints/rust-lint-marklive.cc (MarkLive::visit): Resolve
	inner ADT type for owned_box when marking live fields.
	* checks/lints/rust-lint-marklive.h (visit): Declare BoxExpr
	visitor.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Translate
	AST BoxExpr to HIR BoxExpr.
	* hir/rust-hir-dump.cc (Dump::visit): Dump HIR BoxExpr.
	* hir/rust-hir-dump.h (visit): Declare BoxExpr visitor.
	* hir/tree/rust-hir-expr-abstract.h (ExprType): Add Box to enum.
	* hir/tree/rust-hir-expr.cc (BoxExpr::BoxExpr): Implement
	constructors for BoxExpr. (BoxExpr::operator=): Implement
	assignment operator.
	* hir/tree/rust-hir-expr.h (class BoxExpr): Define HIR BoxExpr
	node.
	* hir/tree/rust-hir-full-decls.h (class BoxExpr): Forward
	declaration.
	* hir/tree/rust-hir-visitor.cc (DefaultHIRVisitor::walk): Walk
	inner expression of BoxExpr.
	* hir/tree/rust-hir-visitor.h (visit): Add routing for BoxExpr.
	* hir/tree/rust-hir.cc (BoxExpr::to_string): Implement
	to_string.
	(BoxExpr::accept_vis): Implement visitor acceptance.
	* typecheck/rust-autoderef.cc (AutoderefCycle::cycle): Attempt
	autoderef using the owned_box lang item.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Implement type checking, validation, and generic substitution
	for BoxExpr. Support owned_box autoderef in field access and
	dereferencing operations.
	* typecheck/rust-tyty.cc (try_get_box_inner_type): New function.
	* typecheck/rust-tyty.h (try_get_box_inner_type): New
	declaration.
	* typecheck/rust-hir-type-check-expr.h (visit): Declare BoxExpr
	visitor.
	* util/rust-lang-item.cc (Rust::LangItem::lang_items): Register
	owned_box to BiMap.
	* util/rust-lang-item.h (LangItem::Kind): Add OWNED_BOX.

2026-07-08  Lishin  <lishin1008@gmail.com>

	* Make-lang.in: Add rust-compile-drop-builder.o.
	* backend/rust-compile-base.cc
	(HIRCompileBase::compile_function_body):
	Update CompileDrop calls.
	* backend/rust-compile-block.cc (CompileBlock::visit):
	Update CompileDrop calls.
	* backend/rust-compile-context.h (Context): Allow
	DropBuilder to access drop candidate storage and move
	drop candidate APIs to DropBuilder.
	* backend/rust-compile-drop.cc (CompileDrop::CompileDrop):
	Add constructor.
	(CompileDrop::type_has_drop_impl): Use stored Context member.
	(CompileDrop::compile_drop_call): Likewise.
	(CompileDrop::emit_current_scope_drop_calls): Use stored
	Context member and get drop candidates from DropBuilder.
	* backend/rust-compile-drop.h: Store Context as a member.
	* backend/rust-compile-pattern.cc (CompilePatternLet::visit):
	Use DropBuilder and update CompileDrop calls.
	* backend/rust-compile-drop-builder.cc: New file.
	* backend/rust-compile-drop-builder.h: New file.

2026-07-08  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-context.h (class Context): Add
	insert_vtable and lookup_vtable methods.
	* backend/rust-compile-expr.cc
	(CompileExpr::get_fn_addr_from_dyn): Change access method
	array access to struct field access.
	* backend/rust-compile-type.cc
	(TyTyResolveCompile::create_dyn_obj_record): Create vtable type
	as a record instead of an array.
	* backend/rust-compile.cc
	(HIRCompileBase::coerce_to_dyn_object): Change vtable structure.

2026-07-08  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-intrinsic.cc (generic_intrinsics): Add
	arith_offset handler to map.
	* backend/rust-intrinsic-handlers.cc (arith_offset_handler): New
	function.
	* backend/rust-intrinsic-handlers.h (arith_offset_handler): New
	declaration.
	* typecheck/rust-hir-type-check-intrinsic.cc
	(IntrinsicChecker::intrinsic_rules): Add arith_offset rule.
	* util/rust-intrinsic-values.h (class Intrinsics): Add
	ARITH_OFFSET constexpr.

2026-07-08  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-intrinsic.cc (generic_intrinsics): Add
	write_bytes handler to map.
	* backend/rust-intrinsic-handlers.cc (write_bytes_handler): New
	function.
	* backend/rust-intrinsic-handlers.h (write_bytes_handler): New
	declaration.
	* typecheck/rust-hir-type-check-intrinsic.cc
	(IntrinsicChecker::intrinsic_rules): Add write_bytes rule.
	* util/rust-intrinsic-values.h (class Intrinsics): Add
	WRITE_BYTES constexpr.

2026-07-08  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Associate the loop
	result temporary with the loop label.

2026-07-08  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): Resolve
	the generic parameters of a type alias.

2026-07-08  Lucas Ly Ba  <hi@lucaslyba.com>

	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	New.
	* checks/lints/unused/rust-unused-checker.h (UnusedChecker::visit):
	New.

2026-07-08  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-expand.cc
	(MacroExpander::expand_eager_invocations): Handle errors during
	eager expansion.
	(MacroExpander::expand_invoc): Avoid expanding macros which have
	pending eager invocations and return error fragments in more
	cases.

2026-07-08  Yap Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit (FieldAccessExpr)):
	Handle DST fat pointers by reinterpreting the fat pointer as its field type.

2026-07-08  Yap Zhi Heng  <yapzhhg@gmail.com>

	* util/rust-lang-item.h (LangItem::Kind): New CSTR kind.
	* util/rust-lang-item.cc (LangItem::lang_items): Ditto.
	* backend/rust-compile-type.cc (visit(TyTy::ReferenceType)): Add specific record
	type for CStr.
	* typecheck/rust-tyty.h (ReferenceType): Add function definition for is_dyn_cstr_type.
	* typecheck/rust-tyty.cc (ReferenceType::is_dyn_object): Update to include
	is_dyn_cstr_type.
	(ReferenceType::is_dyn_cstr_type): Add implementation to check whether the
	ReferenceType is of type CStr.
	* typecheck/rust-hir-type-check-base.cc(resolve_literal): Update C_STRING case to
	resolve to the CStr language item instead.

2026-07-08  Yap Zhi Heng  <yapzhhg@gmail.com>

	* lang.opt: Add new -frust-c-style-string-literals option.
	* parse/rust-parse.h: Import options.h for reading flag_c_style_string_literals.
	* parse/rust-parse-impl-expr.hxx (Parser<ManagedTokenSource>::parse_literal_expr):
	Abort parsing C-style string literals if flag_c_style_string_literals is not set.
	(Parser<ManagedTokenSource>::null_denotation_not_path): Ditto.

2026-07-08  Yap Zhi Heng  <yapzhhg@gmail.com>

	* lex/rust-token.h (RS_TOKEN_LIST): Add C_STRING_LITERAL and RAW_C_STRING_LITERAL
	(unused for now).
	* lex/rust-lex.h (Lexer): Define new parse_c_string function.
	* lex/rust-lex.cc (Lexer::build_token): Implement lexing for C-style string
	literals.
	(Lexer::parse_c_string): Add implementation.
	* hir/tree/rust-hir-literal.h (HIR::Literal): Define new C_STRING LitType.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_literal): Add new case for
	C_STRING.
	* parse/rust-parse-impl-attribute.hxx (Parser<ManagedTokenSource>::parse_attr_input):
	Add new case for C_STRING.
	* parse/rust-parse-impl-expr.hxx (Parser<ManagedTokenSource>::parse_literal_expr):
	Add new case for parsing C_STRING.
	(Parser<ManagedTokenSource>::null_denotation_not_path): Add new case for C_STRING.
	* ast/rust-ast.h (Token::is_string_lit): Add new case for C_STRING_LITERAL.
	* ast/rust-ast.cc (AttributeParser::parse_meta_item_inner): Add new case for
	C_STRING_LITERAL.
	* ast/rust-ast-collector.cc (TokenCollector::visit): Add new case for
	C_STRING_LITERAL.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal):
	Implement type checking for the new C_STRING type.
	* backend/rust-compile-expr.h (CompileExpr): Define new function
	compile_c_string_literal.
	* backend/rust-compile-expr.cc (CompileExpr::visit(LiteralExpr)): Add new case
	for C_STRING.
	(CompileExpr::compile_c_string_literal): Implement compilation of C-style string
	literals.

2026-07-08  hriztam  <hritamstark05@gmail.com>

	* parse/rust-parse-error.h (StructExprField): Add
	STRUCT_BASE_ATTRIBUTES.
	* parse/rust-parse-impl-expr.hxx
	(Parser<ManagedTokenSource>::parse_struct_expr_field):
	Reject attributes before struct-base `..`.
	(Parser<ManagedTokenSource>::parse_struct_expr_struct_partial):
	Handle struct-base parse results without dereferencing an errored
	expected.

2026-07-08  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	New.
	* checks/lints/unused/rust-unused-checker.h (UnusedChecker::visit):
	New.

2026-07-08  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	Warn on a visibility qualifier on a `const _` item.

2026-07-08  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-builtins-log-debug.cc
	(MacroBuiltin::assert_handler): Forward any custom message on to
	the built-in panic macro.

2026-07-08  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-resolve-path.cc: use error_mark_node

2026-07-08  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): remove error_at

2026-07-08  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-extern.h: add expr locus
	* backend/rust-compile-intrinsic.cc (Intrinsics::compile): likewise
	* backend/rust-compile-intrinsic.h: likewise
	* backend/rust-compile-resolve-path.cc: likewise
	* backend/rust-intrinsic-handlers.cc (op_with_overflow): likewise
	(rotate_left): likewise
	(rotate_right): likewise
	(wrapping_op): likewise
	(atomic_store): likewise
	(atomic_load): likewise
	(unchecked_op): likewise
	(copy): likewise
	(expect): likewise
	(try_handler): likewise
	(sorry): likewise
	(assume): likewise
	(discriminant_value): likewise
	(variant_count): likewise
	(move_val_init): likewise
	(uninit): likewise
	(prefetch_read_data): likewise
	(prefetch_write_data): likewise
	(transmute): likewise
	(sizeof_handler): likewise
	(min_align_of_handler): likewise
	(offset): likewise
	(bswap_handler): likewise
	(ctlz_handler): likewise
	(ctlz_nonzero_handler): likewise
	(cttz_handler): likewise
	(cttz_nonzero_handler): likewise
	* backend/rust-intrinsic-handlers.h (std::function<tree): likewise
	(rotate_left): likewise
	(rotate_right): likewise
	(offset): likewise
	(sizeof_handler): likewise
	(min_align_of_handler): likewise
	(transmute): likewise
	(uninit): likewise
	(move_val_init): likewise
	(assume): likewise
	(discriminant_value): likewise
	(variant_count): likewise
	(bswap_handler): likewise
	(ctlz_handler): likewise
	(ctlz_nonzero_handler): likewise
	(cttz_handler): likewise
	(cttz_nonzero_handler): likewise
	(wrapping_op): likewise
	(prefetch_read_data): likewise
	(prefetch_write_data): likewise
	(sorry): likewise
	* backend/rust-tree.cc (pointer_offset_expression): check for size

2026-07-08  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-item.cc (CompileItem::visit): check instead of assert

2026-07-08  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::generate_closure_fntype):
	Stop eagerly setting FnOnce::Output
	* backend/rust-compile-item.cc (CompileItem::visit): Push impl-trait
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Normalize
	projection types
	* backend/rust-intrinsic-handlers.cc (discriminant_value): Handle
	projection
	* checks/errors/privacy/rust-privacy-reporter.cc
	(PrivacyReporter::check_base_type_privacy): Skip unresolved
	* typecheck/rust-hir-type-check-intrinsic.cc (IntrinsicChecker::check_type): make permissive
	* typecheck/rust-autoderef.cc: remove old
	* typecheck/rust-hir-impl-trait-context.h: New file.
	* typecheck/rust-hir-trait-reference.cc (TraitReference::on_resolved):
	Pass the trait reference into item resolution.
	(TraitReference::clear_associated_types): Remove.
	(TraitReference::clear_associated_type_projections): Remove.
	(AssociatedImplTrait::AssociatedImplTrait): Store an impl trait frame
	(AssociatedImplTrait::get_frame): New function.
	* typecheck/rust-hir-trait-reference.h: Add impl trait context
	* typecheck/rust-hir-trait-resolve.cc (TraitItemReference::on_resolved):
	Pass trait reference
	(TraitItemReference::resolve_item): Represent associated types as
	projection types
	(TraitItemReference::associated_type_set): Remove.
	(TraitItemReference::associated_type_reset): Remove.
	(AssociatedImplTrait::setup_raw_associated_types): Remove.
	(AssociatedImplTrait::bind_impl_for_projection): New function.
	(AssociatedImplTrait::bind_impl_for_bound): New function.
	(AssociatedImplTrait::reset_associated_types): Remove.
	* typecheck/rust-hir-type-check-base.cc
	(TypeCheckBase::ResolvePredicateFromBound): New function.
	* typecheck/rust-hir-type-check-base.h
	(TypeCheckBase::ResolvePredicateFromBound): Declare.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Handle projection
	(TypeCheckExpr::resolve_fn_trait_call): monomorphized
	* typecheck/rust-hir-type-check-implitem.cc
	(TypeCheckImplItemWithTrait::visit): Store impl associated types as
	projections
	* typecheck/rust-hir-type-check-item.cc
	(TypeCheckItem::ResolveImplBlockSubstitutions): New function.
	(TypeCheckItem::ResolveImplTraitAssociatedTypes): New function.
	(TypeCheckItem::validate_trait_impl_block): cleanup
	(TypeCheckItem::visit): Split inherent and trait impl handling.
	(TypeCheckItem::resolve_impl_block): New function.
	(TypeCheckItem::resolve_trait_impl_block): New function.
	(TypeCheckItem::resolve_impl_block_substitutions): cleanup
	* typecheck/rust-hir-type-check-item.h: helpers
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit):
	cleanup
	(TypeCheckExpr::resolve_segments): Use lazy projection normalization
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
	Normalize type path projections and build qualified associated types
	* typecheck/rust-hir-type-check.h (class ScopedPush): New class.
	(class ImplTraitFrameGuard): New class.
	* typecheck/rust-type-util.cc (query_type): Push impl trait frames
	while resolving impl items.
	(rebind_projection_self_from_fn): New function.
	(normalize_projection): New function.
	* typecheck/rust-type-util.h (normalize_projection): Declare.
	(rebind_projection_self_from_fn): Declare.
	* typecheck/rust-typecheck-context.cc
	(TypeCheckContext::find_matching_impl_trait_frame): New function.
	(TypeCheckContext::have_impl_trait_context): New function.
	(TypeCheckContext::push_impl_trait_context): New function.
	(TypeCheckContext::pop_impl_trait_context): New function.
	(TypeCheckContext::peek_impl_trait_context): New function.
	* typecheck/rust-tyty-bounds.cc
	(TypeBoundPredicate::apply_argument_mappings): Stop mutating
	associated type items for binding arguments.
	(TypeBoundPredicateItem::get_tyty_for_receiver): Rebase projections
	using trait substitution coordinates.
	(TypeBoundPredicate::handle_substitions): Stop mutating associated
	type items for binding arguments.
	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Rebind
	projection self types after function monomorphization.
	* typecheck/rust-tyty-subst.cc
	(SubstitutionParamMapping::fill_param_ty): Guard recursive
	(SubstitutionRef::get_mappings_from_generic_args): Account for outer
	GAT parameters.
	(SubstitutionRef::prepare_higher_ranked_bounds): Remove.
	(SubstitutionRef::monomorphize): Bind matching impls
	* typecheck/rust-tyty-subst.h
	(SubstitutionRef::get_outer_param_count): New function.
	(SubstitutionRef::prepare_higher_ranked_bounds): Remove.
	* typecheck/rust-tyty.cc (BaseType::satisfies_bound): Check
	associated type bindings through projection types.
	(BaseType::destructure): Stop destructuring through projections.
	(BaseType::monomorphized_clone): Normalize projection clones.
	(BaseType::is_concrete): Handle projections
	(ClosureType::setup_fn_once_output): Remove.
	(destructure_through_projections): New function.
	(ReferenceType::is_dyn_slice_type): Normalize projections
	(ReferenceType::is_dyn_str_type): Likewise.
	(ReferenceType::is_dyn_obj_type): Likewise.
	(PointerType::is_dyn_slice_type): Likewise.
	(PointerType::is_dyn_str_type): Likewise.
	(PointerType::is_dyn_obj_type): Likewise.
	(ParamType::get_name): Guard recursive
	(PlaceholderType::set_associated_type): Remove
	(PlaceholderType::clear_associated_type): Remove
	(ProjectionType::ProjectionType): Track projection self type and
	inherited trait substitutions.
	(ProjectionType::is_trait_position): New function
	(ProjectionType::get): Handle non-trait-position projections
	(ProjectionType::get_self): New function.
	(ProjectionType::get_trait_ref): New function.
	(ProjectionType::get_item_defid): New function.
	(ProjectionType::as_string): Include projection self and trait
	(ProjectionType::clone): Clone projection self and preserve bounds
	(ProjectionType::handle_substitions): Substitute projection self
	* typecheck/rust-tyty.h: Update projection
	* typecheck/rust-unify.cc (UnifyRules::go): Normalize projections
	(UnifyRules::expect_projection): Support projection-to-projection

2026-07-08  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): push expected type
	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): apply expected ty on tail
	* typecheck/rust-hir-type-check.h: helpers
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::push_expected_type): likewise
	(TypeCheckContext::pop_expected_type): likewise
	(TypeCheckContext::peek_expected_type): likewise
	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): check expected

2026-07-08  Philip Herron  <herron.philip@googlemail.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): check for lang item

2026-07-08  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::TypeBoundPredicate): missing argument
	(TypeBoundPredicate::operator=): likewise

2026-07-08  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-subst.cc: we can optionally apply inherited arguments

2026-06-28  Kevin Stefanov  <kevinstefanov15@gmail.com>

	PR middle-end/125274
	* backend/rust-tree.h (saved_scope): Likewise.
	(rust_cp_binding_level): Likewise.
	(language_function): Likewise.

2026-06-25  Enes Cevik  <enes@nsvke.com>

	* Make-lang.in: Add rust-hir-type-check-intrinsic.o.
	* typecheck/rust-hir-type-check-implitem.cc
	(TypeCheckTopLevelExternItem::visit): Check intrinsic signature.
	* typecheck/rust-hir-type-check-intrinsic.cc: New file.
	* typecheck/rust-hir-type-check-intrinsic.h: New file.

2026-06-25  Enes Cevik  <enes@nsvke.com>

	* backend/rust-builtins.cc
	(BuiltinsContext::register_rust_mappings): Use Values::Intrinsics
	constants instead of raw strings.
	* util/rust-intrinsic-values.h (class Intrinsics): Add missing
	builtin intrinsics.

2026-06-25  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-intrinsic.cc (generic_intrinsics): Add
	min_align_of to map.
	* backend/rust-intrinsic-handlers.cc (min_align_of_handler):
	New function.
	* backend/rust-intrinsic-handlers.h (min_align_of_handler):
	New declaration.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path): Add
	special casing for resolving to the builtin type definition if the found type
	has the same name and is a module.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-name-resolution-context.hxx: Remove hacks.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-hir-map.cc (Mappings::insert_module_id): New function.
	(Mappings::is_module): Likewise.
	* util/rust-hir-map.h: Store a set of AST modules, declare functions for adding and
	retrieving them.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Insert modules in the type
	namespace and store them in mappings.
	* resolve/rust-late-name-resolver-2.0.cc (resolve_type_path_like): Error out when an
	expected type resolves to a module.
	* resolve/rust-name-resolution.h: Add empty Definition constructor.
	* resolve/rust-resolve-builtins.cc (find_builtin_node_id): New function.
	* resolve/rust-resolve-builtins.h: Declare it.

2026-06-25  Yap Zhi Heng  <yapzhhg@gmail.com>

	* resolve/rust-name-resolution-context.h (NameResolutionContext): Add new function
	definition for `should_search_prelude`.
	* resolve/rust-name-resolution-context.hxx (NameResolutionContext::should_search_prelude):
	Add implementation.
	(NameResolutionContext::resolve_segments): Update the check to trigger lang_prelude search
	during name resolution in modules.

2026-06-25  Lishin  <lishin1008@gmail.com>

	* backend/rust-compile-context.h: Include
	rust-compile-drop-candidate.h instead of rust-compile-drop.h.
	* backend/rust-compile-drop.cc: Add copyright header.
	(CompileDrop::compile_drop_call): Assert that Drop lookup returns a
	single function candidate.
	* backend/rust-compile-drop.h: Add copyright header. Include
	rust-compile-context.h.
	(RUST_COMPILE_DROP): Rename to...
	(RUST_COMPILE_DROP_H): ...this.
	(DropCandidate): Move to...
	* backend/rust-compile-drop-candidate.h: ...this new file.

2026-06-25  lishin  <lishin1008@gmail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::compile_function_body):
	Add drop calls at the end of function bodies.

2026-06-25  Lishin  <lishin1008@gmail.com>

	* Make-lang.in: Add rust-compile-drop.o.
	* backend/rust-compile-block.cc (compile_drop_call): Move to CompileDrop.
	(CompileBlock::visit): Use CompileDrop to emit scope drop calls.
	* backend/rust-compile-context.h (struct DropCandidate): Move to rust-compile-drop.h.
	* backend/rust-compile-pattern.cc (type_has_drop_impl): Move to CompileDrop.
	(CompilePatternLet::visit): Use CompileDrop to check Drop impls.
	* backend/rust-compile-drop.cc: New file.
	* backend/rust-compile-drop.h: New file.

2026-06-25  lishin  <lishin1008@gmail.com>

	* backend/rust-compile-pattern.cc (CompilePatternLet::visit): Check ref
	pattern base types and emit a sorry for unsupported Drop ref/subpatterns.

2026-06-25  lishin  <lishin1008@gmail.com>

	* backend/rust-compile-block.cc (compile_drop_call): New helper to
	build a drop call.
	(CompileBlock::visit): Add drop calls for candidates.
	* backend/rust-compile-pattern.cc (type_has_drop_impl): New helper to
	check whether a type implements Drop.
	(CompilePatternLet::visit): Save initialized simple drop candidates.

2026-06-25  lishin  <lishin1008@gmail.com>

	* backend/rust-compile-context.h (struct DropCandidate): New struct
	for tracking block-local drop candidates.

2026-06-25  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-base.cc (HIRCompileBase::setup_fndecl): Dispatch the new
	attributes.
	(HIRCompileBase::handle_rustc_allocator_on_fndecl): New function.
	(HIRCompileBase::handle_rustc_allocator_nounwind_on_fndecl): New function.
	* backend/rust-compile-base.h (handle_rustc_allocator_on_fndecl): New declaration.
	(handle_rustc_allocator_nounwind_on_fndecl): Likewise.
	* util/rust-attribute-values.h (Attributes): Add RUSTC_ALLOCATOR and
	RUSTC_ALLOCATOR_NOUNWIND constexprs.
	* util/rust-attributes.cc (__definitions): Register rustc_allocator and
	rustc_allocator_nounwind in the BuiltinAttributes list.
	* checks/errors/rust-builtin-attribute-checker.cc (rustc_allocator): New function.
	(rustc_allocator_nounwind): New function.
	(attribute_checking_handlers): Add rustc_allocator and rustc_allocator_nounwind
	functions.

2026-06-25  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-base.cc (should_mangle_item): Bypass
	mangling for rustc_std_internal_symbol.
	(HIRCompileBase::setup_fndecl): Dispatch the new attribute.
	(HIRCompileBase::handle_rustc_std_internal_symbol_attribute_on_fndecl):
	New function.
	* backend/rust-compile-base.h:
	(handle_rustc_std_internal_symbol_attribute_on_fndecl): New declaration.
	* util/rust-attribute-values.h (Attributes): Add
	RUSTC_STD_INTERNAL_SYMBOL constexpr.
	* util/rust-attributes.cc (__definitions): Register
	rustc_std_internal_symbol in the BuiltinAttributes list.
	* checks/errors/rust-builtin-attribute-checker.cc (rustc_std_internal_symbol):
	New function.
	(attribute_checking_handlers): Add rustc_std_internal_symbol function.

2026-06-25  Enes Cevik  <enes@nsvke.com>

	* backend/rust-compile-base.cc (HIRCompileBase::setup_fndecl):
	Remove reduntant as_string calls.

2026-06-25  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-lex.cc (Lexer::parse_decimal_int_or_float): Prevent use
	after move.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Call the new name.
	(CompileExpr::lookup_temp_var): Rename it to...
	(CompileExpr::lookup_label_temp_var): ...this.
	* backend/rust-compile-expr.h: Likewise.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Add Types as a
	namespace in which to lookup PathInExpressions.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/errors/privacy/rust-privacy-reporter.cc
	(PrivacyReporter::check_for_privacy_violation): Add new overload for two namespaces.
	(PrivacyReporter::visit): Call it.
	(PrivacyReporter::check_violation_inner): New function.
	* checks/errors/privacy/rust-privacy-reporter.h: Declare it.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-finalized-name-resolution-context.cc
	(FinalizedNameResolutionContext::lookup): New function.
	* resolve/rust-finalized-name-resolution-context.h: Declare it.
	* resolve/rust-name-resolution-context.cc (NameResolutionContext::lookup): New function.
	* resolve/rust-name-resolution-context.h: Declare it.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::finalize_simple_import): Cleanup
	dead code.
	(Early::finalize_rebind_import): Likewise.
	* resolve/rust-finalized-name-resolution-context.h: Add class documentation.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.h: Comment out flatten with an explanation.
	* resolve/rust-forever-stack.hxx: Likewise.
	* resolve/rust-name-resolution-context.cc (NameResolutionContext::flatten): Likewise.
	* resolve/rust-name-resolution-context.h: Likewise.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc
	(Early::finalize_rebind_import): Remove locus variable.

2026-06-25  Enes Cevik  <nsvke@proton.me>

	* checks/lints/rust-lint-marklive.cc (MarkLive::visit_path_segment): Add Types namespace
	lookup.
	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit): Use safe optional
	unwrapping.
	* checks/lints/unused/rust-unused-collector.cc (UnusedCollector::visit): Likewise.
	* checks/lints/unused/rust-unused-collector.h: Use helper for multiple namespace lookups.
	* resolve/rust-early-name-resolver-2.0.cc (Early::finalize_simple_import): Prevent ICE on
	single self imports.
	(Early::finalize_rebind_import): Return early to prevent ICE.
	* resolve/rust-name-resolution-context.hxx: Use value_or for safe leaf module lookup.
	* rust-session-manager.cc (Session::compile_crate): Remove obsolete flatten() calls.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Look up enum variants
	in Types namespace.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::try_insert_once): Use new
	Usage -> Definition map for macros.
	* resolve/rust-finalized-name-resolution-context.cc
	(FinalizedNameResolutionContext::map_usage): Dispatch to proper resolution map.
	* resolve/rust-forever-stack.h (enum class LookupFinalizeError): Move here.
	* resolve/rust-forever-stack.hxx: Make resolution take a resolve_segment lambda with
	an extra namespace parameter.
	* resolve/rust-name-resolution-context.hxx: Likewise.
	* resolve/rust-name-resolution-context.cc (find_leaf_definition_inner): Move here...
	(NameResolutionContext::find_leaf_definition): Likewise.
	(NameResolutionContext::flatten): Likewise.
	* resolve/rust-name-resolution-context.h: ...from here.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.h: Properly insert resolutions in
	the returned vector as that was previously missing.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/lints/rust-lint-marklive.cc (MarkLive::find_value_definition): Use Types NS
	alongside Values NS for lookup.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-finalized-name-resolution-context.cc
	(FinalizedNameResolutionContext::lookup): New function.
	* resolve/rust-finalized-name-resolution-context.h: Declare it.
	* resolve/rust-forever-stack.h: Remove assertion in map_usage.
	* resolve/rust-name-resolution-context.h: Add new NSLookup return type.
	* resolve/rust-name-resolution-context.cc (NameResolutionContext::lookup): Use it.
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path): Likewise.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-compile-implitem.cc (CompileTraitItem::visit): Adapt for new NR APIs.
	* backend/rust-compile-item.cc (CompileItem::visit): Likewise.
	* backend/rust-compile-resolve-path.cc (ResolvePathRef::resolve): Likewise.
	* checks/errors/borrowck/rust-bir-builder-internal.h: Likewise.
	* checks/errors/privacy/rust-privacy-reporter.cc
	(PrivacyReporter::check_for_privacy_violation): Likewise.
	(PrivacyReporter::check_base_type_privacy): Likewise.
	(PrivacyReporter::visit): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc
	(VisibilityResolver::resolve_module_path): Likewise.
	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
	* checks/errors/rust-hir-pattern-analysis.cc (PatternChecker::visit): Likewise.
	* checks/errors/rust-readonly-check.cc (ReadonlyChecker::visit): Likewise.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
	* checks/lints/rust-lint-marklive.cc (MarkLive::visit): Likewise.
	(MarkLive::visit_path_segment): Likewise.
	(MarkLive::find_ref_node_id): Likewise.
	(MarkLive::find_value_definition): Likewise.
	* checks/lints/rust-lint-marklive.h: Likewise.
	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit): Likewise.
	* checks/lints/unused/rust-unused-collector.cc (UnusedCollector::visit): Likewise.
	* checks/lints/unused/rust-unused-collector.h: Likewise.
	* resolve/rust-early-name-resolver-2.0.cc (Early::resolve_glob_import): Likewise.
	(Early::resolve_rebind_import): Likewise.
	(Early::visit): Likewise.
	(Early::visit_derive_attribute): Likewise.
	(Early::visit_non_builtin_attribute): Likewise.
	(Early::finalize_simple_import): Likewise.
	(Early::finalize_rebind_import): Likewise.
	* resolve/rust-early-name-resolver-2.0.h: Likewise.
	* resolve/rust-finalized-name-resolution-context.cc
	(FinalizedNameResolutionContext::map_usage): Likewise.
	(FinalizedNameResolutionContext::lookup): Likewise.
	(FinalizedNameResolutionContext::to_canonical_path): Likewise.
	* resolve/rust-finalized-name-resolution-context.h: Likewise.
	* resolve/rust-forever-stack.h: Likewise.
	* resolve/rust-late-name-resolver-2.0.cc (visit_identifier_as_pattern): Likewise.
	(Late::visit): Likewise.
	(Late::resolve_label): Likewise.
	(resolve_type_path_like): Likewise.
	* resolve/rust-name-resolution-context.cc
	(CanonicalPathRecordCrateRoot::as_path): Likewise.
	(CanonicalPathRecordNormal::as_path): Likewise.
	(CanonicalPathRecordLookup::as_path): Likewise.
	(CanonicalPathRecordImpl::as_path): Likewise.
	(CanonicalPathRecordTraitImpl::as_path): Likewise.
	(NameResolutionContext::map_usage): Likewise.
	(NameResolutionContext::lookup): Likewise.
	* resolve/rust-name-resolution-context.h: Likewise.
	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_path_to_trait): Likewise.
	* typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit): Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
	(TypeCheckExpr::resolve_fn_trait_call): 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::visit): Likewise.
	(TypeCheckExpr::resolve_root_path): Likewise.
	(TypeCheckExpr::resolve_segments): Likewise.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path): Likewise.
	(ResolveWhereClauseItem::visit): Likewise.
	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): Likewise.
	* typecheck/rust-type-util.cc (query_type): Likewise.
	* backend/rust-compile-expr.h (CompileExpr::resolve_nodeid): Likewise.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
	(CompileExpr::lookup_label): Likewise.
	(CompileExpr::lookup_temp_var): Likewise.
	(CompileExpr::resolve_NodeId): Likewise, and rename to...
	(CompileExpr::resolve_nodeid): ...this.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::insert_once): Rename...
	(Early::try_insert_once): ...to this, and improve logic.
	(Early::go): Use new API.
	(Early::visit): Likewise.
	(Early::finalize_simple_import): Likewise.
	(Early::finalize_rebind_import): Likewise.
	* resolve/rust-early-name-resolver-2.0.h: Declare the new API.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* rust-session-manager.cc (Session::compile_crate): Call nr_ctx.flatten()

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Rename.
	* backend/rust-compile-base.cc: Use new name and API.
	* backend/rust-compile-context.h: Likewise.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
	(CompileExpr::generate_closure_function): Likewise.
	* backend/rust-compile-implitem.cc (CompileTraitItem::visit): Likewise.
	* backend/rust-compile-item.cc (CompileItem::visit): Likewise.
	* backend/rust-compile-resolve-path.cc (ResolvePathRef::resolve): Likewise.
	* checks/errors/borrowck/rust-bir-builder-internal.h (struct BuilderContext): Likewise.
	* checks/errors/privacy/rust-privacy-check.cc (Resolver::resolve): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.cc: Likewise.
	* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc: Likewise.
	* checks/errors/privacy/rust-visibility-resolver.h: Likewise.
	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
	* checks/errors/rust-hir-pattern-analysis.cc (PatternChecker::PatternChecker): Likewise.
	* checks/errors/rust-hir-pattern-analysis.h: Likewise.
	* checks/errors/rust-readonly-check.cc (ReadonlyChecker::visit): Likewise.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
	* checks/lints/rust-lint-marklive.cc (MarkLive::visit_path_segment): Likewise.
	(MarkLive::visit): Likewise.
	(MarkLive::find_ref_node_id): Likewise.
	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::UnusedChecker): Likewise.
	* checks/lints/unused/rust-unused-checker.h: Likewise.
	* checks/lints/unused/rust-unused-collector.cc (UnusedCollector::UnusedCollector): Likewise.
	* checks/lints/unused/rust-unused-collector.h: Likewise.
	* resolve/rust-immutable-name-resolution-context.cc: Move to...
	* resolve/rust-finalized-name-resolution-context.cc: ...here.
	* resolve/rust-name-resolution-context.h: Likewise.
	* rust-session-manager.cc (Session::compile_crate): Likewise.
	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_path_to_trait): Likewise.
	* typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit): Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
	(TypeCheckExpr::resolve_fn_trait_call): 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::visit): Likewise.
	(TypeCheckExpr::resolve_root_path): Likewise.
	(TypeCheckExpr::resolve_segments): Likewise.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path): Likewise.
	(ResolveWhereClauseItem::visit): Likewise.
	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): Likewise.
	* typecheck/rust-type-util.cc (query_type): Likewise.
	* checks/errors/rust-const-checker.h: Likewise.
	* checks/errors/rust-unsafe-checker.h: Likewise.
	* checks/lints/rust-lint-marklive.h: Likewise.
	* resolve/rust-immutable-name-resolution-context.h: Removed.
	* resolve/rust-finalized-name-resolution-context.h: New file.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::finalize_rebind_import): Insert imports
	as possible glob containers.
	* resolve/rust-name-resolution-context.cc (NameResolutionContext::map_usage): Allow
	multiple mappings of the same usage.
	* resolve/rust-name-resolution-context.hxx: Properly handle imports and modules in segments.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.h: Move resolve_segments and resolve_final_segment to...
	* resolve/rust-forever-stack.hxx: Likewise.
	* resolve/rust-name-resolution-context.h: ...here.
	* resolve/rust-name-resolution-context.hxx: Likewise.

2026-06-25  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc: Properly resolve and insert imports in the
	types NS.
	* resolve/rust-name-resolution-context.cc (find_leaf_definition_inner): New.
	(NameResolutionContext::find_leaf_definition): New.
	(NameResolutionContext::flatten): New.
	* resolve/rust-name-resolution-context.h: Declare flattening functions.
	* rust-session-manager.cc (Session::compile_crate): Call NR flattening.

2026-06-25  Yap Zhi Heng  <yapzhhg@gmail.com>

	* resolve/rust-default-resolver.h (DefaultResolver): Add new visited_crates
	member for recursion protection.
	* resolve/rust-default-resolver.cc (DefaultResolver::visit(ExternCrate)):
	Make references of `self` resolve to the current crate.

2026-06-25  Enes Cevik  <enes@nsvke.com>

	* util/rust-lang-item.cc (Rust::LangItem::lang_items): Register
	exchange_malloc to BiMap.
	* util/rust-lang-item.h (LangItem::Kind): Add EXCHANGE_MALLOC.

2026-06-25  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-finalize-imports-2.0.cc (GlobbingVisitor::visit):
	Add overrides for more items.
	* resolve/rust-finalize-imports-2.0.h (GlobbingVisitor::visit):
	Likewise.

2026-06-01  Yap Zhi Heng  <yapzhhg@gmail.com>

	* parse/rust-parse-impl.hxx(parse_expr_stmt): Return error early when
	parse_path_in_expression() returns an error node.

2026-06-01  lishin  <lishin1008@gmail.com>

	* util/rust-lang-item.h (Rust::LangItem::Kind): Add DROP.
	* util/rust-lang-item.cc (Rust::LangItem::lang_items): Add drop lang item.

2026-06-01  Jean-Christian CÎRSTEA  <jean-christian.cirstea@tuta.com>

	* backend/rust-intrinsic-handlers.cc
	(check_for_basic_integer_type): Fixed typo.
	(build_atomic_builtin_name): Update message.
	(unchecked_op, atomic_store, ctlz_handler)
	(cttz_handler, bswap_handler): Use call location.

2026-06-01  Islam-Imad  <islamimad404@gmail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Lower labeled block.
	(CompileExpr::construct_block_label): Utility function to construct block label.
	(CompileExpr::lookup_label): Utility function to lookup label.
	(CompileExpr::lookup_temp_var): Utility function to lookup block temp variables.
	(CompileExpr::resolve_util): Utility to resolve NodeId to HirId.
	* backend/rust-compile-expr.h: Header functions.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Fix label resolution.

2026-06-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* hir/tree/rust-hir-visibility.h: Switch Visibility::VisType to an enum class, adapt
	variants' case.
	* backend/rust-compile-base.cc (HIRCompileBase::setup_fndecl): Use the new enum API.
	* backend/rust-compile-implitem.cc (CompileTraitItem::visit): Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc
	(VisibilityResolver::resolve_visibility): Likewise.
	* hir/rust-ast-lower.cc (translate_visibility): Likewise.
	* hir/tree/rust-hir.cc (Visibility::to_string): Likewise.
	* metadata/rust-export-metadata.cc (PublicInterface::is_crate_public): Likewise.
	* util/rust-hir-map.cc (Mappings::Mappings): Likewise.

2026-06-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/feature/rust-feature-gate.cc (FeatureGate::visit): Add
	a feature gate around rustc_const_stable attributes.

2026-06-01  Enes Cevik  <nsvke@proton.me>

	* lex/rust-lex.cc (Lexer::parse_non_decimal_int_literal): Emit E0768.

2026-06-01  Enes Cevik  <nsvke@proton.me>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Update Token::make_int and
	Token::make_float calls to include suffix_start and IntegerLiteralBase::Decimal.
	* expand/rust-macro-builtins-location.cc (MacroBuiltin::column_handler): Pass string
	length and base to Token::make_int.
	(MacroBuiltin::line_handler): Likewise.
	* lex/rust-lex.cc (Lexer::parse_in_type_suffix): Rename to parse_in_suffix and return
	string instead of PrimitiveCoreType.
	(Lexer::parse_in_suffix): Remove underscore stripping to preserve source fidelity for
	macros.
	(Lexer::parse_in_exponent_part): Preserve '+' and '-' characters in the raw string.
	(Lexer::parse_in_decimal): Remove underscore stripping.
	(Lexer::parse_non_decimal_int_literal): Track suffix start index and pass literal base.
	(Lexer::parse_non_decimal_int_literals): Use IntegerLiteralBase enum values instead of
	raw integers.
	(Lexer::parse_decimal_int_or_float): Track suffix string length and pass base parameters
	to token creation.
	* lex/rust-lex.h: Update method signatures for suffix parsing.
	* lex/rust-token.h (enum class IntegerLiteralBase): New enum to represent numeric bases.
	* parse/rust-parse-impl-expr.hxx: use LiteralResolve functions to evaluate raw token
	strings.
	* parse/rust-parse-impl-pattern.hxx: Use evaluated literal strings for INT and FLOAT
	tokens.
	* parse/rust-parse.cc (resolve_literal_suffix): Move suffix validation logic from lexer
	to parser.
	(evaluate_integer_literal): New function to strip underscores and convert to decimal via
	GMP.
	(evaluate_float_literal): New function to strip underscores from floats.
	* parse/rust-parse.h (evaluate_integer_literal): Declare in LiteralResolve namespace.
	(evaluate_float_literal): Likewise.
	(resolve_literal_suffix): Likewise.
	* util/rust-token-converter.cc (from_literal): Safely reconstruct raw text and suffix to
	dynamically determine base and suffix_start for ProcMacros.

2026-06-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-name-resolution-context.hxx: Do segment resolution in types NS for more
	correctness and correct behavior when later resolving paths that use imports and/or
	modules.

2026-06-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.h: Move declarations from ForeverStack to NRCtx, make most
	of the ForeverStack members public as it helps the Ctx a lot.
	* resolve/rust-forever-stack.hxx: Move implementation of resolve_path methods to NRCtx.
	* resolve/rust-name-resolution-context.h: Declare resolve_path methods.
	* resolve/rust-name-resolution-context.hxx: New file with resolve_path impls.

2026-06-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-builtins-log-debug.cc (MacroBuiltin::assert_handler):
	Add basic assert builtin macro handler.

2026-06-01  lishin  <lishin1008@gmail.com>

	* hir/tree/rust-hir-item.cc (TraitFunctionDecl::TraitFunctionDecl):
	Handle null return types in copy constructor.
	(TraitFunctionDecl::operator=): Likewise.

2026-06-01  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-attributes.cc (__definitions): Add entries for warn
	and deny attributes.

2026-06-01  Harishankar  <harishankarpp7@gmail.com>

	* expand/rust-cfg-strip.cc (CfgStrip::visit): mark CallExpr for
	strip when function expression fails stripping.
	(CfgStrip::visit): mark ArrayIndexExpr for strip when array or
	index expression fails stripping.

2026-06-01  Islam-Imad  <islamimad404@gmail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Emit the
	missing assignment for CompoundAssignmentExpr.

2026-06-01  fisnikhasani  <242628373+fisnikhasani@users.noreply.github.com>

	* lang.opt (flag_name_resolution_2_0): Remove.
	* resolve/rust-name-resolver.cc: Remove include.

2026-05-29  Marc Poulhiès  <dkm@kataplop.net>
	    Andreas Schwab  <schwab@linux-m68k.org>

	PR tree-optimization/114385
	* lex/rust-token.cc (Token::as_string): split concatenation.

2026-04-14  jayant chauhan  <0001jayant@gmail.com>

	* backend/rust-compile-item.cc (CompileItem::visit): Do not insert
	const_expr into the context if it is an error_mark_node.
	* backend/rust-compile-implitem.cc (CompileTraitItem::visit): Likewise.

2026-04-14  AhmedSaid3617  <said.ahmed3617@gmail.com>

	* ast/rust-item.h:(PathType::get_glob_type): Added const qualifier to allow
	function call from const objects.
	* resolve/rust-forever-stack.hxx:
	(ForeverStack<N>::resolve_path): Check for empty segments vector and
	return starting point.
	* resolve/rust-toplevel-name-resolver-2.0.cc (flatten_glob): Preserve the
	opening scope resolution property of the use statement.

2026-04-14  Islam-Imad  <islamimad404@gmail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): set unit type.

2026-04-14  Mohamed Ali  <mohmedali1462005@gmail.com>

	* backend/rust-compile-intrinsic.cc: Register cttz and cttz_nonzero intrinsics.
	* backend/rust-intrinsic-handlers.cc (cttz_handler): Implemnt cttz_handler.
	(cttz_nonzero_handler): Implemnt cttz_nonzero_handler.
	* backend/rust-intrinsic-handlers.h (cttz_handler): Add decl for cttz_handler.
	(cttz_nonzero_handler): Add decl for cttz_handler.
	* util/rust-intrinsic-values.h: map cttz_nonzero to its name.

2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-asm.cc: Include "rust-ggc.h".
	(chain_asm_operand): Use GGC::ChainList.
	(CompileAsm::asm_construct_outputs): Likewise.
	(CompileAsm::asm_construct_inputs): Likewise.
	(CompileLlvmAsm::construct_operands): Likewise.
	(CompileLlvmAsm::construct_clobbers): Likewise.
	* util/rust-ggc.h (class ChainList): New class.

2026-04-14  Philipp Gesang  <phg@phi-gamma.net>

	* parse/rust-parse-impl.hxx: Refactor qualifier parsing
	* parse/rust-parse.h: (parse_function_qualifiers) Likewise

2026-04-14  Philipp Gesang  <phg@phi-gamma.net>

	* parse/rust-parse-impl.hxx (parse_function_qualifiers)
	Collect qualifiers into vector before generating the
	error message
	* parse/rust-parse.h: (parse_function_qualifiers) Make
	function fallible

2026-04-14  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
	Add error for functions with `default` qualifier outside of impl
	blocks.
	* parse/rust-parse-impl.hxx (Parser::parse_item):
	Allow parsing of functions with `default` qualifier.
	(Parser::parse_vis_item): Likewise.

2026-04-14  Kushal Pal  <kushalpal109@gmail.com>

	* ast/rust-ast-builder.cc (AstBuilder::fn_qualifiers):
	Add new parameter.
	* ast/rust-ast-builder.h: Likewise.
	* ast/rust-ast.cc (Function::Function):
	Remove current default parameter.
	(Function::operator=):
	Remove current default parameter.
	* ast/rust-item.h (class FunctionQualifiers):
	Add data member to represent defaultness of a function.
	(class Function):
	Remove current default parameter.
	* parse/rust-parse-impl.hxx (Parser::parse_function_qualifiers):
	Parse function qualifiers in order.
	* util/rust-common.h (enum class): Create enum to represent
	defaultness of a function.

2026-04-14  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options):
	Allow parsing of AttrInputMetaItemContainer.

2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add a new rust-attribute-checker file.
	* checks/errors/rust-builtin-attribute-checker.h (check_valid_attribute_for_item):
	Change BuiltinAttributeChecker doc comment.
	* rust-session-manager.cc: Include the new rust-attribute-checker
	header.
	* util/rust-attributes.cc (AttributeChecker::AttributeChecker): Move to
	rust-attribute-checker.cc.
	(AttributeChecker::go): Likewise.
	(is_proc_macro_type): Likewise.
	(check_proc_macro_non_function): Likewise.
	(check_proc_macro_non_root): Likewise.
	(AttributeChecker::visit): Likewise.
	* util/rust-attributes.h (class AttributeChecker): Move to
	rust-attribute-checker.h.
	* checks/errors/rust-attribute-checker.cc: New file.
	* checks/errors/rust-attribute-checker.h: New file.

2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-builtin-attribute-checker.cc (std::function<void):
	Use the new attribute value variables instead of raw values.
	* util/rust-attribute-values.h: Add deny, warn and forbid values.

2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-builtin-attribute-checker.cc (check_doc_attribute):
	Move from here...
	(doc): ...to here.
	(check_deprecated_attribute): Move from here...
	(deprecated): ...to here.
	(check_link_section_attribute): Move from here...
	(link_section): ... to here.
	(check_export_name_attribute): Move from here...
	(export_name): ... to here.
	(check_no_mangle_function): Remove internal structure checking and move
	it to no_mangle handler.
	(check_lint_attribute): Move from here...
	(lint): ... to here.
	(link_name): Likewise with link_name.
	(check_crate_type): Move to anonymous namespace within the handler
	namespace.
	(proc_macro_derive): Add proc macro specific handler.
	(proc_macro): Likewise.
	(target_feature): Likewise.
	(no_mangle): Add specific handler for no_mangler attribute internal
	structure checking.
	(std::function<void): Add map with attribute name to handler matching.
	(tl::optional<std::function<void): Likewise.
	(lookup_handler): Add an helper function to retrieve the handler of any
	builtin attribute.
	(BuiltinAttributeChecker::visit): Change attribute visitor call with
	new handler call.
	* checks/errors/rust-builtin-attribute-checker.h (check_valid_attribute_for_item):
	Add prototype.

2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-builtin-attribute-checker.cc (BuiltinAttributeChecker::visit):
	Deduplicate lines using the new templated function within the visitor
	functions.
	* checks/errors/rust-builtin-attribute-checker.h (class BuiltinAttributeChecker):
	Create a new templated function that achieves the default attribute
	checking operations.

2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Flatten
	AttrInputExpr containing a literal to an AttrInputLiteral.
	* expand/rust-expand-visitor.h: Add function prototype.

2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Add helper to set a new attribute input.
	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_inner_stmts):
	Visit builtin attributes.
	(ExpandVisitor::visit): Likewise.
	* resolve/rust-early-name-resolver-2.0.cc (Early::visit): Expand
	attribute input expr.

2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add file for builtin attribute checking.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_doc_item_attribute):
	Remove error emission and replace it with an assert. The error message
	will now be emitted from the builtin attribute checking pass.
	* rust-session-manager.cc (Session::compile_crate): Add builtin
	attribute checking step after expansion.
	* util/rust-attributes.cc (Attributes::is_known): Move down.
	(Attributes::extract_string_literal): Likewise.
	(Attributes::valid_outer_attribute): Add a function to retrieve outer/
	inner status for a given builtin attribute value.
	(AttributeChecker::visit): Move some checking to builtin attribute
	checker.
	(identify_builtin): Rename function from here ...
	(lookup_builtin): ... to here.
	(check_doc_alias): Move to builtin attribute checker.
	(check_doc_attribute): Likewise.
	(check_deprecated_attribute): Likewise.
	(check_valid_attribute_for_item): Likewise.
	(AttributeChecker::check_inner_attribute): Likewise.
	(check_link_section_attribute): Likewise.
	(check_export_name_attribute): Likewise.
	(check_lint_attribute): Likewise.
	(check_no_mangle_function): Likewise.
	(is_proc_macro_type): Update function call name.
	* util/rust-attributes.h (identify_builtin): Update prototype.
	(lookup_builtin): Likewise.
	* checks/errors/rust-builtin-attribute-checker.cc: New file.
	* checks/errors/rust-builtin-attribute-checker.h: New file.

2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Remove
	AttrInputMacro handling.
	* ast/rust-ast-collector.h: Remove function prototype.
	* ast/rust-ast-full-decls.h (class AttrInputMacro): Remove forward
	declaration.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Remove function.
	* ast/rust-ast-visitor.h: Remove function prototypes.
	* ast/rust-ast.cc (Attribute::get_traits_to_derive): Remove handling of
	macros.
	(AttrInputMacro::as_string): Remove function.
	(AttrInputMacro::AttrInputMacro): Likewise.
	(AttrInputMacro::operator=): Likewise.
	(AttrInputMacro::accept_vis): Likewise.
	* ast/rust-ast.h: Remove MACRO kind.
	* ast/rust-expr.h (class AttrInputMacro): Add getter for expr pointer.
	Remove AttrInputMacro class.
	* expand/rust-derive.h: Remove function prototype.
	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Change function
	to AttrInputExpr.
	* expand/rust-expand-visitor.h: Update prototype.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Remove function.
	* hir/rust-ast-lower-base.h: Remove function prototype.
	* parse/rust-parse-impl-attribute.hxx: Parse the attribute content as
	AttrInputExpr instead.
	* util/rust-attributes.cc (check_doc_attribute): Remove MACRO kind
	handling.
	(check_export_name_attribute): Remove switch and only handle literals.
	(AttributeChecker::visit): Remove function.
	* util/rust-attributes.h: Remove function prototype.

2026-04-14  Egas Ribeiro  <egas.g.ribeiro@tecnico.ulisboa.pt>

	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): added
	refutable pattern checks for function params.

2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>

	* Make-lang.in (GRS_OBJS): Add rust-identifier-path.o.
	* resolve/rust-early-name-resolver-2.0.cc: Include
	"rust-identifier-path.h".
	(Early::go): Use IdentifierPathPass.
	(Early::visit): Handle identifier patterns which should be path
	patterns.
	* resolve/rust-early-name-resolver-2.0.h: Include
	"rust-pattern.h".
	(Early::visit): Add visiting function declaration for
	IdentifierPattern.
	(Early::ident_path_to_convert): New member variable.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
	Call Mappings::add_function_node.
	* util/rust-hir-map.cc (Mappings::add_function_node): New
	member function definition.
	(Mappings::is_function_node): Likewise.
	* util/rust-hir-map.h (Mappings::add_function_node): New
	member function declaration.
	(Mappings::is_function_node): Likewise.
	(Mappings::function_nodes): New member variable.
	* resolve/rust-identifier-path.cc: New file.
	* resolve/rust-identifier-path.h: New file.

2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-pointer-visitor.cc (PointerVisitor::visit): Remove
	duplicated functions.
	* ast/rust-ast-pointer-visitor.h: Remove duplicated function
	prototypes.

2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-expand.cc (MacroExpander::expand_crate):
	Remove usage of Resolver::get_macro_scope.
	* resolve/rust-name-resolver.cc (Resolver::Resolver): Handle
	removal of member variables.
	(Resolver::push_new_name_rib): Remove function definition.
	(Resolver::push_new_type_rib): Likewise.
	(Resolver::push_new_label_rib): Likewise.
	(Resolver::push_new_macro_rib): Likewise.
	(Resolver::find_name_rib): Likewise.
	(Resolver::find_type_rib): Likewise.
	(Resolver::find_macro_rib): Likewise.
	(Resolver::insert_builtin_types): Likewise.
	(Resolver::get_builtin_types): Likewise.
	(Resolver::generate_builtins): Likewise.
	(Resolver::setup_builtin): Likewise.
	(Resolver::insert_resolved_label): Likewise.
	(Resolver::lookup_resolved_label): Likewise.
	(Resolver::insert_resolved_macro): Likewise.
	(Resolver::lookup_resolved_macro): Likewise.
	(Resolver::push_closure_context): Likewise.
	(Resolver::pop_closure_context): Likewise.
	(Resolver::insert_captured_item): Likewise.
	(Resolver::decl_needs_capture): Likewise.
	(Resolver::get_captures): Likewise.
	(Resolver::insert_resolved_name): Replace function
	implementation with rust_unreachable call.
	(Resolver::lookup_resolved_name): Likewise.
	(Resolver::insert_resolved_type): Likewise.
	(Resolver::lookup_resolved_type): Likewise.
	(Resolver::insert_resolved_misc): Likewise.
	(Resolver::lookup_resolved_misc): Likewise.
	* resolve/rust-name-resolver.h (Resolver::insert_builtin_types):
	Remove member function declaration.
	(Resolver::get_builtin_types): Likewise.
	(Resolver::push_new_name_rib): Likewise.
	(Resolver::push_new_type_rib): Likewise.
	(Resolver::push_new_label_rib): Likewise.
	(Resolver::push_new_macro_rib): Likewise.
	(Resolver::find_name_rib): Likewise.
	(Resolver::find_type_rib): Likewise.
	(Resolver::find_label_rib): Likewise.
	(Resolver::find_macro_rib): Likewise.
	(Resolver::insert_resolved_label): Likewise.
	(Resolver::lookup_resolved_label): Likewise.
	(Resolver::insert_resolved_macro): Likewise.
	(Resolver::lookup_resolved_macro): Likewise.
	(Resolver::get_name_scope): Likewise.
	(Resolver::get_type_scope): Likewise.
	(Resolver::get_label_scope): Likewise.
	(Resolver::get_macro_scope): Likewise.
	(Resolver::get_global_type_node_id): Likewise.
	(Resolver::set_unit_type_node_id): Likewise.
	(Resolver::get_unit_type_node_id): Likewise.
	(Resolver::set_never_type_node_id): Likewise.
	(Resolver::get_never_type_node_id): Likewise.
	(Resolver::push_new_module_scope): Likewise.
	(Resolver::pop_module_scope): Likewise.
	(Resolver::peek_current_module_scope): Likewise.
	(Resolver::peek_crate_module_scope): Likewise.
	(Resolver::peek_parent_module_scope): Likewise.
	(Resolver::push_closure_context): Likewise.
	(Resolver::pop_closure_context): Likewise.
	(Resolver::insert_captured_item): Likewise.
	(Resolver::get_captures): Likewise.
	(Resolver::as_debug_string): Likewise.
	(Resolver::decl_needs_capture): Likewise.
	(Resolver::generate_builtins): Likewise.
	(Resolver::setup_builtin): Likewise.
	(Resolver::mappings): Remove member variable.
	(Resolver::tyctx): Likewise.
	(Resolver::builtins): Likewise.
	(Resolver::name_scope): Likewise.
	(Resolver::type_scope): Likewise.
	(Resolver::label_scope): Likewise.
	(Resolver::macro_scope): Likewise.
	(Resolver::global_type_node_id): Likewise.
	(Resolver::unit_ty_node_id): Likewise.
	(Resolver::never_ty_node_id): Likewise.
	(Resolver::name_ribs): Likewise.
	(Resolver::type_ribs): Likewise.
	(Resolver::label_ribs): Likewise.
	(Resolver::macro_ribs): Likewise.
	(Resolver::resolved_names): Likewise.
	(Resolver::resolved_types): Likewise.
	(Resolver::resolved_labels): Likewise.
	(Resolver::resolved_macros): Likewise.
	(Resolver::misc_resolved_items): Likewise.
	(Resolver::current_module_stack): Likewise.
	(Resolver::closure_context): Likewise.
	(Resolver::closures_capture_mappings): Likewise.

2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/rust-const-checker.cc: Remove inclusion of
	"options.h".
	(ConstChecker::ConstChecker): Initialize 2.0 resolver.
	(ConstChecker::visit): Assume nr2.0 is enabled.
	* checks/errors/rust-const-checker.h: Adjust includes.
	(ConstChecker::resolver): Change type to 2.0 resolver.
	* checks/errors/rust-unsafe-checker.cc: Remove inclusion of
	"options.h".
	(UnsafeChecker::UnsafeChecker): Initialize 2.0 resolver.
	(UnsafeChecker::visit): Assume nr2.0 is enabled.
	* checks/errors/rust-unsafe-checker.h: Adjust includes.
	(UnsafeChecker::resolver): Change type to 2.0 resolver.
	* checks/lints/rust-lint-marklive.cc
	(MarkLive::visit_path_segment): Assume nr2.0 is enabled.
	(MarkLive::visit): Likewise.
	(MarkLive::find_ref_node_id): Likewise.
	* checks/lints/rust-lint-marklive.h: Include
	"rust-immutable-name-resolution-context.h".
	(MarkLive::resolver): Change type to 2.0 resolver, as a
	reference instead of a pointer.
	(MarkLive::MarkLive): Initialize 2.0 resolver.

2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Remove
	some redundant function overloads.
	* expand/rust-expand-visitor.h (ExpandVisitor::visit): Likewise.

2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attribute-values.h: Add "no_builtins"
	attribute value.
	* util/rust-attributes.cc: Add "no_builtins" to
	the list of builtin attributes.

2026-04-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/feature/rust-feature-gate.cc (FeatureGate::visit):
	Rework visit to avoid multiple iterations. Add check for
	"compiler_builtins" attribute.
	(FeatureGate::check_no_core_attribute): Remove loop.
	* checks/errors/feature/rust-feature-gate.h: Update function prototype.
	* util/rust-attribute-values.h: Add "compiler_builtins" attribute
	value.
	* util/rust-attributes.cc: Add "compiler_builtins" to the list of
	builtin attributes.

2026-04-14  Mohamed Ali  <mohmedali1462005@gmail.com>

	* backend/rust-compile-intrinsic.cc: Register ctlz and ctlz_nonzero intrinsics.
	* backend/rust-intrinsic-handlers.cc (ctlz_handler): Implement ctlz_handler.
	(ctlz_nonzero_handler): Implement ctlz_nonzero_handler.
	* backend/rust-intrinsic-handlers.h (ctlz_handler): Add decl for ctlz_handler.
	(ctlz_nonzero_handler): Add decl for ctlz_nonzero_handler.
	* util/rust-intrinsic-values.h: map ctlz_nonzero to its name.

2026-04-14  Enes Cevik  <nsvke@proton.me>

	* lex/rust-lex.cc (Lexer::parse_non_decimal_int_literal): Use GMP
	for base conversion to support 128-bit literals. Remove existent_str
	parameter.
	(Lexer::parse_non_decimal_int_literals): Remove prefix string
	initialization and update function calls.
	* lex/rust-lex.h (Lexer::parse_non_decimal_int_literal): Update
	function signature to remove existent_str.

2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/rust-hir-pattern-analysis.cc
	(PlaceInfo::specialize): Handle VariantType::UNIT.
	(WitnessPat::to_string): Likewise.
	(WitnessMatrix::apply_constructor): Likewise.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
	Conditionally create VariantType::UNIT variants.
	* typecheck/rust-hir-type-check-pattern.cc
	(TypeCheckPattern::visit): Fix typo, handle VariantType::UNIT.
	* typecheck/rust-tyty-variance-analysis.cc
	(GenericTyVisitorCtx::process_type): Handle VariantType::UNIT.
	* typecheck/rust-tyty.cc (BaseType::contains_infer): Likewise.
	(BaseType::is_concrete): Likewise.
	(VariantDef::variant_type_string): Likewise.
	(VariantDef::VariantDef): Likewise.
	* typecheck/rust-tyty.h (VariantDef::VariantType::UNIT): New
	enumerator.

2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-finalize-imports-2.0.cc
	(GlobbingVisitor::visit_enum_container): Conditionally insert
	into value namespace as well.
	* resolve/rust-forever-stack.hxx (ForeverStack::insert_variant):
	Add template specialization for value namespace.
	* resolve/rust-name-resolution-context.cc
	(NameResolutionContext::insert_variant): Allow insertion into
	value namespace.
	* resolve/rust-name-resolution-context.h
	(NameResolutionContext::insert_variant): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::insert_enum_variant_or_error_out): Likewise.
	(TopLevel::visit): Use tweaked insert_enum_variant_or_error_out
	properly for all enum item kinds.
	* resolve/rust-toplevel-name-resolver-2.0.h
	(TopLevel::insert_enum_variant_or_error_out): Tweak function
	signature.

2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc
	(TypeCheckPattern::visit): Fix typo "constatnt".

2026-04-14  hriztam  <hritamstark05@gmail.com>

	* ast/rust-fmt.h: Explicitly instantiate FFIVec<Piece>.

2026-04-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* typecheck/rust-tyty.cc (generate_tree_str): Remove opem_memstream
	and print_generic_stmt call with call to dump_generic_node.

2026-04-14  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-forever-stack.h: Include more headers.
	(class ResolutionPath): New class for representing paths.
	(ForeverStack::resolve_path): Change function signature.
	(ForeverStack::find_starting_point): Likewise.
	(ForeverStack::resolve_segments): Likewise.
	(ForeverStack::SegIterator): Change type alias.
	* resolve/rust-forever-stack.hxx (check_leading_kw_at_start):
	Change function signature.
	(ForeverStack::find_starting_point): Likewise.
	(ForeverStack::resolve_segments): Likewise.
	(ForeverStack::resolve_path): Likewise.
	* resolve/rust-name-resolution-context.h: Tweak include guard,
	include "rust-name-resolution.h".
	(NameResolutionContext::resolve_path): Use ResolutionPath and
	ResolutionBuilder.
	(class NameResolutionContext::ResolutionBuilder): New class.
	(class Usage): Move this...
	(class Definition): ...and this...
	* resolve/rust-name-resolution.h: ...to new file.
	* util/rust-unwrap-segment.h: Add include guard.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-session-manager.cc (Session::compile_crate): Use additional
	cli attributes for the injection function. Move additional attribute
	injection from here...
	(Session::injection): ... to here.
	* rust-session-manager.h: Update injection fonction prototype.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (Crate::inject_inner_attribute): Add member function
	to inject an inner attribute.
	* ast/rust-ast.h: Add function prototype.
	* lang.opt: Add frust-crate-attr argument to the compiler CLI.
	* rust-lang.cc: Remove unused attribute on  option handler.
	* rust-session-manager.cc (Session::handle_crate_name): Collect CLI
	additional inner attributes.
	(Session::compile_crate): Parse the additional inner attributes and
	inject them.
	* rust-session-manager.h (struct CompileOptions): Add collection of
	additional inner attributes.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.cc: Add no_std to list of builtin attributes.

2026-03-20  Enes Cevik  <nsvke@proton.me>

	* backend/rust-compile-intrinsic.cc: Add bswap_handler.
	* backend/rust-intrinsic-handlers.cc (bswap_handler): New function.
	* backend/rust-intrinsic-handlers.h (bswap_handler): New declaration.

2026-03-20  Mohamed Ali  <mohmedali1462005@gmail.com>

	* checks/errors/feature/rust-feature-gate.cc (FeatureGate::visit): Call check_no_core_attri.
	* checks/errors/feature/rust-feature-gate.h: Declare method check_no_core_attri.

2026-03-20  Harishankar  <harishankarpp7@gmail.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::finalize_rebind_import): Add ambiguity
	check before calling get_node_id() on glob import definitions.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-intrinsic.cc: Use predefined values.
	* checks/errors/rust-unsafe-checker.cc (is_safe_intrinsic): Likewise.
	* util/rust-intrinsic-values.h: New file.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add rust-intrinsic-handlers.cc.
	* backend/rust-compile-intrinsic.cc (get_identifier): Move function
	to handlers namespace.
	(is_basic_integer_type): Likewise.
	(check_for_basic_integer_type): Likewise.
	(offset_handler): Likewise.
	(sizeof_handler): Likewise.
	(transmute_handler): Likewise.
	(rotate_handler): Likewise.
	(wrapping_op_handler_inner): Likewise.
	(op_with_overflow_inner): Likewise.
	(uninit_handler): Likewise.
	(move_val_init_handler): Likewise.
	(assume_handler): Likewise.
	(discriminant_value_handler): Likewise.
	(variant_count_handler): Likewise.
	(enum class): Likewise.
	(prefetch_data_handler): Likewise.
	(rotate_left_handler): Likewise.
	(rotate_right_handler): Likewise.
	(std::function<tree): Likewise.
	(wrapping_op_handler): Likewise.
	(op_with_overflow): Likewise.
	(prefetch_read_data): Likewise.
	(prefetch_write_data): Likewise.
	(atomic_store_handler_inner): Likewise.
	(atomic_load_handler_inner): Likewise.
	(atomic_store_handler): Likewise.
	(atomic_load_handler): Likewise.
	(unchecked_op_inner): Likewise.
	(unchecked_op_handler): Likewise.
	(copy_handler_inner): Likewise.
	(copy_handler): Likewise.
	(expect_handler_inner): Likewise.
	(expect_handler): Likewise.
	(try_handler_inner): Likewise.
	(try_handler): Likewise.
	(sorry_handler): Likewise.
	(check_for_cached_intrinsic): Likewise.
	(maybe_override_ctx): Likewise.
	(compile_fn_params): Likewise.
	(compile_intrinsic_function): Likewise.
	(enter_intrinsic_block): Likewise.
	(finalize_intrinsic_block): Likewise.
	(make_unsigned_long_tree): Likewise.
	(build_atomic_builtin_name): Likewise.
	* backend/rust-intrinsic-handlers.cc: New file.
	* backend/rust-intrinsic-handlers.h: New file.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.hxx: Remove additional error message.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/lints/rust-lint-scan-deadcode.h: Add additional condition
	to prevent warning emission. Check for underscore prefix.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-error.h (struct EnumVariant): Add error for enum
	variant.
	* parse/rust-parse-impl.hxx: Use new error type instead of nullptr.
	* parse/rust-parse.h: Update function prototype.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/lints/rust-lint-unused-var.cc (starts_with_underscore): Add
	function to detect underscore within symbol name.
	(check_decl): Call new function for underscore checking.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc(TopLevel::visit): Insert
	constant item only if now wildcard.

2026-03-20  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit):
	Override MatchCase visiting function.
	* resolve/rust-default-resolver.h (DefaultResolver::visit):
	Likewise.

2026-03-20  jayant chauhan  <0001jayant@gmail.com>

	* expand/rust-derive.cc (DeriveVisitor::derive): Handle
	`BuiltinMacro::RustcEncodable` and `BuiltinMacro::RustcDecodable`.

2026-03-20  vibhatsu  <maulikbarot2915@gmail.com>

	* ast/rust-macro.h: add initialization for ExternalItem base
	class in full construtor and use node id inside ExternalItem
	to populate memeber node id.

2026-03-20  vibhatsu  <maulikbarot2915@gmail.com>

	* ast/rust-macro.h: remove get_macro_node_id and propagate
	MacroInvocation's node id through get_node_id for consistency
	* util/rust-hir-map.cc (Mappings::insert_macro_invocation): replace
	all get_macro_node_id calls with get_node_id calls
	(Mappings::lookup_macro_invocation): likewise
	(Mappings::insert_bang_proc_macro_invocation): likewise
	(Mappings::lookup_bang_proc_macro_invocation): likewise

2026-03-20  Jayant Chauhan  <0001jayant@gmail.com>

	* ast/rust-path.h (GenericArgsBinding::reconstruct): New method.
	(GenericArg::reconstruct): New method.
	(GenericArgs::reconstruct): New method.
	(PathExprSegment::reconstruct): New method.
	(PathInExpression::reconstruct): New method.
	(TypePathSegmentGeneric::reconstruct_impl): New method.
	(TypePathFunction::reconstruct): New method.
	(TypePathSegmentFunction::reconstruct_impl): New method.
	(QualifiedPathType::reconstruct): New method.
	(QualifiedPathInExpression::reconstruct): New method.
	(QualifiedPathInType::reconstruct_impl): New method.
	* expand/rust-derive-cmp-common.cc (EnumMatchBuilder::tuple): Use path.reconstruct().
	(EnumMatchBuilder::strukt): Use path.reconstruct().

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-session-manager.cc (Session::compile_crate): Inject std crate
	when both no_std and no_core attributes are missing.
	* util/rust-attribute-values.h: Add no_std attribute value.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_derive_attribute):
	Change from attribute locus to trait locus.
	(Early::visit_attributes): Remove function.
	(Early::visit): Remove functions.
	* resolve/rust-early-name-resolver-2.0.h: Remove unused prototypes.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (MetaItemPathExpr::to_attribute): Remove cast to
	literal.
	(AttrInputMetaItemContainer::separate_cfg_attrs): Remove PathExpr
	specific code.
	* expand/rust-cfg-strip.cc (expand_cfg_attrs): Remove the whole
	attribute if condition's result is false.
	* util/rust-attributes.cc (AttributeChecker::visit): Remove specific
	code section for meta item container. Do not check input if
	configuration does not match condition.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Add visitor
	implementation.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
	* ast/rust-ast-collector.h: Add function prototype.
	* ast/rust-ast-visitor.h: Likewise.
	* expand/rust-derive.h: Likewise.
	* hir/rust-ast-lower-base.h: Likewise.
	* ast/rust-ast.cc (Attribute::get_traits_to_derive): Handle EXPR
	variant.
	(AttrInputExpr::AttrInputExpr): Add constructor.
	(AttrInputExpr::operator=): Add assignment operator implementation.
	(AttrInputExpr::as_string): Add a string conversion member function.
	(AttrInputExpr::accept_vis): Add visitor function.
	* ast/rust-ast.h: Add EXPR type variant to AttrInput.
	* util/rust-attributes.cc (check_doc_attribute): Handle expr variant.
	* ast/rust-expr.h (class AttrInputExpr): Add class definition with
	member function prototypes.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Add empty
	visitor implementation.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-dump.cc (debug): Add debug function which calls debug
	on every crate field.
	* ast/rust-ast-dump.h (debug): Add function prototype.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.cc (AttributeChecker::visit): Rename function
	and make call to ast default visitor.
	(AttributeChecker::check_attribute): Remove function.
	* util/rust-attributes.h: Add function prototype.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h (class Attribute): Make visitable parent class public.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h (class Attribute): Add a node id member.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-full-decls.h (struct Attribute): Change from here...
	(class Attribute): ...to a class here.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Add a default
	visit function for the attributes.
	* ast/rust-ast-visitor.h: Add a proper visit function declaration for
	attributes.
	* ast/rust-ast.cc (Attribute::accept_vis): Add a function to accept a
	visitor within the attributes.
	* ast/rust-ast.h (struct Attribute): Add the accept_vis function
	prototype.
	(class Attribute): Rename from struct to class.
	* expand/rust-derive.h: Add an empty implementation for visits to
	prevent the visitor from recursing into the attributes.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Add missing
	implementation for attribute visit function. Add a check for derive
	attributes that would have slipped through the passes.
	* hir/rust-ast-lower-base.h: Add function prototype.
	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
	Split the function into two halves.
	(Early::visit_derive_attribute): Specialized function from
	visit_attribute for derive attributes.
	(Early::visit_non_builtin_attribute): Likewise for non builtin
	attributes.
	(Early::visit): Rename visit_attributes to visit.
	* resolve/rust-early-name-resolver-2.0.h (class Early): Update function
	prototypes.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.cc: Add "feature", "no_core", "doc",
	"crate_name", "crate_type" and "may_dandle" to the list of builtin
	attributes.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-session-manager.cc (Session::handle_crate_name): Use the new
	constexpr instead of a raw string value.
	* util/rust-attribute-values.h: Add crate_name and crate_type values.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add new specific feature store file.
	* checks/errors/feature/rust-feature-gate.cc (EarlyFeatureGateStore::get):
	Move from here to rust-feature-store.cc.
	(EarlyFeatureGateStore::add): Likewise.
	(EarlyFeatureGateStore::get_error): Likewise.
	(FeatureGate::check): Likewise.
	* checks/errors/feature/rust-feature-gate.h (class EarlyFeatureGateStore):
	Move class declaration to rust-feature-store.h header.
	* parse/rust-parse.h: Change included header.
	* checks/errors/feature/rust-feature-store.cc: New file.
	* checks/errors/feature/rust-feature-store.h: New file.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/feature/rust-feature-gate.cc (EarlyFeatureGateStore::get):
	Add function to retrieve singleton instance.
	(EarlyFeatureGateStore::add): New function to add an error and the
	corresponding feature in the store.
	(EarlyFeatureGateStore::get_error): Add new function to retrieve the
	oldest error.
	(FeatureGate::check): Update the function to retrieve the errors from
	the store instead of getting it from the parameters.
	* checks/errors/feature/rust-feature-gate.h (class EarlyFeatureGateStore):
	Add a new class to collect all early feature gating errors.
	* parse/rust-parse.h: Use store instead of keeping the errors within
	the parser instance.
	* rust-session-manager.cc (Session::compile_crate): Remove old early
	error collection from the main parser.
	* rust-system.h: Include queue header.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/feature/rust-feature-gate.cc (FeatureGate::check):
	Check all parse time errors.
	* checks/errors/feature/rust-feature-gate.h: Update function prototype
	with parse time errors.
	* parse/rust-parse-impl-attribute.hxx: Collect potential gating error
	with non literal attribute values. Remove error emission.
	* parse/rust-parse.h: Add a function to gather potential feature gating
	errors as well as a getter for collected errors.
	* rust-session-manager.cc (Session::compile_crate): Retrieve potential
	feature gating errors and check them later during the feature gating
	step.
	* util/rust-attributes.cc (check_export_name_attribute): Change
	attribute checking error emission to prevent errors with macro inputs.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/feature/contrib/fetch: Bump version from 1.49.0 to
	1.50.0. Change brace expansion to explicit file fetch.
	* checks/errors/feature/rust-feature-defs.h: Regenerate.
	* checks/errors/feature/contrib/copyright-stub.h: Add rfl include
	directive.
	* checks/errors/feature/rust-feature-defs-rfl.h: New file.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add rust-early-cfg-strip object file.
	* expand/rust-cfg-strip.h (expand_cfg_attrs): Declare function prototype.
	* rust-session-manager.cc (Session::compile_crate): Reorder feature
	collection and add early cfg strip.
	* expand/rust-early-cfg-strip.cc: New file.
	* expand/rust-early-cfg-strip.h: New file.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-cfg-strip.cc (CfgStrip::fails_cfg): Remove function.
	* expand/rust-cfg-strip.h: Remove function prototype.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add new feature collector file.
	* checks/errors/feature/rust-feature-gate.cc (FeatureGate::visit):
	Remove feature collection from gating visitor.
	(FeatureGate::gate): Use features from the crate feature entity instead
	of old class members.
	* checks/errors/feature/rust-feature-gate.h: Get features from a
	separate CrateFeatures struct instead of keeping them in the class.
	* rust-session-manager.cc (Session::compile_crate): Collect features
	before gating them.
	* util/rust-attribute-values.h: Add feature attribute value.
	* checks/errors/feature/rust-feature-collector.cc: New file.
	* checks/errors/feature/rust-feature-collector.h: New file.

2026-03-20  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.cc (is_builtin): Rename from here ...
	(identify_builtin): ... to here.
	(is_proc_macro_type): Handle new return value.
	(AttributeChecker::check_inner_attribute): Likewise.
	(AttributeChecker::check_attribute): Likewise.
	(AttributeChecker::visit): Likewise.
	* util/rust-attributes.h (identify_builtin): Update function prototype.

2026-03-20  jayant chauhan  <0001jayant@gmail.com>

	* ast/rust-ast.cc (Attribute::get_traits_to_derive): Propagate location
	info from MetaWord to SimplePath.

2026-03-20  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast.h: Include "rust-cloneable.h".
	(struct CloneableDelegate<std::unique_ptr<AST::Pattern>>): Add
	specialization.
	* ast/rust-pattern.cc (IdentifierPattern::as_string): Handle
	field type changes.
	(RangePattern::as_string): Likewise.
	(ReferencePattern::as_string): Likewise.
	(StructPatternFieldTuplePat::as_string): Likewise.
	(StructPatternFieldIdentPat::as_string): Likewise.
	(StructPatternElements::as_string): Likewise.
	(TupleStructItemsNoRest::as_string): Likewise.
	(TupleStructItemsHasRest::as_string): Likewise.
	(TupleStructPattern::as_string): Likewise.
	(TuplePatternItemsNoRest::as_string): Likewise.
	(TuplePatternItemsHasRest::as_string): Likewise.
	(TuplePattern::as_string): Likewise.
	(SlicePatternItemsNoRest::as_string): Likewise.
	(SlicePatternItemsHasRest::as_string): Likewise.
	(SlicePattern::as_string): Likewise.
	(AltPattern::as_string): Likewise.
	* ast/rust-pattern.h: Include "rust-cloneable.h".
	(class IdentifierPattern): Use Cloneable to simplify copying.
	(class RangePattern): Likewise.
	(class ReferencePattern): Likewise.
	(class StructPatternFieldTuplePat): Likewise.
	(class StructPatternFieldIdentPat): Likewise.
	(class StructPatternElements): Likewise.
	(class TupleStructItemsNoRest): Likewise.
	(class TupleStructItemsHasRest): Likewise.
	(class TupleStructPattern): Likewise.
	(class TuplePatternItemsNoRest): Likewise.
	(class TuplePatternItemsHasRest): Likewise.
	(class TuplePattern): Likewise.
	(class GroupedPattern): Likewise.
	(class SlicePatternItemsNoRest): Likewise.
	(class SlicePatternItemsHasRest): Likewise.
	(class SlicePattern): Likewise.
	(class AltPattern): Likewise.
	(struct
	CloneableDelegate<std::unique_ptr<AST::RangePatternBound>>): Add
	specialization.
	(struct
	CloneableDelegate<std::unique_ptr<AST::TupleStructItems>>):
	Likewise.
	(struct
	CloneableDelegate<std::unique_ptr<AST::TuplePatternItems>>):
	Likewise.
	(struct
	CloneableDelegate<std::unique_ptr<AST::SlicePatternItems>>):
	Likewise.
	(struct
	CloneableDelegate<std::unique_ptr<AST::StructPatternField>>):
	Likewise.
	* util/rust-cloneable.h: New file.

2026-02-27  Islam-Imad  <islamimad404@gmail.com>

	* typecheck/rust-hir-type-check-struct.cc: enhance missing fields error message

2026-02-27  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast.h (struct Crate): Make final.

2026-02-27  Owen Avery  <powerboat9.gamer@gmail.com>

	* Make-lang.in (GRS_OBJS): Remove entries.
	* ast/rust-ast.cc (DelimTokenTree::parse_to_meta_item): Handle
	changes to AttributeParser.
	(AttributeParser::AttributeParser): Change signature.
	* ast/rust-macro.h (AttributeParser::AttributeParser): Likewise.
	* expand/rust-macro-expand.cc
	(MacroExpander::expand_eager_invocations): Handle changes to
	MacroInvocLexer.
	(MacroExpander::parse_proc_macro_output): Use MacroInvocLexer
	instead of ProcMacroInvocLexer.
	* expand/rust-macro-expand.h: Remove inclusion of
	"rust-proc-macro-invoc-lexer.h".
	* expand/rust-macro-invoc-lexer.cc
	(MacroInvocLexer::peek_token): Handle changes to MacroInvocLexer
	internal representation.
	(MacroInvocLexer::get_token_slice): Likewise.
	(MacroInvocLexer::split_current_token): Likewise and fix
	iterator handling.
	* expand/rust-macro-invoc-lexer.h (class MacroInvocLexerBase):
	Remove and combine with...
	(class MacroInvocLexer): ...its now only derived class.
	* expand/rust-proc-macro-invoc-lexer.cc: Removed.
	* expand/rust-proc-macro-invoc-lexer.h: Removed.
	* parse/rust-parse-impl-proc-macro.cc: Removed.

2026-02-27  Harishankar  <harishankarpp7@gmail.com>

	* parse/rust-parse-impl-expr.hxx (null_denotation_path):
	Check for null struct and tuple expressions to prevent segmentation fault.

2026-02-27  Harishankar  <harishankarpp7@gmail.com>

	* parse/rust-parse-impl-expr.hxx (parse_arithmetic_or_logical_expr):
	Check for null left operand to prevent segmentation fault.

2026-02-27  Jayant Chauhan  <0001jayant@gmail.com>

	* ast/rust-ast-builder.h (Builder::qualified_call): New method declaration.
	* ast/rust-ast-builder.cc (Builder::qualified_call): Implement new method.
	* expand/rust-derive-clone.cc (DeriveClone::clone_call): Use builder.qualified_call.

2026-02-27  jayant chauhan  <0001jayant@gmail.com>

	* parse/rust-parse-impl-expr.hxx (null_denotation_path): Check
	if macro invocation returns null and return error.

2026-02-27  Islam-Imad  <islamimad404@gmail.com>

	* lex/rust-lex.cc (is_whitespace): refactor if-else to switch
	* lex/rust-token.h: refactor if-else to switch
	* parse/rust-parse-impl.hxx: return nullptr when type is in invalid state

2026-02-27  jayant chauhan  <0001jayant@gmail.com>

	* util/rust-attributes.cc (check_deprecated_attribute): Guard against
	attributes without input.

2026-02-27  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-builder.cc (Builder::trait_bound): Replace copy
	with move.
	(Builder::trait_impl): Likewise.
	(Builder::new_const_param): Replace cloning with reconstruction.
	* ast/rust-path.h (TypePath::TypePath): Use TypeNoBounds copy
	constructor.
	(TypePath::operator=): Use TypeNoBounds copy assignment.
	* expand/rust-derive-clone.cc (DeriveClone::clone_impl): Produce
	trait bounds lazily.
	* expand/rust-derive-copy.cc (DeriveCopy::copy_impl): Likewise.
	* expand/rust-derive-debug.cc (DeriveDebug::stub_derive_impl):
	Likewise.
	* expand/rust-derive-default.cc (DeriveDefault::default_impl):
	Likewise.
	* expand/rust-derive-eq.cc (DeriveEq::eq_impls): Likewise.
	* expand/rust-derive-hash.cc (DeriveHash::hash_impl): Likewise.
	* expand/rust-derive-ord.cc (DeriveOrd::cmp_impl): Likewise.
	* expand/rust-derive-partial-eq.cc
	(DerivePartialEq::partialeq_impls): Likewise.
	* expand/rust-derive.cc (DeriveVisitor::setup_impl_generics):
	Likewise.
	* expand/rust-derive.h (DeriveVisitor::setup_impl_generics):
	Likewise.

2026-02-27  Harishankar  <harishankarpp7@gmail.com>

	* ast/rust-ast.cc (Module::process_file_path): Add fallback search
	for sibling modules when subdirectory search fails.

2026-02-27  Jayant Chauhan  <0001jayant@gmail.com>

	* util/rust-attributes.cc (check_lint_attribute): New helper.
	(AttributeChecker::visit): Call helper for lint attributes on functions.

2026-02-27  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (Crate::inject_extern_crate): Add a function to
	inject an extern crate item to a crate.
	* ast/rust-ast.h: Add function prototype for inject_extern_crate.
	* rust-session-manager.cc (has_attribute): Add helper to determine if
	a crate has a given inner attribute.
	(Session::compile_crate): Add a step to inject the core extern crate
	when the no_core attribute is missing.
	* util/rust-attribute-values.h: Add the no_core attribute value.

2026-02-27  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Add colon and
	type param bound tokens when collecting a trait ast node.

2026-02-27  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-forever-stack.hxx: Prevent iteration on parent ribs.

2026-02-27  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-expand.cc
	(MacroExpander::expand_decl_macro): Prevent excess errors.
	(MacroExpander::match_matcher): Detect duplicate metavariable
	names.
	* expand/rust-macro-expand.h (MacroExpander::MacroExpander):
	Initialize field had_duplicate_error.
	(MacroExpander::had_duplicate_error): New field.

2026-02-27  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (visit(StructPattern)): Implement
	type check case for HIR::StructPatternFieldTuplePat.
	* checks/errors/rust-hir-pattern-analysis.cc (lower_struct_pattern): Implement
	case for HIR::StructPatternField::ItemType::TUPLE_PAT.
	* backend/rust-compile-pattern.cc:
		* CompilePatternCheckExpr::visit (HIR::StructPattern): Implement code
		gen for HIR::StructPatternField::ItemType::TUPLE_PAT case.
		* CompilePatternBindings::handle_struct_pattern_tuple_pat: Implement
		bindings for HIR::StructPatternFieldTuplePat.
	* backend/rust-compile-pattern.h: Update function definition for
	handle_struct_pattern_tuple_pat.

2026-02-27  Jayant Chauhan  <0001jayant@gmail.com>

	* expand/rust-derive-eq.cc (get_eq_trait_path): New helper.
	(DeriveEq::assert_param_is_eq): Use helper.
	(DeriveEq::eq_impls): Use helper.

2026-02-27  Mason Pike  <m@sonpike.net>

	* util/rust-attributes.cc: add attributes to the __outer_attributes set.
	This prevents some inconsistent behavior, like: https://godbolt.org/z/Eq1GE7xxY

2026-02-27  Mason Pike  <m@sonpike.net>

	* util/rust-attributes.cc: remove loop helper functions
	* util/rust-attributes.h: remove function defs

2026-02-27  Mason Pike  <m@sonpike.net>

	* util/rust-attributes.cc: factor out loops from
	several functions to prevent us from having to loop
	several times over the same attributes

2026-02-27  Mason Pike  <m@sonpike.net>

	* util/rust-attributes.cc: add new function to validate that an
	attribute is assigned to a valid item type

2026-02-27  Jayant Chauhan  <0001jayant@gmail.com>

	* expand/rust-expand-visitor.h (expand_closure_params): Add documentation.
	(expand_fields): New private template helper.
	* expand/rust-expand-visitor.cc (expand_struct_fields): Use helper.
	(expand_tuple_fields): Use helper.

2026-02-27  Jayant Chauhan  <0001jayant@gmail.com>

	* backend/rust-compile-asm.cc (chain_asm_operand): New helper.
	(CompileAsm::asm_construct_outputs): Use helper and remove dead code.
	(CompileAsm::asm_construct_inputs): Use helper and remove dead code.

2026-02-27  lenny.chiadmi-delage  <lenny.chiadmi-delage@epita.fr>

	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Replace
	unreachable with sorry_at.

2026-02-27  lenny.chiadmi-delage  <lenny.chiadmi-delage@epita.fr>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Visit
	else_expr if has_else_expr, not init_expr.

2026-02-27  Jayant Chauhan  <0001jayant@gmail.com>

	* util/rust-attributes.cc (AttributeChecker::visit): Add check for
	export_name on static items.

2026-02-27  Jayant Chauhan  <0001jayant@gmail.com>

	* util/rust-attributes.cc (check_export_name_attribute): New helper.
	(AttributeChecker::visit): Check export_name on functions.

2026-02-27  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h: Add Type::Kind.
	* ast/rust-macro.h: Use it.
	* ast/rust-path.h: Likewise.
	* ast/rust-type.h: Likewise.
	* resolve/rust-default-resolver.cc (is_lang_impl): New method.
	(DefaultResolver::visit): Collect lang item implementations in the
	prelude.
	* resolve/rust-forever-stack.h: Add new method for lang prelude injection.
	* resolve/rust-forever-stack.hxx: Define it.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Identifier patterns
	can resolve to empty structs or variants.
	* resolve/rust-name-resolution-context.h: Improve resolution.

2026-02-27  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.cc (AttributeChecker::visit): Use const
	variable.

2026-02-27  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-base.cc: Change the assembly name on functions
	with the export_name attribute. Do not mangle the name.
	* util/rust-attribute-values.h: Add export_name attribute value.
	* util/rust-attributes.cc: Add export_name attribute to builtin
	attribute list.

2026-02-27  Jayant Chauhan  <0001jayant@gmail.com>

	* util/rust-attributes.cc (AttributeChecker::visit):
	Reject #[target_feature] on non-unsafe functions.

2026-02-27  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused/rust-unused-checker.cc (is_snake_case):
	Add warning for variables, methods, functions,
	lifetime parameters and modules.
	(UnusedChecker::visit):
	New.
	* checks/lints/unused/rust-unused-checker.h:
	New.

2026-02-27  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	Add warning for static variables.

2026-02-27  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-full-decls.h (class GlobContainer): New.
	* ast/rust-ast.h (class GlobContainer): New.
	(struct Crate): Inherit from GlobContainer.
	* ast/rust-item.h (class Module): Likewise.
	(class Enum): Likewise.
	* resolve/rust-finalize-imports-2.0.cc (GlobbingVisitor::go): Handle crates.
	(GlobbingVisitor::visit_crate_container): New.
	(GlobbingVisitor::visit): Remove privacy check as it is wrong.
	* resolve/rust-finalize-imports-2.0.h: Declare new methods.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go): Handle crates.
	(TopLevel::visit): Use new insert_glob_container API.
	* util/rust-hir-map.cc (Mappings::get_ast_crate_by_node_id_raw): New private method.
	(Mappings::get_ast_crate_by_node_id): Use it.
	(Mappings::insert_glob_container): New API.
	* util/rust-hir-map.h: Likewise.
	* resolve/rust-early-name-resolver-2.0.cc (Early::finalize_glob_import): Likewise.

2026-02-27  lenny.chiadmi-delage  <lenny.chiadmi-delage@epita.fr>

	* parse/rust-parse-impl-expr.hxx: Removes duplicate errors.
	* parse/rust-parse-impl.hxx: Detects when an expression without
	block is not properly terminated

2026-02-27  Jayant Chauhan  <0001jayant@gmail.com>

	* util/rust-attributes.cc (AttributeChecker::check_attributes): Emit error for #[repr].

2026-02-27  Harishankar  <harishankarpp7@gmail.com>

	* typecheck/rust-typecheck-context.cc (insert_associated_trait_impl):
	Prevent ICE by checking for existing ID.
	* typecheck/rust-hir-type-check.h: Update declarations.

2026-02-27  Jayant Chauhan  <0001jayant@gmail.com>

	* util/rust-attributes.cc (check_link_section_attribute): New helper.
	(AttributeChecker::visit): Check link_section on functions and statics.

2026-02-27  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (VariantDef::clone): revert
	(VariantDef::monomorphized_clone): likewise

2026-02-27  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (VariantDef::clone): remove template param
	(VariantDef::monomorphized_clone): likewise

2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>

	PR middle-end/123892
	* backend/rust-tree.cc: Replace CONST_CAST_TREE with const_cast<tree>.

2026-01-20  Jakub Jelinek  <jakub@redhat.com>

	* lang.opt (frust-crate=, frust-extern=,
	frust-incomplete-and-experimental-compiler-do-not-use,
	frust-max-recursion-depth=, frust-crate-type=, frust-mangling=,
	frust-cfg=, frust-edition=, frust-embed-metadata,
	frust-metadata-output=, frust-compile-until=,
	frust-name-resolution-2.0, frust-panic=, frust-overflow-checks): Add
	dot at the end of the description.

2026-01-16  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc (visit(StructExprStruct)): Update to properly
	unwrap enum variants for type checking.
	* typecheck/rust-tyty.cc (VariantDef::get_fields) : Remove NUM assert.
	* backend/rust-compile-expr.cc: Update to properly unwrap enum variants for type
	resolution checking.

2026-01-16  lenny.chiadmi-delage  <lenny.chiadmi-delage@epita.fr>

	* parse/rust-parse-impl-expr.hxx(Parser::null_denotation): Add
	HASH case to handle outer attributes in expressions.

2026-01-16  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit_loop_label):
	Add warning for unused label in LoopLabel expr.
	* checks/lints/unused/rust-unused-checker.h: Likewise.
	* checks/lints/unused/rust-unused-collector.cc (UnusedCollector::visit):
	Check in BreakExpr and ContinueExpr if a label is used.
	* checks/lints/unused/rust-unused-collector.h: Likewise.
	* checks/lints/unused/rust-unused-context.cc (UnusedContext::add_label):
	Method helper.
	(UnusedContext::is_label_used): Likewise
	* checks/lints/unused/rust-unused-context.h: Likewise.

2026-01-16  Jayant Chauhan  <0001jayant@gmail.com>

	* util/rust-attributes.cc (AttributeChecker::visit): Emit diagnostic.

2026-01-16  Jayant Chauhan  <0001jayant@gmail.com>

	* util/rust-attributes.cc (AttributeChecker::visit): Emit diagnostic.

2026-01-16  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	Emit warning in empty statement visitor.
	* checks/lints/unused/rust-unused-checker.h:
	Likewise.

2026-01-16  Jayant Chauhan  <0001jayant@gmail.com>

	* util/rust-attributes.cc: Emit diagnostic.

2026-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
	    Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-name-resolution-context.h:

2026-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.h: New function.
	* resolve/rust-forever-stack.hxx: Implement it.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Call it if the prelude exists
	and we have an unresolved Identifier Call it if the prelude exists and we have
	an unresolved Identifier.

2026-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.h: Add new resolve_path function.
	* resolve/rust-forever-stack.hxx: Implement it.

2026-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::finalize_glob_import): Save prelude
	if we find one.
	* resolve/rust-name-resolution-context.h: Add field.
	* resolve/rust-toplevel-name-resolver-2.0.cc (has_prelude_import): New function.
	(TopLevel::visit): Create a prelude glob import if necessary.
	* resolve/rust-toplevel-name-resolver-2.0.h: Allow glob imports to be prelude imports.

2026-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.h: Add depth parameter to function.
	* resolve/rust-forever-stack.hxx: Likewise and use it.

2026-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl-expr.hxx: Use explicit template.
	* parse/rust-parse-impl-path.hxx: Likewise.
	* parse/rust-parse-impl-ttree.hxx: Likewise.
	* parse/rust-parse-impl.hxx: Likewise.

2026-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Update function
	name.
	* ast/rust-ast-pointer-visitor.cc (PointerVisitor::visit): Likewise.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
	* ast/rust-ast.cc (BreakExpr::as_string): Use getter function.
	(AttributeParser::parse_path_meta_item): Convert to expected type.
	(ReturnExpr::as_string): Change access to returned expr.
	* ast/rust-desugar-for-loops.cc (DesugarForLoops::DesugarCtx::make_break_arm):
	Likewise.
	* ast/rust-expr.h (class BreakExpr): Make expr in break optional.
	(class ReturnExpr): Make returned expr explicitely optional. Change the
	getters and introduce a  const getter.
	* expand/rust-cfg-strip.cc (CfgStrip::visit): Convert to expected type.
	* expand/rust-macro-builtins-asm.cc (parse_reg_operand_in): Update
	constructor call to new expected types.
	(parse_reg_operand_out): Likewise.
	(parse_reg_operand_inout): Likewise.
	(parse_llvm_operands): Likewise.
	* expand/rust-macro-builtins-format-args.cc (format_args_parse_expr):
	Likewise.
	(format_args_parse_arguments): Likewise.
	* expand/rust-macro-builtins-helpers.cc (try_expand_many_expr): Update
	value for tl::expected.
	* expand/rust-macro-builtins-include.cc (MacroBuiltin::include_handler):
	Likewise.
	* expand/rust-macro-expand.cc (transcribe_expression): Update
	constructor call with expected value.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
	* parse/rust-parse-error.h (enum class): Add new error types for Expr
	and StructExprField.
	* parse/rust-parse-impl-expr.hxx: Explicitely handle return expr
	parsing failure. Update to fit new expected types.
	* parse/rust-parse-impl.hxx: Likewise.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Adapt to
	tl::expected.
	* ast/rust-desugar-while-let.cc (DesugarWhileLet::DesugarCtx::make_break_arm):
	Use optional for break expressions when missing instead of nullptr.
	* parse/rust-parse.h: Change function return type with expected. Remove
	error state from ExprOrStmt.

2026-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (AttributeParser::parse_meta_item_lit): Use
	tl::expected
	* expand/rust-macro-builtins-helpers.cc (parse_single_string_literal):
	Likewise.
	* expand/rust-macro-expand.cc (MacroExpander::match_fragment):
	Likewise.
	* parse/rust-cfg-parser.cc (parse_cfg_option): Likewise.
	* parse/rust-parse-error.h (struct SimplePath): Remove error type.
	(struct DelimTokenTree): Likewise.
	(struct Token): Likewise.
	(struct TokenTree): Likewise.
	(class LifetimeParam): Move from here ...
	(struct LifetimeParam): ... to here. Add ctor.
	(class Lifetime): Add error type.
	(enum class): Remove AnonConst.
	(struct BlockExpr): Change BlockExpr to generic node error.
	* parse/rust-parse-impl-expr.hxx: Use tl::expected for errors.
	* parse/rust-parse-impl-path.hxx: Likewise.
	* parse/rust-parse-impl-ttree.hxx: Likewise.
	* parse/rust-parse-impl.hxx: Likewise.
	* parse/rust-parse.h: Update function return types with tl::expected
	to propagate errors.

2026-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-error.h (struct BlockExpr): Add BlockExpr error type
	* parse/rust-parse-impl-expr.hxx: Update return types.
	* parse/rust-parse-impl.hxx: Likewise.
	* parse/rust-parse.h: Update function prototypes.

2026-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.hxx: Collect errors instead of emitting them.

2026-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse.h (class ParseLifetimeParamError): Move error from
	here ...
	(class ParseLifetimeError): Likewise.
	(enum class): Likewise.
	* parse/rust-parse-error.h (class LifetimeParam): ... to here.
	here.
	(class Lifetime): Likewise.
	(enum class): Likewise.
	(struct LoopLabel): Likewise and make it a full struct with ctors.
	(struct Self): Likewise.
	* parse/rust-parse-impl-expr.hxx: Make error point to new namespace.
	* parse/rust-parse-impl.hxx: Likewise.

2026-01-16  Harishankar  <harishankarpp7@gmail.com>

	* expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Handle
	error fragments by replacing them with empty fragments.

2026-01-16  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* ast/rust-ast-builder.cc (Builder::match_arm): Moves the vector of patterns
	to a single pattern.
	* ast/rust-ast-collector.cc (TokenCollector::visit):Likewise.
	* ast/rust-ast-pointer-visitor.cc (PointerVisitor::visit):Likewise.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit):Likewise.
	* ast/rust-ast.cc (IfLetExpr::as_string):Likewise.
	(WhileLetLoopExpr::as_string):Likewise.
	(MatchArm::as_string):Likewise.
	* ast/rust-desugar-question-mark.cc (make_match_arm):Likewise.
	* ast/rust-desugar-while-let.cc (DesugarWhileLet::desugar):Likewise.
	* ast/rust-expr.h (class WhileLetLoopExpr):Likewise.
	(class IfLetExpr):Likewise.
	* backend/rust-compile-expr.cc (CompileExpr::visit):Likewise.
	* checks/errors/rust-hir-pattern-analysis.cc (lower_arm):Likewise.
	* expand/rust-cfg-strip.cc (CfgStrip::visit):Likewise.
	* hir/rust-ast-lower.cc (ASTLoweringIfLetBlock::desugar_iflet):Likewise.
	(ASTLoweringExprWithBlock::visit):Likewise.
	* hir/rust-hir-dump.cc (Dump::do_matcharm):Likewise.
	(Dump::visit):Likewise.
	* hir/tree/rust-hir-expr.cc (OperatorExpr::operator=):Likewise.
	(ArithmeticOrLogicalExpr::operator=):Likewise.
	(ComparisonExpr::operator=):Likewise.
	(LazyBooleanExpr::operator=):Likewise.
	(TypeCastExpr::operator=):Likewise.
	(AssignmentExpr::operator=):Likewise.
	(CompoundAssignmentExpr::operator=):Likewise.
	(GroupedExpr::operator=):Likewise.
	(ArrayExpr::operator=):Likewise.
	(ArrayIndexExpr::operator=):Likewise.
	(CallExpr::operator=):Likewise.
	(MethodCallExpr::operator=):Likewise.
	(FieldAccessExpr::operator=):Likewise.
	(BlockExpr::operator=):Likewise.
	(BreakExpr::operator=):Likewise.
	(ReturnExpr::operator=):Likewise.
	(UnsafeBlockExpr::operator=):Likewise.
	(BaseLoopExpr::operator=):Likewise.
	(WhileLetLoopExpr::WhileLetLoopExpr):Likewise.
	(WhileLetLoopExpr::operator=):Likewise.
	(MatchArm::MatchArm):Likewise.
	(MatchArm::operator=):Likewise.
	(MatchExpr::operator=):Likewise.
	* hir/tree/rust-hir-expr.h (class WhileLetLoopExpr):Likewise.
	* hir/tree/rust-hir-visitor.cc (DefaultHIRVisitor::walk):Likewise.
	(DefaultHIRVisitor::visit_match_arm):Likewise.
	* hir/tree/rust-hir.cc (WhileLetLoopExpr::as_string):Likewise.
	(MatchArm::as_string):Likewise.
	* parse/rust-parse-impl-expr.hxx: Likewise.
	* parse/rust-parse-impl.hxx: Likewise.
	* parse/rust-parse.h:Likewise.
	* resolve/rust-default-resolver.cc (DefaultResolver::visit_if_let_patterns):Likewise.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit):Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):Likewise.

2026-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes): Mention the name
	of the attribute macro that hasn't been found.

2025-12-23  lenny.chiadmi-delage  <lenny.chiadmi-delage@epita.fr>

	* checks/errors/feature/rust-feature-gate.cc (FeatureGate::visit): Added
	handling for META_ITEM type attributes to properly process feature gates.
	* expand/rust-cfg-strip.cc (expand_cfg_attrs): Fixed a bug where
	newly inserted cfg_attr attributes wheren't being reprocessed,
	and cleaned up the loop increment logic.

2025-12-23  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::UnusedChecker):
	Add warning for identifier pattern and field ident pattern in struct
	(UnusedChecker::visit): Add methods.
	* checks/lints/unused/rust-unused-checker.h: Same here.
	* checks/lints/unused/rust-unused-collector.cc (UnusedCollector::UnusedCollector):
	Collect unused mut variables
	(UnusedCollector::visit): Add methods.
	* checks/lints/unused/rust-unused-collector.h: Same here.
	* checks/lints/unused/rust-unused-context.cc (UnusedContext::remove_assign):
	Add methods for unused mut set.
	(UnusedContext::add_mut): Same here.
	(UnusedContext::remove_mut): Same here.
	(UnusedContext::is_mut_used): Same here.
	* checks/lints/unused/rust-unused-context.h: Same here.

2025-12-23  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* Make-lang.in: Compile the right files.
	* checks/lints/unused-var/rust-unused-var-checker.cc: Move to...
	* checks/lints/unused/rust-unused-checker.cc: ...here.
	* checks/lints/unused-var/rust-unused-var-checker.h: Move to...
	* checks/lints/unused/rust-unused-checker.h: ...here.
	* checks/lints/unused-var/rust-unused-var-collector.cc: Move to...
	* checks/lints/unused/rust-unused-collector.cc: ...here.
	* checks/lints/unused-var/rust-unused-var-collector.h: Move to...
	* checks/lints/unused/rust-unused-collector.h: ...here.
	* checks/lints/unused-var/rust-unused-var-context.cc: Move to...
	* checks/lints/unused/rust-unused-context.cc: ...here.
	* checks/lints/unused-var/rust-unused-var-context.h: Move to...
	* checks/lints/unused/rust-unused-context.h: ...here.
	* rust-session-manager.cc (Session::compile_crate): Call the right method.

2025-12-23  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused-var/rust-unused-var-checker.cc (UnusedVarChecker::visit):
	Change unused name warning to unused variable warning.
	* checks/lints/unused-var/rust-unused-var-collector.cc (UnusedVarCollector::visit):
	Remove useless methods.
	* checks/lints/unused-var/rust-unused-var-collector.h: Same here.
	* checks/lints/unused-var/rust-unused-var-context.cc (UnusedVarContext::add_variable):
	Add used variables to set.
	(UnusedVarContext::mark_used): Remove method.
	(UnusedVarContext::is_variable_used):
	Check if the set contains the hir id linked to a variable.
	(UnusedVarContext::as_string): Refactor method for new set.
	* checks/lints/unused-var/rust-unused-var-context.h: Refactor methods.
	* lang.opt: Change description for unused check flag.

2025-12-23  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* checks/lints/unused-var/rust-unused-var-checker.cc (UnusedVarChecker):
	Implement unused assignments warning.
	(UnusedVarChecker::go): Remove unique pointer unused var context.
	(UnusedVarChecker::visit): Visit AssignExpr in HIR default visitor.
	* checks/lints/unused-var/rust-unused-var-checker.h: Add visit method.
	* checks/lints/unused-var/rust-unused-var-collector.cc (UnusedVarCollector):
	Collect warnings for assignments.
	(UnusedVarCollector::visit): Visit AssignExpr in HIR default visitor.
	* checks/lints/unused-var/rust-unused-var-collector.h: Add visit method.
	* checks/lints/unused-var/rust-unused-var-context.cc (UnusedVarContext::add_assign):
	Add assignment in map.
	(UnusedVarContext::remove_assign): Remove assignment in map.
	(UnusedVarContext::is_variable_assigned): Check if a variable is assigned.
	* checks/lints/unused-var/rust-unused-var-context.h: Add a map to stock assignments.

2025-12-23  Ryutaro Okada  <1015ryu88@gmail.com>

	* Make-lang.in: Add new files rules in Makefile.
	* lang.opt: Add new flag.
	* rust-session-manager.cc (Session::compile_crate): Execute new variable checker.
	* checks/lints/unused-var/rust-unused-var-checker.cc (UnusedVarChecker): Implement unused
	variable checker.
	* checks/lints/unused-var/rust-unused-var-checker.h (UnusedVarChecker): Implement unused
	variable checker.
	* checks/lints/unused-var/rust-unused-var-collector.cc (UnusedVarCollector): Implement
	unused variable collector.
	* checks/lints/unused-var/rust-unused-var-collector.h (UnusedVarCollector): Implement
	unused variable collector.
	* checks/lints/unused-var/rust-unused-var-context.cc (UnusedVarContext): Implement
	unused variable context.
	* checks/lints/unused-var/rust-unused-var-context.h (UnusedVarContext): Implement unused
	variable context.

2025-12-23  Harishankar  <harishankarpp7@gmail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Always
	evaluate predicate expression before checking for never type
	to preserve side effects in while loop conditions.
	* typecheck/rust-hir-type-check-expr.cc: Update handling of break/continue.

2025-12-23  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* backend/rust-compile-implitem.h: Change as_string to to_string.
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Likewise.
	* checks/errors/rust-readonly-check.cc (ReadonlyChecker::check_variable): Likewise.
	* hir/rust-hir-dump.cc (Dump::do_vis_item): Likewise.
	(Dump::do_pathpattern): Likewise.
	(Dump::do_typepathsegment): Likewise.
	(Dump::do_baseloopexpr): Likewise.
	(Dump::do_struct): Likewise.
	(Dump::do_traitfunctiondecl): Likewise.
	(Dump::do_externalitem): Likewise.
	(Dump::do_tuplefield): Likewise.
	(Dump::do_structfield): Likewise.
	(Dump::visit): Likewise.
	* hir/tree/rust-hir-bound-abstract.h: Likewise.
	* hir/tree/rust-hir-bound.h: Likewise.
	* hir/tree/rust-hir-expr-abstract.h: Likewise.
	* hir/tree/rust-hir-expr.cc (OffsetOf::as_string): Likewise.
	(OffsetOf::to_string): Likewise.
	* hir/tree/rust-hir-expr.h: Likewise.
	* hir/tree/rust-hir-generic-param.cc (ConstGenericParam::as_string): Likewise.
	(ConstGenericParam::to_string): Likewise.
	* hir/tree/rust-hir-generic-param.h: Likewise.
	* hir/tree/rust-hir-item.h: Likewise.
	* hir/tree/rust-hir-path.cc (PathInExpression::is_self): Likewise.
	* hir/tree/rust-hir-path.h: Likewise.
	* hir/tree/rust-hir-pattern-abstract.h: Likewise.
	* hir/tree/rust-hir-pattern.h: Likewise.
	* hir/tree/rust-hir-stmt.h: Likewise.
	* hir/tree/rust-hir-trait-bound.h: Likewise.
	* hir/tree/rust-hir-type-abstract.h: Likewise.
	* hir/tree/rust-hir-type.h: Likewise.
	* hir/tree/rust-hir-visibility.h: Likewise.
	* hir/tree/rust-hir.cc (Crate::as_string): Likewise.
	(Crate::to_string): Likewise.
	(Visibility::as_string): Likewise.
	(Visibility::to_string): Likewise.
	(VisItem::as_string): Likewise.
	(VisItem::to_string): Likewise.
	(Item::as_string): Likewise.
	(Item::to_string): Likewise.
	(Module::as_string): Likewise.
	(Module::to_string): Likewise.
	(StaticItem::as_string): Likewise.
	(StaticItem::to_string): Likewise.
	(ExternCrate::as_string): Likewise.
	(ExternCrate::to_string): Likewise.
	(TupleStruct::as_string): Likewise.
	(TupleStruct::to_string): Likewise.
	(ConstantItem::as_string): Likewise.
	(ConstantItem::to_string): Likewise.
	(ImplBlock::as_string): Likewise.
	(ImplBlock::to_string): Likewise.
	(StructStruct::as_string): Likewise.
	(StructStruct::to_string): Likewise.
	(UseDeclaration::as_string): Likewise.
	(UseDeclaration::to_string): Likewise.
	(UseTreeGlob::as_string): Likewise.
	(UseTreeGlob::to_string): Likewise.
	(UseTreeList::as_string): Likewise.
	(UseTreeList::to_string): Likewise.
	(UseTreeRebind::as_string): Likewise.
	(UseTreeRebind::to_string): Likewise.
	(Enum::as_string): Likewise.
	(Enum::to_string): Likewise.
	(Trait::as_string): Likewise.
	(Trait::to_string): Likewise.
	(Union::as_string): Likewise.
	(Union::to_string): Likewise.
	(Function::as_string): Likewise.
	(Function::to_string): Likewise.
	(WhereClause::as_string): Likewise.
	(WhereClause::to_string): Likewise.
	(BlockExpr::as_string): Likewise.
	(BlockExpr::to_string): Likewise.
	(AnonConst::as_string): Likewise.
	(AnonConst::to_string): Likewise.
	(ConstBlock::as_string): Likewise.
	(ConstBlock::to_string): Likewise.
	(TypeAlias::as_string): Likewise.
	(TypeAlias::to_string): Likewise.
	(ExternBlock::as_string): Likewise.
	(ExternBlock::to_string): Likewise.
	(PathInExpression::as_string): Likewise.
	(PathInExpression::to_string): Likewise.
	(ExprStmt::as_string): Likewise.
	(ExprStmt::to_string): Likewise.
	(ClosureParam::as_string): Likewise.
	(ClosureParam::to_string): Likewise.
	(ClosureExpr::as_string): Likewise.
	(ClosureExpr::to_string): Likewise.
	(PathPattern::as_string): Likewise.
	(PathPattern::to_string): Likewise.
	(QualifiedPathType::as_string): Likewise.
	(QualifiedPathType::to_string): Likewise.
	(QualifiedPathInExpression::as_string): Likewise.
	(QualifiedPathInExpression::to_string): Likewise.
	(BorrowExpr::as_string): Likewise.
	(BorrowExpr::to_string): Likewise.
	(ReturnExpr::as_string): Likewise.
	(ReturnExpr::to_string): Likewise.
	(GroupedExpr::as_string): Likewise.
	(GroupedExpr::to_string): Likewise.
	(RangeToExpr::as_string): Likewise.
	(RangeToExpr::to_string): Likewise.
	(ContinueExpr::as_string): Likewise.
	(ContinueExpr::to_string): Likewise.
	(NegationExpr::as_string): Likewise.
	(NegationExpr::to_string): Likewise.
	(RangeFromExpr::as_string): Likewise.
	(RangeFromExpr::to_string): Likewise.
	(RangeFullExpr::as_string): Likewise.
	(RangeFullExpr::to_string): Likewise.
	(ArrayIndexExpr::as_string): Likewise.
	(ArrayIndexExpr::to_string): Likewise.
	(AssignmentExpr::as_string): Likewise.
	(AssignmentExpr::to_string): Likewise.
	(CompoundAssignmentExpr::as_string): Likewise.
	(CompoundAssignmentExpr::to_string): Likewise.
	(AsyncBlockExpr::as_string): Likewise.
	(AsyncBlockExpr::to_string): Likewise.
	(ComparisonExpr::as_string): Likewise.
	(ComparisonExpr::to_string): Likewise.
	(MethodCallExpr::as_string): Likewise.
	(MethodCallExpr::to_string): Likewise.
	(TupleIndexExpr::as_string): Likewise.
	(TupleIndexExpr::to_string): Likewise.
	(DereferenceExpr::as_string): Likewise.
	(DereferenceExpr::to_string): Likewise.
	(FieldAccessExpr::as_string): Likewise.
	(FieldAccessExpr::to_string): Likewise.
	(LazyBooleanExpr::as_string): Likewise.
	(LazyBooleanExpr::to_string): Likewise.
	(RangeFromToExpr::as_string): Likewise.
	(RangeFromToExpr::to_string): Likewise.
	(RangeToInclExpr::as_string): Likewise.
	(RangeToInclExpr::to_string): Likewise.
	(UnsafeBlockExpr::as_string): Likewise.
	(UnsafeBlockExpr::to_string): Likewise.
	(IfExpr::as_string): Likewise.
	(IfExpr::to_string): Likewise.
	(IfExprConseqElse::as_string): Likewise.
	(IfExprConseqElse::to_string): Likewise.
	(RangeFromToInclExpr::as_string): Likewise.
	(RangeFromToInclExpr::to_string): Likewise.
	(ErrorPropagationExpr::as_string): Likewise.
	(ErrorPropagationExpr::to_string): Likewise.
	(ArithmeticOrLogicalExpr::as_string): Likewise.
	(ArithmeticOrLogicalExpr::to_string): Likewise.
	(CallExpr::as_string): Likewise.
	(CallExpr::to_string): Likewise.
	(WhileLoopExpr::as_string): Likewise.
	(WhileLoopExpr::to_string): Likewise.
	(WhileLetLoopExpr::as_string): Likewise.
	(WhileLetLoopExpr::to_string): Likewise.
	(LoopExpr::as_string): Likewise.
	(LoopExpr::to_string): Likewise.
	(ArrayExpr::as_string): Likewise.
	(ArrayExpr::to_string): Likewise.
	(AwaitExpr::as_string): Likewise.
	(AwaitExpr::to_string): Likewise.
	(BreakExpr::as_string): Likewise.
	(BreakExpr::to_string): Likewise.
	(LoopLabel::as_string): Likewise.
	(LoopLabel::to_string): Likewise.
	(MatchArm::as_string): Likewise.
	(MatchArm::to_string): Likewise.
	(MatchCase::as_string): Likewise.
	(MatchCase::to_string): Likewise.
	(MatchCaseBlockExpr::as_string): Likewise.
	(MatchCaseBlockExpr::to_string): Likewise.
	(MatchCaseExpr::as_string): Likewise.
	(MatchCaseExpr::to_string): Likewise.
	(MatchExpr::as_string): Likewise.
	(MatchExpr::to_string): Likewise.
	(TupleExpr::as_string): Likewise.
	(TupleExpr::to_string): Likewise.
	(FunctionParam::as_string): Likewise.
	(FunctionParam::to_string): Likewise.
	(FunctionQualifiers::as_string): Likewise.
	(FunctionQualifiers::to_string): Likewise.
	(TraitBound::as_string): Likewise.
	(TraitBound::to_string): Likewise.
	(LifetimeParam::as_string): Likewise.
	(LifetimeParam::to_string): Likewise.
	(QualifiedPathInType::as_string): Likewise.
	(QualifiedPathInType::to_string): Likewise.
	(Lifetime::as_string): Likewise.
	(Lifetime::to_string): Likewise.
	(TypePath::as_string): Likewise.
	(TypePath::to_string): Likewise.
	(TypeParam::as_string): Likewise.
	(TypeParam::to_string): Likewise.
	(PathPattern::convert_to_simple_path): Likewise.
	(TypePath::as_simple_path): Likewise.
	(PathExprSegment::as_string): Likewise.
	(PathExprSegment::to_string): Likewise.
	(GenericArgs::as_string): Likewise.
	(GenericArgs::to_string): Likewise.
	(GenericArgsBinding::as_string): Likewise.
	(GenericArgsBinding::to_string): Likewise.
	(RangePattern::as_string): Likewise.
	(RangePattern::to_string): Likewise.
	(RangePatternBoundLiteral::as_string): Likewise.
	(RangePatternBoundLiteral::to_string): Likewise.
	(SlicePatternItemsNoRest::as_string): Likewise.
	(SlicePatternItemsNoRest::to_string): Likewise.
	(SlicePatternItemsHasRest::as_string): Likewise.
	(SlicePatternItemsHasRest::to_string): Likewise.
	(SlicePattern::as_string): Likewise.
	(SlicePattern::to_string): Likewise.
	(AltPattern::as_string): Likewise.
	(AltPattern::to_string): Likewise.
	(TuplePatternItemsNoRest::as_string): Likewise.
	(TuplePatternItemsNoRest::to_string): Likewise.
	(TuplePatternItemsHasRest::as_string): Likewise.
	(TuplePatternItemsHasRest::to_string): Likewise.
	(TuplePattern::as_string): Likewise.
	(TuplePattern::to_string): Likewise.
	(StructPatternField::as_string): Likewise.
	(StructPatternField::to_string): Likewise.
	(StructPatternFieldIdent::as_string): Likewise.
	(StructPatternFieldIdent::to_string): Likewise.
	(StructPatternFieldTuplePat::as_string): Likewise.
	(StructPatternFieldTuplePat::to_string): Likewise.
	(StructPatternFieldIdentPat::as_string): Likewise.
	(StructPatternFieldIdentPat::to_string): Likewise.
	(StructPatternElements::as_string): Likewise.
	(StructPatternElements::to_string): Likewise.
	(StructPattern::as_string): Likewise.
	(StructPattern::to_string): Likewise.
	(LiteralPattern::as_string): Likewise.
	(LiteralPattern::to_string): Likewise.
	(ReferencePattern::as_string): Likewise.
	(ReferencePattern::to_string): Likewise.
	(IdentifierPattern::as_string): Likewise.
	(IdentifierPattern::to_string): Likewise.
	(TupleStructItemsNoRest::as_string): Likewise.
	(TupleStructItemsNoRest::to_string): Likewise.
	(TupleStructItemsHasRest::as_string): Likewise.
	(TupleStructItemsHasRest::to_string): Likewise.
	(TupleStructPattern::as_string): Likewise.
	(TupleStructPattern::to_string): Likewise.
	(LetStmt::as_string): Likewise.
	(LetStmt::to_string): Likewise.
	(Expr::as_string): Likewise.
	(Expr::to_string): Likewise.
	(InferredType::as_string): Likewise.
	(InferredType::to_string): Likewise.
	(TypeCastExpr::as_string): Likewise.
	(TypeCastExpr::to_string): Likewise.
	(ImplTraitType::as_string): Likewise.
	(ImplTraitType::to_string): Likewise.
	(ReferenceType::as_string): Likewise.
	(ReferenceType::to_string): Likewise.
	(RawPointerType::as_string): Likewise.
	(RawPointerType::to_string): Likewise.
	(TraitObjectType::as_string): Likewise.
	(TraitObjectType::to_string): Likewise.
	(BareFunctionType::as_string): Likewise.
	(BareFunctionType::to_string): Likewise.
	(TypePathSegmentGeneric::as_string): Likewise.
	(TypePathSegmentGeneric::to_string): Likewise.
	(TypePathFunction::as_string): Likewise.
	(TypePathFunction::to_string): Likewise.
	(TypePathSegmentFunction::as_string): Likewise.
	(TypePathSegmentFunction::to_string): Likewise.
	(ArrayType::as_string): Likewise.
	(ArrayType::to_string): Likewise.
	(SliceType::as_string): Likewise.
	(SliceType::to_string): Likewise.
	(TupleType::as_string): Likewise.
	(TupleType::to_string): Likewise.
	(StructExpr::as_string): Likewise.
	(StructExpr::to_string): Likewise.
	(StructExprStruct::as_string): Likewise.
	(StructExprStruct::to_string): Likewise.
	(StructBase::as_string): Likewise.
	(StructBase::to_string): Likewise.
	(StructExprFieldWithVal::as_string): Likewise.
	(StructExprFieldWithVal::to_string): Likewise.
	(StructExprFieldIdentifierValue::as_string): Likewise.
	(StructExprFieldIdentifierValue::to_string): Likewise.
	(StructExprFieldIndexValue::as_string): Likewise.
	(StructExprFieldIndexValue::to_string): Likewise.
	(StructExprStructFields::as_string): Likewise.
	(StructExprStructFields::to_string): Likewise.
	(EnumItem::as_string): Likewise.
	(EnumItem::to_string): Likewise.
	(EnumItemTuple::as_string): Likewise.
	(EnumItemTuple::to_string): Likewise.
	(TupleField::as_string): Likewise.
	(TupleField::to_string): Likewise.
	(EnumItemStruct::as_string): Likewise.
	(EnumItemStruct::to_string): Likewise.
	(StructField::as_string): Likewise.
	(StructField::to_string): Likewise.
	(EnumItemDiscriminant::as_string): Likewise.
	(EnumItemDiscriminant::to_string): Likewise.
	(ExternalItem::as_string): Likewise.
	(ExternalItem::to_string): Likewise.
	(ExternalStaticItem::as_string): Likewise.
	(ExternalStaticItem::to_string): Likewise.
	(ExternalFunctionItem::as_string): Likewise.
	(ExternalFunctionItem::to_string): Likewise.
	(ExternalTypeItem::as_string): Likewise.
	(ExternalTypeItem::to_string): Likewise.
	(NamedFunctionParam::as_string): Likewise.
	(NamedFunctionParam::to_string): Likewise.
	(attr.as_string): Likewise.
	(attr.to_string): Likewise.
	(TraitItemFunc::as_string): Likewise.
	(TraitItemFunc::to_string): Likewise.
	(TraitFunctionDecl::as_string): Likewise.
	(TraitFunctionDecl::to_string): Likewise.
	(TraitItemConst::as_string): Likewise.
	(TraitItemConst::to_string): Likewise.
	(TraitItemType::as_string): Likewise.
	(TraitItemType::to_string): Likewise.
	(SelfParam::as_string): Likewise.
	(SelfParam::to_string): Likewise.
	(ArrayElemsCopied::as_string): Likewise.
	(ArrayElemsCopied::to_string): Likewise.
	(LifetimeWhereClauseItem::as_string): Likewise.
	(LifetimeWhereClauseItem::to_string): Likewise.
	(TypeBoundWhereClauseItem::as_string): Likewise.
	(TypeBoundWhereClauseItem::to_string): Likewise.
	(ArrayElemsValues::as_string): Likewise.
	(ArrayElemsValues::to_string): Likewise.
	(MaybeNamedParam::as_string): Likewise.
	(MaybeNamedParam::to_string): Likewise.
	* hir/tree/rust-hir.h: Likewise.
	* rust-session-manager.cc (Session::dump_hir): Likewise.
	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): Likewise.
	* typecheck/rust-hir-path-probe.cc (PathProbeType::visit): Likewise.
	(PathProbeType::process_enum_item_for_candiates): Likewise.
	* typecheck/rust-hir-path-probe.h: Likewise.
	* typecheck/rust-hir-type-check-expr.cc (emit_ambiguous_resolution_error): Likewise.
	(TypeCheckExpr::visit): Likewise.
	(TypeCheckExpr::resolve_fn_trait_call): Likewise.
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): Likewise.
	(TypeCheckExpr::resolve_root_path): Likewise.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): Likewise.
	(TypeCheckType::resolve_root_path): Likewise.
	(ResolveWhereClauseItem::visit): Likewise.
	* typecheck/rust-tyty-bounds.cc: Likewise.
	* typecheck/rust-tyty.cc (VariantDef::as_string): Likewise.
	(FnType::as_string): Likewise.

2025-12-23  Ashwani Kumar Kamal  <ashwanikamal.im421@gmail.com>

	* util/rust-attributes.cc: New function to handle deprecated attribute checking

2025-12-23  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Visit the
	generic parameters of TraitItemType.
	* expand/rust-expand-visitor.h (is_derive): Remove defunct
	function declaration.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Remove
	unnecessary copy.
	* resolve/rust-name-resolver.cc (Resolver::Resolver): Skip
	generating builtins for the old resolver.
	* util/rust-hir-map.cc (Mappings::get_next_node_id): Detect node
	id exhaustion.
	* util/rust-mapping-common.h (MAX_NODEID): Add macro definition.

2025-12-23  lenny.chiadmi-delage  <lenny.chiadmi-delage@epita.fr>

	* ast/rust-path.cc (TypePath::to_trait_bound): Check if in
	parenthesis.
	* hir/tree/rust-hir-type.cc (ParenthesisedType::to_trait_bound):
	Likewise.
	* hir/tree/rust-hir.cc (TypePath::to_trait_bound): Likewise.

2025-12-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl-lexer.cc: Fix included file name.
	* parse/rust-parse-impl-macro.cc: Likewise.
	* parse/rust-parse-impl-proc-macro.cc: Likewise.
	* parse/rust-parse-impl.h: Move to...
	* parse/rust-parse-impl.hxx: ...here.

2025-12-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_inner_attributes): Move to
	rust-parse-impl-XXX.hxx implementation file.
	(Parser::parse_doc_comment): Likewise. Change return type to
	AttributeBody.
	(Parser::parse_inner_attribute): Likewise.
	(Parser::parse_attribute_body): Likewise.
	(Parser::parse_identifier_or_keyword_token): Likewise.
	(Parser::parse_outer_attributes): Likewise.
	(Parser::is_macro_rules_def): Likewise.
	(Parser::parse_simple_path): Likewise.
	(Parser::parse_item): Likewise.
	(Parser::parse_simple_path_segment): Likewise.
	(Parser::parse_path_ident_segment): Likewise.
	(Parser::parse_vis_item): Likewise.
	(Parser::parse_attr_input): Likewise.
	(Parser::parse_async_item): Likewise.
	(Parser::parse_delim_token_tree): Likewise.
	(Parser::parse_macro_rules_def): Likewise.
	(Parser::parse_decl_macro_def): Likewise.
	(Parser::parse_token_tree): Likewise.
	(Parser::parse_visibility): Likewise.
	(Parser::parse_module): Likewise.
	(Parser::parse_outer_attribute): Likewise.
	(Parser::parse_extern_crate): Likewise.
	(Parser::parse_use_decl): Likewise.
	(Parser::parse_use_tree): Likewise.
	(Parser::parse_function): Likewise.
	(Parser::parse_macro_invocation): Likewise.
	(Parser::parse_macro_rule): Likewise.
	(Parser::parse_function_qualifiers): Likewise.
	(Parser::parse_macro_matcher): Likewise.
	(Parser::parse_generic_params_in_angles): Likewise.
	(Parser::parse_macro_match): Likewise.
	(Parser::parse_generic_param): Likewise.
	(Parser::parse_macro_match_fragment): Likewise.
	(Parser::parse_macro_match_repetition): Likewise.
	(Parser::parse_generic_params): Likewise.
	(Parser::parse_lifetime_params): Likewise.
	(Parser::parse_lifetime_params_objs): Likewise.
	(Parser::parse_lifetime_param): Likewise.
	(Parser::parse_type_params): Likewise.
	(Parser::parse_type_param): Likewise.
	(Parser::parse_function_params): Likewise.
	(Parser::parse_function_param): Likewise.
	(Parser::parse_function_return_type): Likewise.
	(Parser::parse_where_clause): Likewise.
	(Parser::parse_lifetime_where_clause_item): Likewise.
	(Parser::parse_for_lifetimes): Likewise.
	(Parser::parse_type_param_bounds): Likewise.
	(Parser::parse_type_param_bound): Likewise.
	(Parser::parse_trait_bound): Likewise.
	(Parser::parse_lifetime_bounds): Likewise.
	(Parser::parse_lifetime): Likewise.
	(Parser::lifetime_from_token): Likewise.
	(Parser::parse_external_type_item): Likewise.
	(Parser::parse_type_alias): Likewise.
	(Parser::parse_struct): Likewise.
	(Parser::parse_struct_fields): Likewise.
	(Parser::parse_struct_field): Likewise.
	(Parser::parse_tuple_fields): Likewise.
	(Parser::parse_tuple_field): Likewise.
	(Parser::parse_enum): Likewise.
	(Parser::parse_enum_items): Likewise.
	(Parser::parse_enum_item): Likewise.
	(Parser::parse_union): Likewise.
	(Parser::parse_const_item): Likewise.
	(Parser::parse_static_item): Likewise.
	(Parser::parse_trait): Likewise.
	(Parser::parse_trait_item): Likewise.
	(Parser::parse_trait_type): Likewise.
	(Parser::parse_trait_const): Likewise.
	(Parser::parse_impl): Likewise.
	(Parser::parse_inherent_impl_item): Likewise.
	(Parser::parse_trait_impl_item): Likewise.
	(Parser::parse_extern_block): Likewise.
	(Parser::parse_external_item): Likewise.
	(Parser::parse_stmt): Likewise.
	(Parser::parse_let_stmt): Likewise.
	(Parser::parse_generic_arg): Likewise.
	(Parser::parse_path_generic_args): Likewise.
	(Parser::parse_generic_args_binding): Likewise.
	(Parser::parse_self_param): Likewise.
	(Parser::parse_expr_stmt): Likewise.
	(Parser::parse_anon_const): Likewise.
	(Parser::parse_const_block_expr): Likewise.
	(Parser::parse_grouped_expr): Likewise.
	(Parser::parse_type_path): Likewise.
	(Parser::parse_closure_expr): Likewise.
	(Parser::parse_literal_expr): Likewise.
	(Parser::parse_box_expr): Likewise.
	(Parser::parse_return_expr): Likewise.
	(Parser::parse_try_expr): Likewise.
	(Parser::parse_break_expr): Likewise.
	(Parser::parse_continue_expr): Likewise.
	(Parser::parse_type_path_segment): Likewise.
	(Parser::parse_loop_label): Likewise.
	(Parser::parse_type_path_function): Likewise.
	(Parser::parse_if_expr): Likewise.
	(Parser::parse_path_in_expression): Likewise.
	(Parser::parse_path_expr_segment): Likewise.
	(Parser::parse_if_let_expr): Likewise.
	(Parser::parse_loop_expr): Likewise.
	(Parser::parse_qualified_path_in_type): Likewise.
	(Parser::parse_labelled_loop_expr): Likewise.
	(Parser::parse_match_expr): Likewise.
	(Parser::parse_match_arm): Likewise.
	(Parser::parse_match_arm_patterns): Likewise.
	(Parser::parse_async_block_expr): Likewise.
	(Parser::parse_array_expr): Likewise.
	(Parser::parse_closure_param): Likewise.
	(Parser::parse_type): Likewise.
	(Parser::parse_paren_prefixed_type): Likewise.
	(Parser::parse_for_prefixed_type): Likewise.
	(Parser::parse_maybe_named_param): Likewise.
	(Parser::parse_reference_type_inner): Likewise.
	(Parser::parse_reference_type): Likewise.
	(Parser::parse_raw_pointer_type): Likewise.
	(Parser::parse_slice_or_array_type): Likewise.
	(Parser::parse_type_no_bounds): Likewise.
	(Parser::parse_paren_prefixed_type_no_bounds): Likewise.
	(Parser::parse_literal_or_range_pattern): Likewise.
	(Parser::parse_range_pattern_bound): Likewise.
	(Parser::parse_pattern): Likewise.
	(Parser::parse_pattern_no_alt): Likewise.
	(Parser::parse_reference_pattern): Likewise.
	(Parser::parse_grouped_or_tuple_pattern): Likewise.
	(Parser::parse_slice_pattern): Likewise.
	(Parser::parse_identifier_pattern): Likewise.
	(Parser::parse_ident_leading_pattern): Likewise.
	(Parser::parse_struct_pattern_elems): Likewise.
	(Parser::parse_struct_pattern_field): Likewise.
	(Parser::unexpected_token): Likewise.
	(Parser::skip_after_semicolon): Likewise.
	(Parser::skip_token): Likewise.
	(Parser::maybe_skip_token): Likewise.
	(Parser::expect_token): Likewise.
	(Parser::skip_after_end): Likewise.
	(Parser::skip_after_end_block): Likewise.
	(Parser::skip_after_next_block): Likewise.
	(Parser::skip_after_end_attribute): Likewise.
	(Parser::done_end_or_else): Likewise.
	(Parser::done_end): Likewise.
	* parse/rust-parse.h: Change function return type to AttributeBody
	instead of a tuple (parse_doc_comment). Move enum binding powers from
	impl file.
	* parse/rust-parse-impl-attribute.hxx: New file.
	* parse/rust-parse-impl-macro.hxx: New file.
	* parse/rust-parse-impl-path.hxx: New file.
	* parse/rust-parse-impl-pattern.hxx: New file.
	* parse/rust-parse-impl-ttree.hxx: New file.
	* parse/rust-parse-impl-utils.hxx: New file.
	* parse/rust-parse-impl-expr.hxx: New file.

2025-12-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (can_tok_start_type): Move function from ...
	* parse/rust-parse-utils.h (can_tok_start_type): ... to here.

2025-12-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (is_right_angle_tok): Move function ...
	(Parser::parse_generic_params_in_angles): Change call.
	(Parser::parse_for_lifetimes): Likewise.
	(Parser::parse_path_generic_args): Likewise.
	* parse/rust-parse-utils.h (is_right_angle_tok): ... to here.

2025-12-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-session-manager.cc (Session::enable_dump): Rework error message
	and remove magic value.
	(Session::handle_excluded_node): Remove static buffer size.

2025-12-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::begin_describe_node):
	Remove function.
	(TokenCollector::end_describe_node): Likewise.
	(TokenCollector::describe_node): Remove calls to begin/end.
	* ast/rust-ast-collector.h: Specialize begin and end collect items. Add
	more constructors to begin/end description.
	* ast/rust-ast-dump.cc (Dump::Dump): Adapt to new configuration
	options.
	* ast/rust-ast-dump.h: Add new configuration options.
	* rust-session-manager.cc (Session::dump_ast_pretty_internal): Use new
	configuration options.

2025-12-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::comment): Use comment kind
	(TokenCollector::begin_internal_comment): Rename from this...
	(TokenCollector::begin_describe_node): ... to this.
	(TokenCollector::end_internal_comment): Rename from this...
	(TokenCollector::end_describe_node): ... to this.
	(TokenCollector::internal_comment): Rename from this...
	(TokenCollector::describe_node): ... to this.
	(TokenCollector::visit): Change name in function calls.
	(TokenCollector::visit_closure_common): Likewise.
	(TokenCollector::visit_loop_common): Likewise.
	* ast/rust-ast-collector.h: Adapt function prototypes, add a new
	collect item kind for node description.

2025-12-17  Benjamin Thos  <benjamin.thos@epita.fr>

	* ast/rust-ast-collector.cc (TokenCollector::internal_comment):
		Wrapper function to add both  comment.
	(TokenCollector::visit): call of the wrapper function.
	(TokenCollector::visit_closure_common): Same.
	(TokenCollector::visit_loop_common): Same.
	* ast/rust-ast-collector.h: Prototype of the wrapper function

2025-12-17  Benjamin Thos  <benjamin.thos@epita.fr>

	* ast/rust-ast-collector.cc (TokenCollector::begin_internal_comment):
	Change a boolean with an enum.
	(TokenCollector::end_internal_comment): Likewise.
	* ast/rust-ast-collector.h: Likewise + change include.
	* ast/rust-ast-dump.cc (Dump::Dump): Change variable name.
	* ast/rust-ast-dump.h: Likewise + replace vector with a set.
	* rust-session-manager.cc (Session::enable_dump): Change variable
	name.
	(Session::handle_internal_blacklist): Change function name.
	(Session::handle_excluded_node): Likewise.
	(Session::dump_ast_pretty_internal): Change vector with a set.
	* rust-session-manager.h (struct CompileOptions): Likewise + change
	variable name.

2025-12-17  Benjamin Thos  <benjamin.thos@epita.fr>

	* ast/rust-ast-collector.cc (TokenCollector::begin_internal_comment):
	Add internal comment to print node beginning.
	(TokenCollector::end_internal_comment): Add internal comment to print
	node end.
	(TokenCollector::visit): Add the comments of the node visited.
	(TokenCollector::visit_closure_common): Likewise.
	(TokenCollector::visit_loop_common): Likewise.
	* ast/rust-ast-collector.h: Add internal comment as a nes Kind.
	* ast/rust-ast-dump.cc (Dump::Dump): add a Dump constructor to enable
	internal.
	* ast/rust-ast-dump.h: Add printing of internal comment in the dump
	* rust-session-manager.cc (Session::enable_dump): Activate ast dump
	and fill the blacklist.
	(Session::handle_internal_blacklist): Parse the flag to get node to
	be blacklisted.
	(Session::compile_crate): Launch ast dump internal when asked.
	(Session::dump_ast_pretty_internal): Call the visitor to dump
	the internals.
	* rust-session-manager.h (struct CompileOptions): add Interal in
	Dump option enum.

2025-12-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-expr.h: Use path locus.

2025-12-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_inner_attributes): Change
	return type to avoid empty/error values that may break invariants in
	the AST.
	(Parser::parse_inner_attribute): Likewise.
	(Parser::parse_outer_attribute): Likewise.
	(Parser::parse_outer_attributes): Likewise.
	(Parser::parse_attribute_body): Likewise.
	(Parser::parse_simple_path): Likewise.
	(Parser::parse_macro_invocation): Likewise.
	(Parser::parse_visibility): Likewise.
	(Parser::parse_use_tree): Likewise.
	(Parser::parse_delim_token_tree): Likewise.
	(Parser::parse_identifier_or_keyword_token): Likewise.
	(Parser::parse_token_tree): Likewise.
	(Parser::parse_macro_rules_def): Likewise.
	(Parser::parse_decl_macro_def): Likewise.
	(Parser::parse_macro_invocation): Likewise.
	(Parser::parse_macro_rule): Likewise.
	(Parser::parse_macro_matcher): Likewise.
	(Parser::parse_type_path_segment): Likewise.
	(Parser::parse_path_expr_segment): Likewise.
	(Parser::parse_type): Likewise.
	(Parser::parse_type_no_bounds): Likewise.
	(Parser::parse_items): Circumvent GCC 5 to 7 bug.
	(is_simple_path_segment): Move to utility file.
	(token_id_matches_delims): Likewise.
	(is_likely_path_next): Remove unused function.
	(Parser::parse_attr_input): Return a structure instead of a tuple.
	* expand/rust-macro-builtins-offset-of.cc: Adapt call to expected.
	* ast/rust-ast.cc (AttributeParser::parse_path_meta_item): Use empty
	vector when an error is encountered.
	* expand/rust-macro-builtins-include.cc: Likewise.
	* parse/rust-parse.h: Update prototypes.
	* parse/rust-parse-impl-proc-macro.cc: Likewise.
	* ast/rust-ast.h: Remove error state from Visibility.
	* ast/rust-item.h: Use private visibility instead of error.
	* ast/rust-macro.h: Likewise.
	* expand/rust-macro-expand.cc: Likewise.
	* hir/rust-ast-lower.cc: Remove error case.
	* rust-session-manager.cc: Use private visibility
	* parse/rust-parse-utils.h: New file.
	* parse/rust-parse-error.h: New file.

2025-12-12  Pietro Monteiro  <pietro@sociotechnical.xyz>

	* lang.opt.urls: Regenerate.

2025-12-11  Jakub Jelinek  <jakub@redhat.com>

	* backend/rust-tree.cc (fold_builtin_source_location): Fix string literal
	typo, funciton -> function.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Fix comment typo,
	begining -> beginning.

2025-12-03  Marc Poulhiès  <dkm@kataplop.net>

	* lex/rust-lex.cc (rust_input_source_test): Reindent.

2025-12-03  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-macro.h (MetaNameValueStr::get_name): New function.
	(MetaNameValueStr::get_value): Likewise.
	* checks/errors/feature/rust-feature-gate.cc
	(FeatureGate::visit): Tweak unknown feature detection.
	(FeatureGate::gate): Handle field rename.
	(FeatureGate::note_stability_attribute): New function
	definition.
	* checks/errors/feature/rust-feature-gate.h
	(FeatureGate::note_stability_attribute): New function
	declaration.
	(FeatureGate::Stability): New enum class.
	(FeatureGate::valid_features): Rename field to...
	(FeatureGate::valid_lang_features): ...here.
	(FeatureGate::valid_lib_features): New field.
	(FeatureGate::defined_lib_features): Likewise.
	* checks/errors/feature/rust-feature.cc (Feature::as_name):
	Improve implementation.

2025-12-03  Raiki Tamura  <tamaron1203@gmail.com>

	* checks/errors/feature/rust-feature-gate.cc (FeatureGate::visit): Add check for lang_items.
	* checks/errors/feature/rust-feature-gate.h: Likewise.

2025-12-03  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_function): Return a nullptr on
	error instead of a valid function.
	(Parser::parse_let_stmt): Remove non leaf error.
	(Parser::parse_if_expr): Likewise.
	(Parser::parse_loop_expr): Likewise.
	(Parser::parse_expr): Return error on null denotation error.

2025-12-03  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_delim_token_tree):
	Remove error message.
	(Parser::parse_token_tree): Split error message.

2025-12-03  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-constexpr.cc (eval_binary_expression): Set initial value
	equality value to false.

2025-12-03  Jonathan Wakely  <jwakely@redhat.com>

	* expand/rust-macro-expand.h: Fix typos in comment.

2025-12-03  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_items): Remove item parsing
	error.

2025-12-03  Ryutaro Okada  <1015ryu88@gmail.com>

	* expand/rust-expand-visitor.cc (builtin_derive_item): Collect derived nodes.
	(derive_item): Collect derived nodes.
	* util/rust-hir-map.cc (Mappings::add_derived_nodes): Add derived set to collect derived
	nodes.
	(Mappings::is_derived_node): Add derived set to collect derived nodes.
	* util/rust-hir-map.h: Add derived set to collect derived nodes.

2025-11-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* lang.opt.urls: Regenerate.

2025-11-27  Jakub Jelinek  <jakub@redhat.com>

	* lex/rust-lex.cc (rust_input_source_test): Cast char8_t string
	literals to (const char *) to make it compilable with C++20.  Use
	char16_t or char32_t character literals instead of ordinary
	character literals or wide character literals in expected
	initializers.

2025-11-27  Arthur Cohen  <arthur.cohen@embecosm.com>

	* typecheck/rust-tyty-subst.h: Remove now useless inclusion.
	* typecheck/rust-tyty.h (class TypeBoundPredicate): New, moved from rust-tyty-bounds.h
	(class TypeBoundsMappings): Likewise.
	* typecheck/rust-tyty-bounds.h: Removed.

2025-11-25  Lúcio Boari Fleury  <lucboari@gmail.com>

	* parse/rust-parse-impl.h: Add early exit condition to parsing loop.

2025-11-25  Philip Herron  <herron.philip@googlemail.com>

	* ast/rust-ast.cc (TraitItemType::as_string): add generic params
	* ast/rust-ast.h: remove old comment
	* ast/rust-item.h: add generic params to associated type
	* ast/rust-type.h: remove old comment
	* hir/rust-ast-lower-implitem.cc (ASTLowerTraitItem::visit): hir lowering for gat's
	* hir/tree/rust-hir-item.cc (TraitItemType::TraitItemType): gat's on TraitItemType
	(TraitItemType::operator=): preserve generic params
	* hir/tree/rust-hir-item.h: likewise
	* hir/tree/rust-hir.cc (TraitItemType::as_string): likewise
	* parse/rust-parse-impl.h (Parser::parse_trait_type): hit the < and parse params
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit): typecheck
	* typecheck/rust-tyty.cc (BaseType::has_substitutions_defined): dont destructure

2025-11-25  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* expand/rust-derive.cc (DeriveVisitor::derive):
	Add check and error.

2025-11-25  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_doc_item_attribute): Make error.

2025-11-25  Yap Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-compile-expr.cc (compile_float_literal): Add is_negative
	check to compile negative float literals properly.
	* backend/rust-compile-pattern.cc (CompilePatternCheckExpr::visit(RangePattern)):
	Minor optimization to E0579 checks to reduce memory copy.

2025-11-25  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/feature/rust-feature-gate.cc
	(FeatureGate::gate): Handle removal of Feature::create.
	(FeatureGate::visit): Refer to AUTO_TRAITS as
	OPTIN_BUILTIN_TRAITS.
	* checks/errors/feature/rust-feature.cc (Feature::create):
	Remove.
	(Feature::feature_list): New static member variable.
	(Feature::name_hash_map): Use "rust-feature-defs.h" to define.
	(Feature::lookup): New member function definition.
	* checks/errors/feature/rust-feature.h (Feature::State): Add
	comments.
	(Feature::Name): Use "rust-feature-defs.h" to define.
	(Feature::as_string): Make const.
	(Feature::name): Likewise.
	(Feature::state): Likewise.
	(Feature::issue): Likewise.
	(Feature::description): Remove member function declaration.
	(Feature::create): Remove static member function declaration.
	(Feature::lookup): New member function declarations.
	(Feature::Feature): Adjust arguments.
	(Feature::m_rustc_since): Rename to...
	(Feature::m_rust_since): ...here.
	(Feature::m_description): Remove.
	(Feature::m_reason): New member variable.
	(Feature::feature_list): New static member variable.
	* checks/errors/feature/rust-feature-defs.h: New file.
	* checks/errors/feature/contrib/parse.y: New file.
	* checks/errors/feature/contrib/scan.l: New file.
	* checks/errors/feature/contrib/.gitignore: New file.
	* checks/errors/feature/contrib/Makefile: New file.
	* checks/errors/feature/contrib/fetch: New file.
	* checks/errors/feature/contrib/regen: New file.
	* checks/errors/feature/contrib/copyright-stub.h: New file.
	* checks/errors/feature/contrib/README: New file.

2025-11-25  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* ast/rust-ast.cc (Attribute::check_cfg_predicate): Make error when attribute has no input.

2025-11-25  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Implicitly
	convert LocalVariable to pointer to Bvariable.
	* rust-backend.h (local_variable): Return LocalVariable.
	(parameter_variable): Likewise.
	(static_chain_variable): Likewise.
	(temporary_variable): Likewise.
	* rust-gcc.cc (local_variable): Likewise.
	(parameter_variable): Likewise.
	(static_chain_variable): Likewise.
	(temporary_variable): Likewise.
	(LocalVariable::get_tree): New function.
	(LocalVariable::error_variable): Likewise.
	* rust-gcc.h (class LocalVariable): New class.

2025-11-25  lenny.chiadmi-delage  <lenny.chiadmi-delage@epita.fr>

	* expand/rust-macro-expand.cc (transcribe_expression): Check if
	parser didn't fail.
	(transcribe_type): Likewise.
	(transcribe_pattern): Likewise.

2025-11-17  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit): null guard
	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): default to anon

2025-11-17  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-item.cc (CompileItem::visit): support the synthetic function consts
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::Resolve): likewise
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItem::visit): create the synth
	* typecheck/rust-tyty.h: new flag for synthetic constant

2025-11-17  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): fix mappings

2025-11-17  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* ast/rust-ast.cc (Attribute::is_derive):
	Change is_derive method with its valid path.
	* util/rust-attribute-values.h:
	Delete redudant derive attribute.
	* util/rust-attributes.cc (AttributeChecker::check_inner_attribute):
	Helper method for check_inner_attributes
	(AttributeChecker::check_inner_attributes):
	Implement method for errors check.
	* util/rust-attributes.h:
	Add methods above in header.

2025-11-17  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* parse/rust-parse-impl.h(Parser<ManagedTokenSource>::parse_while_let_loop_expr):
	Add check for missing pattern.

2025-11-17  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* ast/rust-ast.cc (MetaItemLitExpr::check_cfg_predicate): Make error.

2025-11-17  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* ast/rust-ast.cc (Attribute::check_cfg_predicate): add cfg path in condition

2025-11-17  Lucas Ly Ba  <lucas.ly-ba@outlook.com>

	* ast/rust-ast.cc (Attribute::check_cfg_predicate):
	Make error.

2025-11-17  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-resolve-path.cc: handle const param values
	* typecheck/rust-hir-type-check-item.cc: generate const infer vars when required
	* typecheck/rust-type-util.cc (unify_site_and): handle a null param cleanup
	* typecheck/rust-tyty-util.cc (TyVar::get_implicit_const_infer_var): helper interface
	* typecheck/rust-tyty-util.h: update header prototypes
	* typecheck/rust-tyty.cc (BaseType::is_concrete): correctly handle const types
	(ConstParamType::get_name): emit the specified type
	(ConstParamType::is_equal): fix recursion loop
	* typecheck/rust-unify.cc (UnifyRules::go): const infer vars need cleanup too
	* typecheck/rust-unify.h: support base generics

2025-11-17  Yap Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-compile-pattern.cc(compilePatternCheckExpr::visit(RangePattern)):
	Add E0579 check to ensure that lower bound is always below upper bound.

2025-11-17  Yap Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-compile-pattern.cc (compile_range_pattern_bound): Set litexpr
	to negative if has_minus is present in the RangePatternBoundLiteral param.

2025-11-17  vishruth-thimmaiah  <vishruththimmaiah@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_generic_params): Emit
	an error when const generics with a default value is not
	trailing.

2025-11-17  Yap Zhi Heng  <yapzhhg@gmail.com>

	* parse/rust-parse-impl.h (parse_literal_or_range_pattern): Parse minus sign
	properly for LiteralPattern.
	* ast/rust-pattern.h (LiteralPattern): Add has_minus boolean for LiteralPattern.
	* hir/tree/rust-hir-pattern.h (LiteralPattern): Ditto.
	* ast/rust-pattern.cc (LiteralPattern::as_string): Update to include minus sign
	if present.
	* hir/tree/rust-hir.cc (LiteralPattern::as_string): Ditto.
	* hir/rust-ast-lower-pattern.cc (visit(LiteralPattern)): Pass has_minus boolean
	from AST to HIR.
	* backend/rust-compile-pattern.cc (CompilePatternCheckExpr::visit(LiteralPattern)):
	Compile litexpr as negative if minus sign is present.

2025-11-17  Lucas Ly Ba  <lucas.ly-ba@outlook.fr>

	* metadata/rust-export-metadata.cc (ExportContext::emit_macro):
	Change method argument NodeId to AST::MacroRulesDefinition.
	* metadata/rust-export-metadata.h:
	Likewise.
	* util/rust-hir-map.cc (Mappings::insert_exported_macro):
	Insert AST::MacroRulesDefinition instead of NodeId.
	* util/rust-hir-map.h:
	Change methods declarations of exported macros.

2025-11-12  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-fmt.h: Simplify diagnostic avoidance.

2025-11-12  Arthur Cohen  <arthur.cohen@embecosm.com>
	    Thomas Schwinge  <tschwinge@gcc.gnu.org>

	PR rust/122498
	* ast/rust-fmt.h: Add -Warray-bounds pragma to avoid the issue during
	bootstraps

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-pointer-visitor.cc (PointerVisitor::visit):
	Handle the expression contained in an ErrorPropagationExpr.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.

2025-10-30  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (visit(TuplePattern)): Update HAS_REST
	case to continue to attempt to resolve pattern items after emitting size error.

2025-10-30  Ryo Yoshida  <low.ryoshida@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Emit
	an error when the path refers to an enum itself rather than its variant.

2025-10-30  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-base.cc (parse_repr_options): Changed TOKEN_TREE
	assert into error, update malformed repr attribute error message to be inline
	with other attribute error messages.

2025-10-30  Lucas Ly Ba  <lucas.ly-ba@outlook.fr>

	* ast/rust-ast.cc (Attribute::is_derive):
	Change string derive to its definition.
	* util/rust-attribute-values.h:
	Add attribute definition derive.
	* util/rust-attributes.cc (AttributeChecker::visit):
	Add method check_inner_attributes.
	(AttributeChecker::check_inner_attributes):
	Check if there is a bad inner attribute.
	* util/rust-attributes.h:
	Add method check_inner_attributes in .h.

2025-10-30  lishin  <lishin1008@gmail.com>

	* typecheck/rust-tyty-util.cc (TyVar::TyVar): Add null check to avoid ICE.
	(TyVar::get_tyty): Return nullptr when lookup fails.
	(TyVar::clone): Handle null base type safely.
	(TyVar::monomorphized_clone): Add fallback for error types.

2025-10-30  Ryo Yoshida  <low.ryoshida@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): check
	and properly emit an error when the tuple index is on a non-tuple-struct.

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::array_copied_expr): refactor to new classes
	* backend/rust-compile-pattern.cc (CompilePatternCheckExpr::visit): likewise
	(CompilePatternBindings::visit): likewise
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): likewise
	* backend/rust-compile-type.h: likewise
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal): likewise
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): likewise
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
	* typecheck/rust-substitution-mapper.cc (SubstMapperInternal::visit): likewise
	* typecheck/rust-substitution-mapper.h: likewise
	* typecheck/rust-type-util.cc (unify_site_and): remove bad delete (alpine32)
	* typecheck/rust-tyty-call.h: refactor to new classes
	* typecheck/rust-tyty-subst.cc (SubstitutionParamMapping::clone): likewise
	(SubstitutionRef::infer_substitions): likewise
	* typecheck/rust-tyty-util.cc (TyVar::get_implicit_const_infer_var): likewise
	* typecheck/rust-tyty-util.h: likewise
	* typecheck/rust-tyty-variance-analysis-private.h: likewise
	* typecheck/rust-tyty-visitor.h: likewise
	* typecheck/rust-tyty.cc (BaseType::destructure): likewise
	(BaseType::monomorphized_clone): likewise
	(BaseType::is_concrete): likewise
	(VariantDef::clone): likewise
	(VariantDef::monomorphized_clone): likewise
	(ArrayType::as_string): likewise
	(ArrayType::get_capacity): likewise
	(ArrayType::handle_substitions): likewise
	(generate_tree_str): likewise
	(ConstType::ConstType): likewise
	(ConstParamType::ConstParamType): likewise
	(ConstType::accept_vis): likewise
	(ConstParamType::const_kind): likewise
	(ConstParamType::get_symbol): likewise
	(ConstParamType::can_resolve): likewise
	(ConstParamType::resolve): likewise
	(ConstParamType::accept_vis): likewise
	(ConstType::set_value): likewise
	(ConstType::as_string): likewise
	(ConstParamType::as_string): likewise
	(ConstType::clone): likewise
	(ConstParamType::clone): likewise
	(ConstType::get_symbol): likewise
	(ConstParamType::get_name): likewise
	(ConstType::can_resolve): likewise
	(ConstParamType::is_equal): likewise
	(ConstType::resolve): likewise
	(ConstValueType::ConstValueType): likewise
	(ConstValueType::const_kind): likewise
	(ConstValueType::accept_vis): likewise
	(ConstValueType::as_string): likewise
	(ConstValueType::clone): likewise
	(ConstValueType::get_name): likewise
	(ConstValueType::is_equal): likewise
	(ConstValueType::get_value): likewise
	(ConstInferType::ConstInferType): likewise
	(ConstInferType::const_kind): likewise
	(ConstInferType::accept_vis): likewise
	(ConstType::get_name): likewise
	(ConstInferType::as_string): likewise
	(ConstInferType::clone): likewise
	(ConstInferType::get_name): likewise
	(ConstType::is_equal): likewise
	(ConstInferType::is_equal): likewise
	(ConstErrorType::ConstErrorType): likewise
	(ConstErrorType::const_kind): likewise
	(ConstType::handle_substitions): likewise
	(ConstErrorType::accept_vis): likewise
	(ConstErrorType::as_string): likewise
	(ConstErrorType::clone): likewise
	(ConstErrorType::get_name): likewise
	(ConstErrorType::is_equal): likewise
	* typecheck/rust-tyty.h (class BaseConstType): likewise
	(class ConstType): likewise
	(class ConstParamType): likewise
	(class ConstValueType): likewise
	(class ConstInferType): likewise
	(class ConstErrorType): likewise
	* typecheck/rust-unify.cc (UnifyRules::commit): likewise
	(UnifyRules::go): likewise
	(UnifyRules::expect_array): likewise
	(UnifyRules::expect_const): likewise
	* typecheck/rust-unify.h: likewise

2025-10-30  0xllx0  <github+elle@weathered-steel.dev>

	* ast/rust-ast.cc (Module::process_file_path): empty module early return

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.cc (check_doc_attribute): Change message.
	(AttributeChecker::visit): Add doc attribute checking on traits.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (AttrInputMetaItemContainer::separate_cfg_attrs):
	Avoid malformed attributes.
	* util/rust-attributes.cc (AttributeChecker::visit): Change location.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-expr.h: Force crash when retrieving locus.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Add missing override modifier.
	* ast/rust-path.h: Likewise.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.cc (AttributeChecker::check_attribute): Recurse
	within attr input for additional attribute checking.
	(AttributeChecker::visit): Remove empty definition in favor of default
	ast visitor definition.
	* util/rust-attributes.h: Remove now unused prototypes.

2025-10-30  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (visit(TupleStructPattern)):
	Update error for mismatched number of fields to use rich_location.

2025-10-30  Yap Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-compile-pattern.cc: Add compilation support for TupleStructItemsHasRest
	in CompilePatternCheckExpr(TupleStructPattern) & CompilePatternBindings(TupleStructPattern)

2025-10-30  Yap Zhi Heng  <yapzhhg@gmail.com>

	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit(TupleStructPattern)):
	Implement lowering of AST::TupleStructItemsHasRest to HIR.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit(TupleStructPattern)):
	Add the respective type checking for AST::TupleStructItemsHasRest
	* checks/errors/rust-hir-pattern-analysis.cc (lower_tuple_pattern):
	Add respective pattern for HAS_REST case.

2025-10-30  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (visit(StructPattern)): Add type check
	support for StructPatterns matching against a TUPLE type ADT.
	* backend/rust-compile-pattern.cc(CompilePatternBindings::visit(StructPattern)):
	Update assert to allow TUPLE type ADTs.
	* hir/tree/rust-hir.cc (StructPatternField::as_string()): Improve info dumped.

2025-10-30  Yap Zhi Heng  <yapzhhg@gmail.com>

	* ast/rust-pattern.h (StructPatternElements): Rename has_struct_pattern_etc
	to has_rest_pattern, and has_etc to has_rest to signify presense of rest
	patterns more clearly.
	* ast/rust-pattern.cc (StructPatternElements::as_string): Rename variables
	accordingly.
	* ast/rust-ast-collector.cc: Rename variables accordingly.
	* expand/rust-cfg-strip.cc: Rename variables accordingly.
	* parse/rust-parse-impl.h: Rename variable accordingly.
	* hir/tree/rust-hir-pattern.h (StructPatternElements): Add a boolean to track
	presense of rest pattern.
	* hir/rust-ast-lower-pattern.cc (visit(StructPattern)): Add support for
	lowering rest pattern to HIR.
	* typecheck/rust-hir-type-check-pattern.cc (visit(StructPattern)): Remove
	size check when rest pattern is present.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-extern.h: Add includes.
	(CompileExternItem::visit): Use get_link_name.
	(CompileExternItem::get_link_name): New static member function.
	* util/rust-attribute-values.h (Attributes::LINK_NAME): New
	static constexpr member variable.
	* util/rust-attributes.cc (__definitions): New entry for
	LINK_NAME.
	* util/rust-ggc.cc: Include "rust-ast.h".
	(Ident::Ident): Add overload for Rust::Identifier.
	* util/rust-ggc.h (class Identifier): Forward declare.
	(Ident::Ident): Add overload for Rust::Identifier.

2025-10-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-expand-visitor.cc: Remove old visitors.
	* expand/rust-expand-visitor.h: Likewise, plus inherit from PointerVisitor.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-expand.cc: Forward invocation tree locus to
	substitution context.
	* expand/rust-macro-substitute-ctx.cc: Use origin location for expanded
	tokens.
	* expand/rust-macro-substitute-ctx.h (class SubstituteCtx): Save
	invocation location.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-expand.cc (transcribe_expression): Emit error
	early.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-substitute-ctx.cc (is_builtin_metavariable): Add
	function to check builtin metavars knowledge.
	(SubstituteCtx::check_repetition_amount): Do not process missing
	fragment.

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-resolve-path.cc: add error diag

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): add error diagnostic

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): check for error

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc: remove old hack

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-substitution-mapper.cc (SubstMapperInternal::visit): handle fnptr
	* typecheck/rust-tyty.cc (FnPtr::handle_substitions): new
	* typecheck/rust-tyty.h: likewise

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-fmt.h (class FFIOpt): Adjust internal structure to
	match a repr(C) rust enum.

2025-10-30  Magnus-Mage  <romescha123@gmail.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Implement
	FormatArgs visitor to reconstruct format_args! macro syntax.
	* ast/rust-builtin-ast-nodes.h (FormatArguments): Add get_args(),
	size(), and empty() accessor methods.

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): check for invalid capacity

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-constexpr.cc (eval_constant_expression): port over missing bits
	(eval_store_expression): likewise
	(eval_call_expression): likewise
	(eval_binary_expression): likewise
	(eval_bit_field_ref): likewise
	(eval_check_shift_p): likewise
	(fold_pointer_plus_expression): likewise
	(maybe_fold_addr_pointer_plus): likewise
	(fold_expr): likewise
	(union_active_member): likewise
	(fold_indirect_ref_1): likewise
	(rs_fold_indirect_ref): likewise
	(rs_eval_indirect_ref): likewise
	(eval_logical_expression): likewise
	(eval_vector_conditional_expression): likewise
	(eval_bare_aggregate): likewise
	(cxx_eval_trinary_expression): likewise
	(eval_and_check_array_index): likewise
	(eval_array_reference): likewise
	(eval_component_reference): likewise
	(rs_bind_parameters_in_call): likewise
	(eval_builtin_function_call): likewise
	(constexpr_fn_retval): likewise
	(verify_constant): likewise
	(get_array_or_vector_nelts): likewise
	(eval_conditional_expression): likewise
	(eval_switch_expr): likewise
	(eval_unary_expression): likewise
	(cxx_eval_outermost_constant_expr): likewise
	(potential_constant_expression_1): likewise

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::compile_integer_literal): cleanup
	* backend/rust-constexpr.cc (struct constexpr_global_ctx): port over c++ helpers
	(decl_really_constant_value): likewise
	(eval_constant_expression): likewise
	(non_const_var_error): likewise

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_pattern): Ignore
	inner patterns which fail to parse.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Remove
	overload for TraitItemConst.
	* ast/rust-ast-collector.h (TokenCollector::visit): Likewise.
	* ast/rust-ast-pointer-visitor.cc (PointerVisitor::visit):
	Likewise.
	* ast/rust-ast-pointer-visitor.h (PointerVisitor::visit):
	Likewise.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
	* ast/rust-ast-visitor.h (ASTVisitor::visit): Likewise.
	(DefaultASTVisitor::visit): Likewise.
	* expand/rust-cfg-strip.cc (CfgStrip::visit): Likewise.
	* expand/rust-cfg-strip.h (CfgStrip::visit): Likewise.
	* expand/rust-derive.h (DeriveVisitor::visit): Likewise.
	* expand/rust-expand-visitor.cc (ExpandVisitor::visit):
	Likewise.
	* expand/rust-expand-visitor.h (ExpandVisitor::visit): Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
	* hir/rust-ast-lower-base.h (ASTLoweringBase::visit): Likewise.
	* util/rust-attributes.cc (AttributeChecker::visit): Likewise.
	* util/rust-attributes.h (AttributeChecker::visit): Likewise.
	* ast/rust-ast.cc (ConstantItem::as_string): Handle missing
	expression.
	(TraitItemConst::as_string): Remove function definition.
	(TraitItemConst::accept_vis): Remove function definition.
	* ast/rust-item.h (ConstantItem::mark_for_strip): Adjust
	comment.
	(ConstantItem::has_expr): Make const.
	(class TraitItemConst): Remove definition.
	* ast/rust-ast-full-decls.h (class TraitItemConst): Remove
	declaration.
	* hir/rust-ast-lower-implitem.cc (ASTLowerTraitItem::visit):
	Handle ConstantItem instead of TraitItemConst.
	* hir/rust-ast-lower-implitem.h (ASTLowerTraitItem::visit):
	Likewise.
	* parse/rust-parse-impl.h (Parser::parse_trait_const): Return
	pointer to ConstantItem instead of TraitItemConst.
	* parse/rust-parse.h (Parser::parse_trait_const): Likewise.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* Make-lang.in: Handle source files in checks/errors/feature.
	* checks/errors/rust-feature-gate.cc: Move to...
	* checks/errors/feature/rust-feature-gate.cc: ...here.
	* checks/errors/rust-feature-gate.h: Move to...
	* checks/errors/feature/rust-feature-gate.h: ...here.
	* checks/errors/rust-feature.cc: Move to...
	* checks/errors/feature/rust-feature.cc: ...here.
	* checks/errors/rust-feature.h: Move to...
	* checks/errors/feature/rust-feature.h: ...here.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* Make-lang.in (GRS_OBJS): Remove rust-early-name-resolver.o.
	* expand/rust-macro-builtins-helpers.h: Remove inclusion of
	rust-early-name-resolver.h.
	* expand/rust-macro-builtins.cc: Likewise.
	* expand/rust-macro-expand.cc: Likewise.
	* expand/rust-macro-expand.h: Likewise.
	* resolve/rust-early-name-resolver.cc: Removed.
	* resolve/rust-early-name-resolver.h: Removed.

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* hir/tree/rust-hir-item.h: add unsafe helper
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): pass in abi and unsafe
	* typecheck/rust-tyty.cc (BaseType::monomorphized_clone): likewise
	(FnPtr::as_string): emit more info
	(FnPtr::clone): update ctor call
	* typecheck/rust-tyty.h: new ctor params
	* typecheck/rust-unify.cc (UnifyRules::expect_fnptr): check abi and unsafe

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (UnifyRules::expect_reference): remove clone
	(UnifyRules::expect_pointer): likewise
	(UnifyRules::expect_slice): likewise
	(UnifyRules::expect_tuple): likewise
	(UnifyRules::expect_int): likewise
	(UnifyRules::expect_uint): likewise
	(UnifyRules::expect_float): likewise

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* Make-lang.in (GRS_OBJS): Remove entries.
	* rust-lang.cc: Remove inclusion of "rust-ast-resolve-item.h".
	(run_rust_tests): Remove call to rust_simple_path_resolve_test.
	* resolve/rust-ast-resolve-base.cc: Removed.
	* resolve/rust-ast-resolve-base.h: Removed.
	* resolve/rust-ast-resolve-expr.cc: Removed.
	* resolve/rust-ast-resolve-expr.h: Removed.
	* resolve/rust-ast-resolve-implitem.h: Removed.
	* resolve/rust-ast-resolve-item.cc: Removed.
	* resolve/rust-ast-resolve-item.h: Removed.
	* resolve/rust-ast-resolve-path.cc: Removed.
	* resolve/rust-ast-resolve-path.h: Removed.
	* resolve/rust-ast-resolve-pattern.cc: Removed.
	* resolve/rust-ast-resolve-pattern.h: Removed.
	* resolve/rust-ast-resolve-stmt.cc: Removed.
	* resolve/rust-ast-resolve-stmt.h: Removed.
	* resolve/rust-ast-resolve-struct-expr-field.cc: Removed.
	* resolve/rust-ast-resolve-struct-expr-field.h: Removed.
	* resolve/rust-ast-resolve-toplevel.h: Removed.
	* resolve/rust-ast-resolve-type.cc: Removed.
	* resolve/rust-ast-resolve-type.h: Removed.
	* resolve/rust-ast-resolve.cc: Removed.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Use
	resolve_type_path_like in overloads for TypePath,
	StructExprStruct, StructExprStructBase, and
	StructExprStructFields.
	(resolve_type_path_like): New static function based off
	Late::visit overload for TypePath.
	* util/rust-unwrap-segment.h (unwrap_segment_error_string): New
	inline static function definitions.

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): add guard

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-context.h: add assertions for context peeks
	* backend/rust-compile-expr.cc (CompileExpr::visit): check for valid loop context
	(CompileExpr::array_copied_expr): just reuse array tyty capacity value
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): catch error

2025-10-30  Yap Zhi Heng  <yapzhhg@gmail.com>

	* checks/errors/rust-readonly-check.cc (collect_assignment_tuple): Implement
	read-only checker for tuple patterns with rest pattern.

2025-10-30  Yap Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-compile-var-decl.h (CompileVarDecl::visit(TuplePattern)): Implement
	variable declaration bindings for tuple patterns with rest pattern (i.e.
	TuplePatternItemsHasRest).

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-attribute-values.h
	(Attributes::RUSTC_ALLOW_CONST_FN_UNSTABLE): New static
	constexpr member variable.
	* util/rust-attributes.cc (__definitions): Add entry for
	RUSTC_ALLOW_CONST_FN_UNSTABLE.

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (UnifyRules::commit): commit hook update
	(UnifyRules::go): insert implicit infer const types

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (UnifyRules::go): unwrap the const type

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-base.cc (walk_types_to_constrain): track the ref as well

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-subst.cc: const generic arguments dont have a value yet

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (VariantDef::clone): fix formatting
	(VariantDef::monomorphized_clone): likewise
	* typecheck/rust-tyty.h: likewise

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (InferType::can_eq): remove
	(ErrorType::can_eq): likewise
	(ADTType::can_eq): likewise
	(TupleType::can_eq): likewise
	(FnType::can_eq): likewise
	(FnPtr::can_eq): likewise
	(ClosureType::can_eq): likewise
	(ArrayType::can_eq): likewise
	(SliceType::can_eq): likewise
	(BoolType::can_eq): likewise
	(IntType::can_eq): likewise
	(UintType::can_eq): likewise
	(FloatType::can_eq): likewise
	(USizeType::can_eq): likewise
	(ISizeType::can_eq): likewise
	(CharType::can_eq): likewise
	(ReferenceType::can_eq): likewise
	(PointerType::can_eq): likewise
	(ParamType::can_eq): likewise
	(ConstType::can_eq): likewise
	(OpaqueType::can_eq): likewise
	(StrType::can_eq): likewise
	(NeverType::can_eq): likewise
	(PlaceholderType::can_eq): likewise
	(ProjectionType::can_eq): likewise
	(DynamicObjectType::can_eq): likewise
	* typecheck/rust-tyty.h: remove can_eq
	* typecheck/rust-tyty-cmp.h: Removed.

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (ParamType::is_equal): uses types_compatable

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (unify_error_type_node): new static node
	(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_never): likewise
	(UnifyRules::expect_placeholder): likewise
	(UnifyRules::expect_projection): likewise
	(UnifyRules::expect_dyn): likewise
	(UnifyRules::expect_closure): likewise
	(UnifyRules::expect_opaque): likewise
	(UnifyRules::expect_const): likewise

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (UnifyRules::Resolve): check for success
	(UnifyRules::expect_inference_variable): dont clone
	(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_never): likewise
	(UnifyRules::expect_placeholder): likewise
	(UnifyRules::expect_projection): likewise
	(UnifyRules::expect_dyn): likewise
	(UnifyRules::expect_closure): likewise

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (BaseType::satisfies_bound): use types_compatable instead

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-type-util.cc (types_compatable):  add check bounds flag
	(unify_site_and): likewise
	* typecheck/rust-type-util.h (types_compatable): likewise
	(unify_site_and): likewise
	* typecheck/rust-tyty-bounds.cc: likewise
	* typecheck/rust-unify.cc (UnifyRules::UnifyRules): likewise
	(UnifyRules::Resolve): likewise
	(UnifyRules::resolve_subtype): likewise
	(UnifyRules::go): likewise
	* typecheck/rust-unify.h: likewise

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-path-probe.cc (PathProbeType::process_impl_item_candidate):
	refactor to types_compatable

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (UnifyRules::expect_inference_variable): dont commit
	(UnifyRules::expect_adt): 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

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.h: remove const
	* backend/rust-compile-expr.cc: likewise
	* backend/rust-compile.cc (HIRCompileBase::coerce_to_dyn_object): likewise
	* typecheck/rust-hir-type-bounds.h: likewise
	* typecheck/rust-type-util.cc (lookup_associated_impl_block): likewise
	* typecheck/rust-type-util.h (lookup_associated_impl_block): likewise
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::TypeBoundsProbe): likewise
	(TypeBoundsProbe::Probe): likewise
	* typecheck/rust-tyty-cmp.h: likewise
	* typecheck/rust-tyty-subst.cc (SubstitutionRef::monomorphize): likewise
	* typecheck/rust-tyty.cc (BaseType::satisfies_bound): likewise
	(BaseType::bounds_compatible): likewise
	(VariantDef::clone): likewise
	(VariantDef::monomorphized_clone): likewise
	(OpaqueType::is_equal): likewise
	(DynamicObjectType::is_equal): likewise
	* typecheck/rust-tyty.h: likewise

2025-10-30  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-coercion.cc (TypeCoercionRules::select): respect try flag

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::finalize_rebind_import):
	Replace assert with early break and remove early return.
	(Early::visit): Check for unsuffixed lower self list.
	* resolve/rust-early-name-resolver-2.0.h: Add visit function prototype.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::visit): Emit an error
	on top level rebind self use declaration.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* Make-lang.in (GRS_OBJS): Add "rust-resolve-builtins.o".
	* resolve/rust-late-name-resolver-2.0.cc: Include
	"rust-resolve-builtins.h".
	(next_node_id): Remove function.
	(next_hir_id): Likewise.
	(Late::setup_builtin_types): Likewise.
	(Late::go): Use Builtins::setup_type_ctx instead of
	Late::setup_builtin_types.
	* resolve/rust-late-name-resolver-2.0.h
	(Late::setup_builtin_types): Remove function.
	* rust-session-manager.cc: Include "rust-resolve-builtins.h".
	(Session::expansion): Call Builtins::setup_lang_prelude.
	* resolve/rust-resolve-builtins.cc: New file.
	* resolve/rust-resolve-builtins.h: New file.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h (Parser::left_denotation): Remove
	usage of parse_tuple_index_expr_float.
	(Parser::parse_closure_expr_pratt): Remove function.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-session-manager.cc (Session::compile_crate): Move the AST dump
	after parser error check.

2025-10-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-expression-yeast.cc (ExpressionYeast::dispatch): Rename to...
	(ExpressionYeast::reseat): ...this.
	(ExpressionYeast::visit): Remove.
	* ast/rust-expression-yeast.h: Inherit from PointerVisitor, override reseat instead
	of declaring dispatch.

2025-10-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Compile it.
	* ast/rust-builtin-ast-nodes.h: Add missing methods for getting pointers.
	* ast/rust-expr.h: Likewise.
	* ast/rust-item.h: Likewise.
	* ast/rust-path.h: Likewise.
	* ast/rust-pattern.h: Likewise.
	* ast/rust-type.h: Likewise.
	* ast/rust-ast-pointer-visitor.cc: New file.
	* ast/rust-ast-pointer-visitor.h: New file.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-expr.h (class TupleIndexExpr): Store strip information.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/borrowck/rust-bir-builder-internal.h: Remove
	inclusion of "rust-name-resolver.h".
	(BuilderContext::resolver): Change type to nr2.0 resolver.
	(BuilderContext::BuilderContext): Change initialization of
	resolver reference.
	(AbstractBuilder::resolve_label): Assume name resolution 2.0 is
	enabled.
	(AbstractBuilder::resolve_variable): Likewise.
	(AbstractBuilder::resolve_variable_or_fn): Likewise.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/rust-hir-pattern-analysis.cc: Remove inclusion
	of "options.h".
	(PatternChecker::PatternChecker): Change initialization of
	resolver reference.
	(PatternChecker::visit): Assume name resolution 2.0 is enabled.
	* checks/errors/rust-hir-pattern-analysis.h: Include nr2.0
	header instead of nr1.0 header.
	(PatternChecker::resolver): Change type to nr2.0 resolver.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-session-manager.cc: Remove inclusion of name resolution
	1.0 headers.
	(Session::compile_crate): Assume name resolution 2.0 is enabled.
	(Session::expansion): Likewise.
	(Session::load_extern_crate): Likewise.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/privacy/rust-privacy-check.cc: Adjust includes.
	(Resolver::resolve): Pass 2.0 name resolution context to
	VisibilityResolver and PrivacyReporter.
	* checks/errors/privacy/rust-privacy-reporter.cc
	(PrivacyReporter::PrivacyReporter): Change type of resolver
	parameter.
	(is_child_module): Remove static function.
	(PrivacyReporter::check_for_privacy_violation): Assume nr2.0 is
	enabled and handle removal of is_child_module.
	* checks/errors/privacy/rust-privacy-reporter.h: Adjust
	includes.
	(PrivacyReporter::PrivacyReporter): Change type of resolver
	parameter.
	(PrivacyReporter::resolver): Change member variable type.
	* checks/errors/privacy/rust-visibility-resolver.cc: Adjust
	includes.
	(VisibilityResolver::VisibilityResolver): Change type of
	resolver parameter.
	(VisibilityResolver::resolve_module_path): Assume nr2.0 is
	enabled.
	* checks/errors/privacy/rust-visibility-resolver.h: Adjust
	includes.
	(VisibilityResolver::VisibilityResolver): Change type of
	resolver parameter.
	(VisibilityResolver::resolver): Change member variable type.

2025-10-30  Yap Zhi Heng  <yapzhhg@gmail.com>

	* ast/rust-pattern.h:
		- Add a new base abstract class `PatternItems` which are used by pattern items class
		class derivatives for `TuplePattern`, `TupleStructPattern` & `SlicePattern`.
		- Standardized the derived class names to have `HasRest` or `NoRest` as suffixes.
		 - Values for the common `ItemType` enum is updated to `HAS_REST` or `NO_REST`.
	* ast/rust-pattern.cc: Renamed the classes accordingly.
	* ast/rust-ast-collector.cc: Renamed the classes accordingly.
	* ast/rust-ast-collector.h: Renamed the classes accordingly.
	* ast/rust-ast-full-decls.h: Renamed the classes accordingly.
	* ast/rust-ast-visitor.cc: Renamed the classes accordingly.
	* ast/rust-ast-visitor.h: Renamed the classes accordingly.
	* ast/rust-desugar-for-loops.cc: Renamed the classes accordingly.
	* ast/rust-desugar-question-mark.cc: Renamed the classes accordingly.
	* expand/rust-cfg-strip.cc: Renamed the classes accordingly.
	* expand/rust-cfg-strip.h: Renamed the classes accordingly.
	* expand/rust-derive-clone.cc: Renamed the classes accordingly.
	* expand/rust-derive-cmp-common.cc: Renamed the classes accordingly.
	* expand/rust-derive-hash.cc: Renamed the classes accordingly.
	* expand/rust-derive-ord.cc: Renamed the classes accordingly.
	* expand/rust-derive-partial-eq.cc: Renamed the classes accordingly.
	* expand/rust-derive.h: Renamed the classes accordingly.
	* expand/rust-expand-visitor.cc: Renamed the classes accordingly.
	* expand/rust-expand-visitor.h: Renamed the classes accordingly.
	* hir/rust-ast-lower-base.cc: Renamed the classes accordingly.
	* hir/rust-ast-lower-base.h: Renamed the classes accordingly.
	* hir/rust-ast-lower-pattern.cc: Renamed the classes accordingly.
	* hir/tree/rust-hir-pattern.h: Renamed the classes accordingly.
	* parse/rust-parse-impl.h: Renamed the classes accordingly.
	* resolve/rust-ast-resolve-base.cc: Renamed the classes accordingly.
	* resolve/rust-ast-resolve-base.h: Renamed the classes accordingly.
	* resolve/rust-ast-resolve-pattern.cc: Renamed the classes accordingly.
	* util/rust-attributes.cc: Renamed the classes accordingly.
	* util/rust-attributes.h: Renamed the classes accordingly.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Use
	should_have_str instead of has_str.
	* ast/rust-ast.cc (Token::as_string): Likewise.
	* expand/rust-macro-builtins-offset-of.cc
	(MacroBuiltin::offset_of_handler): Likewise.
	* lex/rust-lex.cc (Lexer::dump_and_skip): Likewise.
	* ast/rust-ast.h (class Token): Remove dead code.
	(Token::has_str): Remove function.
	(Token::should_have_str): New function.
	* lex/rust-token.cc (Token::get_str): Remove function
	definition.
	* lex/rust-token.h: Include "rust-diagnostics.h".
	(Token::str): Change type from std::unique_ptr<std::string> to
	std::string.
	(Token::Token): Adjust initialization of str member variable and
	the type of the parameter used to initialize it.
	(Token::make_identifier): Accept std::string instead of rvalue
	reference to std::string.
	(Token::make_int): Likewise.
	(Token::make_float): Likewise.
	(Token::make_string): Likewise.
	(Token::make_byte_string): Likewise.
	(Token::make_raw_string): Likewise.
	(Token::make_inner_doc_comment): Likewise.
	(Token::make_outer_doc_comment): Likewise.
	(Token::make_lifetime): Likewise.
	(Token::get_str): Add definition to function declaration.
	(Token::has_str): Remove member function.
	(Token::should_have_str): Handle INNER_DOC_COMMENT and
	OUTER_DOC_COMMENT.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-builtins-format-args.cc
	(format_args_parse_arguments): Split format expression parsing
	into...
	(format_args_parse_expr): ...a new function here, while handling
	eager expansion.
	(MacroBuiltin::format_args_handler): Use format_args_parse_expr.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_expr): Avoid skipping
	or splitting tokens.
	(Parser::null_denotation): Assume initial token was not skipped
	and adjust function signature to match. Use
	parse_path_in_expression instead of
	parse_path_in_expression_pratt and handle SCOPE_RESOLUTION.
	(Parser::parse_path_in_expression_pratt): Remove function.
	* parse/rust-parse.h (null_denotation): Remove initial token
	parameter.
	(parse_path_in_expression_pratt): Remove function.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-coercion.cc (TypeCoercionRules::do_coercion): Use as
	member function.
	(TypeCoercionRules::coerce_borrowed_pointer): Likewise.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-coercion.cc (TypeCoercionRules::do_coercion):
	Move nevertype coercion from here...
	(TypeCoercionRules::coerce_never): ... to here.
	* typecheck/rust-coercion.h: Add function prototype.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-coercion.cc (TypeCoercionRules::do_coercion): Adapt
	call to new return type.
	(TypeCoercionRules::coerce_unsized): Change error handling.
	* typecheck/rust-coercion.h: Update function prototype and add new
	CoerceUnsizedError error type.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-coercion.cc (TypeCoercionRules::do_coercion): Refactor
	common return statement.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Remove
	unused assignment.
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
	Likewise.
	* typecheck/rust-tyty.cc (ParamType::handle_substitions): Likewise.
	* typecheck/rust-unify.cc (UnifyRules::go): Likewise.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait):
	Construct value in place.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-ast-resolve-stmt.cc (ResolveStmt::visit): Remove
	unused copy.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-expr.cc (CompileExpr::generate_closure_fntype):
	Unwrap the optional.
	* backend/rust-compile.cc: Change return type container. Adapt code to
	new return type.
	* typecheck/rust-hir-dot-operator.cc: Likewise.
	* typecheck/rust-hir-path-probe.cc: Likewise.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit):
	Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
	Likewise.
	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::contains_item):
	Likewise.
	(TypeBoundPredicate::lookup_associated_item): Likewise.
	(TypeBoundPredicateItem::get_parent): Likewise.
	(TypeBoundPredicate::lookup_associated_type): Likewise.
	* typecheck/rust-tyty.cc (BaseType::satisfies_bound): Likewise.
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): Change
	return type.
	* typecheck/rust-tyty.h: Likewise.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-casts.cc (TypeCastRules::cast_rules): Authorize
	cast from function pointer to integer like type.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-hir-type-check-base.cc (walk_type_to_constrain): Walk
	through all kind of type to collect ty leaves.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-type.h: Prevent reconstruction on null pointers.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-attribute-values.h (Attributes::SIMD_TEST): Remove
	static constexpr member variable.
	* util/rust-attributes.cc (__definitions): Remove entry for
	SIMD_TEST.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_identifier_pattern):
	Use parse_pattern_no_alt to parse identifier pattern
	subpatterns.
	(Parser::parse_ident_leading_pattern): Likewise.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-fmt.cc (Pieces::collect): Handle changes to ffi
	interface.
	(Pieces::~Pieces): Remove function definition.
	(Pieces::Pieces): Likewise.
	(Pieces::operator=): Likewise.
	* ast/rust-fmt.h: Include "optional.h".
	(rust_ffi_alloc): New extern "C" function declaration.
	(rust_ffi_dealloc): Likewise.
	(class FFIVec): New class.
	(class FFIOpt): Likewise.
	(RustHamster::RustHamster): New constructor accepting const
	std::string reference.
	(struct FormatSpec): Use FFIOpt.
	(struct PieceSlice): Remove struct.
	(struct RustString): Likewise.
	(struct FormatArgsHandle): Likewise.
	(collect_pieces): Change function signature.
	(clone_pieces): Likewise.
	(destroy_pieces): Remove extern "C" function declaration.
	(Pieces::~Pieces): Remove function declaration.
	(Pieces::operator=): Likewise.
	(Pieces::get_pieces): Handle changes to class fields.
	(Pieces::Pieces): Remove copy and move constructor declarations,
	adjust signature of remaining constructor declaration.
	(Pieces::pieces_vector): Remove member variable.
	(Pieces::handle): Likewise.
	(Pieces::data): Add member variable.
	* expand/rust-macro-builtins-asm.cc (expand_inline_asm_strings):
	Use references to avoid copying.

2025-10-30  lishin  <lishin1008@gmail.com>

	* backend/rust-compile-pattern.cc (CompilePatternLet::visit):
	Handle tuple destructuring containing by-ref.

2025-10-30  Yap Zhi Heng  <yapzhhg@gmail.com>

	* hir/tree/rust-hir-pattern.h: Add SlicePatternItems base class and
	SlicePatternItemsNoRest/SlicePatternItemsHasRest derived classes.
	Update SlicePattern to hold patterns using the new classes.
	* hir/tree/rust-hir-full-decls.h: Declare new classes.
	* hir/tree/rust-hir.cc: Add visits for new classes.
	* hir/tree/rust-hir-visitor.h: Add visits for new classes.
	* hir/tree/rust-hir-visitor.cc: Implement visits for new classes.
	* hir/rust-hir-dump.h: Add visits for new classes.
	* hir/rust-hir-dump.cc: Implement Dump::visit for new classes.
	* hir/rust-ast-lower-base.h: Declare new lower_slice_pattern_no_rest/has_rest
	methods.
	* hir/rust-ast-lower-base.cc: Implement lower_slice_pattern_no_rest/has_rest
	to lower AST slice pattern items to HIR.
	* hir/rust-ast-lower-pattern.cc: Update ASTLoweringPattern::visit for
	SlicePattern to use new lowering methods.
	* backend/rust-compile-pattern.cc: Update CompilePatternCheckExpr::visit
	and CompilePatternBindings::visit for SlicePattern to handle
	SlicePatternItemsNoRest/HasRest.
	* checks/errors/borrowck/rust-bir-builder-pattern.cc: Update
	PatternBindingBuilder::visit for SlicePattern to iterate members correctly.
	* checks/errors/borrowck/rust-bir-builder-struct.h: Add visits for new
	classes.
	* checks/errors/borrowck/rust-function-collector.h: Add visits for new
	classes.
	* checks/errors/rust-const-checker.h: Add visits for new classes.
	* checks/errors/rust-const-checker.cc: Implement empty visits for new classes.
	* checks/errors/rust-hir-pattern-analysis.h: Add visits for new classes.
	* checks/errors/rust-hir-pattern-analysis.cc: Implement empty visits for new
	classes.
	* checks/errors/rust-unsafe-checker.h: Add visits for new classes.
	* checks/errors/rust-unsafe-checker.cc: Implement empty visits for new
	classes.
	* typecheck/rust-hir-type-check-pattern.cc: Update TypeCheckPattern::visit
	for SlicePattern to handle SlicePatternItemsNoRest/HasRest.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-session-manager.cc (Session::compile_crate): Collect lang
	items after expansion.

2025-10-30  Ryutaro Okada  <1015ryu88@gmail.com>

	* Make-lang.in: Replace old read-only checker with new implementation.
	* checks/errors/rust-readonly-check.cc (ReadonlyChecker::ReadonlyChecker):
	Replace old read-only checker with new implementation.
	* checks/errors/rust-readonly-check.h:
	Replace old read-only checker with new implementation.
	* rust-session-manager.cc (Session::compile_crate):
	Switch to new read-only checker.
	* checks/errors/rust-readonly-check2.cc: Removed.
	* checks/errors/rust-readonly-check2.h: Removed.

2025-10-30  Ryutaro Okada  <1015ryu88@gmail.com>

	* checks/errors/rust-readonly-check2.cc (ReadonlyChecker::check_variable):
	Read-only check if the variable is mutable type.
	(ReadonlyChecker::is_mutable_type): Read-only check if the variable is mutable type.
	* checks/errors/rust-readonly-check2.h: Read-only check if the variable is mutable type.

2025-10-30  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc(ClosureParamInfer(IdentifierPattern)):
	Resolve subpattern types for IdentifierPattern.

2025-10-30  Yap Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-compile-pattern.cc(CompilePatternLet::visit(IdentifierPattern)):
	Add support for subpatterns.
	* backend/rust-compile-var-decl.h(CompileVarDecl::visit(IdentifierPattern)):
	Implement compilation for subpatterns.

2025-10-30  lishin  <lishin1008@gmail.com>

	* typecheck/rust-hir-dot-operator.cc (MethodResolver::Select):
	Skip asserts by checking candidate type and using early-continue.
	(MethodResolver::try_select_predicate_candidates):
	Skip invalid candidates.

2025-10-30  lishin  <lishin1008@gmail.com>

	* rust-gcc.cc (constructor_expression):
	Ensure vec_alloc reserves at least one element.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (Attribute::check_cfg_predicate): Emit an error with
	empty cfg_attr input.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-forever-stack.hxx
	(ForeverStack::resolve_segments): Remove usage of optional
	reference, allow non-final path segments to resolve to types
	even outside the type namespace, and allow resolution to
	progress past non-final path segments which resolve to modules.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_stmt_or_expr): Add null check
	on parse_macro_invocation_partial call.
	* ast/rust-path.cc (Path::convert_to_simple_path): Do not exclude
	capitalized "Self".

2025-10-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-fragment.cc (Fragment::is_pattern_fragment): New function.
	(Fragment::take_pattern_fragment): Likewise.
	(Fragment::assert_single_fragment): Likewise.
	* ast/rust-ast-fragment.h: Declare them.
	* ast/rust-ast.cc (SingleASTNode::SingleASTNode): Add new constructor for pattern
	single AST nodes.
	(SingleASTNode::operator=): Handle patterns.
	(SingleASTNode::accept_vis): Likewise.
	(SingleASTNode::is_error): Likewise.
	(SingleASTNode::as_string): Likewise.
	* ast/rust-ast.h: Add get_pattern_ptr() functions.
	* ast/rust-expr.h: Likewise.
	* ast/rust-item.h: Likewise.
	* ast/rust-pattern.h: Likewise.
	* ast/rust-stmt.h: Likewise.
	* expand/rust-expand-visitor.cc (derive_item): Use new API enum values.
	(expand_item_attribute): Likewise.
	(expand_stmt_attribute): Likewise.
	(ExpandVisitor::maybe_expand_pattern): New function.
	(ExpandVisitor::expand_closure_params): Handle patterns.
	(ExpandVisitor::visit): Add new visitors for patterns and missed exprs.
	* expand/rust-expand-visitor.h: Declare them.
	* expand/rust-macro-expand.cc (transcribe_pattern): New function.
	(transcribe_context): Call it.
	* expand/rust-macro-expand.h (struct MacroExpander): New Context type.

2025-10-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h: Change NodeType to enum class Kind.
	* ast/rust-ast-fragment.cc: Use new names.
	* ast/rust-ast-fragment.h: Likewise.
	* ast/rust-ast.cc (SingleASTNode::SingleASTNode): Likewise.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h
	(Parser::parse_identifier_or_keyword_token): Record error on
	failure.

2025-10-30  Ryutaro Okada  <1015ryu88@gmail.com>

	* resolve/rust-ast-resolve-stmt.h:
	Add name resolution processing for discriminant values.

2025-10-30  Ryutaro Okada  <1015ryu88@gmail.com>

	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): fix error code

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-cfg-strip.cc: Include "rust-macro-expand.h".
	(fails_cfg): Rename to...
	(CfgStrip::fails_cfg): ...here and handle test attributes.
	(fails_cfg_with_expand): Rename to...
	(CfgStrip::fails_cfg_with_expand): ...here and handle test
	attributes.
	* expand/rust-cfg-strip.h (struct ExpansionCfg): Forward
	declare.
	(CfgStrip::fails_cfg): New member function.
	(CfgStrip::fails_cfg_with_expand): Likewise.
	(CfgStrip::CfgStrip): Accept reference to ExpansionCfg.
	(CfgStrip::expansion_cfg): New member variable.
	* rust-session-manager.cc (Session::expansion): Pass
	ExpansionCfg instance to CfgStrip constructor.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::finalize_rebind_import):
	Do not abort on wildcard patterns.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-expr.h: Add const getters to llvm members.
	* hir/rust-ast-lower-expr.cc (check_llvm_asm_support): Check llvm_asm
	usage validity.
	(ASTLoweringExpr::visit): Emit an error message instead of aborting.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-builtins-asm.cc (parse_llvm_clobbers): Expect a
	comma between clobbers.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-builtins-asm.cc (parse_asm): Simplify expression.
	(parse_llvm_asm): Likewise.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast.h (Stmt::get_node_id): Make virtual.
	(Type::get_node_id): Likewise.
	(AssociatedItem::get_node_id): New virtual member function.
	* ast/rust-expr.h (TypeCastExpr::get_casted_expr_ptr): New
	member function.
	(TypeCastExpr::get_type_to_cast_to_ptr): Likewise.
	(ClosureExprInner::get_definition_expr_ptr): Likewise.
	* ast/rust-item.h (TypeAlias::get_node_id): New member function
	to override AssociatedItem::get_node_id.
	(ConstantItem::get_node_id): Likewise.
	* expand/rust-expand-visitor.cc
	(ExpandVisitor::maybe_expand_expr): Adjust
	macro_invoc_expect_id.
	(ExpandVisitor::maybe_expand_type): Likewise and add an overload
	for std::unique_ptr<TypeNoBounds>.
	(ExpandVisitor::visit): Check macro_invoc_expect_id and
	generally improve visitors so that the testsuite will still
	pass.
	* expand/rust-expand-visitor.h (ExpandVisitor::ExpandVisitor):
	Initialize member variable macro_invoc_expect_id.
	(ExpandVisitor::maybe_expand_type): Add an overload for
	std::unique_ptr<TypeNoBounds>.
	(ExpandVisitor::expand_macro_children): Adjust
	macro_invoc_expect_id.
	(ExpandVisitor::visit): Add an overload for TypeCastExpr.
	(ExpandVisitor::macro_invoc_expect_id): New member variable.

2025-10-30  lishin  <lishin1008@gmail.com>

	* backend/rust-compile-pattern.cc (CompilePatternCheckExpr::visit):
	Check upper compare operator.
	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit):
	Handle lowering of exclusive range pattern.
	* hir/tree/rust-hir-pattern.h (class RangePattern):
	Add support for exclusive ranges in HIR representation.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-expand.cc (transcribe_expression): Parse any
	outer attributes before parsing an expression.
	* parse/rust-parse.h (Parser::parse_outer_attributes): Make
	public.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-expr.h (struct TupleClobber): Add constructor.
	* backend/rust-compile-context.h (struct fncontext): Likewise.
	* typecheck/rust-hir-dot-operator.h: Likewise.
	* typecheck/rust-tyty-variance-analysis-private.h (struct Constraint):
	Likewise.
	* typecheck/rust-unify.h: Likewise.
	* ast/rust-ast-builder.cc (Builder::new_lifetime_param): Add memory
	reservation and construct in place.
	(Builder::new_generic_args): Likewise.
	* ast/rust-ast-collector.cc (TokenCollector::newline): Likewise.
	(TokenCollector::indentation): Likewise.
	(TokenCollector::comment): Likewise.
	* ast/rust-desugar-apit.cc: Likewise.
	* ast/rust-path.cc (Path::convert_to_simple_path): Likewise.
	(TypePath::as_simple_path): Likewise.
	* ast/rust-path.h: Likewise.
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Likewise.
	(TyTyResolveCompile::create_dyn_obj_record): Likewise.
	* checks/errors/rust-hir-pattern-analysis.cc (Matrix::specialize):
	Likewise.
	(WitnessMatrix::apply_constructor): Likewise.
	(check_match_usefulness): Likewise.
	* expand/rust-derive-clone.cc (DeriveClone::clone_fn): Likewise.
	* expand/rust-macro-builtins-asm.cc (parse_clobber_abi): Likewise.
	* expand/rust-macro-expand.cc (MacroExpander::parse_proc_macro_output):
	Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_generic_args):
	Likewise.
	(ASTLoweringBase::lower_extern_block): Likewise.
	* hir/rust-ast-lower-enumitem.h: Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
	* hir/rust-ast-lower-extern.h: Likewise.
	* hir/rust-ast-lower-implitem.cc (ASTLowerImplItem::visit): Likewise.
	(ASTLowerTraitItem::visit): Likewise.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Likewise.
	* hir/rust-ast-lower.cc (ASTLowering::go): Likewise.
	(ASTLoweringBlock::visit): Likewise.
	(ASTLoweringIfLetBlock::desugar_iflet): Likewise.
	(ASTLoweringExprWithBlock::visit): Likewise.
	(ASTLowerPathInExpression::visit): Likewise.
	(ASTLowerQualPathInExpression::visit): Likewise.
	* hir/tree/rust-hir.cc (PathPattern::convert_to_simple_path): Likewise.
	(TypePath::as_simple_path): Likewise.
	* metadata/rust-export-metadata.cc (ExportContext::emit_function):
	Likewise.
	* parse/rust-parse-impl.h (Parser::parse_decl_macro_def): Likewise.
	(Parser::parse_lifetime_params): Likewise.
	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
	Likewise.
	(ResolveItem::visit): Likewise.
	(flatten_list): Likewise.
	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit):
	Likewise.
	* typecheck/rust-autoderef.cc (AutoderefCycle::try_autoderefed):
	Likewise.
	* typecheck/rust-coercion.cc (TypeCoercionRules::coerce_unsized):
	Likewise.
	* typecheck/rust-hir-dot-operator.cc: Likewise.
	* typecheck/rust-hir-path-probe.cc: Likewise.
	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait):
	Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Likewise.
	(TypeCheckExpr::resolve_fn_trait_call): 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-pattern.cc (TypeCheckPattern::visit):
	Likewise.
	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve):
	Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
	Likewise.
	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn):
	Likewise.
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::push_return_type):
	Likewise.
	(TypeCheckContext::insert_associated_impl_mapping): Likewise.
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::scan): Likewise.
	(TypeBoundsProbe::add_trait_bound): Likewise.
	(TypeBoundPredicate::operator=): Likewise.
	(TypeBoundPredicateItem::get_tyty_for_receiver): Likewise.
	(TypeBoundPredicate::get_associated_type_items): Likewise.
	* typecheck/rust-tyty-call.cc (TypeCheckMethodCallExpr::go): Likewise.
	* typecheck/rust-tyty-subst.cc (SubstitutionRef::clone_substs):
	Likewise.
	(SubstitutionRef::infer_substitions): Likewise.
	(SubstitutionRef::are_mappings_bound): Likewise.
	* typecheck/rust-tyty-variance-analysis.cc (GenericTyPerCrateCtx::query_generic_variance):
	Likewise.
	(GenericTyVisitorCtx::add_constraint): Likewise.
	* typecheck/rust-tyty.cc (FnPtr::clone): Likewise.
	(DynamicObjectType::get_object_items): Likewise.
	* typecheck/rust-unify.cc (UnifyRules::Resolve): Likewise.
	(UnifyRules::go): Likewise.
	(UnifyRules::expect_tuple): Likewise.
	* util/rust-canonical-path.h: Likewise.
	* util/rust-token-converter.cc (convert): Likewise.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/bi-map.h: Add include directive for required declarations.
	* util/fnv-hash.h: Likewise.
	* util/rust-dump.h: Likewise.
	* util/rust-inline-visitor.h: Likewise.
	* util/rust-unwrap-segment.h: Likewise.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-lang-item.h (RUST_LANG_ITEM_H): Add header guards.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse.h: Change class to struct for friend qualification.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/lints/rust-lint-marklive-base.h (RUST_HIR_LIVENESS_BASE):
	Remove header includes.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-cond-compilation.h: Delete copy constructor for
	ConfigurationAll and ConfigurationAny.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-type.h: Update member instead of parameter

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-cond-compilation.h: Move vector instead of passing it by
	value.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-pattern.h: Include header directly.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-cond-compilation.h: Copy cfg_attrs

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-formatting.h (RUST_AST_FORMATTING_H): Include required
	headers directly.

2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-attributes.cc (Attributes::extract_string_literal):
	New function definition.
	* util/rust-attributes.h (Attributes::extract_string_literal):
	New function declaration.
	* ast/rust-collect-lang-items.cc (get_lang_item_attr): Use
	extract_string_literal.
	* backend/rust-compile-base.cc: Include "rust-attributes.h".
	(HIRCompileBase::handle_link_section_attribute_on_fndecl):
	Use extract_string_literal.
	(HIRCompileBase::handle_must_use_attribute_on_fndecl): Likewise.
	* hir/rust-ast-lower-base.cc
	(ASTLoweringBase::handle_lang_item_attribute): Likewise.
	* rust-session-manager.cc (Session::handle_crate_name):
	Likewise.

2025-10-30  Yap Zhi Heng  <yapzhhg@gmail.com>

	* hir/tree/rust-hir-pattern.h:
		- Rename TupleItems to PatternItems.
		- Rename TuplePatternItemsMultiple/Ranged & TupleStructItemsRange/NoRange to
		TuplePatternItemsNoRest/HasRest and TupleStructItemsNoRest/HasRest.
		- Update enum values to NO_REST/HAS_REST.
		- Rename clone_tuple_items_impl to clone_pattern_items_impl.
	* hir/tree/rust-hir-full-decls.h: Renamed the classes accordingly.
	* hir/tree/rust-hir-visitor.h: Renamed the classes accordingly.
	* hir/tree/rust-hir-visitor.cc: Renamed the classes accordingly.
	* hir/rust-hir-dump.h: Renamed the classes accordingly.
	* hir/rust-hir-dump.cc: Renamed the classes accordingly.
	* hir/tree/rust-hir.cc: Renamed the classes accordingly.
	* hir/rust-ast-lower-base.cc: Renamed the classes accordingly.
	* hir/rust-ast-lower-pattern.cc: Renamed the classes accordingly.
	* backend/rust-compile-pattern.cc: Renamed the classes accordingly.
	* backend/rust-compile-var-decl.h: Renamed the classes accordingly.
	* checks/errors/borrowck/rust-bir-builder-pattern.cc: Renamed the classes accordingly.
	* checks/errors/borrowck/rust-bir-builder-struct.h: Renamed the classes accordingly.
	* checks/errors/borrowck/rust-function-collector.h: Renamed the classes accordingly.
	* checks/errors/rust-const-checker.cc: Renamed the classes accordingly.
	* checks/errors/rust-const-checker.h: Renamed the classes accordingly.
	* checks/errors/rust-hir-pattern-analysis.cc: Renamed the classes accordingly.
	* checks/errors/rust-hir-pattern-analysis.h: Renamed the classes accordingly.
	* checks/errors/rust-unsafe-checker.cc: Renamed the classes accordingly.
	* checks/errors/rust-unsafe-checker.h: Renamed the classes accordingly.
	* checks/errors/rust-readonly-check2.cc: Renamed the classes accordingly.
	* typecheck/rust-hir-type-check-pattern.cc: Update references to renamed classes and enum
	values.

2025-10-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-derive-eq.cc: Use empty vector explicitly.

2025-08-05  Ryutaro Okada  <1015ryu88@gmail.com>

	* Make-lang.in (rust-readonly-check2.cc):
	Add read-only check on HIR
	* checks/errors/rust-readonly-check2.cc (ReadonlyChecker):
	Add read-only check on HIR
	* checks/errors/rust-readonly-check2.h (ReadonlyChecker):
	Add read-only check on HIR

2025-08-05  Ryutaro Okada  <1015ryu88@gmail.com>

	* hir/tree/rust-hir-visitor.cc (DefaultHIRVisitor::walk):
	Call base class's  accept_vis method

2025-08-05  Ryutaro Okada  <1015ryu88@gmail.com>

	* hir/tree/rust-hir-visitor.cc (DefaultHIRVisitor::walk):
	Add check before calling  `get_trait_ref()`

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-builtins-helpers.cc
	(try_extract_string_literal_from_fragment): Perform static_cast
	to AST::LiteralExpr only after it's verified that an AST::Expr
	is a literal.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-attribute-values.h
	(Attributes::RUSTC_ARGS_REQUIRED_CONST): New constexpr variable.
	* util/rust-attributes.cc (__definitions): New entry for
	RUSTC_ARGS_REQUIRED_CONST.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast.cc (AttributeParser::parse_meta_item_inner):
	Handle removal of AttributeParser-specific functions.
	(AttributeParser::parse_path_meta_item): Likewise.
	(AttributeParser::parse_meta_item_seq): Likewise.
	(AttributeParser::parse_meta_item_lit): Likewise.
	(AttributeParser::parse_literal): Remove function.
	(AttributeParser::parse_simple_path): Likewise.
	(AttributeParser::parse_simple_path_segment): Likewise.
	(AttributeParser::peek_token): Likewise.
	(AttributeParser::skip_token): Likewise.
	* ast/rust-macro.h (AttributeParser::parse_simple_path):
	Likewise.
	(AttributeParser::parse_simple_path_segment): Likewise.
	(AttributeParser::parse_literal): Likewise.
	(AttributeParser::peek_token): Likewise.
	(AttributeParser::skip_token): Likewise.
	* parse/rust-parse.h (Parser): Make AttributeParser a friend
	class.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Add proper handling
	of the node.
	* rust-backend.h (lookup_field): Declare it.
	* rust-gcc.cc (lookup_field): Add forked implementation from gcc/c/.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast.cc (AttributeParser::parse_path_meta_item): Catch
	parse_expr returning nullptr and remove defunct comment.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* Make-lang.in (GRS_OBJS): Add entries.
	* parse/rust-parse-impl.h: Adjust header comment.
	(Parser::parse_lifetime_params_objs): Fix bug and add comment.
	(Parser::unexpected_token): Likewise.
	* parse/rust-parse.h: Remove inclusion of "rust-parse-impl.h".
	* parse/rust-parse-impl-lexer.cc: New file.
	* parse/rust-parse-impl-macro.cc: New file.
	* parse/rust-parse-impl-proc-macro.cc: New file.

2025-08-05  Ryutaro Okada  <1015ryu88@gmail.com>

	* hir/rust-ast-lower-implitem.cc (ASTLowerTraitItem::visit):
	Fix object copying issue causing pointer inconsistency

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (AttributeParser::parse_path_meta_item): Parse
	expression instead of literal. Update variant name.
	(MetaItemPathLit::to_attribute): Remove function.
	(AttributeParser::parse_path_meta_item): Update name.
	(MetaItemPathLit::check_cfg_predicate): Likewise.
	(MetaItemPathExpr::check_cfg_predicate): Likewise.
	(MetaItemPathLit::accept_vis): Likewise.
	(MetaItemPathExpr::accept_vis): Likewise.
	* ast/rust-ast-collector.h: Update prototype and adapt code to new
	expression.
	* ast/rust-ast-collector.cc: Update code to expr.
	* ast/rust-ast-full-decls.h (class MetaItemPathLit): Likewise.
	(class MetaItemPathExpr): Likewise.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
	* ast/rust-ast-visitor.h: Likewise.
	* ast/rust-ast.h (class MetaItemPathLit): Rename class from here...
	(class MetaItemPathExpr): ... to here.
	* ast/rust-expr.h (class MetaItemPathLit): Rename class from here...
	(class MetaItemPathExpr): ...to here.
	* expand/rust-derive.h: Update class name.
	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Likewise.
	* expand/rust-expand-visitor.h: Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
	* hir/rust-ast-lower-base.h: Likewise.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
	* resolve/rust-ast-resolve-base.h: Likewise.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
	Likewise.
	* resolve/rust-early-name-resolver.h: Likewise.
	* util/rust-attributes.cc (AttributeChecker::visit): Likewise.
	* util/rust-attributes.h: Likewise.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-subst.cc (SubstitutionRef::infer_substitions): remove debug

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-type-util.cc (unify_site_and): improve debug

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-autoderef.cc: remove useless assertion
	* typecheck/rust-coercion.cc (TypeCoercionRules::coerce_unsafe_ptr): refactor
	(TypeCoercionRules::coerce_borrowed_pointer): remove FIXME this is fine
	* typecheck/rust-hir-inherent-impl-overlap.h: use types_compatable
	* typecheck/rust-hir-path-probe.cc (PathProbeType::PathProbeType): remove const
	(PathProbeType::Probe): likewise
	(PathProbeImplTrait::PathProbeImplTrait): likewise
	(PathProbeImplTrait::Probe): likewise
	* typecheck/rust-hir-path-probe.h: likewise
	* typecheck/rust-hir-type-check-base.cc (walk_types_to_constrain): likewise
	* typecheck/rust-hir-type-check-base.h: likewise
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): use types_compatable
	* typecheck/rust-hir-type-check.h: remove const
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::insert_associated_impl_mapping):
	likewise
	(TypeCheckContext::lookup_associated_impl_mapping_for_self): remove can_Eq
	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::is_equal): likewise
	* typecheck/rust-tyty-subst.cc (SubstitutionArg::get_tyty): remove const version
	* typecheck/rust-tyty-subst.h: likewise
	* typecheck/rust-tyty.cc (BaseType::get_root): likewise
	* typecheck/rust-tyty.h: likewise

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-subst.cc: track the const generic
	* typecheck/rust-tyty.cc (ConstType::is_equal): finish the is_equal

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* hir/rust-hir-dump.cc (Dump::Dump): Initialize flag.

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::ASTLoweringPattern):
	flag was not initialized in the constructor.

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* hir/rust-ast-lower-implitem.cc (ASTLowerTraitItem::visit): Remove
	use after move.

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-builtins-helpers.cc: Remove use after move.

2025-08-05  Yap Zhi Heng  <yapzhhg@gmail.com>

	* ast/rust-ast-collector.cc: Add support for the 2 new classes.
	* ast/rust-ast-collector.h: Header file update for above.
	* ast/rust-ast-full-decls.h: Add forward decls for the 2 new classes.
	* ast/rust-ast-visitor.cc: Add visit support for the 2 new classes.
	* ast/rust-ast-visitor.h: Header file update for above.
	* ast/rust-pattern.cc: Implementation of certain methods for the 2 new classes.
	* ast/rust-pattern.h: Define the 2 new classes. Update SlicePattern to be able to hold
	2 kinds of items - SlicePatternItemsNoRest or SlicePatternItemsRest.
	* expand/rust-cfg-strip.cc: Add support for the 2 new classes.
	* expand/rust-cfg-strip.h: Header file update for above.
	* expand/rust-derive.h: Add visits for the 2 new classes.
	* hir/rust-ast-lower-base.cc: Add visits for the 2 new classes.
	* hir/rust-ast-lower-base.h: Header file update for above.
	* hir/rust-ast-lower-pattern.cc: Update lowering of SlicePattern to support
	SlicePatternItemsNoRest.
	* parse/rust-parse-impl.h (parse_slice_pattern()): Add support for parsing DOT_DOT into
	respective SlicePatternItems.
	* resolve/rust-ast-resolve-base.cc: Add visits for the 2 new classes.
	* resolve/rust-ast-resolve-base.h: Header file update for above.
	* resolve/rust-ast-resolve-pattern.cc: Update SlicePattern resolution to support new
	classes.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-subst.cc: fix check for total arguments

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): create infer variable

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-hir-dump.cc (Dump::visit): check for expression
	* hir/tree/rust-hir.cc (AnonConst::as_string): likewise

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): check for value

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): formatting
	* typecheck/rust-tyty-variance-analysis-private.h: likewise
	* typecheck/rust-tyty.cc (VariantDef::clone): likewise
	(VariantDef::monomorphized_clone): likewise
	* typecheck/rust-tyty.h: likewise

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc: useful debug
	* backend/rust-compile-stmt.cc (CompileStmt::visit): likewise
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): fold the capacity into ConstType
	* hir/tree/rust-hir-generic-param.h: make const
	* hir/tree/rust-hir-path.h: take into account const arguments now
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal): needs const
	* typecheck/rust-hir-type-check-base.h: add error handling for const supported locations
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): const type the arrays
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit): update
	(TypeCheckImplItem::visit): likewise
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): likewise
	(TypeCheckItem::resolve_impl_block_substitutions): likewise
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): wrap up const type
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
	(TypeResolveGenericParam::visit): likewise
	(TypeResolveGenericParam::apply_trait_bounds): remove HIR::Generic from Param
	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): cleanup
	* typecheck/rust-tyty-subst.cc (SubstitutionParamMapping::SubstitutionParamMapping):
	handle const generics
	(SubstitutionParamMapping::get_type_representation): likewise
	(SubstitutionParamMapping::param_has_default_ty): likewise
	(SubstitutionParamMapping::get_default_ty): likewise
	(SubstitutionRef::infer_substitions): likewise
	* typecheck/rust-tyty-subst.h: likewise
	* typecheck/rust-tyty-util.cc (TyVar::get_implicit_const_infer_var): new helper
	* typecheck/rust-tyty-util.h (class ConstType): likewise
	* typecheck/rust-tyty.cc (BaseType::is_concrete): check for array const concrete
	(ArrayType::as_string): update to const
	(ArrayType::handle_substitions): likewise
	(ParamType::ParamType): likewise
	(ParamType::get_generic_param): likewise
	(ParamType::clone): likewise
	(ConstType::ConstType): likewise
	(ConstType::set_value): likewise
	(ConstType::clone): likewise
	(ConstType::get_generic_param): likewise
	(generate_tree_str): new helper to pretty print gimple
	(ConstType::get_name): uses the generate_tree_str
	(ConstType::handle_substitions): handle const infer's
	* typecheck/rust-tyty.h (RUST_TYTY): likewise
	* typecheck/rust-unify.cc (UnifyRules::expect_array): likewise
	(UnifyRules::expect_const): likewise

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): error_mark_node for const types
	* backend/rust-compile-type.h: boilerplate
	* 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-substitution-mapper.cc (SubstMapperInternal::visit): likewise
	* typecheck/rust-substitution-mapper.h: likewise
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::assemble_marker_builtins): likewise
	* typecheck/rust-tyty-call.h: likewise
	* typecheck/rust-tyty-cmp.h (class ConstCmp): 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::has_substitutions_defined): likewise
	(BaseType::needs_generic_substitutions): likewise
	(ConstType::ConstType): likewise
	(ConstType::accept_vis): likewise
	(ConstType::as_string): likewise
	(ConstType::can_eq): likewise
	(ConstType::clone): likewise
	(ConstType::get_symbol): likewise
	(ConstType::get_generic_param): likewise
	(ConstType::can_resolve): likewise
	(ConstType::resolve): likewise
	(ConstType::get_name): likewise
	(ConstType::is_equal): likewise
	(ConstType::handle_substitions): likewise
	* typecheck/rust-tyty.h (enum TypeKind): new tyty_kind
	(class ConstType): new type
	* typecheck/rust-unify.cc (UnifyRules::go): Handle a const type unify
	(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_closure): likewise
	(UnifyRules::expect_const): likewise
	* typecheck/rust-unify.h: new expect_const_type handler

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-intrinsic.cc (sizeof_handler): refactor types
	(op_with_overflow_inner): likewise
	(uninit_handler): likewise
	(move_val_init_handler): likewise
	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): likewise
	* typecheck/rust-hir-trait-resolve.cc: likewise
	* typecheck/rust-hir-type-check-base.cc: likewise
	* typecheck/rust-hir-type-check-item.cc: likewise
	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::is_equal): likewise
	* typecheck/rust-tyty-subst.cc (SubstitutionParamMapping::get_param_ty): likewise
	(SubstitutionArg::get_param_mapping): likewise
	(SubstitutionRef::prepare_higher_ranked_bounds): likewise
	(SubstitutionRef::monomorphize): likewise
	* typecheck/rust-tyty-subst.h (class BaseGeneric): new generic base
	* typecheck/rust-tyty.cc (VariantDef::clone): likewise
	(VariantDef::monomorphized_clone): refactor
	(ADTType::is_equal): likewise
	(FnType::is_equal): likewise
	(ParamType::ParamType): likewise
	* typecheck/rust-tyty.h (class ParamType): likewise
	(class BaseGeneric): new base class impl

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (ADTType::is_equal): let param::is_eq do this
	(FnType::is_equal): remove whitespace

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-base.cc: check for type param
	* typecheck/rust-tyty-subst.cc (SubstitutionParamMapping::SubstitutionParamMapping):
	return HIR::GenericParam base class
	(SubstitutionParamMapping::get_generic_param): likewise
	(SubstitutionParamMapping::get_type_representation): new helper
	(SubstitutionParamMapping::param_has_default_ty): check for param type
	(SubstitutionParamMapping::get_default_ty): likewise
	* typecheck/rust-tyty-subst.h: get the locus from the subst HIR::GenericParam now
	* typecheck/rust-tyty-variance-analysis.cc (GenericTyPerCrateCtx::debug_print_solutions):
	likwise
	(GenericTyVisitorCtx::process_type): likewise

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): check for ADTType instead of assert

2025-08-05  Ryutaro Okada  <1015ryu88@gmail.com>

	* checks/lints/rust-lint-unused-var.cc (check_decl):
	Do not warn about unused `self` parameter.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in:
	* ast/rust-expression-yeast.cc (ExpressionYeast::dispatch_loops): Call DesugarWhileLet.
	* ast/rust-desugar-while-let.cc: New file.
	* ast/rust-desugar-while-let.h: New file.

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (AttrInputMacro::operator=): Add return type.
	* ast/rust-expr.h: Likewise.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-desugar-for-loops.cc: Remove functions implemented in AST::Builder.
	* ast/rust-desugar-for-loops.h: Likewise.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* hir/rust-ast-lower-base.cc: Add rust_unreachable() when lowering desugared exprs.
	* hir/rust-ast-lower-base.h: Mention this.
	* hir/rust-ast-lower-block.h: Remove existing definitions.
	* hir/rust-ast-lower-expr.cc: Likewise.
	* hir/rust-ast-lower-expr.h: Likewise.
	* hir/rust-ast-lower.cc: Likewise.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-desugar-question-mark.cc (DesugarQuestionMark::go): Add assertion for the
	expr's type.
	* ast/rust-desugar-try-block.cc (DesugarTryBlock::go): Likewise.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-desugar-for-loops.h: Adapt API and remove visitor.
	* ast/rust-desugar-for-loops.cc: Likewise.
	* ast/rust-expression-yeast.cc: Call DesugarForLoop.
	* ast/rust-expression-yeast.h: Declare dispatch_loops function.
	* rust-session-manager.cc (Session::expansion): Do not call for-loop desugar.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* hir/tree/rust-hir-expr.h (class OffsetOf): New.
	* hir/tree/rust-hir-expr.cc: Define its methods.
	* hir/tree/rust-hir-expr-abstract.h: Add ExprType::OffsetOf.
	* hir/tree/rust-hir-full-decls.h (class OffsetOf): Declare it.
	* backend/rust-compile-block.h: Add handling for OffsetOf.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
	* 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 (RUST_BIR_BUILDER_EXPR_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 (RUST_PRIVACY_REPORTER_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-expr.cc (ASTLoweringExpr::visit): Likewise.
	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
	* hir/rust-hir-dump.h: Likewise.
	* hir/tree/rust-hir-visitor.cc (DefaultHIRVisitor::walk): Likewise.
	* hir/tree/rust-hir-visitor.h: Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
	* typecheck/rust-hir-type-check-expr.h (RUST_HIR_TYPE_CHECK_EXPR): Likewise.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Compile the offset_of handler.
	* lang.opt: Add -frust-assume-builtin-offset-of option.
	* ast/rust-ast.h: Add has_str() for const_TokenPtr.
	* expand/rust-macro-builtins.cc: Map offset_of as builtin.
	* expand/rust-macro-builtins.h: Declare it.
	* expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Add hack for calling builtin
	offset_of!().
	* resolve/rust-early-name-resolver-2.0.cc (Early::visit):  Likewise.
	* expand/rust-macro-builtins-offset-of.cc: New file.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h: Add OffsetOf expression kind.
	* ast/rust-builtin-ast-nodes.h (class OffsetOf): Add node.
	* ast/rust-ast.cc: Define it.
	* ast/rust-ast-collector.cc: Add visitor for OffsetOf.
	* ast/rust-ast-collector.h: Likewise.
	* ast/rust-ast-visitor.cc: Likewise.
	* ast/rust-ast-visitor.h: Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
	* hir/rust-ast-lower-base.h: Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
	* hir/rust-ast-lower-expr.h: Likewise.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
	* resolve/rust-ast-resolve-base.h: Likewise.
	* resolve/rust-early-name-resolver-2.0.cc: Likewise.
	* expand/rust-derive.h:

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-diagnostics.h (struct Error): Add disambiguation.

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-builtins-asm.cc (parse_format_strings): Emit an
	error when expecting a comma.

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/borrowck/rust-bir-fact-collector.h: Remove spurious
	comment.
	* checks/errors/rust-feature.cc: Likewise.
	* util/optional.h: Likewise.
	* expand/rust-token-tree-desugar.cc (TokenTreeDesugar::visit): Remove
	semicolons on namespace.
	* expand/rust-token-tree-desugar.h: Likewise.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-hir-type-check-base.cc
	(TypeCheckBase::TypeCheckBase): Remove initialization of
	resolver field.
	* typecheck/rust-hir-type-check-base.h
	(TypeCheckBase::resolver): Remove field.
	* typecheck/rust-hir-trait-resolve.cc: Remove "options.h"
	include.
	(TraitResolver::resolve_path_to_trait): Assume name resolution
	2.0 is always enabled.
	* typecheck/rust-hir-type-check-enumitem.cc: Remove "options.h"
	include.
	(TypeCheckEnumItem::visit): Assume name resolution 2.0 is always
	enabled.
	* typecheck/rust-hir-type-check-expr.cc: Remove "options.h"
	include.
	(TypeCheckExpr::visit): Assume name resolution 2.0 is always
	enabled.
	(TypeCheckExpr::resolve_operator_overload): Likewise.
	(TypeCheckExpr::resolve_fn_trait_call): Likewise.
	* typecheck/rust-hir-type-check-implitem.cc: Remove "options.h"
	include.
	(TypeCheckImplItem::visit): Assume name resolution 2.0 is always
	enabled.
	* typecheck/rust-hir-type-check-item.cc: Remove "options.h"
	include.
	(TypeCheckItem::visit): Assume name resolution 2.0 is always
	enabled.
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit):
	Likewise.
	(TypeCheckExpr::resolve_root_path): Likewise.
	(TypeCheckExpr::resolve_segments): Likewise.
	* typecheck/rust-hir-type-check-pattern.cc: Remove "options.h"
	include.
	(TypeCheckPattern::visit): Assume name resolution 2.0 is always
	enabled.
	* typecheck/rust-hir-type-check-type.cc
	(TypeCheckType::resolve_root_path): Likewise.
	(ResolveWhereClauseItem::visit): Likewise.
	* typecheck/rust-hir-type-check.cc: Remove "options.h" include.
	(TraitItemReference::get_type_from_fn): Assume name resolution
	2.0 is always enabled.
	* typecheck/rust-type-util.cc (query_type): Likewise.

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-asm.cc (get_out_expr): Return valid output from
	an operand.
	(CompileAsm::asm_construct_outputs): Handle every output
	(get_in_expr): Return valid input from an operand.
	(CompileAsm::asm_construct_inputs): Handle every input

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-builtins-asm.cc (parse_reg_operand_inout): Parse
	expressions and build split in out.

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* hir/rust-hir-dump.cc (Dump::visit): Dump inline assembly fields
	* hir/tree/rust-hir-expr.h: Add non const getter and avoid operand copy
	from getters.
	* hir/tree/rust-hir-visitor.cc (DefaultHIRVisitor::walk): Use non const
	reference.

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-builtins-asm.cc (expand_inline_asm_strings): Handle
	transformation for indexed positional arguments.

2025-08-05  Yap Zhi Heng  <yapzhhg@gmail.com>

	* rust-backend.h: New slice_index_expression function.
	* rust-gcc.cc: Implementation of slice_index_expression to generate tree node for
		accessing slice elements.
	* backend/rust-compile-pattern.cc: Implement SlicePattern check expression & binding
		compilation against SliceType scrutinee.

2025-08-05  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit(SlicePattern)):
		Add new type check case for SliceType wrapped in ReferenceType.
	* backend/rust-compile-pattern.cc: Adjusted the asserts accordingly for
		CompilePatternCheckExpr(SlicePattern) & CompilePatternBindings(SlicePattern).

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Compile it.
	* ast/rust-expression-yeast.cc (ExpressionYeast::dispatch): Dispatch to try-block
	desugar.
	* ast/rust-desugar-try-block.cc: New file.
	* ast/rust-desugar-try-block.h: New file.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h: Add the new variant.
	* ast/rust-expr.h: Use it for TryExpr class.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Add
	visitor for IfLetExprConseqElse.
	* resolve/rust-default-resolver.h (DefaultResolver::visit):
	Likewise.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Visit a block's loop label if it
	exists.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Compile it.
	* rust-session-manager.cc: Call the expression desugar dispatcher.
	* ast/rust-desugar-question-mark.cc: Rework class API.
	* ast/rust-desugar-question-mark.h: Likewise.
	* ast/rust-expression-yeast.cc: New file.
	* ast/rust-expression-yeast.h: New file.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-expr.h: Fix formatting.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Handle defered consts.
	* hir/tree/rust-hir-expr.cc (AnonConst::AnonConst): Likewise.
	(AnonConst::operator=): Likewise.
	* hir/tree/rust-hir-expr.h: Likewise.
	* hir/tree/rust-hir-visitor.cc (DefaultHIRVisitor::walk): Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-expr.h: Add handling for deferred consts.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
	* ast/rust-ast.cc (AnonConst::as_string): Likewise.
	(ArrayType::as_string): Likewise.
	* ast/rust-type.h (class ArrayType): Use AnonConst for sizes.
	* parse/rust-parse-impl.h (Parser::parse_anon_const): New function.
	(Parser::parse_slice_or_array_type): Call it.
	* parse/rust-parse.h: Declare it.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::resolve_glob_import): Adapt for enums.
	(Early::finalize_glob_import): Likewise.
	* resolve/rust-early-name-resolver-2.0.h: Likewise.
	* resolve/rust-finalize-imports-2.0.cc (GlobbingVisitor::go): Likewise.
	(GlobbingVisitor::visit_module_container): New function.
	(GlobbingVisitor::visit_enum_container): New function.
	* resolve/rust-finalize-imports-2.0.h: Declare them.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Insert enums as potential
	containers.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-hir-map.cc (Mappings::insert_ast_module): Rename to...
	(Mappings::insert_glob_container): ...this.
	(Mappings::lookup_ast_module): Rename to...
	(Mappings::lookup_glob_container): ...this.
	* util/rust-hir-map.h: Change declarations.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-cfg-strip.cc (CfgStrip::visit): Load unloaded
	modules.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
	Assume modules have been loaded by CfgStrip.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-expand-visitor.cc
	(ExpandVisitor::expand_inner_items): Adjust call to
	expand_macro_children.
	(ExpandVisitor::expand_inner_stmts): Likewise.
	(ExpandVisitor::visit): Likewise.
	* expand/rust-expand-visitor.h
	(ExpandVisitor::expand_macro_children): Take a pointer to member
	function instead of a std::function.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): do another lookup

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast.cc: Include "rust-macro-invoc-lexer.h".
	(AttributeParser::~AttributeParser): Move function definition
	here.
	(AttributeParser::AttributeParser): Likewise and adjust member
	initialization.
	(AttributeParser::parse_meta_item_inner): Handle changes to
	peek_token.
	(AttributeParser::parse_literal): Likewise.
	(AttributeParser::parse_simple_path_segment): Likewise.
	(AttributeParser::parse_meta_item_seq): Handle changes to
	AttributeParser fields.
	(AttributeParser::peek_token): Move function definition here and
	wrap MacroInvocLexer.
	(AttributeParser::skip_token): Likewise.
	* ast/rust-macro.h (class MacroInvocLexer): Forward declare.
	(class Parser): Likewise.
	(AttributeParser::token_stream): Remove field.
	(AttributeParser::stream_pos): Likewise.
	(AttributeParser::lexer): New field.
	(AttributeParser::parser): Likewise.
	(AttributeParser::AttributeParser): Move definition to
	"rust-ast.cc".
	(AttributeParser::~AttributeParser): Likewise.
	(AttributeParser::peek_token): Likewise.
	(AttributeParser::skip_token): Likewise.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-resolve-path.cc (ResolvePathRef::resolve): return error_mark_node

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* hir/tree/rust-hir-expr.cc (OperatorExprMeta::OperatorExprMeta): track the rhs
	* hir/tree/rust-hir-expr.h: likewise
	* hir/tree/rust-hir-path.h: get rid of old comments
	* typecheck/rust-hir-trait-reference.cc (TraitReference::get_trait_substs): return
	references instead of copy
	* typecheck/rust-hir-trait-reference.h: update header
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::ResolveOpOverload): write ambigious
	operator overloads to a table and try to resolve it at the end
	* typecheck/rust-hir-type-check-expr.h: new static helper
	* typecheck/rust-hir-type-check.h (struct DeferredOpOverload): new model to defer resolution
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::lookup_operator_overload): new
	(TypeCheckContext::compute_ambigious_op_overload): likewise
	(TypeCheckContext::compute_inference_variables): likewise

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc: check the canonical path

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_simple_path): Be more
	careful about skipping SCOPE_RESOLUTION tokens.
	(Parser::parse_simple_path_segment): Allow parsing from a
	starting offset.
	(Parser::parse_use_tree): Handle a non-skipped SCOPE_RESOLUTION
	token.
	* parse/rust-parse.h (Parser::parse_simple_path_segment): Add
	parameter for parsing from a starting offset.

2025-08-05  lishin  <lishin1008@gmail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Add a catch for const/static.

2025-08-05  Yap Zhi Heng  <yapzhhg@gmail.com>

	* rust-backend.h: New size_constant_expression function.
	* rust-gcc.cc: Implementation of size_constant_expression function to generate tree node
		for array access.
	* backend/rust-compile-pattern.h: Remove empty visits for SlicePattern.
	* backend/rust-compile-pattern.cc: Implement SlicePattern check expression & binding
		compilation against ArrayType scrutinee.

2025-08-05  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc(TypeCheckPattern::visit(SlicePattern)):
		Implement size checking for SlicePattern when type checking against array parent

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-attribute-values.h: Add declarations for them.
	* util/rust-attributes.cc: Add definitions.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::visit): fix typo

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-casts.cc (TypeCastRules::resolve): optional emit_error flag
	(TypeCastRules::check): try the simple cast rules then fallback to coercions
	(TypeCastRules::check_ptr_ptr_cast): ensure the underlying's
	(TypeCastRules::emit_cast_error): make this a static helper
	* typecheck/rust-casts.h: new emit_error prototype

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Check for a label
	before visiting it.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): track is super trait
	* typecheck/rust-hir-type-bounds.h: refactor bounds scan
	* typecheck/rust-hir-type-check-base.h: track from super trait
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::is_bound_satisfied_for_type): refactor
	(TypeBoundsProbe::scan): likewise
	(TypeBoundPredicate::apply_generic_arguments): likewise
	* typecheck/rust-tyty-subst.cc: optional bounds checking on parm subst
	* typecheck/rust-tyty-subst.h: likewise
	* typecheck/rust-tyty.h: likewise

2025-08-05  Marc Poulhiès  <dkm@kataplop.net>

	* checks/errors/borrowck/rust-bir-place.h (LoanId::value): Make
	it size_t to match Loan's base type.

2025-08-05  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc(TypeCheckPattern::visit(LiteralPattern)):
		Check LiteralPattern's type against its parent.

2025-08-05  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit(SlicePattern)):
		Implement initial type checking for SlicePattern.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): check for missing borrow
	* ast/rust-expr.h: add helper

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::query_compile_const_expr): new wrapper
	* backend/rust-compile-base.h: add prototype
	* backend/rust-compile-context.cc (Context::get): singleton helper
	* backend/rust-compile-context.h: likewise
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): handle infer's that can default
	* rust-session-manager.cc (Session::compile_crate): create the gcc context earlier for tychk
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal): const fold it
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
	* typecheck/rust-tyty.cc (BaseType::monomorphized_clone): fix constructor call
	(ArrayType::as_string): print capacity
	(ArrayType::clone): fix constructor call
	* typecheck/rust-tyty.h: track capacity
	* typecheck/rust-unify.cc (UnifyRules::expect_array): check the capacities

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): New visitor.
	* resolve/rust-late-name-resolver-2.0.h: Declare it.
	* resolve/rust-name-resolution-context.h (enum class): New binding context.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Check that the WhileLet has a label
	before visiting it.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Add visitor
	for TryExpr.
	* ast/rust-ast-collector.h (TokenCollector::visit): Likewise.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
	* ast/rust-ast-visitor.h (ASTVisitor::visit): Likewise.
	(DefaultASTVisitor::visit): Likewise.
	* expand/rust-derive.h (DeriveVisitor::visit): Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
	* hir/rust-ast-lower-base.h (ASTLoweringBase::visit): Likewise.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit):
	Likewise.
	* resolve/rust-ast-resolve-base.h (ResolverBase::visit):
	Likewise.
	* ast/rust-ast-full-decls.h (class TryExpr): New forward class
	declaration.
	* ast/rust-ast.cc (TryExpr::as_string): New function.
	(TryExpr::accept_vis): Likewise.
	* ast/rust-expr.h (class TryExpr): New class.
	* parse/rust-parse.h (Parser::parse_try_expr): New function.
	* parse/rust-parse-impl.h (Parser::parse_try_expr): Likewise.
	(Parser::null_denotation_not_path): Use parse_try_expr to parse
	try expressions.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-builtins-format-args.cc
	(format_args_parse_arguments): Accept a RAW_STRING_LITERAL token
	as the first argument.

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h: Add enum prefix.
	* parse/rust-parse.h (enum ParseSelfError): Change from enum...
	(enum class): To enum class.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Replace
	usages of reinterpret_cast with static_cast.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Remove
	override for StructStruct visitor.
	* resolve/rust-late-name-resolver-2.0.h (Late::visit): Likewise.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-context.cc (Context::Context): Remove
	initialization of resolver field.
	* backend/rust-compile-context.h (Context::get_resolver): Remove
	function.
	(Context::resolver): Remove field.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Assume name
	resolution 2.0 is always enabled.
	(CompileExpr::generate_closure_function): Likewise.
	* backend/rust-compile-implitem.cc (CompileTraitItem::visit):
	Likewise.
	* backend/rust-compile-item.cc (CompileItem::visit): Likewise.
	* backend/rust-compile-resolve-path.cc
	(ResolvePathRef::resolve): Likewise.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* lang.opt (frust-name-resolution-2.0): Enable by default.

2025-08-05  Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-compile-pattern.cc (CompilePatternCheckExpr::visit(TuplePattern)):
		Implement check expression compilation for TuplePatternItems::RANGED.

2025-08-05  Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (visit(TuplePattern)): Fix
		incorrect logic for field size checking.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-builder.cc: Remove extra include, fix new formatting.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h (reconstruct_vec): Pre-allocate size of vector.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Remove object file for ASTTypeBuilder.
	* ast/rust-ast-builder.h: Remove function.
	* ast/rust-ast-builder.cc (Builder::new_type): Likewise.
	(Builder::new_const_param): Use reconstruct_type() instead.
	(Builder::new_generic_args): Likewise.
	* expand/rust-derive-default.cc (DeriveDefault::visit_struct): Likewise.
	(DeriveDefault::visit_tuple): Likewise.
	* expand/rust-derive-eq.cc (DeriveEq::visit_tuple): Likewise.
	(DeriveEq::visit_struct): Likewise.
	(DeriveEq::visit_enum): Likewise.
	(DeriveEq::visit_union): Likewise.
	* ast/rust-ast-builder-type.cc: Removed.
	* ast/rust-ast-builder-type.h: Removed.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h: Add reconstruct() and reconstruct_impl() for Type nodes.
	* ast/rust-type.h: Implement them.
	* ast/rust-macro.h: Likewise.
	* ast/rust-path.h: Likewise.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h (reconstruct): New function for calling the `reconstruct_*_impl` method
	and asserting that the new NodeId is different, and then wrap it in a unique_ptr<T>.
	(reconstruct_vec): Likewise, but for vectors of unique_ptr<T>

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-forever-stack.hxx (ForeverStack::resolve_path):
	Resolve final segments which point to modules.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
	Avoid inserting module names into ribs in the type namespace.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-late-name-resolver-2.0.cc
	(visit_identifier_as_pattern): Handle is_ref and is_mut.
	(Late::visit): Likewise.
	* resolve/rust-name-resolution-context.cc
	(BindingLayer::insert_ident): Likewise.
	(BindingLayer::bind_test): Handle changes to BindingLayer
	fields.
	(BindingLayer::merge): Likewise and emit more error messages.
	* resolve/rust-name-resolution-context.h
	(struct IdentifierMode): New.
	(Binding::has_expected_bindings): New field.
	(Binding::set): Rename field to...
	(Binding::idents): ...here and convert from a set to a map.
	(Binding::Binding): Initialize has_expected_bindings.
	(BindingLayer::insert_ident): Adjust parameters.

2025-08-05  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-expr.h: Add getter to locus field.
	* ast/rust-pattern.h (tokenid_to_rangekind): Likewise.
	* hir/tree/rust-hir-item.h: Likewise.
	* hir/tree/rust-hir-visibility.h: Likewise.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc
	(DefaultResolver::visit_extern_crate): New function.
	(DefaultResolver::visit): New visitor function for ExternCrate.
	* resolve/rust-default-resolver.h
	(DefaultResolver::visit_extern_crate): New function.
	(DefaultResolver::visit): New visitor function for ExternCrate.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
	Adjust ExternCrate visitor and rename to...
	(TopLevel::visit_extern_crate): ...here.
	* resolve/rust-toplevel-name-resolver-2.0.h (TopLevel::visit):
	Remove ExternCrate visitor override.
	(TopLevel::visit_extern_crate): New function.
	* rust-session-manager.cc (Session::load_extern_crate): Only run
	name resolution 1.0 if name resolution 2.0 is disabled.

2025-08-05  Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit(TuplePattern)):
		Implement type checking for ItemType::RANGED.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-lang.cc: Move version check from C++11 to C++14.

2025-08-05  Ryutaro Okada  <1015ryu88@gmail.com>

	* Make-lang.in: Scaffolding new rust-hir-visitor files
	* hir/tree/rust-hir-visitor.h (DefaultHIRVisitor): Declare default HIR visitor
	* hir/tree/rust-hir-visitor.cc  (DefaultHIRVisitor): Define default HIR visitor

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* Make-lang.in (GRS_OBJS): Add rust-ggc.o.
	* backend/rust-compile-base.cc
	(HIRCompileBase::compile_function): Adjust call to
	Backend::function.
	(HIRCompileBase::compile_constant_item): Likewise and adjust
	initialization of Backend::typed_identifier.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Adjust call
	to Backend::label.
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit):
	Adjust initialization of Backend::typed_identifier.
	* rust-backend.h: Add includes.
	(Backend::GGC::Ident): Use Rust::GGC::Ident.
	(struct typed_identifier): Store name as a GGC::Ident rather
	than a std::string and adjust constructors.
	(named_type): Take GGC::Ident/tl::optional<GGC::Ident> rather
	than std::string.
	(global_variable): Likewise.
	(local_variable): Likewise.
	(parameter_variable): Likewise.
	(static_chain_variable): Likewise.
	(label): Likewise.
	(function): Likewise.
	* rust-gcc.cc (named_type): Likewise.
	(global_variable): Likewise.
	(local_variable): Likewise.
	(parameter_variable): Likewise.
	(static_chain_variable): Likewise.
	(label): Likewise.
	(function): Likewise.
	(function_defer_statement): Adjust call to Backend::label.
	(get_identifier_from_string): Remove function.
	(fill_in_fields): Handle adjustments to typed_identifier.
	* util/rust-ggc.cc: New file.
	* util/rust-ggc.h: New file.

2025-08-05  Ryutaro Okada  <1015ryu88@gmail.com>

	* hir/tree/rust-hir-item.h (SelfParam::get_lifetime): Add getter
	for non const lifetime object

2025-08-05  Ryutaro Okada  <1015ryu88@gmail.com>

	* hir/tree/rust-hir-expr.h (MatchArm::get_outer_attrs): Add getter for outer attributions

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-resolve-path.cc: if this fails fall back to query compile

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): add const call check
	* backend/rust-compile-item.cc (CompileItem::visit): ensure we upfront compile types where
	possible
	* backend/rust-compile-item.h: update header
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): make parent ctx optional

2025-08-05  Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-compile-pattern.cc(CompilePatternCheckExpr::visit(TupleStructPattern)):
		Fix error thrown when compiling non-enum TupleStructPattern.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit):
	Call DefaultASTVisitor::visit even on ConstantItem instances
	without expressions.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (UnifyRules::expect_fnptr): add unify rules

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-reference.cc (TraitReference::on_resolved): ensure associated
	types are done first
	* typecheck/rust-hir-type-check-type.cc: Update call site.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-bounds.cc: Check super traits for type bindings.
	* typecheck/rust-tyty.h: Add helper methods for bound checking.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-bounds.h: Rename method.
	* typecheck/rust-tyty-bounds.cc: Refactor marker trait assembly
	and add proper Fn trait handling for function types.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-dot-operator.cc: Major refactoring and cleanup.
	* typecheck/rust-hir-dot-operator.h: Add new helper methods.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-resolve.cc: Add cyclical projection
	protection.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc: Look at bounds behind
	references.
	* typecheck/rust-hir-type-check-expr.h: Add helper method.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-session-manager.cc (Session::compile_crate): Move
	AST desugaring to...
	(Session::expansion): ...here and add a final TopLevel pass
	afterwards.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): check for has_expr
	* hir/rust-hir-dump.cc (Dump::visit): likewise
	* hir/tree/rust-hir-item.h: add has_expr helper
	* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): check for has_expr
	* resolve/rust-ast-resolve-stmt.h: likewise
	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): likewise

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Add
	visitor for ExternCrate.
	* hir/rust-ast-lower-item.h (ASTLoweringItem::visit): Likewise.
	* rust-session-manager.cc (Session::load_extern_crate): Avoid
	lowering or type resolving external crates here.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
	Add visitor for ExternCrate.
	* typecheck/rust-hir-type-check-item.h (TypeCheckItem::visit):
	Replace empty definition with a declaration.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (ParamType::handle_substitions): make this consistent

2025-08-05  Zhi Heng  <yapzhhg@gmail.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit(IdentifierPattern)):
	Remove redundant subpattern check.

2025-08-05  Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-compile-pattern.cc: Add support for IdentifierPattern's
		subpattern under CompilePatternBindings.

2025-08-05  Zhi Heng  <yapzhhg@gmail.com>

	* resolve/rust-ast-resolve-pattern.cc: Implement name resolution for
		IdentifierPattern's subpattern.
	* resolve/rust-late-name-resolver-2.0.cc: Ditto, but for nr2.

2025-08-05  Zhi Heng  <yapzhhg@gmail.com>

	* ast/rust-ast-collector.cc: Rename get_pattern_to_bind to get_subpattern
	* ast/rust-ast-visitor.cc: Ditto.
	* ast/rust-pattern.h: Ditto.
	* expand/rust-cfg-strip.cc: Ditto.
	* hir/rust-ast-lower-pattern.cc: Ditto.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit):
	Adjust scoping of trait definitions and their generic
	parameters.
	* resolve/rust-forever-stack.hxx (ForeverStack::get): Prevent
	lookups inside TraitOrImpl ribs.
	(ForeverStack::resolve_segments): Prevent lookups of the first
	segment inside TraitOrImpl ribs.

2025-08-05  Zhi Heng  <yapzhhg@gmail.com>

	* hir/rust-hir-dump.cc: Change pattern dumps to use visit_field.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive.cc: Fix formatting after fork update.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-cmp-common.cc (EnumMatchBuilder::tuple): Create two different
	variant paths.
	(EnumMatchBuilder::strukt): Likewise.
	* expand/rust-derive-cmp-common.h: Change API.
	* expand/rust-derive-ord.cc (DeriveOrd::visit_enum): Use new EnumMatchBuilder API.
	* expand/rust-derive-partial-eq.cc (DerivePartialEq::visit_enum): Likewise.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-ord.cc (DeriveOrd::make_cmp_arms): Use new make_equal function.
	(DeriveOrd::make_equal): New function.
	(DeriveOrd::recursive_match): Handle the unit struct/tuple case.
	* expand/rust-derive-ord.h: Declare make_equal.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-ord.cc (DeriveOrd::cmp_call): Use references.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-ord.cc (DeriveOrd::make_cmp_arms): Fix condition.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-ord.cc: Finish implementation for enums.
	* expand/rust-derive-ord.h: Likewise.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-partial-eq.cc (DerivePartialEq::eq_fn): Change signature.
	(DerivePartialEq::visit_tuple): Use new eq_fn API.
	(DerivePartialEq::visit_struct): Likewise.
	(DerivePartialEq::visit_enum): Implement proper discriminant comparison.
	* expand/rust-derive-partial-eq.h: Change eq_fn signature.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-cmp-common.h (class EnumMatchBuilder): New helper class.
	* expand/rust-derive-cmp-common.cc (EnumMatchBuilder::tuple): New function.
	(EnumMatchBuilder::strukt): New function.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-builder.h: Put `loc` member in public.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-ord.cc (DeriveOrd::cmp_call): New function.
	(DeriveOrd::recursive_match): Use it.
	(DeriveOrd::visit_enum): Likewise.
	* expand/rust-derive-ord.h: Declare it.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-hash.cc (DeriveHash::visit_enum): Use new APIs.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-builder.cc (Builder::discriminant_value): New function.
	* ast/rust-ast-builder.h: Declare it.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-ord.cc (is_last): Remove.
	(DeriveOrd::visit_tuple): Fix implementation.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-cmp-common.cc (SelfOther::indexes): Fix formatting.
	(SelfOther::fields): Make iterator const.
	* expand/rust-derive-cmp-common.h (struct SelfOther): New declaration for indexes.
	* expand/rust-derive-partial-eq.cc (DerivePartialEq::visit_tuple): Use the new API.
	(DerivePartialEq::visit_struct): Likewise.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-ord.cc (DeriveOrd::make_cmp_arms): New function.
	(is_last): Likewise.
	(recursive_match): Likewise.
	(DeriveOrd::recursive_match): Likewise.
	(DeriveOrd::visit_struct): Add proper implementation.
	(DeriveOrd::visit_union): Likewise.
	* expand/rust-derive-ord.h: Declare these new functions.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-partial-eq.cc (DerivePartialEq::tuple_indexes): Remove.
	(DerivePartialEq::field_acccesses): Remove.
	(DerivePartialEq::visit_tuple): Use new API.
	(DerivePartialEq::visit_struct): Likewise.
	* expand/rust-derive-partial-eq.h: Remove declarations.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-cmp-common.cc: New file.
	* expand/rust-derive-cmp-common.h: New file.
	* Make-lang.in: Compile them.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-builder.cc (Builder::block): New function.
	(Builder::match_case): Likewise.
	* ast/rust-ast-builder.h: Declare them.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-builder.cc (Builder::new_const_param): New function.
	* ast/rust-ast-builder.h (vec): New function for creating 3 elts vector.
	* expand/rust-derive.cc: Use the new_const_param builder.
	* ast/rust-path.h: Add get_default_value() method.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Compile it.
	* expand/rust-derive.cc (DeriveVisitor::derive): Call them.
	* expand/rust-derive-ord.cc: New file.
	* expand/rust-derive-ord.h: New file.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-clone.h: Add missing override qualifiers to DeriveVisitor methods.
	* expand/rust-derive-copy.h: Likewise.
	* expand/rust-derive-eq.h: Likewise.
	* expand/rust-derive-hash.h: Likewise.
	* expand/rust-derive-partial-eq.h: Likewise.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-rib.h: Add missing switch cases.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-type-util.cc (query_type): early return.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): reuse GCC's build_array_type

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-late-name-resolver-2.0.cc
	(visit_identifier_as_pattern): Make sure to map identifiers
	inside or-bindings to prior identifiers.

2025-08-05  Zhi Heng  <yapzhhg@gmail.com>

	* ast/rust-ast-collector.cc: Rename to_bind to subpattern.
	* ast/rust-ast-visitor.cc: Ditto.
	* ast/rust-pattern.cc: Ditto.
	* ast/rust-pattern.h: Ditto.
	* backend/rust-compile-pattern.cc: Ditto.
	* expand/rust-cfg-strip.cc: Ditto.
	* hir/rust-ast-lower-pattern.cc: Ditto.
	* hir/rust-hir-dump.cc: Ditto.
	* hir/tree/rust-hir-pattern.h: Ditto.
	* hir/tree/rust-hir.cc: Ditto.
	* typecheck/rust-hir-type-check-pattern.cc: Ditto.

2025-08-05  Zhi Heng  <yapzhhg@gmail.com>

	* backend/rust-compile-pattern.cc: Add CheckExpr compilation for
		IdentifierPattern with subpattern.
	* backend/rust-compile-pattern.h: Modify IdentifierPattern's
		visit func to support the above.
	* typecheck/rust-hir-type-check-pattern.cc: Add typechecking
		support for the changes above.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc
	(DefaultResolver::visit_closure_params): New member function
	definition.
	(DefaultResolver::visit): New visiting function definition for
	ClosureExpr called from visiting functions for ClosureExprInner
	and ClosureExprInnerTyped.
	* resolve/rust-default-resolver.h
	(DefaultResolver::visit_closure_params): New member function
	declaration.
	(DefaultResolver::visit): New visiting function declaration for
	ClosureExpr.
	* resolve/rust-late-name-resolver-2.0.cc (add_captures): Remove
	function.
	(Late::visit): New visiting function definition for ClosureExpr,
	remove visiting function definitions for ClosureExprInner and
	ClosureExprInnerTyped.
	(Late::visit_closure_params): New member function definition.
	* resolve/rust-late-name-resolver-2.0.h (Late::visit): New
	visiting function declaration for ClosureExpr, remove visiting
	function declarations for ClosureExprInner and
	ClosureExprInnerTyped.
	(Late::visit_closure_params): New member function declaration.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-forever-stack.hxx (ForeverStack::resolve_path):
	Handle single segment paths "crate", "self", and "super".

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Use
	visit_identifier_as_pattern to handle IdentifierPattern and
	StructPatternFieldIdent.
	(visit_identifier_as_pattern): New function.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-expr.h (ClosureExpr::get_definition_expr): New
	virtual member function.
	(ClosureExprInner::get_definition_expr): Add override specifier.
	(ClosureExprInnerTyped::get_definition_block): Rename to...
	(ClosureExprInnerTyped::get_definition_expr): ...here and add
	override specifier.
	* ast/rust-ast-collector.cc (TokenCollector::visit): Handle
	rename of ClosureExprInnerTyped::get_definition_block to
	ClosureExprInnerTyped::get_definition_expr.
	* 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-expr.cc (ASTLoweringExpr::visit): Likewise.
	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
	Likewise.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit):
	Likewise.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-base.cc
	(HIRCompileBase::compile_function): Since canonical paths
	returned from nr2.0 now include the crate name, avoid prepending
	the crate name again.
	* backend/rust-compile-implitem.cc (CompileTraitItem::visit):
	Use NameResolutionContext::to_canonical_path instead of
	ForeverStack::to_canonical_path.
	* backend/rust-compile-item.cc (CompileItem::visit): 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.cc
	(TraitItemReference::get_type_from_fn): Likewise.
	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Add
	Crate and EnumItem instance visitors, handle canonical path
	context scoping.
	* resolve/rust-default-resolver.h (DefaultResolver::visit): Add
	Crate and EnumItem instance visitors.
	* resolve/rust-early-name-resolver-2.0.cc (Early::go): Visit
	instances of Crate using the virtual member function visit.
	* resolve/rust-forever-stack.h
	(ForeverStack::to_canonical_path): Remove function declaration.
	* resolve/rust-forever-stack.hxx
	(ForeverStack::to_canonical_path): Remove function definition.
	* resolve/rust-late-name-resolver-2.0.cc (Late::go): Visit
	instances of Crate using the virtual member function visit.
	* resolve/rust-name-resolution-context.cc
	(CanonicalPathRecordCrateRoot::as_path): New function definition.
	(CanonicalPathRecordNormal::as_path): Likewise.
	(CanonicalPathRecordLookup::as_path): Likewise.
	(CanonicalPathRecordImpl::as_path): Likewise.
	(CanonicalPathRecordTraitImpl::as_path): Likewise.
	(NameResolutionContext::NameResolutionContext): Initialize
	member variable canonical_ctx.
	* resolve/rust-name-resolution-context.h: Include "rust-item.h".
	(class NameResolutionContext): Forward declare class.
	(class CanonicalPathRecord): New class.
	(class CanonicalPathRecordWithParent): Likewise.
	(class CanonicalPathRecordCrateRoot): Likewise.
	(class CanonicalPathRecordNormal): Likewise.
	(class CanonicalPathRecordLookup): Likewise.
	(class CanonicalPathRecordImpl): Likewise.
	(class CanonicalPathRecordTraitImpl): Likewise.
	(class CanonicalPathCtx): Likewise.
	(NameResolutionContext::canonical_ctx): New member variable.
	(NameResolutionContext::to_canonical_path): New member function.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go):
	Visit instances of Crate with the virtual member function visit.
	(TopLevel::visit): Handle canonical path context scoping for
	external crates, use DefaultResolver::visit when visiting
	instances of StructStruct.
	* util/rust-canonical-path.h (CanonicalPath::new_seg): Take path
	parameter by-value, as a duplicate instance will be constructed
	regardless.

2025-08-05  Zhi Heng  <yapzhhg@gmail.com>

	* hir/rust-ast-lower-pattern.cc: Lower of IdentifierPattern's to_bind to HIR.
	* hir/rust-hir-dump.cc: Update IdentifierPattern's dump to properly show to_bind's full
	full properties.

2025-08-05  Vishruth-Thimmaiah  <vishruththimmaiah@gmail.com>

	* lex/rust-lex.cc (Lexer::parse_raw_byte_string):
	Fix infinite looping when a raw byte string is not terminated.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Use
	visit_impl_type to visit the self types of impl blocks.
	* resolve/rust-default-resolver.h
	(DefaultResolver::visit_impl_type): New member function
	declaration.
	* resolve/rust-late-name-resolver-2.0.cc (Late::Late):
	Initialize member variable block_big_self.
	(Late::visit_impl_type): New member function definition.
	(Late::visit): Check for Self while inside impl block self
	types.
	* resolve/rust-late-name-resolver-2.0.h (Late::visit_impl_type):
	New member function.
	(Late::block_big_self): New member variable.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-forever-stack.h
	(enum ResolutionMode): New.
	(ForeverStack::get): Add a private overload that takes a
	starting node as a parameter.
	(ForeverStack::resolve_path): Replace boolean parameter
	has_opening_scope_resolution with ResolutionMode parameter mode.
	* resolve/rust-forever-stack.hxx
	(ForeverStack::resolve_path): Likewise.
	(ForeverStack::get): Add a private overload that takes a
	starting node as a parameter.
	* resolve/rust-late-name-resolver-2.0.cc
	(Late::visit): Add Visibility visitor.
	* resolve/rust-late-name-resolver-2.0.h
	(Late::visit): Likewise.
	* resolve/rust-name-resolution-context.h
	(NameResolutionContext::resolve_path): Rework overloading a bit
	and accept ResolutionMode parameter.

2025-08-05  Vishruth-Thimmaiah  <vishruththimmaiah@gmail.com>

	* parse/rust-parse.cc (Rust::extract_module_path):
	Handle empty or whitespace-only path attributes.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Handle
	changed type of ConstantItem::identifier.
	* ast/rust-ast.cc (ConstantItem::as_string): Likewise.
	* ast/rust-ast.h (operator const std::string &): New member
	function.
	* ast/rust-item.h (ConstantItem::identifier): Change type from
	std::string to Identifier.
	(ConstantItem::ConstantItem): Handle changed type of identifier
	field.
	(ConstantItem::is_unnamed): Likewise.
	(ConstantItem::get_identifier): Likewise.
	* hir/rust-ast-lower-extern.h (ASTLoweringExternItem::visit):
	Avoid discarding location of wildcard patterns.
	* lex/rust-token.cc: Include "rust-ast.h".
	(Token::make_identifier): Add overload accepting an Identifier
	instance.
	* lex/rust-token.h (class Identifier): Add forward declaration
	in order to...
	(Token::make_identifier): ...declare an overload for this static
	member function.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* hir/tree/rust-hir-expr.h: New classes.
	* hir/tree/rust-hir-full-decls.h: Likewise.
	* hir/tree/rust-hir.cc: Handle AnonConst and ConstBlock.
	* backend/rust-compile-block.cc: Likewise.
	* backend/rust-compile-block.h: Likewise.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
	* 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-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-expr.cc (ASTLoweringExpr::visit): Likewise.
	(translate_operand_out): Likewise.
	(translate_operand_inout): Likewise.
	(translate_operand_const): Likewise.
	* hir/rust-ast-lower-expr.h: Likewise.
	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
	* hir/rust-hir-dump.h: Likewise.
	* hir/tree/rust-hir-expr-abstract.h: Likewise.
	* hir/tree/rust-hir-expr.cc (AnonConst::AnonConst): Likewise.
	(AnonConst::operator=): Likewise.
	(ConstBlock::ConstBlock): Likewise.
	(ConstBlock::operator=): Likewise.
	* hir/tree/rust-hir-visitor.h:
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
	(typecheck_inline_asm_operand): Likewise.
	* typecheck/rust-hir-type-check-expr.h: Likewise.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_const_block_expr): New function.
	* parse/rust-parse.h: Declare it.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-expr.h: Declare AnonConst and ConstBlock and use them.
	* ast/rust-ast-full-decls.h: Likewise.
	* ast/rust-ast.cc: Add implementation for AnonConst and ConstBlock.
	* ast/rust-ast.h: Likewise.
	* ast/rust-ast-collector.cc (TokenCollector::visit): Likewise.
	* ast/rust-ast-collector.h: Likewise.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
	* ast/rust-ast-visitor.h: 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-expr.cc (translate_operand_const): Likewise.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
	* resolve/rust-ast-resolve-base.h: Likewise.
	* resolve/rust-ast-resolve-expr.h: Likewise.
	* resolve/rust-ast-resolve-expr.cc: Likewise.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-coercion.cc (TypeCoercionRules::coerce_unsized): dont emit error here
	* typecheck/rust-unify.cc (UnifyRules::resolve_subtype): new helper to handle emit error
	(UnifyRules::expect_adt): call resolve_subtype
	(UnifyRules::expect_reference): likewise
	(UnifyRules::expect_pointer): likewise
	(UnifyRules::expect_array): likewise
	(UnifyRules::expect_slice): likewise
	(UnifyRules::expect_fndef): likewise
	(UnifyRules::expect_fnptr): likewise
	(UnifyRules::expect_tuple): likewise
	(UnifyRules::expect_closure): likewise
	(UnifyRules::expect_opaque): likeiwse
	* typecheck/rust-unify.h: add new helper to header

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc
	(DefaultResolver::visit_if_let_patterns): New function
	definition.
	(DefaultResolver::visit): New IfLetExpr visitor definition.
	* resolve/rust-default-resolver.h
	(DefaultResolver::visit_if_let_patterns): New function
	declaration.
	(DefaultResolver::visit): New IfLetExpr visitor declaration.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Remove
	IfLetExpr visitor definition.
	(Late::visit_if_let_patterns): New function definition.
	* resolve/rust-late-name-resolver-2.0.h (Late::visit): Remove
	IfLetExpr visitor declaration.
	(Late::visit_if_let_patterns): New function declaration.
	* resolve/rust-name-resolution-context.h (BindingSource::IfLet):
	New enumerator.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): we need to resolve the
	underlying type
	* typecheck/rust-substitution-mapper.cc (SubstMapperInternal::visit): just clone
	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
	ensure we monomphize to get the underlying
	* typecheck/rust-tyty.cc (BaseType::destructure): handle opaque types
	(OpaqueType::resolve): this is much simpler now
	(OpaqueType::handle_substitions): no longer needed
	* typecheck/rust-tyty.h: update header
	* typecheck/rust-unify.cc (UnifyRules::expect_opaque): unify rules for opaque

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): use get_name
	* typecheck/rust-tyty.cc (TupleType::get_name): likewise

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::check_base_type_privacy):
	no need for unreachable here
	* typecheck/rust-unify.cc (UnifyRules::commit): dont clone infer vars
	(UnifyRules::expect_inference_variable): likewise

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check.h: new function
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::compute_inference_variables):
	call the new helper
	(TypeCheckContext::compute_infer_var): refactored code

2025-08-05  Tom Schollenberger  <tss2344@g.rit.edu>

	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes): rust_assert to if

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_expr_stmt): Avoid
	reference binding and remove std::move in return statements.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-visitor.cc
	(DefaultASTVisitor::visit): Only visit the path of an instance
	of Visibility if the instance has a path.
	* ast/rust-ast.h
	(SimplePath::SimplePath): Make sure constructors are explicit.
	* resolve/rust-early-name-resolver-2.0.cc
	(Early::visit_attributes): Pass entire paths to
	NameResolutionContext::resolve_path.
	(Early::visit): Likewise and avoid copying a path.
	* resolve/rust-forever-stack.hxx
	(ForeverStack::resolve_path): Assert that at least one path
	segment has been passed in.

2025-08-05  Marc Poulhiès  <dkm@kataplop.net>

	* rust-attribs.cc (handle_hot_attribute): Remove clang-format comment.

2025-08-05  Marc Poulhiès  <dkm@kataplop.net>

	* ast/rust-ast-builder-type.cc (ASTTypeBuilder::visit): Reindent.
	* ast/rust-ast-builder.cc (Builder::new_generic_args): Likewise.
	* ast/rust-ast-collector.cc (TokenCollector::visit): Likewise.
	* ast/rust-ast-dump.h (debug): Likewise.
	* ast/rust-ast-formatting.h (indent_spaces): Likewise.
	(get_string_in_delims): Likewise.
	(get_mode_dump_desc): Likewise.
	(append_attributes): Likewise.
	(unquote_string): Likewise.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
	* ast/rust-ast.cc (Attribute::get_traits_to_derive): Likewise.
	(UseTreeGlob::as_string): Likewise.
	(UseTreeList::as_string): Likewise.
	(AttributeParser::parse_path_meta_item): Likewise.
	(FormatArgs::set_outer_attrs): Likewise.
	* ast/rust-ast.h (operator<<): Likewise.
	* ast/rust-cond-compilation.h: Likewise.
	* ast/rust-desugar-apit.cc: Likewise.
	* ast/rust-fmt.h (collect_pieces): Likewise.
	(clone_pieces): Likewise.
	* ast/rust-pattern.h (tokenid_to_rangekind): Likewise.
	* backend/rust-compile-context.cc (Context::type_hasher): Likewise.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
	* backend/rust-compile-intrinsic.cc (get_identifier): Likewise.
	(offset_handler): Likewise.
	(sizeof_handler): Likewise.
	(transmute_handler): Likewise.
	(rotate_handler): Likewise.
	(wrapping_op_handler_inner): Likewise.
	(op_with_overflow_inner): Likewise.
	(uninit_handler): Likewise.
	(move_val_init_handler): Likewise.
	(assume_handler): Likewise.
	(discriminant_value_handler): Likewise.
	(variant_count_handler): Likewise.
	(prefetch_data_handler): Likewise.
	(atomic_store_handler_inner): Likewise.
	(atomic_load_handler_inner): Likewise.
	(unchecked_op_inner): Likewise.
	(copy_handler_inner): Likewise.
	(expect_handler_inner): Likewise.
	(try_handler_inner): Likewise.
	* backend/rust-compile-pattern.cc (compile_range_pattern_bound): Likewise.
	(CompilePatternCheckExpr::visit): Likewise.
	(CompilePatternBindings::visit): Likewise.
	(CompilePatternLet::visit): Likewise.
	* backend/rust-compile-var-decl.h: Likewise.
	* backend/rust-constexpr.cc (verify_constant): Likewise.
	(find_array_ctor_elt): Likewise.
	(array_index_cmp): Likewise.
	(potential_constant_expression_1): Likewise.
	(unshare_constructor): Likewise.
	(maybe_save_constexpr_fundef): Likewise.
	(returns): Likewise.
	(breaks): Likewise.
	(continues): Likewise.
	(switches): Likewise.
	(constant_value_1): Likewise.
	(decl_constant_value): Likewise.
	(non_const_var_error): Likewise.
	(eval_constant_expression): Likewise.
	(constexpr_fn_retval): Likewise.
	(eval_store_expression): Likewise.
	(eval_call_expression): Likewise.
	(eval_binary_expression): Likewise.
	(get_function_named_in_call): Likewise.
	(eval_statement_list): Likewise.
	(extract_string_elt): Likewise.
	(eval_conditional_expression): Likewise.
	(eval_bit_field_ref): Likewise.
	(eval_loop_expr): Likewise.
	(eval_switch_expr): Likewise.
	(eval_unary_expression): Likewise.
	(get_or_insert_ctor_field): Likewise.
	(eval_and_check_array_index): Likewise.
	* backend/rust-constexpr.h (maybe_save_constexpr_fundef): Likewise.
	* backend/rust-mangle-v0.cc (v0_path): Likewise.
	(v0_complex_type_prefix): Likewise.
	* backend/rust-mangle.h (legacy_mangle_item): Likewise.
	(v0_mangle_item): Likewise.
	* backend/rust-tree.cc (convert_to_void): Likewise.
	(find_parameter_packs_r): Likewise.
	(rs_tree_equal): Likewise.
	(publicly_uniquely_derived_p): Likewise.
	(instantiation_dependent_expression_p): Likewise.
	(type_has_nontrivial_copy_init): Likewise.
	(is_normal_capture_proxy): Likewise.
	(is_bitfield_expr_with_lowered_type): Likewise.
	(undeduced_auto_decl): Likewise.
	(require_deduced_type): Likewise.
	(gt_pch_nx): Likewise.
	(lvalue_kind): Likewise.
	* backend/rust-tree.h (LANG_DECL_MIN_CHECK): Likewise.
	(LANG_DECL_FN_CHECK): Likewise.
	(LANG_DECL_NS_CHECK): Likewise.
	(LANG_DECL_PARM_CHECK): Likewise.
	(LANG_DECL_DECOMP_CHECK): Likewise.
	(resort_type_member_vec): Likewise.
	(convert_to_void): Likewise.
	(mark_discarded_use): Likewise.
	(mark_exp_read): Likewise.
	(mark_use): Likewise.
	(mark_rvalue_use): Likewise.
	(mark_lvalue_use): Likewise.
	(mark_lvalue_use_nonread): Likewise.
	(convert_from_reference): Likewise.
	(maybe_warn_nodiscard): Likewise.
	(expr_loc_or_loc): Likewise.
	(expr_loc_or_input_loc): Likewise.
	(get_fndecl_from_callee): Likewise.
	(pointer_offset_expression): Likewise.
	(is_empty_class): Likewise.
	(is_really_empty_class): Likewise.
	(rs_type_quals): Likewise.
	(init_modules): Likewise.
	(lookup_add): Likewise.
	(ovl_make): Likewise.
	(struct c_fileinfo): Likewise.
	(get_fileinfo): Likewise.
	(cxx_make_type): Likewise.
	(build_cplus_array_type): Likewise.
	(comptypes): Likewise.
	(rs_build_qualified_type_real): Likewise.
	(vector_targets_convertible_p): Likewise.
	(get_class_binding_direct): Likewise.
	(lang_check_failed): Likewise.
	(check_for_uninitialized_const_var): Likewise.
	(cp_fold_maybe_rvalue): Likewise.
	(fold_offsetof): Likewise.
	(fold_non_dependent_expr): Likewise.
	(in_immediate_context): Likewise.
	(cxx_mark_addressable): Likewise.
	(decl_constant_value): Likewise.
	(is_class_type): Likewise.
	(fold_builtin_is_pointer_inverconvertible_with_class): Likewise.
	(c_common_type_for_mode): Likewise.
	(next_common_initial_seqence): Likewise.
	(fold_builtin_is_corresponding_member): Likewise.
	(maybe_constant_value): Likewise.
	(rs_walk_subtrees): Likewise.
	(make_tree_vector): Likewise.
	(release_tree_vector): Likewise.
	(location_of): Likewise.
	(maybe_constant_init): Likewise.
	(explain_invalid_constexpr_fn): Likewise.
	(literal_type_p): Likewise.
	(maybe_constexpr_fn): Likewise.
	(fold_non_dependent_init): Likewise.
	* checks/errors/borrowck/polonius/rust-polonius.h (polonius_run): Likewise.
	(FFIVector__new): Likewise.
	(FFIVector__new_vec_pair): Likewise.
	(FFIVector__new_vec_triple): Likewise.
	(FFIVector__push): Likewise.
	(FFIVector__push_vec_triple): Likewise.
	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
	(ExprStmtBuilder::visit): Likewise.
	* checks/errors/borrowck/rust-bir-builder-pattern.cc
	(PatternBindingBuilder::visit): Likewise.
	* checks/errors/borrowck/rust-bir-dump.cc (Dump::visit): Likewise.
	* checks/errors/borrowck/rust-bir-fact-collector.h (points): Likewise.
	* checks/errors/borrowck/rust-bir-place.h: Likewise.
	* checks/errors/borrowck/rust-bir-visitor.h: Likewise.
	* checks/errors/privacy/rust-privacy-check.cc (saw_errors): Likewise.
	* checks/errors/privacy/rust-privacy-ctx.h (rust_privacy_ctx_test): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.cc
	(PrivacyReporter::check_for_privacy_violation): Likewise.
	(PrivacyReporter::check_base_type_privacy): Likewise.
	(PrivacyReporter::visit): Likewise.
	* checks/errors/privacy/rust-reachability.cc (ReachabilityVisitor::visit): Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc
	(VisibilityResolver::resolve_visibility): Likewise.
	* checks/errors/rust-hir-pattern-analysis.cc (Constructor::is_covered_by): Likewise.
	(PlaceInfo::specialize): Likewise.
	(WitnessPat::to_string): Likewise.
	(WitnessMatrix::apply_constructor): Likewise.
	(lower_pattern): Likewise.
	(lower_tuple_pattern): Likewise.
	(lower_struct_pattern): Likewise.
	* checks/errors/rust-hir-pattern-analysis.h (check_match_usefulness): Likewise.
	* expand/rust-cfg-strip.cc (CfgStrip::maybe_strip_generic_args): Likewise.
	* expand/rust-derive-eq.cc (DeriveEq::visit_enum): Likewise.
	* expand/rust-derive.cc: Likewise.
	* expand/rust-expand-format-args.cc (expand_format_args): Likewise.
	* expand/rust-expand-visitor.h (is_derive): Likewise.
	(is_builtin): Likewise.
	* expand/rust-macro-builtins-asm.cc (expand_inline_asm_strings): Likewise.
	* expand/rust-macro-builtins-asm.h (parse_asm): Likewise.
	(check_identifier): Likewise.
	(check_and_set): Likewise.
	(parse_label): Likewise.
	(parse_llvm_outputs): Likewise.
	(parse_llvm_inputs): Likewise.
	(parse_llvm_clobbers): Likewise.
	(parse_llvm_options): Likewise.
	* expand/rust-macro-builtins-helpers.h (make_macro_path_str): Likewise.
	(make_token): Likewise.
	(make_string): Likewise.
	(macro_end_token): Likewise.
	(parse_single_string_literal): Likewise.
	(source_relative_path): Likewise.
	(load_file_bytes): Likewise.
	* expand/rust-macro-expand.cc (MacroExpander::match_fragment): Likewise.
	(MacroExpander::match_matcher): Likewise.
	(MacroExpander::match_n_matches): Likewise.
	* expand/rust-macro-substitute-ctx.cc (SubstituteCtx::substitute_token): Likewise.
	* expand/rust-proc-macro.h (load_macros): Likewise.
	(generate_proc_macro_decls_symbol): Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_generic_args): Likewise.
	(ASTLoweringBase::lower_range_pattern_bound): Likewise.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Likewise.
	* hir/rust-ast-lower.h (struct_field_name_exists): Likewise.
	(translate_visibility): Likewise.
	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
	* hir/rust-hir-dump.h (debug): Likewise.
	* hir/tree/rust-hir.cc (UseTreeGlob::as_string): Likewise.
	(UseTreeList::as_string): Likewise.
	* lex/rust-lex.cc (Lexer::parse_escape): Likewise.
	(Lexer::parse_utf8_escape): Likewise.
	* lex/rust-lex.h (rust_input_source_test): Likewise.
	* lex/rust-token.cc (RS_TOKEN_KEYWORD_2015): Likewise.
	* lex/rust-token.h (get_token_description): Likewise.
	(token_id_to_str): Likewise.
	(token_id_is_keyword): Likewise.
	(token_id_keyword_string): Likewise.
	(get_type_hint_string): Likewise.
	(nfc_normalize_token_string): Likewise.
	* metadata/rust-export-metadata.cc (PublicInterface::write_to_path): Likewise.
	* metadata/rust-import-archive.cc: Likewise.
	* metadata/rust-imports.h (add_search_path): Likewise.
	* parse/rust-cfg-parser.h (parse_cfg_option): Likewise.
	(rust_cfg_parser_test): Likewise.
	* parse/rust-parse-impl.h (Parser::skip_generics_right_angle): Likewise.
	(Parser::parse_attr_input): Likewise.
	(Parser::parse_macro_match): Likewise.
	(Parser::parse_visibility): Likewise.
	(Parser::parse_module): Likewise.
	(Parser::parse_use_tree): Likewise.
	(Parser::parse_generic_param): Likewise.
	(Parser::parse_struct): Likewise.
	(Parser::parse_enum_item): Likewise.
	(Parser::parse_inherent_impl_item): Likewise.
	(Parser::parse_external_item): Likewise.
	(Parser::parse_generic_arg): Likewise.
	(Parser::parse_type_path_segment): Likewise.
	(Parser::parse_expr_stmt): Likewise.
	(Parser::parse_if_expr): Likewise.
	(Parser::parse_if_let_expr): Likewise.
	(Parser::parse_type): Likewise.
	(Parser::parse_for_prefixed_type): Likewise.
	(Parser::parse_slice_or_array_type): Likewise.
	(Parser::parse_type_no_bounds): Likewise.
	(Parser::parse_range_pattern_bound): Likewise.
	(Parser::parse_pattern_no_alt): Likewise.
	(Parser::parse_grouped_or_tuple_pattern): Likewise.
	(Parser::parse_ident_leading_pattern): Likewise.
	(Parser::parse_tuple_struct_items): Likewise.
	(Parser::parse_stmt_or_expr): Likewise.
	(Parser::parse_struct_expr_field): Likewise.
	(Parser::null_denotation): Likewise.
	(Parser::left_denotation): Likewise.
	(Parser::parse_closure_expr_pratt): Likewise.
	* parse/rust-parse.cc (peculiar_fragment_match_compatible): Likewise.
	(is_match_compatible): Likewise.
	* parse/rust-parse.h (extract_module_path): Likewise.
	(is_match_compatible): Likewise.
	* resolve/rust-ast-resolve-expr.cc (translate_operand): Likewise.
	* resolve/rust-ast-resolve-item.cc (flatten_glob): Likewise.
	(flatten_rebind): Likewise.
	(flatten_list): Likewise.
	(flatten): Likewise.
	* resolve/rust-ast-resolve-item.h (rust_simple_path_resolve_test): Likewise.
	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit): Likewise.
	(resolve_range_pattern_bound): Likewise.
	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): Likewise.
	(ResolveTypeToCanonicalPath::visit): Likewise.
	* resolve/rust-ast-resolve.cc (saw_errors): Likewise.
	* resolve/rust-early-name-resolver-2.0.cc (Early::finalize_rebind_import): Likewise.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc (flatten_glob): Likewise.
	* rust-backend.h (init): Likewise.
	(debug): Likewise.
	(get_identifier_node): Likewise.
	(wchar_type): Likewise.
	(get_pointer_size): Likewise.
	(raw_str_type): Likewise.
	(integer_type): Likewise.
	(float_type): Likewise.
	(pointer_type): Likewise.
	(reference_type): Likewise.
	(immutable_type): Likewise.
	(function_type): Likewise.
	(function_type_variadic): Likewise.
	(function_ptr_type): Likewise.
	(struct_type): Likewise.
	(union_type): Likewise.
	(array_type): Likewise.
	(named_type): Likewise.
	(type_field_offset): Likewise.
	(var_expression): Likewise.
	(float_constant_expression): Likewise.
	(string_constant_expression): Likewise.
	(char_constant_expression): Likewise.
	(wchar_constant_expression): Likewise.
	(boolean_constant_expression): Likewise.
	(convert_expression): Likewise.
	(struct_field_expression): Likewise.
	(compound_expression): Likewise.
	(conditional_expression): Likewise.
	(negation_expression): Likewise.
	(arithmetic_or_logical_expression): Likewise.
	(arithmetic_or_logical_expression_checked): Likewise.
	(comparison_expression): Likewise.
	(lazy_boolean_expression): Likewise.
	(constructor_expression): Likewise.
	(array_constructor_expression): Likewise.
	(array_initializer): Likewise.
	(array_index_expression): Likewise.
	(call_expression): Likewise.
	(init_statement): Likewise.
	(assignment_statement): Likewise.
	(return_statement): Likewise.
	(if_statement): Likewise.
	(loop_expression): Likewise.
	(exit_expression): Likewise.
	(statement_list): Likewise.
	(exception_handler_statement): Likewise.
	(block): Likewise.
	(block_add_statements): Likewise.
	(global_variable): Likewise.
	(global_variable_set_init): Likewise.
	(local_variable): Likewise.
	(parameter_variable): Likewise.
	(static_chain_variable): Likewise.
	(temporary_variable): Likewise.
	(label): Likewise.
	(function): Likewise.
	(function_defer_statement): Likewise.
	(function_set_parameters): Likewise.
	(write_global_definitions): Likewise.
	(fill_in_fields): Likewise.
	* rust-diagnostics.cc (expand_format): Likewise.
	(expand_message): Likewise.
	(va_constructor): Likewise.
	* rust-diagnostics.h (RUST_ATTRIBUTE_GCC_DIAG): Likewise.
	(rust_open_quote): Likewise.
	(rust_close_quote): Likewise.
	(rust_debug_loc): Likewise.
	* rust-gcc.cc (non_zero_size_type): Likewise.
	* rust-object-export.h (rust_field_alignment): Likewise.
	(rust_read_export_data): Likewise.
	(rust_write_export_data): Likewise.
	* rust-session-manager.cc (saw_errors): Likewise.
	(rust_get_linemap): Likewise.
	(validate_crate_name): Likewise.
	(Session::load_extern_crate): Likewise.
	* rust-session-manager.h (rust_crate_name_validation_test): Likewise.
	* rust-system.h (rust_preserve_from_gc): Likewise.
	(rust_localize_identifier): Likewise.
	* rust-target.h (rust_add_target_info): Likewise.
	* typecheck/rust-autoderef.cc:
	* typecheck/rust-casts.cc (TypeCastRules::cast_rules): Likewise.
	* typecheck/rust-coercion.cc (TypeCoercionRules::do_coercion): Likewise.
	(TypeCoercionRules::coerce_unsafe_ptr): Likewise.
	(TypeCoercionRules::coerce_borrowed_pointer): Likewise.
	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): Likewise.
	(TraitItemReference::is_object_safe): Likewise.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal): Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
	(typecheck_inline_asm_operand): Likewise.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItem::visit): Likewise.
	(TypeCheckImplItemWithTrait::visit): Likewise.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::visit): Likewise.
	* typecheck/rust-hir-type-check-type.cc
	(TypeResolveGenericParam::apply_trait_bounds): Likewise.
	(ResolveWhereClauseItem::visit): Likewise.
	* typecheck/rust-hir-type-check.cc (saw_errors): Likewise.
	(TraitItemReference::get_type_from_fn): Likewise.
	* typecheck/rust-type-util.h (query_type): Likewise.
	(types_compatable): Likewise.
	(unify_site): Likewise.
	(unify_site_and): Likewise.
	(coercion_site): Likewise.
	(try_coercion): Likewise.
	(cast_site): Likewise.
	* typecheck/rust-tyty-bounds.cc:
	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Likewise.
	* typecheck/rust-tyty-cmp.h:
	* typecheck/rust-tyty-variance-analysis.h (query_field_regions): Likewise.
	* typecheck/rust-tyty.cc (BaseType::is_unit): Likewise.
	(BaseType::has_substitutions_defined): Likewise.
	(BaseType::needs_generic_substitutions): Likewise.
	(BaseType::get_subst_argument_mappings): Likewise.
	(InferType::default_type): Likewise.
	(InferType::apply_primitive_type_hint): Likewise.
	* typecheck/rust-tyty.h (is_primitive_type_kind): Likewise.
	* typecheck/rust-unify.cc (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_never): Likewise.
	(UnifyRules::expect_placeholder): Likewise.
	(UnifyRules::expect_projection): Likewise.
	(UnifyRules::expect_dyn): Likewise.
	(UnifyRules::expect_closure): Likewise.
	(UnifyRules::expect_opaque): Likewise.
	* util/rust-abi.h (get_abi_from_string): Likewise.
	(get_string_from_abi): Likewise.
	* util/rust-attributes.cc (check_doc_attribute): Likewise.
	* util/rust-base62.h (base62_integer): Likewise.
	* util/rust-dir-owner.h (get_file_subdir): Likewise.
	* util/rust-edition.h (get_rust_edition): Likewise.
	* util/rust-punycode.h (encode_punycode): Likewise.
	(rust_punycode_encode_test): Likewise.
	* util/rust-token-converter.cc (convert): Likewise.
	(from_tokenstream): Likewise.
	* util/rust-token-converter.h (convert): Likewise.
	(convert_literal): Likewise.
	* util/rust-unicode.h (is_alphabetic): Likewise.
	(is_ascii_only): Likewise.
	(is_numeric): Likewise.
	(is_nfc_qc_no): Likewise.
	(is_nfc_qc_maybe): Likewise.
	(nfc_quick_check): Likewise.
	(rust_nfc_qc_test): Likewise.
	(rust_utf8_normalize_test): Likewise.
	(rust_utf8_property_test): Likewise.
	* util/rust-unwrap-segment.h (unwrap_segment_node_id): Likewise.

2025-08-05  Marc Poulhiès  <dkm@kataplop.net>

	* Make-lang.in (GRS_OBJS): Remove rust-macro.o.
	* ast/rust-macro.cc: Removed.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h
	(Parser::parse_attr_input): Handle more delimeter tokens and the
	END_OF_FILE token.
	(Parser::skip_after_end_attribute): Handle the END_OF_FILE
	token.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/rust-ast-lower-item.cc
	(ASTLoweringItem::visit): Keep going after a duplicate field is
	found.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/borrowck/rust-bir-builder-internal.h: Include
	"rust-immutable-name-resolution-context.h" and "options.h".
	(AbstractBuilder::resolve_label): Use the 2.0 name resolver when
	it's enabled.
	(AbstractBuilder::resolve_variable): Likewise.
	(AbstractBuilder::resolve_variable_or_fn): Likewise.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* expand/rust-derive-default.cc (DeriveDefault::visit_struct): use builder
	(DeriveDefault::visit_tuple): likewise
	* expand/rust-derive-eq.cc (DeriveEq::visit_tuple): likewise
	(DeriveEq::visit_struct): likewise
	(DeriveEq::visit_enum): likewise
	(DeriveEq::visit_union): likewise

2025-08-05  Marc Poulhiès  <dkm@kataplop.net>

	PR rust/120018
	* rust-attribs.cc (handle_noreturn_attribute): Reindent declaration.
	(handle_leaf_attribute): Likewise.
	(handle_const_attribute): Likewise.
	(handle_malloc_attribute): Likewise.
	(handle_pure_attribute): Likewise.
	(handle_novops_attribute): Likewise.
	(handle_nonnull_attribute): Likewise.
	(handle_nothrow_attribute): Likewise.
	(handle_type_generic_attribute): Likewise.
	(handle_transaction_pure_attribute): Likewise.
	(handle_returns_twice_attribute): Likewise.
	(handle_fnspec_attribute): Likewise.
	(handle_omp_declare_simd_attribute): Likewise.
	(handle_cold_attribute): New.
	(handle_hot_attribute): New.
	(attribute_spec::exclusions attr_cold_hot_exclusions): New.
	(grs_langhook_common_attributes): Make it static.
	(grs_langhook_common_attribute_table): New.
	(grs_langhook_gnu_attributes): New.
	(grs_langhook_gnu_attribute_table): New.
	(handle_malloc_attribute): Make it static.
	(handle_fnspec_attribute): Likewise.
	(handle_pure_attribute): Replace gcc_assert by explicit warning.
	(handle_novops_attribute): Likewise.
	(handle_nothrow_attribute): Likewise.
	(handle_returns_twice_attribute): Likewise.
	(handle_omp_declare_simd_attribute): Likewise and make it static.
	* rust-lang.cc (grs_langhook_gnu_attribute_table): New.
	(grs_langhook_common_attribute_table): Adjust type to new hook.
	(LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Remove.
	(LANG_HOOKS_ATTRIBUTE_TABLE): New.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-path.cc
	(TypePath::make_debug_string): Add definition.
	* ast/rust-path.h
	(TypePath::make_debug_string): Add declaration.
	* resolve/rust-default-resolver.cc
	(DefaultResolver::visit): Adjust InherentImpl and TraitImpl
	visitors to better handle associated item scope.
	* resolve/rust-default-resolver.h
	(DefaultResolver::maybe_insert_big_self): Add.
	* resolve/rust-late-name-resolver-2.0.cc
	(Late::visit): Adjust type path resolution errors.
	* resolve/rust-rib.h
	(Rib::Kind): Add Generics kind.
	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::visit): Remove InherentImpl and TraitImpl visitor
	overrides.
	(TopLevel::maybe_insert_big_self): Add override in order to add
	a definition of 'Self'.
	* resolve/rust-toplevel-name-resolver-2.0.h
	(TopLevel::visit): Remove InherentImpl and TraitImpl visitor
	overrides.
	(TopLevel::maybe_insert_big_self): Add override.

2025-08-05  0xn4utilus  <gyanendrabanjare8@gmail.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Implement for InlineAsm.
	* ast/rust-ast-full-decls.h (enum class): Move InlineAsmOption enum inside InlineAsm.
	* ast/rust-expr.h (enum class): Likewise.
	(class InlineAsm): Likewise.
	* expand/rust-macro-builtins-asm.cc (check_and_set): Likewise.
	(parse_options): Likewise.
	* expand/rust-macro-builtins-asm.h (check_and_set): Likewise.
	* hir/tree/rust-hir-expr.cc (InlineAsm::InlineAsm): Likewise.
	* hir/tree/rust-hir-expr.h: Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.

2025-08-05  Tom Schollenberger  <tss2344@g.rit.edu>

	* backend/rust-constexpr.cc (eval_constant_expression):  Check if t is a NULL_TREE

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* ast/rust-desugar-apit.cc: track if this is a impl-trait generic
	* ast/rust-item.h (class TypeParam): add field to track if from impl trait
	* hir/rust-ast-lower-type.cc (ASTLowerGenericParam::visit): likewise
	* hir/tree/rust-hir-item.cc (TypeParam::TypeParam): upate hir as well
	(TypeParam::operator=): likewise
	* hir/tree/rust-hir-item.h (class TypeParam): likewise
	* typecheck/rust-tyty-subst.cc (SubstitutionParamMapping::get_generic_param): add error
	* typecheck/rust-tyty-subst.h: add const getter for the associated TypeParm

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-visitor.cc
	(DefaultASTVisitor::visit): Make call to EnumItem visitor from
	EnumItem derived class visitors non-virtual.
	* ast/rust-collect-lang-items.cc
	(CollectLangItems::visit): Handle visitation of classes derived
	from EnumItem.
	* ast/rust-collect-lang-items.h
	(CollectLangItems::visit): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::visit): Call DefaultResolver::visit on EnumItem
	instances.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-pattern.cc
	(CompilePatternCheckExpr::visit): Fix GENERIC generation in
	light of enum layout changes since this code was written.
	(CompilePatternBindings::handle_struct_pattern_ident_pat):
	Delegate handling of child patterns to another
	CompilePatternBindings::Compile call.
	(CompilePatternBindings::make_struct_access): Make field name
	parameter const qualified.
	* backend/rust-compile-pattern.h
	(CompilePatternBindings::make_struct_access): Likewise.

2025-08-05  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-ast-resolve-item.cc
	(ResolveItem::visit): Use the return values of
	CanonicalPath::inherent_impl_seg and
	CanonicalPath::trait_impl_projection_seg more directly.
	* util/rust-canonical-path.h
	(CanonicalPath::trait_impl_projection_seg): Append "<impl "
	instead of "<" to the beginning of the returned path segment.
	(CanonicalPath::inherent_impl_seg): Likewise.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* Make-lang.in: new desugar file
	* ast/rust-ast.cc (ImplTraitTypeOneBound::as_string): its a unique_ptr now
	(FormatArgs::set_outer_attrs): reformat
	* ast/rust-path.h: remove has_generic_args assertion (can be empty because of desugar)
	* ast/rust-type.h (class ImplTraitTypeOneBound): add copy ctor and use unique_ptr
	* hir/rust-ast-lower-type.cc (ASTLoweringType::visit): update to use unique_ptr
	* parse/rust-parse-impl.h (Parser::parse_type): reuse the existing unique_ptr instead
	(Parser::parse_type_no_bounds): likewise
	(Parser::parse_pattern): likewise
	* resolve/rust-ast-resolve-type.cc (ResolveType::visit): its a unique_ptr now
	* rust-session-manager.cc (Session::compile_crate): call desugar
	* ast/rust-desugar-apit.cc: New file.
	* ast/rust-desugar-apit.h: New file.

2025-08-05  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-ast-lower-implitem.cc (ASTLowerImplItem::visit): allow impl type
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): likewise
	* hir/rust-ast-lower-type.cc (ASTLoweringType::ASTLoweringType): new flag for impl trait
	(ASTLoweringType::translate): pass flag
	(ASTLoweringType::visit): track impl trait tag
	(ASTLoweringType::emit_impl_trait_error): new diagnostic
	* hir/rust-ast-lower-type.h: add new field

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-partial-eq.cc (DerivePartialEq::match_enum_tuple): Remove debug call.
	(DerivePartialEq::match_enum_struct): Add proper implementation.
	(DerivePartialEq::visit_enum): Call it.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-builder.cc (Builder::struct_pattern_ident_pattern): New.
	* ast/rust-ast-builder.h: New declaration.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-compile-pattern.cc (CompilePatternBindings::make_struct_access):
	New function.
	(CompilePatternBindings::visit): Properly implement patterns mentioned above
	and call make_struct_accesss.
	* backend/rust-compile-pattern.h: New declaration.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-compile-pattern.h: Split struct pattern compilation into three functions.
	* backend/rust-compile-pattern.cc: Implement them.

2025-08-05  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::Late): False initialize the
	funny_error field.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* resolve/rust-ice-finalizer.cc: Update usage of "diagnostic_info"
	to explicitly refer to "diagnostics::diagnostic_info".
	* resolve/rust-ice-finalizer.h: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* backend/rust-tree.cc: Update for diagnostic_t becoming
	enum class diagnostics::kind.
	* backend/rust-tree.h: Likewise.
	* resolve/rust-ast-resolve-expr.cc: Likewise.
	* resolve/rust-ice-finalizer.cc: Likewise.
	* resolve/rust-ice-finalizer.h: Likewise.
	* resolve/rust-late-name-resolver-2.0.cc: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* resolve/rust-ast-resolve-expr.cc: Update for diagnostic_text_finalizer
	becoming diagnostics::text_finalizer.
	* resolve/rust-late-name-resolver-2.0.cc: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* resolve/rust-ice-finalizer.cc: Update for move of diagnostics
	output formats into namespace "diagnostics" as "sinks".
	* resolve/rust-ice-finalizer.h: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* rust-diagnostics.cc: Update #include for move of
	"diagnostic-metadata.h" to "diagnostics/metadata.h", and update
	for move of diagnostic_metadata to diagnostics::metadata.

2025-06-26  Martin Jambor  <mjambor@suse.cz>

	* checks/errors/borrowck/rust-borrow-checker-diagnostics.cc
	(BorrowCheckerDiagnostics::get_loan): Type cast loan to uint32_t.

2025-04-28  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/borrowck/rust-bir-place.h
	(IndexVec::size_type): Add.
	(IndexVec::MAX_INDEX): Add.
	(IndexVec::size): Change the return type to the type of the
	internal value used by the index type.
	(PlaceDB::lookup_or_add_variable): Use the return value from the
	PlaceDB::add_place call.
	* checks/errors/borrowck/rust-bir.h
	(struct BasicBlockId): Move this definition before the
	definition of the struct Function.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Visit visibility.

2025-04-28  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-visitor.cc
	(DefaultASTVisitor::visit): Visit the loop labels of
	WhileLetLoopExpr instances before visiting their scrutinee
	expressions.
	* resolve/rust-early-name-resolver-2.0.cc
	(Early::resolve_glob_import): Pass the glob import's path
	directly to NameResolutionContext::resolve_path.
	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::visit): Remove unnecessary call to
	Identifier::as_string.
	(flatten_glob): Improve handling of cases where a glob use tree
	has no path.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-derive-clone.cc (DeriveClone::clone_enum_struct): Clone
	path to avoid using the same nodeid.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit_function_params):
	Add specialized function to visit function parameters.
	(DefaultASTVisitor::visit): Remove parameter visit and call specialized
	function instead.
	* ast/rust-ast-visitor.h: Add function prototye.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Remove
	function.
	(Late::visit_function_params): Override specialized visit function.
	* resolve/rust-late-name-resolver-2.0.h: Add overriden function
	prototype.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-name-resolution-context.h: Use BindingLayer instead.
	* resolve/rust-name-resolution-context.cc (BindingLayer::BindingLayer):
	Add new constructor for binding layer.
	(BindingLayer::bind_test): Add a function to test a binding constraint.
	(BindingLayer::push): Push a new binding group.
	(BindingLayer::and_binded): Add function to test and-binding
	constraint.
	(BindingLayer::or_binded): Add function to test or-binding constraints.
	(BindingLayer::insert_ident): Insert a new identifier in the current
	binding group.
	(BindingLayer::merge): Merge current binding group with it's parent.
	(BindingLayer::get_source): Get the source of the current binding
	group.
	* resolve/rust-late-name-resolver-2.0.cc: Use stacked context for
	binding group.
	* util/rust-stacked-contexts.h: Add mutable peek function.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add binding
	creation in visitor.
	* resolve/rust-late-name-resolver-2.0.h: Add function prototypes.
	* resolve/rust-name-resolution-context.h: Add binding context.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-name-resolution-context.h (struct Binding): Add Binding
	struct to differentiate Or and Product bindings in patterns.
	(enum class): Add Binding kind.
	(class BindingContext): Add binding context with Binding stack.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Add hash function.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Add equality operator.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Add visit
	function for TypeParam.
	* resolve/rust-default-resolver.h: Add function prototype.
	* resolve/rust-forever-stack.h: Add function to check for forward
	declaration ban.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Check forward
	declarations.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Remove error kind
	and change function call.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Change call name.
	* ast/rust-path.cc (ConstGenericParam::as_string): Likewise.
	* ast/rust-path.h: Remove error kind.
	* hir/rust-ast-lower-type.cc (ASTLowerGenericParam::visit): Change call
	name.
	* parse/rust-parse-impl.h (Parser::parse_generic_param): Use optional
	on parsing failure.
	(Parser::parse_generic_arg): Likewise.
	(Parser::parse_path_generic_args): Likewise.
	* parse/rust-parse.h: Likewise.
	* resolve/rust-ast-resolve-type.h: Change call name.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Change error
	message.

2025-04-28  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-early-name-resolver-2.0.cc
	(Early::build_import_mapping): Avoid outputting an "unresolved
	import" error if other errors are outputted during resolution.
	* resolve/rust-early-name-resolver-2.0.h
	(Early::resolve_path_in_all_ns): Collect path resolution errors
	while avoiding duplicate errors for resolutions in each
	namespace.
	* resolve/rust-forever-stack.h
	(ForeverStack::resolve_path): Add parameter for collecting
	errors.
	(ForeverStack::find_starting_point): Likewise.
	(ForeverStack::resolve_segments): Likewise.
	* resolve/rust-forever-stack.hxx
	(check_leading_kw_at_start): Likewise.
	(ForeverStack::find_starting_point): Likewise.
	(ForeverStack::resolve_segments): Likewise.
	(ForeverStack::resolve_path): Likewise.
	* resolve/rust-name-resolution-context.h
	(NameResolutionContext::resolve_path): Add optional parameter
	for collecting errors.

2025-04-28  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::array_copied_expr): prealloc the vector

2025-04-28  Philip Herron  <herron.philip@googlemail.com>

	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): add guard
	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): add guard

2025-04-28  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-ast-resolve-path.cc
	(ResolvePath::resolve_path): Adjust error messages.
	* resolve/rust-ast-resolve-type.cc
	(ResolveRelativeTypePath::go): Likewise.
	* resolve/rust-forever-stack.hxx
	(check_leading_kw_at_start): Likewise.

2025-04-28  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): fix bad assertion

2025-04-28  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-forever-stack.hxx
	(ForeverStack::resolve_path): Pass instance of Node to lambda by
	reference instead of by value.

2025-04-28  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-struct-field.h: keep reference to parent expression
	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::TypeCheckStructExpr):
	update ctor
	(TypeCheckStructExpr::resolve): remove bad rust_fatal_errors
	(TypeCheckStructExpr::visit): cleanup errors

2025-04-28  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-late-name-resolver-2.0.cc
	(Late::visit): Handle StructPatternFieldIdent.
	* resolve/rust-late-name-resolver-2.0.h
	(Late::visit): Likewise.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Dump llvm inline
	asm tokens.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Remove unreachable
	code.
	* ast/rust-expr.h (struct LlvmOperand): Add LlvmOperand struct to
	represent input and outputs.
	(class LlvmInlineAsm): Add input, output and clobber operands.
	(struct TupleTemplateStr): Add locus getter.
	* backend/rust-compile-block.h: Add visit for LlvmInlineAsm.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Add llvm inline
	asm stmt compilation.
	* backend/rust-compile-expr.h: Add function prototype.
	* backend/rust-compile-asm.h (class CompileLlvmAsm): Add llvm asm hir
	not to gimple.
	* backend/rust-compile-asm.cc (CompileLlvmAsm::CompileLlvmAsm): Add
	constructor.
	(CompileLlvmAsm::construct_operands): Add function to construct operand
	tree.
	(CompileLlvmAsm::construct_clobbers): Add function to construct clobber
	tree.
	(CompileLlvmAsm::tree_codegen_asm): Generate the whole tree for a given
	llvm inline assembly node.
	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit):
	Add visit function.
	* checks/errors/borrowck/rust-bir-builder-expr-stmt.h: Add function
	prototype.
	* checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h: Add visit
	function.
	* 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: Add visit function
	prototype.
	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Add visit
	function.
	* checks/errors/rust-const-checker.h: Add visit function prototype.
	* checks/errors/rust-hir-pattern-analysis.cc (PatternChecker::visit):
	Add visit function.
	* checks/errors/rust-hir-pattern-analysis.h: Add visit function
	prototype.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Add
	visit function.
	* checks/errors/rust-unsafe-checker.h: Add function prototype.
	* expand/rust-macro-builtins-asm.cc (parse_llvm_templates): Parse
	templates.
	(parse_llvm_arguments): Add function to parse non template tokens.
	(parse_llvm_operands): Add function to parse operands, either input or
	output.
	(parse_llvm_outputs): Add function to parse and collect llvm asm
	outputs.
	(parse_llvm_inputs): Likewise with inputs.
	(parse_llvm_clobbers): Add function to parse llvm asm clobbers.
	(parse_llvm_options): Add function to parse llvm asm options.
	(parse_llvm_asm): Add function to parse llvm asm.
	* expand/rust-macro-builtins-asm.h (class LlvmAsmContext): Add context
	for llvm asm parser.
	(parse_llvm_outputs): Add function prototype.
	(parse_llvm_inputs): Likewise.
	(parse_llvm_clobbers): Likewise.
	(parse_llvm_options): Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Lower AST llvm
	asm node to HIR.
	* hir/rust-ast-lower-expr.h: Add function prototype.
	* hir/rust-hir-dump.cc (Dump::visit): Add visit function.
	* hir/rust-hir-dump.h: Add function prototype.
	* hir/tree/rust-hir-expr-abstract.h: Add HIR llvm asm node kind.
	* hir/tree/rust-hir-expr.h (struct LlvmOperand): Add LlvmOperand type
	to represent input and outputs.
	(class LlvmInlineAsm): Add LlvmInlineAsm hir node.
	* hir/tree/rust-hir-full-decls.h (class LlvmInlineAsm): Add
	LlvmInlineAsm hir node forward declaration.
	* hir/tree/rust-hir-visitor.h: Add visit functions for LlvmInlineAsm
	hir node.
	* hir/tree/rust-hir.cc (LlvmInlineAsm::accept_vis): Add hir node
	visitor related functions.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Type check input and output operands.
	* typecheck/rust-hir-type-check-expr.h: Add function prototype.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Visit input and
	output operand expressions.
	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Resolve input
	and output expressions.
	* resolve/rust-ast-resolve-expr.h: Add function prototypes.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Make visitor
	unreachable.
	* ast/rust-ast-collector.h: Add visit for LlvmInlineAsmNode.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Add visit
	function for the default ast visitor.
	* ast/rust-ast-visitor.h: Add function prototype.
	* ast/rust-ast.cc (LlvmInlineAsm::accept_vis): Add accept_vis to
	LlvmInlineAsm node.
	* ast/rust-ast.h: Add LlvmInlineAsm node kind.
	* ast/rust-expr.h (class LlvmInlineAsm): Add LlvmInlineAsm node.
	* expand/rust-derive.h: Add visit function for LlvmInlineAsm node.
	* expand/rust-macro-builtins-asm.cc (MacroBuiltin::llvm_asm_handler):
	Add handler for llvm inline assembly nodes.
	(parse_llvm_asm): Add function to parse llvm assembly nodes.
	* expand/rust-macro-builtins-asm.h (parse_llvm_asm): Add function
	prototypes.
	* expand/rust-macro-builtins.cc (inline_llvm_asm_maker): Add macro
	transcriber.
	* expand/rust-macro-builtins.h: Add transcriber function prototype.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Add visit
	function for LlvmInlineAsm node.
	* hir/rust-ast-lower-base.h: Add visit function prototype.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Add visit
	function for LlvmInlineAsm node.
	* resolve/rust-ast-resolve-base.h: Add visit function prototype.

2025-04-28  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-builtins-asm.cc (parse_asm_arg): Emit error
	message.

2025-04-28  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): add diagnostic
	* typecheck/rust-tyty.cc (BaseType::contains_infer): new helper to grab first infer var
	* typecheck/rust-tyty.h: prototype

2025-04-28  Philip Herron  <herron.philip@googlemail.com>

	* rust-gcc.cc (arithmetic_or_logical_expression): Ensure this is an integer

2025-04-28  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-hir-dump.cc (Dump::visit): add guard for optional label

2025-04-28  Yap Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-tyty.h: Remove extra redundant comment.
	* typecheck/rust-hir-type-check-base.cc: Update comment on repr
	handling.

2025-04-28  Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-hir-type-check-base.cc: Set enum representing
	type properly if repr is an integer type.
	* typecheck/rust-hir-type-check-item.cc: Update comments.

2025-04-28  Zhi Heng  <yapzhhg@gmail.com>

	* typecheck/rust-tyty.h: Add new `ReprKind` enum to
	`ReprOptions`.
	* typecheck/rust-hir-type-check-base.cc: Handle setting of
	`repr_kind`.
	* typecheck/rust-hir-type-check-item.cc: New check for
	zero-variant enums.

2025-04-28  Philip Herron  <herron.philip@googlemail.com>

	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): add null check
	* hir/tree/rust-hir-item.h: add has_type helper
	* typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item):
	add missing type checking

2025-04-14  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-lang-item.h: Add new manually_drop lang item.
	* util/rust-lang-item.cc: Likewise.

2025-04-14  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-attribute-values.h: Add RUSTFMT value.
	* util/rust-attributes.cc: Define the attribute.
	* util/rust-attributes.h (enum CompilerPass): Add EXTERNAL variant.
	* expand/rust-macro-builtins.cc: Fix formatting.

2025-04-14  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes): Remove assertion.

2025-04-14  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-attribute-values.h: Add missing attributes.
	* util/rust-attributes.cc: Likewise.
	* util/rust-attributes.h (enum CompilerPass): Mention adding something for const
	functions.

2025-04-14  beamandala  <mandalapubhavesh@gmail.com>

	* expand/rust-macro-builtins.cc (MacroBuiltin::builtin_transcribers):
	Add entry for track_caller.
	* util/rust-attribute-values.h: add `TRACK_CALLER` attribute.
	* util/rust-attributes.cc: add `track_caller` attribute definition.

2025-04-14  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/rust-const-checker.cc
	(ConstChecker::visit): Visit the enum items of enums.
	* resolve/rust-ast-resolve-item.cc
	(ResolveItem::visit): Resolve enum discriminants during nr1.0.

2025-04-14  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-builtins-format-args.cc (format_args_parse_arguments): Improve safety,
	allow extra commas after end of argument list.

2025-04-14  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-expand.cc (MacroExpander::expand_decl_macro): Call into
	TokenTreeDesugar.
	* expand/rust-token-tree-desugar.cc: New file.
	* expand/rust-token-tree-desugar.h: New file.
	* Make-lang.in: Compile them.

2025-04-14  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-expand.cc (MacroExpander::match_n_matches): Do not
	insert fragments and substack fragments if the matcher failed.

2025-04-14  Arthur Cohen  <arthur.cohen@embecosm.com>

	* rust-session-manager.cc (Session::compile_crate): Call the visitor later in the pipeline.

2025-04-14  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h (DelimTokenTree::get_locus): New function.

2025-04-14  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-expr.h (class RangeExpr): Add empty outer attributes and allow getting them
	and setting them.

2025-04-14  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Return if module
	is unloaded.

2025-04-14  Arthur Cohen  <arthur.cohen@embecosm.com>

	* typecheck/rust-hir-type-check-expr.cc (is_default_fn): New.
	(emit_ambiguous_resolution_error): New.
	(handle_multiple_candidates): Properly handle multiple candidates in
	the case of specialization.
	(TypeCheckExpr::visit): Call `handle_multiple_candidates`.

2025-04-14  Andrew Pinski  <quic_apinski@quicinc.com>

	PR rust/119342
	* rust-gcc.cc (block): Add comment on why chaining
	the variables of the scope toether.

2025-04-14  Andrew Pinski  <quic_apinski@quicinc.com>

	PR rust/119341
	* rust-gcc.cc (function_type): Use range fors.
	(function_type_variadic): Likewise.
	(fill_in_fields): Likewise.
	(statement_list): Likewise.
	(block): Likewise.
	(block_add_statements): Likewise.
	(function_set_parameters): Likewise.
	(write_global_definitions): Likewise.

2025-04-14  Andrew Pinski  <quic_apinski@quicinc.com>

	* rust-gcc.cc (Bvariable::get_tree): Use error_operand_p.
	(pointer_type): Likewise.
	(reference_type): Likewise.
	(immutable_type): Likewise.
	(function_type): Likewise.
	(function_type_variadic): Likewise.
	Cleanup the check for receiver.type first.
	(function_ptr_type): Use error_operand_p.
	(fill_in_fields): Likewise.
	(fill_in_array): Likewise.
	(named_type): Likewise.
	(type_size): Likewise.
	(type_alignment): Likewise.
	(type_field_alignment): Likewise.
	(type_field_offset): Likewise.
	(zero_expression): Likewise.
	(float_constant_expression): Likewise.
	(convert_expression): Likewise.
	(struct_field_expression): Likewise.
	(compound_expression): Likewise.
	(conditional_expression): Likewise.
	(negation_expression): Likewise.
	(arithmetic_or_logical_expression): Likewise.
	(arithmetic_or_logical_expression_checked): Likewise.
	(comparison_expression): Likewise.
	(lazy_boolean_expression): Likewise.
	(constructor_expression): Likewise.
	(array_constructor_expression): Likewise.
	(array_index_expression): Likewise.
	(call_expression): Likewise.
	(init_statement): Likewise.
	(assignment_statement): Likewise.
	(return_statement): Likewise.
	(exception_handler_statement): Likewise.
	(if_statement): Likewise.
	(compound_statement): Likewise.
	Tighten up the code, removing t variable.
	(statement_list): Use error_operand_p.
	(block): Likewise.
	(block_add_statements): Likewise.
	(convert_tree): Likewise.
	(global_variable): Likewise.
	(global_variable_set_init): Likewise.
	(local_variable): Likewise.
	(parameter_variable): Likewise.
	(static_chain_variable): Likewise.
	(temporary_variable): Likewise.
	(function): Likewise. Tighten up the code.
	(function_defer_statement): Use error_operand_p.
	(function_set_parameters): Use error_operand_p.
	(write_global_definitions): Use error_operand_p.
	Tighten up the code around the loop.

2025-04-14  Andrew Pinski  <quic_apinski@quicinc.com>

	* rust-gcc.cc (is_floating_point): Use FLOAT_TYPE_P
	instead of manually checking the type.

2025-04-08  Matty Kuhn  <matty.kuhn.1@gmail.com>

	* ast/rust-ast.h: (AST::Attribute): add empty_input function
	* checks/errors/rust-feature-gate.cc: (FeatureGate::visit): check for empty feature gate

2025-04-08  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Update label
	getter call.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
	* ast/rust-ast.cc (BreakExpr::as_string): Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Likewise.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Likewise.
	* ast/rust-expr.h: Add optional getter and rename label getter to
	get_label_unchecked.

2025-04-08  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit):
	Call unchecked getter.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit):
	Likewise.
	* ast/rust-ast.cc (ContinueExpr::as_string): Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Likewise.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Likewise.
	* ast/rust-expr.h: Add new getter for the optional and rename getter
	to get_label_unchecked.

2025-04-08  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_loop_label): Change function
	return type to expected.
	(Parser::parse_labelled_loop_expr): Adapt call location to new return
	type.
	* parse/rust-parse.h (enum class): Update function prototype.

2025-04-08  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add call
	to label resolution if there is one label.
	(Late::resolve_label): Look for labels and emit an error message on
	failure.
	* resolve/rust-late-name-resolver-2.0.h: Add function prototypes.

2025-04-08  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
	Change error message to match rustc.

2025-04-08  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-builder.cc (Builder::self_ref_param): Remove error state
	and use optional.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Check label
	before visiting.
	* ast/rust-ast.cc (ContinueExpr::as_string): Retrieve label value.
	(Lifetime::as_string): Retrieve lifetime value.
	(ReferenceType::as_string): Likewise.
	(SelfParam::as_string): Likewise.
	* ast/rust-ast.h: Remove lifetime and LifetimeParam error state.
	* ast/rust-desugar-for-loops.cc (DesugarForLoops::DesugarCtx::make_break_arm):
	Use optional instead of error state.
	* ast/rust-expr.h (class ContinueExpr): Make label optional.
	* ast/rust-item.h (class SelfParam): Make lifetime optional.
	* ast/rust-type.h (class ReferenceType): Likewise.
	* backend/rust-compile-base.cc: Use optional for self param instead
	of error state.
	* backend/rust-compile-base.h: Update function prototype.
	* expand/rust-derive-clone.cc (DeriveClone::clone_fn): Use optional.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_self): Lower
	lifetime only if it exists.
	* hir/rust-ast-lower-block.h: Lower loop label only if it exists.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
	* hir/rust-ast-lower-implitem.cc (ASTLowerImplItem::visit): Remove
	references to error state.
	(ASTLowerTraitItem::visit): Lower self param only if it exists.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Use nullopt
	for default value instead of SelfParam error state.
	* hir/rust-ast-lower.cc (ASTLoweringExprWithBlock::visit): Lower label
	only if it exists.
	* hir/rust-hir-dump.cc (Dump::do_traitfunctiondecl): Print self only if
	it exists.
	(Dump::visit): Liewise.
	* hir/tree/rust-hir-bound.h: Remove error state.
	* hir/tree/rust-hir-expr.cc (ContinueExpr::ContinueExpr): Use optional
	in constructor for loop label.
	(BreakExpr::BreakExpr): Likewise.
	* hir/tree/rust-hir-expr.h (class ContinueExpr): Remove error state
	implementation.
	(class BreakExpr): Likewise.
	* hir/tree/rust-hir-generic-param.h: Likewise.
	* hir/tree/rust-hir-item.cc (SelfParam::SelfParam): Make lifetime
	optional.
	(Function::Function): Make self param optional.
	* hir/tree/rust-hir-item.h (class Function): Likewise.
	* hir/tree/rust-hir-type.cc (ReferenceType::ReferenceType): Make
	lifetime optional.
	* hir/tree/rust-hir-type.h (class ReferenceType): Likewise.
	* hir/tree/rust-hir.cc (ContinueExpr::as_string): Use new getter.
	(BreakExpr::as_string): Likewise.
	(Lifetime::as_string): Likewise.
	(ReferenceType::as_string): Likewise.
	(TraitFunctionDecl::as_string): Likewise.
	(SelfParam::as_string): Remove error state checking.
	* parse/rust-parse-impl.h (Parser::parse_generic_param): Adapt to
	optional.
	(Parser::parse_lifetime_params): Likewise.
	(Parser::parse_lifetime_params_objs): Likewise.
	(Parser::parse_lifetime_param): Likewise.
	(Parser::parse_lifetime_where_clause_item): Likewise.
	(Parser::parse_type_param_bound): Likewise.
	(Parser::parse_lifetime_bounds): Likewise.
	(Parser::parse_path_generic_args): Likewise.
	(Parser::parse_self_param): Likewise.
	(Parser::parse_break_expr): Likewise.
	(Parser::parse_continue_expr): Likewise.
	(Parser::parse_reference_type_inner): Likewise.
	* parse/rust-parse.h (class ParseLifetimeParamError): Add new class for
	lifetime param parsing errors.
	(class ParseLifetimeError): Add new class for lifetime parsing errors.
	(enum ParseSelfError): Add new class for self param parsing errors.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItem::visit):
	Use unchecked getter in checked context. And make anonymous region.
	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn):
	Likewise.

2025-04-08  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Add
	check for loop label before visiting it.

2025-04-08  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-expr.h: Remove error getter and constructor.

2025-04-08  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-builder.cc (Builder::block): Call with a nullopt instead
	of an error loop label.
	(WhileLetLoopExpr::as_string): Use getter function and adapt to
	newtype.
	* ast/rust-ast.cc (WhileLoopExpr::as_string): Likewise.
	(LoopExpr::as_string): Likewise.
	(BreakExpr::as_string): Likewise.
	(ForLoopExpr::as_string): Likewise.
	* ast/rust-expr.h (class BlockExpr): Make loop label optional.
	(class BreakExpr): Likewise.
	* expand/rust-derive-clone.cc (DeriveClone::clone_fn): Use nullopt.
	* expand/rust-derive-debug.cc (DeriveDebug::stub_debug_fn): Likewise.
	* expand/rust-derive-default.cc (DeriveDefault::default_fn): Likewise.
	* expand/rust-derive-eq.cc: Likewise.
	* parse/rust-parse-impl.h (Parser::parse_block_expr): Use optional
	for arguments.
	(Parser::parse_loop_expr): Likewise.
	(Parser::parse_while_loop_expr): Likewise.
	(Parser::parse_while_let_loop_expr): Likewise.
	(Parser::parse_for_loop_expr): Likewise.
	(Parser::parse_labelled_loop_expr): Likewise.
	(Parser::parse_loop_label): Return an optional.
	* parse/rust-parse.h: Update function prototype and use nullopt for
	default values.

2025-04-08  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Change default
	visit order.

2025-04-08  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Visit loop label
	only if it exists.

2025-04-08  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* hir/rust-ast-lower.cc (ASTLoweringBlock::visit): Lower label only if
	it exists.
	* hir/tree/rust-hir-expr.cc (BlockExpr::BlockExpr): Make loop label
	optional.
	(BaseLoopExpr::BaseLoopExpr): Likewise.
	(LoopExpr::LoopExpr): Likewise.
	(WhileLoopExpr::WhileLoopExpr): Likewise.
	* hir/tree/rust-hir-expr.h: Use optional for lifetime and labels.
	* hir/tree/rust-hir.cc (WhileLoopExpr::as_string): Use getter.
	(WhileLetLoopExpr::as_string): Likewise.
	(LoopExpr::as_string): Likewise.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Resolve labels.
	* resolve/rust-late-name-resolver-2.0.h: Add visit function prototype
	for loop labels.

2025-04-08  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/expected.h: Use gcc_unreachable within gcc context.

2025-04-08  Sri Ganesh Thota  <sriganeshthota12345@gmail.com>

	* resolve/rust-ast-resolve-base.h (redefined_error): created a function for
	rust_error_at for redefined at multiple times.
	* resolve/rust-ast-resolve-implitem.h: changed rust_error_at to redefined_error.
	* resolve/rust-ast-resolve-stmt.cc (ResolveStmt::visit): changed rust_error_at to
	redefined_error.
	* resolve/rust-ast-resolve-stmt.h: changed rust_error_at to redefined_error.
	* resolve/rust-ast-resolve-toplevel.h: changed rust_error_at to redefined_error.

2025-04-08  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-visitor.cc
	(DefaultASTVisitor::visit): Remove explicit visitation of a
	function's self parameter, as if it exists it'll be visited as
	one of the function parameters.

2025-04-08  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-typecheck-context.cc (TypeCheckContext::lookup_lifetime): emit error

2025-04-08  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.cc (Function::Function): Rename is_default -> has_default.
	(Function::operator=): Likewise.
	* ast/rust-item.h (class Function): Add `is_default` method.
	* hir/rust-ast-lower-implitem.cc (ASTLowerImplItem::visit): Lower default qualifier.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
	* hir/tree/rust-hir-item.cc (Function::Function): Add `is_default` member.
	(Function::operator=): Likewise.
	* hir/tree/rust-hir-item.h (enum class Defaultness): New enum.
	(class Function): Use it.

2025-04-08  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/errors/rust-feature.cc (Feature::create): Handle `#![feature(min_specialization)]`.
	* checks/errors/rust-feature.h: Likewise.

2025-04-08  Philip Herron  <herron.philip@googlemail.com>

	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): fix error msg
	* typecheck/rust-substitution-mapper.cc (SubstMapper::Resolve): add validation
	(SubstMapper::valid_type): new check
	(SubstMapper::visit): check if can resolve
	* typecheck/rust-substitution-mapper.h: new prototype

2025-04-08  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::address_expression): allow optional type
	* backend/rust-compile-base.h: update prototype
	* backend/rust-compile-expr.cc (CompileExpr::visit): update borrow expr
	* backend/rust-compile-extern.h: remove unused debug
	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): update usage
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): lower raw ref
	* hir/tree/rust-hir-expr.cc (BorrowExpr::BorrowExpr): add flag for raw ref
	* hir/tree/rust-hir-expr.h (class BorrowExpr): add new raw ref field
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): add handle for raw ref

2025-04-08  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): emit error

2025-04-08  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): new argument
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::TypeCheckBase): new helper
	* typecheck/rust-hir-type-check-base.h: new helper prototype
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
	remove comment out code
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path): check for null
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path): likewise
	(TypeResolveGenericParam::Resolve): new args
	(TypeResolveGenericParam::ApplyAnyTraitBounds): new helper
	(TypeResolveGenericParam::apply_trait_bounds): new field
	(TypeResolveGenericParam::visit): update
	* typecheck/rust-hir-type-check-type.h: new args
	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): reuse helper
	* typecheck/rust-type-util.cc (query_type): check for recursive query
	* typecheck/rust-tyty-subst.cc (SubstitutionParamMapping::SubstitutionParamMapping):
	remove const
	(SubstitutionParamMapping::get_generic_param): likewise
	* typecheck/rust-tyty-subst.h: likewise
	* typecheck/rust-tyty-variance-analysis.cc (GenericTyVisitorCtx::process_type): likewise

2025-04-08  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc: new flag is_root_item
	* backend/rust-compile-base.h: update prototype
	* backend/rust-compile-implitem.cc (CompileTraitItem::visit): update call
	* backend/rust-compile-implitem.h: remove old debug internal error
	* backend/rust-compile-item.cc (CompileItem::visit): update call
	* backend/rust-compile-item.h: remove old debug
	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): update calls
	* backend/rust-compile.cc: likewise
	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_path_to_trait):
	remove assertion and error

2025-04-08  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-base.cc: remove assertion

2025-04-08  Philip Herron  <herron.philip@googlemail.com>

	* rust-gcc.cc (arithmetic_or_logical_expression): unwrap const decls

2025-04-08  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-forever-stack.h
	(ForeverStack::ForeverStack): Initialize extern_prelude.
	(ForeverStack::resolve_path): Add parameter
	has_opening_scope_resolution.
	(ForeverStack::extern_prelude): Add field.
	* resolve/rust-forever-stack.hxx: Include rust-edition.h.
	(ForeverStacl::resolve_path): Handle global paths (paths with an
	opening scope resolution operator).
	* resolve/rust-late-name-resolver-2.0.cc
	(Late::visit): Handle global paths.
	* resolve/rust-name-resolution-context.h
	(NameResolutionContext::resolve_path): Handle global paths.

2025-04-08  Ryutaro Okada  <1015ryu88@gmail.com>

	* backend/rust-compile-resolve-path.cc: Evaluate the enum's discriminant in a const context

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.h.
	(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
	(TopLevel::visit): Handle ExternalStaticItem.
	* resolve/rust-toplevel-name-resolver-2.0.h
	(TopLevel::visit): Likewise.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/rust-hir-pattern-analysis.cc: Add includes.
	(PatternChecker::visit): Use name resolver 2.0 when enabled.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-expr.cc
	(CompileExpr::visit): Use name resolver 2.0 to lookup label
	definitions for break and continue statements when name
	resolution 2.0 is enabled.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/rust-const-checker.cc: Add includes.
	(ConstChecker::visit): Use name resolver 2.0 to lookup
	function definitions when name resolution 2.0 is enabled.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::visit): Load unloaded modules before attempting to
	visit their items.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-forever-stack.h
	(ForeverStack::to_canonical_path): Make const.
	(ForeverStack::to_rib): Add const overload.
	(ForeverStack::reverse_iter): Add const overloads.
	(ForeverStack::ConstDfsResult): Add.
	(ForeverStack::dfs): Add const overload.
	(ForeverStack::dfs_rib): Likewise.
	* resolve/rust-forever-stack.hxx
	(ForeverStack::reverse_iter): Add const overloads.
	(ForeverStack::dfs): Add const overload.
	(ForeverStack::to_canonical_path): Make const.
	(ForeverStack::dfs_rib): Likewise.
	(ForeverStack::to_rib): Add const overload.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/lints/rust-lint-marklive.cc
	(MarkLive::visit_path_segment): Use name resolver 2.0 when
	enabled.
	(MarkLive::visit): Likewise.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::visit): Handle ConstGenericParam.
	* resolve/rust-toplevel-name-resolver-2.0.h
	(TopLevel::visit): Likewise.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-late-name-resolver-2.0.cc
	(Late::visit): Visit GenericArgs and GenericArg, the former
	because the latter involves a non-virtual member function call.
	* resolve/rust-late-name-resolver-2.0.h
	(Late::visit): Likewise.

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_reg_operand_in): Fix
	compiler error on ast wrong implicit construct push_back

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* backend/rust-compile-asm.cc (CompileAsm::asm_construct_inputs):
	Provide input operand for gccrs
	* expand/rust-macro-builtins-asm.cc (parse_reg_operand_in):
	Move expr to In
	(expand_inline_asm_strings):
	Add comments to debug strings

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc: Add includes.
	(TypeCheckPattern::visit): Use name resolver 2.0 if enabled.
	* resolve/rust-name-resolution-context.cc
	(NameResolutionContext::lookup): Make const qualified.
	* resolve/rust-name-resolution-context.h
	(NameResolutionContext::lookup): Likewise.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-late-name-resolver-2.0.cc
	(Late::visit): Allow IdentifierExpr and PathInExpression to
	reference types as well as values, remove ability for
	IdentifierExpr to reference labels.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-visitor.cc
	(DefaultASTVisitor::visit): Visit fields of InlineAsm.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-item.cc
	(CompileItem::visit): Check canonical path of StaticItem
	properly when name resolution 2.0 is enabled.
	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::visit): Insert static items into the value namespace.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-expr.h
	(InlineAsmOperand): Replace multiple mutually-exclusive tl::optional
	fields with a std::unique_ptr and modify nested classes to allow
	this. Also, make getters return references where possible.
	* expand/rust-macro-builtins-asm.cc
	(parse_reg_operand_out): Pass location when constructing
	InlineAsmOperand.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::visit): Handle TypeAlias.
	* resolve/rust-toplevel-name-resolver-2.0.h
	(TopLevel::visit): Likewise.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-hir-type-check-enumitem.cc: Add includes.
	(TypeCheckEnumItem::visit): Fetch canonical paths properly when
	name resolution 2.0 is enabled.
	* typecheck/rust-hir-type-check-implitem.cc: Add includes.
	(TypeCheckImplItem::visit): Fetch canonical paths properly when
	name resolution 2.0 is enabled.
	* typecheck/rust-hir-type-check-item.cc: Add include.
	(TypeCheckItem::visit): Fetch canonical paths properly when name
	resolution 2.0 is enabled.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-finalize-imports-2.0.cc
	(GlobbingVisitor::visit): Replace calls to insert_shadowable with
	insert_globbed.
	* resolve/rust-forever-stack.h
	(ForeverStack::insert_globbed): Add.
	* resolve/rust-forever-stack.hxx
	(ForeverStack::insert_globbed): Add.
	(ForeverStack::dfs): Handle modifications to Rib::Definition
	fields.
	* resolve/rust-late-name-resolver-2.0.cc
	(Late::visit): Make IdentifierPattern-based declarations
	shadowable.
	* resolve/rust-name-resolution-context.cc
	(NameResolutionContext::insert_globbed): Add.
	* resolve/rust-name-resolution-context.h
	(NameResolutionContext::insert_globbed): Add.
	* resolve/rust-rib.cc
	(Rib::Definition::Definition): Use Rib::Definition::Mode to
	indicate shadowing mode instead of boolean, handle modifications
	to Rib::Definition fields.
	(Rib::Definition::is_ambiguous): Handle modifications to
	Rib::Definition fields.
	(Rib::Definition::to_string): Likewise.
	(Rib::Definition::Shadowable): Handle changed constructor
	signature.
	(Rib::Definition::NonShadowable): Likewise.
	(Rib::Definition::Globbed): Add.
	(Rib::insert): Handle changes to Rib::Definition fields.
	* resolve/rust-rib.h
	(Rib::Definition::Globbed): Add.
	(Rib::Definition::ids): Remove.
	(Rib::Definition::ids_shadowable): Add.
	(Rib::Definition::ids_non_shadowable): Add.
	(Rib::Definition::ids_globbed): Add.
	(Rib::Definition::get_node_id): Handle modifications to
	Rib::Definition fields.
	(Rib::Definition::Mode): Add.
	(Rib::Definition::Definition): Use Rib::Definition::Mode to
	indicate shadowing mode instead of boolean.

2025-03-19  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_path_to_trait):
	use error handling instead of assertion
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): reuse trait reference
	* typecheck/rust-hir-type-check-item.h: update prototype

2025-03-19  Philip Herron  <herron.philip@googlemail.com>

	* resolve/rust-ast-resolve-type.cc (ResolveTypeToCanonicalPath::visit): add unit-type catch
	* resolve/rust-ast-resolve-type.h: likewise

2025-03-19  Philip Herron  <herron.philip@googlemail.com>

	* Make-lang.in: new objects
	* ast/rust-ast-builder.cc (Builder::generic_type_path_segment): new helper
	(Builder::single_generic_type_path): likewise
	(Builder::new_type): likewise
	(Builder::new_lifetime_param): likewise
	(Builder::new_type_param): likewise
	(Builder::new_lifetime): likewise
	(Builder::new_generic_args): likewise
	* ast/rust-ast-builder.h: new helper decls
	* ast/rust-ast.h: new const getters
	* ast/rust-path.h: likewise
	* ast/rust-type.h: likewise
	* expand/rust-derive-clone.cc (DeriveClone::clone_impl): take the types generics
	(DeriveClone::visit_tuple): likewise
	(DeriveClone::visit_struct): likewise
	(DeriveClone::visit_union): likewise
	* expand/rust-derive-clone.h: update header
	* expand/rust-derive-copy.cc (DeriveCopy::copy_impl): similarly take type generics
	(DeriveCopy::visit_struct): likewise
	(DeriveCopy::visit_tuple): likewise
	(DeriveCopy::visit_enum): likewise
	(DeriveCopy::visit_union): likewise
	* expand/rust-derive-copy.h: likewse
	* ast/rust-ast-builder-type.cc: New file.
	* ast/rust-ast-builder-type.h: New file.

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-session-manager.cc (Session::expansion): Break on error after
	top level name resolution.

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Resolve
	TypeParam.
	* resolve/rust-toplevel-name-resolver-2.0.h: Add visit function
	prototype.

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Node id getter could be const.

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.h: Add visit function prototype.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Change resolved
	type segment.

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Remove
	assertion and explicitely tells why we ignore the insertion result.

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add new rust-bir-builder-pattern file.
	* checks/errors/borrowck/rust-bir-builder-pattern.h: Remove
	implementation.
	* checks/errors/borrowck/rust-bir-builder-pattern.cc: New file.

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-visitor.h: Make visit functions public.

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-finalize-imports-2.0.h: Add parent member functions
	from default resolver.

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Use
	default visitor instead.

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Remove
	default visit code and replace it with call to default visitor.
	* resolve/rust-default-resolver.h: Remove removed function's
	prototypes.

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Remove
	empty visit function implementations.
	* resolve/rust-default-resolver.h: Remove corresponding prototypes.

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-default-resolver.h: Make most visit function override.

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::Early): Add dirty
	flag initialization.
	(Early::go): Set dirty flag using top level resolver.
	* resolve/rust-early-name-resolver-2.0.h: Add dirty flag.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::TopLevel):
	Initialize dirty flag.
	(TopLevel::insert_or_error_out): Set dirty flag on successful
	namespace modification.
	* resolve/rust-toplevel-name-resolver-2.0.h: Add dirty flag.
	* rust-session-manager.cc (Session::expansion): Modify fixed point
	condition to include name resolution modifications.

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-rib.cc (Rib::insert): Emit an error when trying to
	insert an already inserted node.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.h: New class for imports.
	* resolve/rust-finalize-imports-2.0.cc (finalize_simple_import): Use
	the new API.
	(finalize_glob_import): Likewise.
	(finalize_rebind_import): Likewise.
	(FinalizeImports::FinalizeImports): Likewise.
	(FinalizeImports::visit): Likewise.
	* resolve/rust-finalize-imports-2.0.h: Likewise.
	* resolve/rust-early-name-resolver-2.0.cc (Early::resolve_glob_import): Likewise.
	(Early::resolve_simple_import): Likewise.
	(Early::resolve_rebind_import): Likewise.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::resolve_simple_import):
	Insert import in all namespaces where they were resolved.
	(Early::resolve_rebind_import): Likewise.
	* resolve/rust-early-name-resolver-2.0.h: Improve APIs, make them
	accept multiple resolutions.
	* resolve/rust-finalize-imports-2.0.cc: Handle multiple resolutions.
	* resolve/rust-name-resolution-context.h (resolve_path): Remove function.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
	Store errors for later.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-finalize-imports-2.0.cc (FinalizeImports::go): Turn
	static method into method.
	(FinalizeImports::visit): New.
	* resolve/rust-finalize-imports-2.0.h (class FinalizeImports): Make
	FinalizeImports a visitor.
	* resolve/rust-early-name-resolver-2.0.cc (Early::go): Use new FinalizeImports API.
	(Early::resolve_glob_import): Use new API.
	(Early::resolve_simple_import): Likewise.
	(Early::resolve_rebind_import): Likewise.
	(Early::build_import_mapping): Likewise.
	* resolve/rust-early-name-resolver-2.0.h: Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.h: Likewise.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add debug call.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Store
	imports using the new classes.
	* resolve/rust-toplevel-name-resolver-2.0.h: Use new classes.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::resolve_glob_import):
	Use ImportData class.
	(Early::resolve_simple_import): Likewise.
	(Early::resolve_rebind_import): Likewise.
	(Early::build_import_mapping): Likewise.
	* resolve/rust-early-name-resolver-2.0.h: Likewise.
	* resolve/rust-finalize-imports-2.0.cc (finalize_simple_import): Likewise.
	(finalize_glob_import): Likewise.
	(finalize_rebind_import): Likewise.
	(FinalizeImports::go): Likewise.
	* resolve/rust-finalize-imports-2.0.h: Likewise.
	* resolve/rust-name-resolution-context.h: Likewise.
	* resolve/rust-rib.h: Define ImportData class.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Add new object file.
	* ast/rust-item.h: Constify method.
	* resolve/rust-early-name-resolver-2.0.cc (Early::go): Call into
	the imports finalizer.
	(Early::resolve_glob_import): Remove old resolution.
	(Early::resolve_rebind_import): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc (GlobbingVisitor::go):
	New function.
	(GlobbingVisitor::visit): Likewise.
	(TopLevel::visit): Do not call into handle_use_* functions anymore.
	* resolve/rust-toplevel-name-resolver-2.0.h (class GlobbingVisitor):
	New.
	* resolve/rust-finalize-imports-2.0.cc: New file.
	* resolve/rust-finalize-imports-2.0.h: New file.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::resolve_glob_import): New function.
	(Early::resolve_simple_import): Likewise.
	(Early::resolve_rebind_import): Likewise.
	(Early::build_import_mapping): Likewise.
	* resolve/rust-early-name-resolver-2.0.h: Add declarations and list of imports to
	resolve.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::handle_use_glob): Remove function,
	which is now being handled by the Early name resolver.
	(TopLevel::handle_use_dec): Likewise.
	(TopLevel::handle_rebind): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.h: Likewise, and add functions for creating
	import list and fetching it.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc: Comment out handle_use
	call and error emission.
	* resolve/rust-toplevel-name-resolver-2.0.h: Create ImportKind class.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::handle_use_dec):
	Add notes on the problem.
	* resolve/rust-toplevel-name-resolver-2.0.h: Likewise.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Do not
	visit self's type if it does not have one.

2025-03-19  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-ast-lower-type.cc (ASTLowerQualifiedPathInType::visit):
	check for valid as segment

2025-03-19  Philip Herron  <herron.philip@googlemail.com>

	* resolve/rust-ast-resolve-type.cc (ResolveType::visit):
	handle never type
	(ResolveTypeToCanonicalPath::visit): likewise
	* resolve/rust-ast-resolve-type.h: missing never type
	* resolve/rust-name-resolver.cc (Resolver::generate_builtins):
	track never type node_id
	(Resolver::setup_builtin): likewise
	* resolve/rust-name-resolver.h: new never type getter

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc
	(DefaultResolver::visit): Remove some empty overloads which
	DefaultASTVisitor::visit should be able to handle.
	* resolve/rust-default-resolver.h
	(DefaultResolver::visit): Likewise.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/optional.h
	(optional): Add assertions to dereference operator overloads
	when C++14 is available.

2025-03-19  Marc Poulhiès  <dkm@kataplop.net>

	* hir/rust-hir-dump.cc (Dump::visit): Add missing fields.

2025-03-19  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): the polarity was reversed
	* typecheck/rust-hir-type-check-item.cc: check the polarity

2025-03-19  benjamin.thos  <benjamin.thos@epita.fr>

	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Add
	implementation of error propagation visitor
	* resolve/rust-ast-resolve-expr.h: Add prototype of error
	propagation

2025-03-19  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add optional
	check.

2025-03-19  JoanVC  <github-91yu@joanvc.cat>

	* backend/rust-compile-expr.cc

2025-03-19  JoanVC  <github-91yu@joanvc.cat>

	* backend/rust-compile-expr.cc: Fix range checking for both integers and floats.
	* hir/tree/rust-hir-expr.h: Add "negative_number" boolean to LiteralExpr class.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* rust-session-manager.cc (Session::compile_crate): Use less repetition,
	fix a typo in `reports`, fix word order.

2025-03-19  benjamin.thos  <benjamin.thos@epita.fr>

	* checks/errors/rust-feature-gate.cc (FeatureGate::visit): Emit error
	on trait when auto field member true.
	* checks/errors/rust-feature-gate.h: add prototype of trait visitor.
	* checks/errors/rust-feature.cc (Feature::create): add
	optin_builtin_traits in match of feature.

2025-03-19  Raiki Tamura  <tamaron1203@gmail.com>

	* Make-lang.in: Add rust-hir-pattern-analysis.o.
	* rust-session-manager.cc (Session::compile_crate):
		Add pattern analysis pass.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
		Do typecheck for subpatterns.
	* checks/errors/rust-hir-pattern-analysis.cc: New file.
	* checks/errors/rust-hir-pattern-analysis.h: New file.

2025-03-19  Liam Naddell  <liam.naddell@mail.utoronto.ca>

	* backend/rust-compile.cc:
	Modify compute_address_for_trait_item to support supertraits
	* typecheck/rust-tyty.cc:
	Remove auto

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Use strong
	type instead of size_t.
	(Dump::visit_place): Likewise.
	(Dump::visit_scope): Likewise.
	* checks/errors/borrowck/rust-bir-dump.h (class Dump): Use
	IndeVec for place_map.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-dump.cc (simplify_cfg):
	Used `IndexVec` for bb_fold_map.
	(Dump::go): Use strong type as index instead of value as now we
	are using `IndexVec`.
	(Dump::visit): Likewise.
	* checks/errors/borrowck/rust-bir-dump.h (class Dump): Use
	`IndexVec` for bb_fold_map.
	* checks/errors/borrowck/rust-bir-place.h: Add constructor for
	`IndexVec` that can reserve size.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-place.h: Use strong types as
	index.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
	(ExprStmtBuilder::visit): Use strong type as index and
	remove access to numeric value.
	* checks/errors/borrowck/rust-bir-builder-internal.h
	(struct BuilderContext): Likewise.
	* checks/errors/borrowck/rust-bir-dump.cc (simplify_cfg):
	Likewise.
	(Dump::go): Likewise.
	(Dump::visit): Likewise.
	* checks/errors/borrowck/rust-bir-fact-collector.h
	(class FactCollector): Likewise.
	(points): Likewise.
	* checks/errors/borrowck/rust-bir.h (struct BasicBlockId): Used
	IndexVec for BasicBlocks.
	(struct Function): Likewise.
	* checks/errors/borrowck/rust-borrow-checker-diagnostics.cc
	(BorrowCheckerDiagnostics::get_statement): Change the extracted
	index to strong type.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-place.h: Used `IndexVec` with
	ScopeId as index.
	* checks/errors/borrowck/rust-borrow-checker-diagnostics.cc
	(BorrowCheckerDiagnostics::get_loan): Convert Polonius::Loan to
	BIR::Loan, so we can use it as index.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-place.h:
	Used `IndexVec` with ScopeId as index.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-place.h (struct Loan):
	Introduce new class `IndexVec` inspired from IndexVec of rust.
	It acts as a wrapper around `std::vector` and lets user specify
	a strong type to use as index.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit):
	Use value of BasicBlockId as index.
	* checks/errors/borrowck/rust-bir-builder-internal.h (struct BuilderContext):
	Likewise.
	* checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h:
	Initialize with ENTRY_BASIC_BLOCK.
	* checks/errors/borrowck/rust-bir-dump.cc (simplify_cfg):
	Use value of BasicBlockId as index.
	(Dump::go): Likewise.
	(Dump::visit): Likewise.
	* checks/errors/borrowck/rust-bir-fact-collector.h (class FactCollector):
	Initialize with ENTRY_BASIC_BLOCK.
	(points): Use value of BasicBlockId as index.
	* checks/errors/borrowck/rust-bir.h (struct BasicBlockId):
	BasicBlockId is a struct now.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
	(ExprStmtBuilder::setup_loop): Use value of ScopeId.
	(ExprStmtBuilder::visit): Use continue scope id instead of
	continue basic block id.
	* checks/errors/borrowck/rust-bir-builder-internal.h: Use value
	of ScopeId.
	* checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Use
	ROOT_VALUE instead of hardcoded 0.
	(Dump::visit_scope): Use value of ScopeId.
	* checks/errors/borrowck/rust-bir-place.h (struct ScopeId):
	ScopeId is now a struct.
	(std::numeric_limits::max): Set invalid ScopeId.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-dump.cc (Dump::visit): Use new
	API, i.e get_loan_id() instead of get_loan().
	* checks/errors/borrowck/rust-bir-fact-collector.h (points): Use
	value of LoanId in Polonius facts.
	* checks/errors/borrowck/rust-bir-place.h (struct LoanId):
	LoanId is a struct now.
	* checks/errors/borrowck/rust-bir.h (class AbstractExpr): Use
	new API, as we are getting a LoanId and not a loan itself.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-builder-internal.h: Use
	FreeRegions instead of making a temporary vector of FreeRegion.
	* checks/errors/borrowck/rust-bir-builder.h: Likewise.
	* checks/errors/borrowck/rust-bir-fact-collector.h (class FactCollector):
	Likewise.
	(points): Likewise.
	* checks/errors/borrowck/rust-bir-free-region.h: Remove obsolete
	set_from() helpers, add push_back().
	* checks/errors/borrowck/rust-bir-place.h: Use FreeRegions
	instead of making a temporary vector of Origin.
	* typecheck/rust-tyty-variance-analysis-private.h: Change type
	of `regions`.
	* typecheck/rust-tyty-variance-analysis.cc (CrateCtx::query_type_regions):
	Use new type.
	(GenericTyPerCrateCtx::query_generic_variance): Likewise.
	(TyVisitorCtx::add_constraints_from_generic_args): Likewise.
	(FieldVisitorCtx::add_constraints_from_region): Likewise.
	(FieldVisitorCtx::add_constrints_from_param): Likewise.
	* typecheck/rust-tyty-variance-analysis.h: Likewise.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-builder-internal.h: Use
	STATIC_FREE_REGION, use value of FreeRegion for origin.
	* checks/errors/borrowck/rust-bir-builder.h: Use free region
	value.
	* checks/errors/borrowck/rust-bir-dump.cc (Dump::visit_scope):
	Likewise.
	* checks/errors/borrowck/rust-bir-fact-collector.h (points):
	Likewise.
	* checks/errors/borrowck/rust-bir-free-region.h (struct FreeRegion):
	Make FreeRegion a struct.
	* checks/errors/borrowck/rust-bir-place.h: Use FreeRegion
	instead of Origin in PlaceDB.
	* typecheck/rust-tyty-variance-analysis.cc (FieldVisitorCtx::add_constraints_from_region):
	Use value of FreeRegion for origin.
	(FieldVisitorCtx::add_constrints_from_param): Likewise.
	(Term::make_transform): Likewise.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-dump.cc (renumber_places):
	Use value of PlaceId as index.
	(Dump::visit_place): Likewise.
	(Dump::visit_scope): Likewise.
	(Dump::go): Refill `place_map` with for loop instead of
	using std::iota().
	* checks/errors/borrowck/rust-bir-fact-collector.h (points): Use
	value as index.
	* checks/errors/borrowck/rust-bir-place.h (struct PlaceId):
	PlaceId is now a class holding a uint32_t value. Overloaded
	comparision operators for easier comparision.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-ast-resolve-pattern.cc
	(PatternDeclaration::check_bindings_consistency): Check if
	outer_bindings_map contains an entry before indexing.

2025-03-19  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-canonical-path.h
	(CanonicalPath::CanonicalPath): Properly initialize crate_num
	with copy constructor.

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* backend/rust-compile-asm.cc (CompileAsm::visit):
	Change API, public/private, comments, formatting from code
	review
	(CompileAsm::asm_build_expr): Likewise.
	(CompileAsm::tree_codegen_asm): Likewise.
	* backend/rust-compile-asm.h (class CompileAsm): Likewise.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise.
	* expand/rust-macro-builtins-asm.cc (strip_double_quotes): Likewise.
	(parse_options): Likewise.
	(parse_asm_arg): Likewise.
	(expand_inline_asm_strings): Likewise.
	(parse_asm): Likewise.
	* expand/rust-macro-builtins-asm.h (strip_double_quotes): Likewise.
	(expand_inline_asm_strings): Likewise.
	(expand_inline_asm_string): Likewise.
	* hir/tree/rust-hir-expr.h: Likewise.

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* backend/rust-compile-asm.cc (CompileAsm::asm_build_expr):
	Remove debug
	* expand/rust-macro-builtins-asm.cc (expand_inline_asm_strings):
	properly formatted via rust instead of c
	(parse_asm): formatted comment
	(parse_format_strings): formatted comment
	* hir/tree/rust-hir-expr.h: fix is_simple_asm()

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* backend/rust-compile-asm.cc (CompileAsm::asm_build_expr):
	Use's array type when constring string tree
	(CompileAsm::asm_construct_string_tree):
	Use's array type when constring string tree

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Added noreturn checking for nevertype

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* backend/rust-compile-asm.cc (CompileAsm::asm_build_expr):
	Add debug comment
	(CompileAsm::asm_construct_outputs):
	Perform lowering hir output operand to tree

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Perform type check on InlineAsm's operand
	(typecheck_inline_asm_operand): Likewise

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* backend/rust-compile-asm.cc (CompileAsm::asm_construct_outputs):
	Lower the HIR to tree with CompileExpr
	* backend/rust-compile-asm.h: Remove static from method

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* backend/rust-compile-asm.cc (strip_double_quotes):
	Move strip double quotes to parse phase
	(CompileAsm::asm_construct_string_tree): Likewise
	* backend/rust-compile-asm.h (strip_double_quotes): Likewise
	* expand/rust-macro-builtins-asm.cc (strip_double_quotes):
	Likewise
	(expand_inline_asm): Renamed to expand_inline_asm_strings
	(expand_inline_asm_strings): Renamed from expand_inline_asm
	(parse_asm): Move strip double quotes to parse phase
	(parse_format_strings): Likewise
	* expand/rust-macro-builtins-asm.h (strip_double_quotes):
	Likewise
	(expand_inline_asm_strings): Inline asm expansion fn
	(expand_inline_asm_string): Inline asm expansion fn

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_reg_operand):
	Remove warnings
	(parse_reg_operand_out): Remove warnings
	(expand_inline_asm): New function for eventual expansion
	(parse_asm): Use expand_inline_asm

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* backend/rust-compile-asm.cc (CompileAsm::asm_construct_outputs):
	Set up counting to check

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* backend/rust-compile-asm.cc (CompileAsm::asm_build_expr):
	Use expr's is_simple_asm and is_inline_asm
	(CompileAsm::asm_is_simple): removed
	(CompileAsm::asm_is_inline): removed
	* backend/rust-compile-asm.h: Add docs to ASM_TREE_ARRAY_LENGTH
	* hir/tree/rust-hir-expr.h: Add is_simple_asm, is_inline_asm
	and remove #include tree

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* backend/rust-compile-asm.cc (strip_double_quotes):
	Refactor compile-asm for first round review
	(CompileAsm::asm_build_asm_stmt): Likewise.
	(CompileAsm::asm_build_expr): Likewise.
	(CompileAsm::asm_get_locus): Likewise.
	(CompileAsm::asm_construct_string_tree): Likewise.
	(CompileAsm::asm_construct_outputs): Likewise.
	(CompileAsm::asm_construct_inputs): Likewise.
	(CompileAsm::asm_construct_clobber_tree): Likewise.
	(CompileAsm::asm_construct_label_tree): Likewise.
	(CompileAsm::asm_is_simple): Likewise.
	(CompileAsm::asm_is_inline): Likewise.
	* backend/rust-compile-asm.h (strip_double_quotes): Likewise.
	(class CompileAsm): Likewise.

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* backend/rust-compile-asm.cc (CompileAsm::add_stmt):
	Deleted
	(CompileAsm::CompileAsm):
	Successfully produce pseudo-nop
	(CompileAsm::visit): Likewise
	(CompileAsm::asm_build_asm_stmt): Likewise
	(CompileAsm::asm_construct_string_tree): Likewise
	(CompileAsm::asm_is_inline): Likewise
	* backend/rust-compile-asm.h (class CompileAsm): Likewise
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* backend/rust-compile-asm.cc (CompileAsm::add_stmt):
	Scaffolding code.
	(CompileAsm::asm_build_asm_stmt): Likewise.
	(CompileAsm::asm_build_expr): Likewise.
	(CompileAsm::asm_construct_string_tree): Likewise.
	* backend/rust-compile-asm.h: Likewise.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* Make-lang.in:
	Scaffolding new compile-asm files
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise
	* hir/tree/rust-hir-expr.h: Likewise
	* backend/rust-compile-asm.cc: New file. Likewise
	* backend/rust-compile-asm.h: New file. Likewise

2025-03-19  jjasmine  <tanghocle456@gmail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit):
	Setting up interfaces for codegen
	* hir/tree/rust-hir-expr.h: Likewise.

2025-03-19  jjasmine  <tanghocle456@gmail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit):
	Local testing for build_string and debug()

2025-03-19  jjasmine  <tanghocle456@gmail.com>

	* hir/tree/rust-hir.cc (InlineAsm::accept_vis):
	Make sure CompileExpr::visit is reached
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Likewise

2025-03-19  jjasmine  <tanghocle456@gmail.com>

	* backend/rust-compile-block.h:
	Scaffolding asm codegen
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
	* 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/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
	* hir/tree/rust-hir-expr.h: Likewise.
	* hir/tree/rust-hir-visitor.h: Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
	* typecheck/rust-hir-type-check-expr.h: Likewise.

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_reg_operand):
	Fix parsing logic & reassignment logic
	(parse_reg_operand_in): Fix parsing
	(parse_reg_operand_out): Fix parsing
	(parse_reg_operand_inout): Fix parsing
	(parse_reg_operand_unexpected): Remove rust_unreachable()
	(parse_asm_arg): Fix parsing logic

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* typecheck/rust-hir-type-check.h:
	Add pop guard for binder

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* resolve/rust-ast-resolve.cc (NameResolution::go):
	Fix warnings from const auto& to const auto

2025-03-19  Raiki Tamura  <tamaron1203@gmail.com>

	* lex/rust-lex.cc (Lexer::build_token): Emit error code.
	* lex/rust-lex.h: Fix comment.

2025-03-19  Raiki Tamura  <tamaron1203@gmail.com>

	* hir/tree/rust-hir.cc (Item::item_kind_string): New function.
	* hir/tree/rust-hir.h: New function.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
		Modify to check all arms in match expressions even if some of them
		has errors.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
		Add and fix check for path patterns.

2025-03-19  Raiki Tamura  <tamaron1203@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
		Add check for union patterns.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/errors/rust-feature.cc (Feature::create): Reuse variable,
	remove now optional parameters from constructor.
	* checks/errors/rust-feature.h: Cleanup class definition.
	* checks/errors/rust-feature-gate.cc (FeatureGate::gate): Use optional.
	* checks/errors/rust-feature-gate.h: Cleanup visitor implementation.
	* checks/errors/borrowck/ffi-polonius/Cargo.lock: New file.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/errors/rust-feature-gate.cc (FeatureGate::visit): Add base
	feature gating for `#[feature(prelude_import)]`.
	* checks/errors/rust-feature-gate.h: Likewise.
	* checks/errors/rust-feature.cc (Feature::create): Likewise.
	* checks/errors/rust-feature.h: Likewise.
	* util/rust-attribute-values.h: Add base handling for `#[prelude_import]`
	attribute.
	* util/rust-attributes.cc: Likewise.

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* ast/rust-ast-full-decls.h (struct InlineAsmOperand):
	Change to class
	(class InlineAsmOperand): Change from struct
	* hir/tree/rust-hir-full-decls.h (struct InlineAsmRegOrRegClass):
	Removed from decl, used from AST
	(struct AnonConst): new decl from rust-hir-expr.h
	(class InlineAsmOperand): new decl from rust-hir-expr.h

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-full-decls.h (class PathPattern): Rename PathPattern to...
	(class Path): ...Path
	* ast/rust-ast-collector.cc (TokenCollector::visit): Add required methods
	for LangItemPath and RegularPath.
	* ast/rust-ast-collector.h: Likewise.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
	* ast/rust-ast-visitor.h: Likewise.
	* ast/rust-path.cc (PathPattern::as_string): Likewise.
	(RegularPath::as_string): Likewise.
	(LangItemPath::as_string): Likewise.
	(PathPattern::convert_to_simple_path): Likewise.
	(RegularPath::convert_to_simple_path): Likewise.
	(RegularPath::accept_vis): Likewise.
	(LangItemPath::accept_vis): Likewise.
	(PathInExpression::as_string): Likewise.
	(QualifiedPathInExpression::as_string): Likewise.
	* ast/rust-path.h (class PathPattern): Likewise.
	(class Path): Likewise.
	(class RegularPath): Likewise.
	(class LangItemPath): Likewise.
	(class PathInExpression): Likewise.
	(class QualifiedPathInExpression): Likewise.
	* ast/rust-pattern.h (class PathPattern): Likewise.
	(class Path): Likewise.
	* expand/rust-derive.h: Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
	* hir/rust-ast-lower-base.h: Likewise.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
	* resolve/rust-ast-resolve-base.h: Likewise.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h (class PathExpr): Remove class.
	* ast/rust-path.h (class PathInExpression): Inherit from ExprWithoutBlock.
	(class QualifiedPathInExpression): Likewise.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-path.h (class PathInExpression): Remove `remove_all_segments`
	method, add a `marked_for_strip` flag instead.

2025-03-19  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Add error code and update error message

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-borrow-checker-diagnostics.cc
	(BorrowCheckerDiagnostics::report_move_errors): Specify
	locations for code causing errors and related moves.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-borrow-checker-diagnostics.cc
	(BorrowCheckerDiagnostics::report_subset_errors): Highlight
	lifetime locations while reporting subset errors.
	(BorrowCheckerDiagnostics::get_lifetime_param): Helper function
	to fetch HIR::Lifetime node from Polonius::Origin.
	* checks/errors/borrowck/rust-borrow-checker-diagnostics.h:
	Definition of helper function.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-builder.h: Map regions to
	their respective HIR nodes.
	* checks/errors/borrowck/rust-bir.h (struct Function):
	Add unordered_map to maintain the mapping.

2025-03-19  Liam Naddell  <liam.naddell@mail.utoronto.ca>

	* typecheck/rust-hir-type-check-pattern.cc:
	Emit E0532 when trying to reference a Tuple or Struct variant
	using a non Tuple or Struct pattern.

2025-03-19  Liam Naddell  <liam.naddell@mail.utoronto.ca>

	* expand/rust-expand-visitor.h:
	remove auto keyword
	* expand/rust-macro-builtins-helpers.cc:
	allow for changing macro invoc types on eager expansions to
	semicoloned macros
	* expand/rust-macro-builtins-helpers.h:
	add default semicoloned argument
	* expand/rust-macro-builtins-include.cc:
	allow for eager expansion for include and include_bytes
	allow for parsing include invocations as items instead of
	expressions, which allows invocations at global scope
	* expand/rust-macro-expand.cc:
	push Expr type for eager invocations

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-builder-internal.h:
	Use `make_*` functions to create BIR::Statements.
	* checks/errors/borrowck/rust-bir.h: Make a complete constructor
	and introduce `make_*` functions to create various
	BIR::Statements.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-borrow-checker-diagnostics.cc
	(BorrowCheckerDiagnostics::report_loan_errors): Add label to
	where the borrow occurs and where the invalid access occurs.
	(BorrowCheckerDiagnostics::get_statement):
	Fetch BIR::Statement from Polonius::Point
	(BorrowCheckerDiagnostics::get_loan):
	Fetch BIR::Loan from Polonius::Loan
	* checks/errors/borrowck/rust-borrow-checker-diagnostics.h:
	Function definition of helpers.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit):
	Add location parameter.
	* checks/errors/borrowck/rust-bir-builder.h: Likewise.
	* checks/errors/borrowck/rust-bir-builder-internal.h: Add helper
	function for pushing return statements.
	* checks/errors/borrowck/rust-bir.h: Remove `expr` parameter as
	it is only needed for ASSIGNMENT statements, for which we
	already have a constructor.

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
	Implement resolve expr for inline asm ast
	(translate_operand): Likewise.
	* resolve/rust-ast-resolve-expr.h: Likewise.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-builder-internal.h:
	Fill location for loan.
	* checks/errors/borrowck/rust-bir-place.h (struct Loan):
	Add location field.

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
	(ExprStmtBuilder::visit): Added location parameter.
	* checks/errors/borrowck/rust-bir-builder-internal.h: 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.h: Likewise.
	* checks/errors/borrowck/rust-bir.h: Likewise.

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* hir/rust-ast-lower-expr.cc (translate_operand_in):
	Turn to switch case, use new helper functions
	(translate_operand_out): Likewise.
	(translate_operand_inout): Likewise.
	(translate_operand_split_in_out): Likewise.
	(translate_operand_const): Likewise.
	(translate_operand_sym): Likewise.
	(translate_operand_label): Likewise.
	(from_operand): Likewise.
	(ASTLoweringExpr::visit): Likewise.

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* hir/rust-ast-lower-expr.cc (from_operand):
	Set up the lowering for operand
	(ASTLoweringExpr::visit): Likewise
	* hir/tree/rust-hir-expr.h (struct InlineAsmRegOrRegClass):
	Not necessary, kept from ast
	(struct AnonConst): Set up lowering for operand
	(class InlineAsmOperand): Likewise, add getters

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/polonius/rust-polonius.h (struct FullPoint):
	Added comments and made extraction of statement more verbose for
	better understanding.
	* checks/errors/borrowck/ffi-polonius/src/lib.rs: Likewise.

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* ast/rust-expr.h (struct InlineAsmOperand): changed to class
	(class InlineAsmOperand): Have appropriate constructor,
	and getter
	* expand/rust-macro-builtins-asm.cc (parse_reg_operand):
	Use the new implement constructors and new control flow.
	(parse_reg_operand_in): Likewise
	(parse_reg_operand_out): Likewise
	(parse_reg_operand_inout): Likewise
	(parse_reg_operand_const): Likewise

2025-03-19  badumbatish  <tanghocle456@gmail.com>

	* ast/rust-expr.h (struct InlineAsmOperand):
	Add construction for register_type
	* expand/rust-macro-builtins-asm.cc (parse_reg_operand):
	Fix parsing logic & reassignment logic
	(parse_reg_operand_in): Fix parsing
	(parse_reg_operand_out): Fix parsing
	(parse_reg_operand_inout): Fix parsing
	(parse_reg_operand_unexpected): Remove rust_unreachable()
	(parse_asm_arg): Fix parsing logic
	* expand/rust-macro-builtins-asm.h: Add = operator overloading

2025-03-19  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/borrowck/polonius/rust-polonius.h (struct FullPoint):
	This is the correct way of extracting the required bits.

2025-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/errors/borrowck/ffi-polonius/src/gccrs_ffi.rs: Remove extern
	type feature.
	* checks/errors/borrowck/ffi-polonius/src/lib.rs: Define FFIVector
	per the nomicon's recommendation
	https://doc.rust-lang.org/nomicon/ffi.html#representing-opaque-structs

2025-03-19  Liam Naddell  <liam.naddell@mail.utoronto.ca>

	* ast/rust-ast.cc:
	Fix Attribute constructors to copy inner_attribute
	* checks/errors/rust-unsafe-checker.cc:
	Add pass for #[may_dangle] in safe impl's
	* hir/rust-ast-lower-item.cc:
	Add support for unsafe impl's
	* hir/rust-ast-lower-type.cc:
	Lower attributes in impl's from AST to HIR
	* hir/rust-hir-dump.cc:
	Change single attribute to AttrVec
	* hir/tree/rust-hir-item.h:
	Add unsafe support to Impl blocks in HIR
	* hir/tree/rust-hir.cc:
	Change single attribute to AttrVec
	* hir/tree/rust-hir.h:
	Add has/get_outer_attribute to GenericParam

2025-03-19  Antonio Gomes  <antoniospg100@gmail.com>

	* expand/rust-cfg-strip.cc:
	Strip struct expr fields and strip fields in struct definition
	* expand/rust-cfg-strip.h:
	Signatures for new function maybe_strip_struct_expr_fields

2025-03-18  Marc Poulhiès  <dkm@kataplop.net>

	PR rust/119333
	* Make-lang.in: Force offline mode for cargo

2025-03-18  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/errors/borrowck/ffi-polonius/.cargo/config.toml: New file, force vendored deps.
	* checks/errors/borrowck/ffi-polonius/vendor/datafrog/.cargo-checksum.json: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/datafrog/CODE_OF_CONDUCT.md: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/datafrog/Cargo.toml: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/datafrog/LICENSE-APACHE: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/datafrog/LICENSE-MIT: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/datafrog/README.md: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/datafrog/RELEASES.md: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/datafrog/examples/borrow_check.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/datafrog/examples/graspan1.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/datafrog/src/join.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/datafrog/src/lib.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/datafrog/src/map.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/datafrog/src/test.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/datafrog/src/treefrog.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/.cargo-checksum.json: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/CHANGELOG.md: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/Cargo.toml: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/LICENSE-APACHE: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/LICENSE-MIT: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/README.md: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/benches/value.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/src/__private_api.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/src/kv/error.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/src/kv/key.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/src/kv/mod.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/src/kv/source.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/src/kv/value.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/src/lib.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/src/macros.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/src/serde.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/log/triagebot.toml: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/.cargo-checksum.json: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/Cargo.toml: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/README.md: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/facts.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/lib.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/output/datafrog_opt.rs:
	New file.
	* checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/output/initialization.rs:
	New file.
	* checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/output/liveness.rs:
	New file.
	* checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/output/location_insensitive.rs:
	New file.
	* checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/output/mod.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/polonius-engine/src/output/naive.rs: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/rustc-hash/.cargo-checksum.json: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/rustc-hash/CODE_OF_CONDUCT.md: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/rustc-hash/Cargo.toml: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/rustc-hash/LICENSE-APACHE: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/rustc-hash/LICENSE-MIT: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/rustc-hash/README.md: New file.
	* checks/errors/borrowck/ffi-polonius/vendor/rustc-hash/src/lib.rs: New file.

2025-03-17  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
	Add rich error message and error code similiar to rustc with
	associaed type and trait name

2025-03-17  Liam Naddell  <liam.naddell@mail.utoronto.ca>

	* expand/rust-expand-visitor.cc:
	Fix ICE caused by unique_ptr UB and buggy iterator use

2025-03-17  badumbatish  <tanghocle456@gmail.com>

	* ast/rust-fmt.h (enum ParseMode):
	Drop typedef in Cpp

2025-03-17  badumbatish  <tanghocle456@gmail.com>

	* ast/rust-fmt.cc (Pieces::collect):
	Added options for ParseMode
	* ast/rust-fmt.h (collect_pieces): Likewise.
	(struct Pieces): Likewise.
	* expand/rust-macro-builtins-format-args.cc (MacroBuiltin::format_args_handler):
	Likewise.

2025-03-17  badumbatish  <tanghocle456@gmail.com>

	* ast/rust-expr.h (struct AnonConst):
	Change assertion of constructor
	(struct InlineAsmOperand):
	Change assertion of constructor

2025-03-17  Liam Naddell  <liam.naddell@mail.utoronto.ca>

	* typecheck/rust-hir-type-check-expr.cc:
	Fix ICE caused by not finding enum variant by adding new error
	message

2025-03-17  Antonio Gomes  <antoniospg100@gmail.com>

	* hir/tree/rust-hir-expr.h: Add new get_operator_str method in
	ArithmeticOrLogicalExpr and CompoundAssignmentExpr
	* hir/tree/rust-hir.cc: Likewise
	* typecheck/rust-hir-type-check-expr.cc: Improve error message for
	operator expressions to display the correct operator symbol

2025-03-17  Kushal Pal  <kushalpal109@gmail.com>

	* Make-lang.in: Compile new file.
	* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::go):
	Use new class to report errors.
	* checks/errors/borrowck/rust-borrow-checker-diagnostics.cc: New file.
	* checks/errors/borrowck/rust-borrow-checker-diagnostics.h:
	New file, adds new class.

2025-03-17  Kushal Pal  <kushalpal109@gmail.com>

	* Make-lang.in: Compile new file, rust-polonius.cc
	* checks/errors/borrowck/ffi-polonius/src/gccrs_ffi.rs: Opaque
	type to represent FFIVector from C++.
	* checks/errors/borrowck/ffi-polonius/src/gccrs_ffi_generated.rs:
	Change types of fields in Output.
	* checks/errors/borrowck/ffi-polonius/src/lib.rs: Added helper
	functions to contruct Polonius output on C++ side,
	used helpers to contruct Polonius output on C++ side.
	* checks/errors/borrowck/polonius/rust-polonius-ffi.h (make_vector):
	FFIVector is a wrapper around std::vector for transfering data
	from Rust to C++.
	(struct Output): Use pointers to FFIVector instead of bool to
	store Polonius output data.
	* checks/errors/borrowck/polonius/rust-polonius.h (FFIVector__new):
	Helper function.
	(FFIVector__new_vec_pair): Likewise.
	(FFIVector__new_vec_triple): Likewise.
	(FFIVector__push): Likewise.
	(FFIVector__push_vec_pair): Likewise.
	(FFIVector__push_vec_triple): Likewise.
	* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::go):
	Convert FFIVector to std::vector representation for easier
	navigation.
	* checks/errors/borrowck/polonius/rust-polonius.cc: New file,
	implementation of helper functions.

2025-03-17  Marc Poulhiès  <dkm@kataplop.net>

	* hir/rust-hir-dump.cc (Dump::do_matcharm): New.
	(Dump::do_matchcase): New.
	(Dump::visit(MatchExpr)): Adjust, don't use as_string.
	* hir/rust-hir-dump.h (Dump::do_matcharm, Dump::do_matchcase): New.

2025-03-17  Liam Naddell  <liam.naddell@mail.utoronto.ca>

	* ast/rust-expr.h:
	Remove unnecessary include.

2025-03-17  badumbatish  <tanghocle456@gmail.com>

	* ast/rust-expr.h (struct AnonConst):
	Safe-guard InlineAsm structs
	(struct InlineAsmOperand): Likewise.
	* expand/rust-macro-builtins-asm.cc (parse_reg_operand_in):
	Likewise.
	(parse_reg_operand_out): Likewise.
	(parse_reg_operand_inout): Likewise.

2025-03-17  badumbatish  <tanghocle456@gmail.com>

	* ast/rust-expr.h (struct TupleTemplateStr):
	Store parse result of parse_format_string(s)
	* expand/rust-macro-builtins-asm.cc (parse_format_strings):
	Likewise

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_asm):
	Clean up monadic operations on expected<>

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_reg_operand):
	Addresses warning, put warn unused in right place
	(parse_reg_operand_inout): Likewise.
	(parse_asm_arg): Likewise.
	* expand/rust-macro-builtins-asm.h (enum WARN_UNUSED_RESULT): Likewise.
	(enum InlineAsmParseError): Likewise.
	(validate): Likewise.
	(parse_asm_arg): Likewise.
	(parse_format_strings): Likewise.
	(parse_clobber_abi): Likewise.
	(parse_reg_operand): Likewise.
	(parse_reg_operand_in): Likewise.
	(parse_reg_operand_out): Likewise.
	(parse_reg_operand_lateout): Likewise.
	(parse_reg_operand_inout): Likewise.
	(parse_reg_operand_inlateout): Likewise.
	(parse_reg_operand_const): Likewise.
	(parse_reg_operand_sym): Likewise.
	(parse_reg_operand_unexpected): Likewise.
	(parse_asm): Likewise.
	(check_and_set): Likewise.
	(parse_options): Likewise.
	(parse_reg): Likewise.
	(parse_format_string): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.h (enum InlineAsmParseError):
	Add WARN_UNUSED_RESULT parse error
	(enum WARN_UNUSED_RESULT): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_clobber_abi):
	added comments
	(parse_options): Likewise
	(parse_asm_arg): Likewise
	(parse_asm): Likewise
	* expand/rust-macro-builtins-asm.h: Likewise

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-expr.h:
	Added tl::expected to parse_operand
	* expand/rust-macro-builtins-asm.cc (parse_reg): Likewise.
	(parse_reg_operand): Likewise.
	(parse_reg_operand_const): Likewise.
	(parse_reg_operand_inout): Likewise.
	(parse_asm_arg): Likewise.
	* expand/rust-macro-builtins-asm.h: Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (check_and_set):
	Scaffold expected on parse_options and asm_arg
	(parse_options): Likewise
	(parse_asm_arg): Likewise
	* expand/rust-macro-builtins-asm.h (check_and_set): Likewise
	(parse_label): Likewise

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_reg_operand_in):
	Finish expected parse_reg_operand
	(parse_reg_operand_unexpected): Likewise
	* expand/rust-macro-builtins-asm.h (parse_reg_operand_unexpected): Likewise

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_clobber_abi):
	Finish incorporating expected of parse_reg_operand
	(parse_reg): Likewise.
	(parse_reg_operand): Likewise.
	(parse_reg_operand_in): Likewise.
	(parse_reg_operand_out): Likewise.
	(parse_reg_operand_lateout): Likewise.
	(parse_reg_operand_const): Likewise.
	(parse_reg_operand_inout): Likewise.
	(parse_reg_operand_sym): Likewise.
	(MacroBuiltin::asm_handler): Likewise.
	(parse_asm_arg): Likewise.
	(parse_asm): Likewise.
	(parse_format_strings): Likewise.
	(validate): Likewise.
	* expand/rust-macro-builtins-asm.h (class InlineAsmParseError): Likewise.
	(enum InlineAsmParseError): Likewise.
	(validate): Likewise.
	(parse_format_strings): Likewise.
	(parse_reg_operand_in): Likewise.
	(parse_reg_operand_out): Likewise.
	(parse_reg_operand_lateout): Likewise.
	(parse_reg_operand_inout): Likewise.
	(parse_reg_operand_inlateout): Likewise.
	(parse_reg_operand_const): Likewise.
	(parse_reg_operand_sym): Likewise.

2025-03-17  ansh  <anshmalik2002@gmail.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit):
	Handle case for RAW_STRING_LITERAL.
	* ast/rust-ast.cc (AttributeParser::parse_meta_item_inner):
	Likewise.
	(AttributeParser::parse_literal): Likewise.
	* ast/rust-ast.h: Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_literal):
	Likewise.
	* lex/rust-lex.cc (Lexer::parse_raw_string): Likewise.
	* lex/rust-token.cc (Token::as_string): Likewise.
	* lex/rust-token.h (enum PrimitiveCoreType): Likewise.
	* parse/rust-parse-impl.h (Parser::parse_attr_input): Likewise.
	(Parser::parse_literal_expr): Likewise.
	(Parser::parse_pattern_no_alt): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* hir/tree/rust-hir-expr.h:
	Added ExprType::InlineAsm
	* hir/tree/rust-hir.h:
	Added ExprType::InlineAsm

2025-03-17  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-fragment.h (enum class): Add InvocKind and AsmKind enums.
	* ast/rust-macro.h: Switch semicolon boolean to InvocKind enum.
	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Likewise.
	* expand/rust-macro-builtins-asm.cc (MacroBuiltin::asm_handler): Likewise.
	(parse_asm): Likewise.
	* expand/rust-macro-builtins-asm.h (parse_asm): Likewise.
	* expand/rust-macro-builtins-format-args.cc (MacroBuiltin::format_args_handler): Likewise.
	* expand/rust-macro-builtins-include.cc (MacroBuiltin::include_bytes_handler): Likewise.
	(MacroBuiltin::include_str_handler): Likewise.
	(MacroBuiltin::include_handler): Likewise.
	* expand/rust-macro-builtins-location.cc (MacroBuiltin::file_handler): Likewise.
	(MacroBuiltin::column_handler): Likewise.
	(MacroBuiltin::line_handler): Likewise.
	* expand/rust-macro-builtins-log-debug.cc (MacroBuiltin::assert_handler): Likewise.
	* expand/rust-macro-builtins-utility.cc (MacroBuiltin::compile_error_handler): Likewise.
	(MacroBuiltin::concat_handler): Likewise.
	(MacroBuiltin::env_handler): Likewise.
	(MacroBuiltin::cfg_handler): Likewise.
	(MacroBuiltin::stringify_handler): Likewise.
	* expand/rust-macro-builtins.cc (format_args_maker): Likewise.
	(enum class): Likewise.
	(inline_asm_maker): Likewise.
	(MacroBuiltin::sorry): Likewise.
	(MacroBuiltin::proc_macro_builtin): Likewise.
	* expand/rust-macro-builtins.h: Likewise.
	* expand/rust-macro-expand.cc (MacroExpander::expand_decl_macro): Likewise.
	(MacroExpander::expand_eager_invocations): Likewise.
	(MacroExpander::expand_invoc): Likewise.
	* expand/rust-macro-expand.h (struct MacroExpander): Likewise.

2025-03-17  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-fragment.h: Pass `is_semicolon` information to builtin
	macro transcribers.
	* ast/rust-macro.h: Pass semicolon information to transcriber..
	* expand/rust-macro-builtins-asm.cc (MacroBuiltin::asm_handler): Likewise.
	(parse_asm): Likewise.
	* expand/rust-macro-builtins-asm.h (parse_asm): Likewise.
	* expand/rust-macro-builtins-format-args.cc (MacroBuiltin::format_args_handler): Likewise.
	* expand/rust-macro-builtins-include.cc (MacroBuiltin::include_bytes_handler): Likewise.
	(MacroBuiltin::include_str_handler): Likewise.
	(MacroBuiltin::include_handler): Likewise.
	* expand/rust-macro-builtins-location.cc (MacroBuiltin::file_handler): Likewise.
	(MacroBuiltin::column_handler): Likewise.
	(MacroBuiltin::line_handler): Likewise.
	* expand/rust-macro-builtins-log-debug.cc (MacroBuiltin::assert_handler): Likewise.
	* expand/rust-macro-builtins-utility.cc (MacroBuiltin::compile_error_handler): Likewise.
	(MacroBuiltin::concat_handler): Likewise.
	(MacroBuiltin::env_handler): Likewise.
	(MacroBuiltin::cfg_handler): Likewise.
	(MacroBuiltin::stringify_handler): Likewise.
	* expand/rust-macro-builtins.cc (format_args_maker): Likewise.
	(inline_asm_maker): Likewise.
	(MacroBuiltin::sorry): Likewise.
	(MacroBuiltin::proc_macro_builtin): Likewise.
	* expand/rust-macro-builtins.h: Likewise.
	* expand/rust-macro-expand.cc (MacroExpander::expand_decl_macro): Likewise.
	(MacroExpander::expand_invoc): Likewise.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Remove rust_unreachable.
	* ast/rust-ast.cc (InlineAsm::accept_vis): Likewise.
	* hir/tree/rust-hir.cc (InlineAsm::accept_vis): Likewise.

2025-03-17  dave  <dave@dmetwo.org>

	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): Check for ?Trait in visitor

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parseDirSpec):
	Partial second layer of expected in parsing asm
	(parse_clobber_abi): Likewise
	(parse_operand): Likewise
	(parse_reg_operand): Likewise
	(parse_asm_arg): Likewise
	* expand/rust-macro-builtins-asm.h (parse_clobber_abi): Likewise
	(parse_reg_operand): Likewise
	(parse_operand): Likewise

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_reg):
	Expected first layer done
	(parse_reg_operand): Likewise.
	(parse_asm_arg): Likewise.
	(parse_format_strings): Likewise.
	(parse_asm): Likewise.
	(validate): Likewise.
	* expand/rust-macro-builtins-asm.h (parse_asm_arg): Likewise.
	(validate): Likewise.
	(parse_format_strings): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_clobber_abi):
	Move parser and last_token_id to InlineAsmCtx to prepapre
	for tl::expected.
	(parse_reg): Likewise.
	(parse_operand): Likewise.
	(parse_reg_operand): Likewise.
	(check_and_set): Likewise.
	(parse_options): Likewise.
	(parse_format_string): Likewise.
	(parse_asm_arg): Likewise.
	(parse_asm): Likewise.
	* expand/rust-macro-builtins-asm.h (class InlineAsmParseError): Likewise.
	(parse_asm_arg): Likewise.
	(check_and_set): Likewise.
	(parse_operand): Likewise.
	(parse_reg_operand): Likewise.
	(parse_options): Likewise.
	(parse_reg): Likewise.
	(parse_clobber_abi): Likewise.
	(parse_format_string): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_reg_operand):
	Update parser to parse strings in the first stage
	(parse_label): not needed right now

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_asm):
	Scaffolding validation of asm!
	(validate): Likewise
	* expand/rust-macro-builtins-asm.h (validate): Likewise

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-expr.h (struct InlineAsmOperand):
	Partial support for operand
	* expand/rust-macro-builtins-asm.cc (parse_reg_operand): Likewise.
	(parse_label): Likewise.
	* expand/rust-macro-builtins-asm.h (parse_label): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-expr.h (struct InlineAsmOperand):
	Refactoring and supporting more parse_reg_operand
	* expand/rust-macro-builtins-asm.cc (parse_reg_operand):
	Likewise.
	(rust_debug): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit):
	Fix visitor-related warnings
	* ast/rust-ast-collector.h: Likewise.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
	* ast/rust-ast-visitor.h: Likewise.
	* checks/errors/borrowck/rust-bir-builder-struct.h: Likewise.
	* checks/errors/borrowck/rust-function-collector.h: Likewise.
	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
	* checks/errors/rust-const-checker.h: Likewise.
	* expand/rust-derive.h: Likewise.
	* expand/rust-macro-builtins-asm.cc (parse_reg_operand): Likewise.
	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
	* hir/rust-hir-dump.h: Likewise.
	* hir/tree/rust-hir-visitor.h: Likewise.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
	* resolve/rust-ast-resolve-base.h: Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_reg_operand):
	Add potentially_nonpromoted_keywords set str
	(check_identifier): likewise
	* expand/rust-macro-builtins-asm.h (parse_format_string):
	likewise

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_reg_operand):
	Successful parse of in and inout, albeit with str
	(check_identifier): Likewise.
	(parse_asm_arg): Likewise.
	* expand/rust-macro-builtins-asm.h (parse_format_string): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-ast-visitor.h:
	Scaffolding HIRFullVisitor for inline asm
	* ast/rust-ast.cc (InlineAsm::accept_vis): Likewise.
	* hir/tree/rust-hir-visitor.h (RUST_HIR_VISITOR_H): Likewise.
	* hir/tree/rust-hir.cc (InlineAsm::accept_vis): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-ast-visitor.h:
	Scaffolding ast visitor for InlineAsm
	* ast/rust-ast.cc (InlineAsm::accept_vis): Likewise.
	* ast/rust-expr.h: Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_reg_operand):
	Fix compile warnings.
	(parse_options): Likewise.
	(parse_asm): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit):
	Partial unsafe support for inline asm
	* checks/errors/rust-unsafe-checker.h: Likewise.
	* hir/tree/rust-hir-expr.h: Likewise.
	* hir/tree/rust-hir.cc (InlineAsm::accept_vis): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-expr.h:
	Add support for AST to HIR inline asm translation
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
	* hir/rust-ast-lower-base.h: Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
	* hir/rust-ast-lower-expr.h: Likewise.
	* hir/tree/rust-hir-expr.h (class InlineAsm): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-expr.h (struct AnonConst):
	major refactoring of inline asm, mostly concerns
	naming convention, trinary conditionals, warnings,
	adding rust_unreachables in not-yet supported errors.
	(struct InlineAsmRegOrRegClass): Likewise.
	(struct InlineAsmOperand): Likewise.
	* expand/rust-macro-builtins-asm.cc (parse_clobber_abi): Likewise.
	(parse_reg): Likewise.
	(parse_operand): Likewise.
	(parse_reg_operand): Likewise.
	(check_and_set): Likewise.
	(parse_options): Likewise.
	(parse_format_string): Likewise.
	(parse_asm_arg): Likewise.
	(parse_asm): Likewise.
	* expand/rust-macro-builtins-asm.h (parse_asm_arg): Likewise.
	(check_identifier): Likewise.
	(check_and_set): Likewise.
	(parse_operand): Likewise.
	(parse_reg_operand): Likewise.
	(parse_options): Likewise.
	(parse_reg): Likewise.
	(parse_clobber_abi): Likewise.
	* expand/rust-macro-builtins.cc (enum class): Likewise.
	(inline_asm_maker): Likewise.
	* checks/errors/borrowck/ffi-polonius/Cargo.lock: Removed. Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-expr.h (struct AnonConst):
	Got AST::Fragment to be created from InlineAsm.
	(struct InlineAsmOperand): Likewise.
	(class InlineAsm): Likewise.
	* expand/rust-macro-builtins-asm.cc (parse_reg_operand): Likewise.
	(parse_asm): likewise

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_reg):
	Working towards parse_reg and parse_reg_operand
	(parse_reg_operand):
	Working towards parse_reg and parse_reg_operand
	(parse_asm_arg):
	Add todo about errors
	* expand/rust-macro-builtins-asm.h (parse_global_asm):
	remove dead code.
	(parse_nonglobal_asm):
	remove dead code.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parseAsmArg):
	Renamed parseAsmArg to conform to other function names
	(parse_asm_arg): Likewise.
	(parse_asm): Likewise.
	* expand/rust-macro-builtins-asm.h (parseAsmArg): Likewise.
	(parse_asm_arg): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-expr.h (struct InlineAsmRegOrRegClass):
	Remove union
	(struct InlineAsmOperand): Make instances of inside struct.
	* expand/rust-macro-builtins-asm.cc (parse_clobber_abi):
	Change signature with inlineAsmCtx.
	(parse_reg): Likewise.
	(parse_operand): Likewise.
	(parse_reg_operand): Likewise.
	(check_and_set): Likewise.
	(parse_options): Likewise.
	(parse_format_string): Likewise.
	(parseAsmArg): Likewise.
	(parse_asm): Likewise.
	* expand/rust-macro-builtins-asm.h (class InlineAsmContext): Likewise.
	(parseAsmArg): Likewise.
	(check_and_set): Likewise.
	(parse_reg_operand): Likewise.
	(parse_options): Likewise.
	(parse_reg): Likewise.
	(parse_clobber_abi): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc
	(MacroBuiltin::global_asm_handler):
	Remove global_asm and non_global_asm handler
	(MacroBuiltin::nonglobal_asm_handler): Likewise.
	(MacroBuiltin::asm_handler): Likewise.
	* expand/rust-macro-builtins.cc (enum class): Likewise.
	(inline_asm_maker): Likewise.
	* expand/rust-macro-builtins.h: Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-expr.h:
	Safegaurd InlineAsm's clone_expr_... with unreachable.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-ast-full-decls.h (enum class):
	Rename InlineAsmOptions to InlineAsmOption for clarity
	* ast/rust-expr.h (enum class): Likewise.
	* expand/rust-macro-builtins-asm.cc (check_and_set): Likewise.
	(parse_options): Likewise.
	* expand/rust-macro-builtins-asm.h (check_and_set): Likewise.
	* hir/tree/rust-hir-expr.h: Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-expr.h (struct InlineAsmRegOrRegClass):
	Scaffolding parse_reg
	* expand/rust-macro-builtins-asm.cc (parse_reg): Likewise.
	(parse_operand): Likewise.
	(parseAsmArg): Likewise.
	* checks/errors/borrowck/ffi-polonius/Cargo.lock: New file.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.h (parseAsmArg):
	Resolve static decl warning
	(parse_nonglobal_asm):
	Resolve static decl warning

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (check_and_set):
	Add checks for duplicate options in inline asm
	(parse_options): likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-expr.h: parsing of options(...)
	* expand/rust-macro-builtins-asm.cc (check_and_set):
	likewise.
	(parse_options): likewise.
	(parseAsmArg): likewise.
	* expand/rust-macro-builtins-asm.h (check_and_set):
	likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_clobber_abi):
	implemented parse_clobber_abi
	(parse_format_string): likewise.
	(parseAsmArg): likewise.
	(parse_asm): likewise.
	* expand/rust-macro-builtins-asm.h (parseAsmArg): likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parseDirSpec): replace
	scaffolded InlineAsm with real InlineAsm.
	(parse_clobber_abi): likewise.
	(check_and_set): likewise.
	(parse_options): likewise.
	(parseAsmArg): likewise.
	(parse_asm): likewise.
	* expand/rust-macro-builtins-asm.h (struct AsmParseError): likewise.
	(enum InlineAsmDirSpec): likewise.
	(enum InlineAsmRegOrRegClass): likewise.
	(struct AsmArg): likewise.
	(parseAsmArg): likewise.
	(check_and_set): likewise.
	(parse_operand): likewise.
	(parse_options): likewise.
	(parse_reg): likewise.
	(parse_clobber_abi): likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-expr.h: Make InlineAsm non-abstract for usage in parsing.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-expr.h: Introduced is_global_asm to InlineAsm AST

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_clobber_abi): format
	(check_and_set): helper function, is try_set_option equivalent
	(parse_options): new function
	* expand/rust-macro-builtins-asm.h (enum InlineAsmOptions):
	removed
	(check_and_set): decl of helper function

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_clobber_abi): title.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_options): title.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (parse_clobber_abi): title.
	(parseAsmArg): title.
	* expand/rust-macro-builtins-asm.h (parse_clobber_abi): title.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (enum InlineAsmRegOrRegClass): title.
	(parseAsmArg): title.
	(check_identifier): title.
	(parse_operand): title.
	(parse_options): title.
	(parse_reg): title.
	(parseDirSpec): title.
	(parse_asm): title.
	* expand/rust-macro-builtins-asm.h: New file.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins-asm.cc (struct AsmParseError): title.
	(enum InlineAsmDirSpec): title.
	(enum InlineAsmOptions): title.
	(struct AsmArg): title.
	(parseAsmArg): title.
	(parse_global_asm): title.
	(parse_nonglobal_asm): title.
	(parse_asm): title.
	(parseDirSpec): title.
	(parse_format_string): title.
	(MacroBuiltin::global_asm_handler): title.
	(MacroBuiltin::nonglobal_asm_handler): title.
	* expand/rust-macro-builtins.cc: title.
	* expand/rust-macro-builtins.h: title.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-feature-gate.cc (FeatureGate::visit): Gate the
	excluded pattern.
	* checks/errors/rust-feature-gate.h: Update the function prototype
	and delete two empty implementations in order to use default visitor
	behavior.
	* checks/errors/rust-feature.cc (Feature::create): Add the new
	exclusive range pattern feature gate.
	* checks/errors/rust-feature.h: Add new feature enum variant for
	exclusive range patterns.
	* parse/rust-parse-impl.h (Parser::parse_pattern_no_alt): Forward the
	token location to the AST.
	(Parser::parse_ident_leading_pattern): Likewise.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-pattern.cc (tokenid_to_rangekind): Add a new function to
	get a range kind from the current token type.
	(RangePattern::as_string): Change the string representation for range
	pattern in order to handle excluded ranges.
	* ast/rust-pattern.h (enum class): Add new enum class to differentiate
	range kinds.
	(tokenid_to_rangekind): New prototype for a function that converts a
	token id to it's corresponding range kind.
	(class RangePattern): Change the class to accept a range kind instead
	of an ellipsis boolean.
	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Abort
	when an excluded pattern has been found as we do not handle their
	lowering yet.
	* parse/rust-parse-impl.h (Parser::parse_literal_or_range_pattern):
	Parse excluded range patterns.
	(Parser::parse_pattern_no_alt): Likewise.
	(Parser::parse_ident_leading_pattern): Likewise.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-feature-gate.cc (FeatureGate::visit): Gate raw
	borrow.
	* checks/errors/rust-feature-gate.h: Update function prototype.
	* checks/errors/rust-feature.cc: Add raw_ref_op gate.
	* checks/errors/rust-feature.h: Likewise.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-expr.h: Add a getter for mutability.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Panic when a
	raw reference is met.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-builder.cc (Builder::ref): Adapt constructor to the new
	API.
	* ast/rust-ast-collector.cc (TokenCollector::visit): Emit a raw weak
	keyword when required.
	* ast/rust-ast.cc (BorrowExpr::as_string): Change as_string
	representation to handle raw ref operator.
	* ast/rust-expr.h (class BorrowExpr): Add raw discriminant.
	* expand/rust-macro-builtins-include.cc: Adapt constructor to the new
	API.
	* parse/rust-parse-impl.h: Handle the raw weak keyword.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Output field
	attributes.
	* ast/rust-expr.h (class StructExprField): Add outer attributes member.
	* parse/rust-parse-impl.h (Parser::parse_struct_expr_field): Parse
	outer attributes and store them in the appropriate AST node.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-feature-gate.cc: Visit and gate may_dangle
	attributes.
	* checks/errors/rust-feature-gate.h: Update visit function prototype
	and add a new member function to check on a set of attributes whether
	one is may_dangle.
	* checks/errors/rust-feature.cc (Feature::create): Add new
	dropck_eyepatch feature.
	* checks/errors/rust-feature.h: Likewise.
	* util/rust-attribute-values.h: Add new may_dangle attribute value.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Visit outer
	attributes.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Change outer
	attribute visit, we need to visit all of them.
	* ast/rust-ast.cc (LifetimeParam::as_string): Change as_string
	implementation to allow multiple outer attributes.
	(TypeParam::as_string): Likewise.
	* ast/rust-ast.h (class LifetimeParam): Allow multiple outer
	attributes.
	* ast/rust-item.h (class TypeParam): Likewise.
	* ast/rust-path.h: Likewise.
	* parse/rust-parse-impl.h (Parser::parse_generic_param): Change call
	to outer attribute parsing to collect several attributes.
	(Parser::parse_lifetime_param): Likewise.
	(Parser::parse_type_param): Likewise.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_generic_param): Change token
	reference to be the last token after all outer attributes have been
	parsed.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-feature-gate.cc (FeatureGate::visit): Allow
	visitor recursion in functions. Also add the gate for the box syntax.
	* checks/errors/rust-feature-gate.h: Remove several recursion fences
	in the feature gate visitor.
	* checks/errors/rust-feature.cc (Feature::create): Add a new feature.
	(Feature::as_name): Likewise.
	* checks/errors/rust-feature.h: Add box_syntax gate.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Add visit member
	function for BoxExpr nodes.
	* ast/rust-ast-collector.h: Add visit function prototype.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Add visit member
	function to default ast visitor.
	* ast/rust-ast-visitor.h: Add visit function's prototype.
	* ast/rust-ast.cc (BoxExpr::as_string): Add as_string function
	implementation for BoxExpr.
	(BoxExpr::accept_vis): Add accept_vis implementation to BoxExpr.
	* ast/rust-expr.h (class BoxExpr): Add BoxExpr class to represent boxed
	expressions.
	* expand/rust-derive.h: Add BoxExpr visit function prototype.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Add BoxExpr
	visitor implementation.
	* hir/rust-ast-lower-base.h: Add visit function's prototype.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Add BoxExpr
	visitor implementation.
	* hir/rust-ast-lower-expr.h: Add visit function's prototype.
	* parse/rust-parse-impl.h (Parser::parse_box_expr): Add parse_box_expr
	function's implementation.
	* parse/rust-parse.h: Add parse_box_expr function's prototype.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Add resolver
	visit implementation.
	* resolve/rust-ast-resolve-base.h: Add resolver's visit function
	prototype.

2025-03-17  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc
	(DefaultResolver::visit):
	Scope with Rib::Kind::ConstantItem instead
	of Rib::Kind::Item.
	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::visit): Remove redundancy in override of
	ConstantItem visitor.

2025-03-17  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-builtins.cc
	(MacroBuiltin::builtin_transcribers):
	Add entries for "rustc_const_stable" and "rustc_const_unstable".
	* util/rust-attributes.cc
	(__definitions): Add entries for RUSTC_CONST_STABLE and
	RUSTC_CONST_UNSTABLE.
	* util/rust-attribute-values.h
	(Attributes::RUSTC_CONST_STABLE): New.
	(Attributes::RUSTC_CONST_UNSTABLE): New.

2025-03-17  Kushal Pal  <kushalpal109@gmail.com>

	* ast/rust-expr.h (class OperatorExpr):
	Location should be private.
	* hir/tree/rust-hir-expr.h (class OperatorExpr): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* checks/errors/rust-feature-gate.cc (FeatureGate::visit): make
	gccrs recognize negative_impls
	* checks/errors/rust-feature-gate.h: likewise.
	* checks/errors/rust-feature.cc (Feature::create): likewise.
	* checks/errors/rust-feature.h: likewise.

2025-03-17  SIGMazer  <mazinasd7@gmail.com>

	* rust-system.h: Add system include <stack>

2025-03-17  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc
	(DefaultResolver::visit):
	New for AST::CallExpr and AST::MethodCallExpr.
	* resolve/rust-default-resolver.h
	(DefaultResolver::visit): Likewise.

2025-03-17  jjasmine  <tanghocle456@gmail.com>

	* ast/rust-fmt.h:  Remove useless cstddef header from rust-fmt

2025-03-17  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/errors/borrowck/rust-borrow-checker.cc (mkdir_wrapped): Remove.
	(BorrowChecker::go): Use `mkdir` instead.
	* expand/rust-proc-macro.cc (register_callback): Use Windows APIs to
	open dynamic proc macro library.
	(load_macros_array): Likewise.
	* parse/rust-parse.cc (defined): Replace separators in paths using
	std::replace.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* metadata/rust-export-metadata.cc (ExportContext::emit_trait):
	Adapt call site to the new return type.
	(ExportContext::emit_function): Likewise.
	(ExportContext::emit_macro): Likewise.
	* util/rust-hir-map.cc (Mappings::lookup_ast_item): Change the
	function's return type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/privacy/rust-privacy-reporter.cc: Change call site
	to accomodate new return type.
	* checks/errors/privacy/rust-pub-restricted-visitor.cc: Likewise.
	* util/rust-hir-map.cc (Mappings::lookup_visibility): Change the
	function's return type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Adapt
	the function call to match its new prototype.
	* resolve/rust-early-name-resolver-2.0.cc (Early::insert_once):
	Likewise.
	(Early::visit): Likewise.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
	Likewise.
	* util/rust-hir-map.cc (Mappings::lookup_macro_invocation): Change the
	function's return type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::insert_once): Change
	call site to accomodate the new return type.
	(Early::visit): Likewise.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
	Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
	Likewise.
	* util/rust-hir-map.cc (Mappings::lookup_macro_def): Change the
	function's return type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-base.cc: Change call site to accomodate new
	return type.
	* backend/rust-compile-base.h: Change parameter to use a reference.
	* backend/rust-compile-extern.h: Likewise.
	* backend/rust-compile-implitem.cc (CompileTraitItem::visit):
	Change call site for new return type.
	* backend/rust-compile-item.cc (CompileItem::visit): Likewise.
	* resolve/rust-ast-resolve-type.cc (ResolveTypeToCanonicalPath::visit):
	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.cc (TraitItemReference::get_type_from_fn):
	Likewise.
	* util/rust-hir-map.h: Update the function's prototype and change the
	function's return type.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-hir-map.cc (Mappings::insert_hir_pattern): Change call site
	in order to accomodate new return type.
	(Mappings::lookup_hir_pattern): Change the function's return type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-hir-map.cc (Mappings::insert_hir_struct_field): Change
	call site to accomodate new return type.
	(Mappings::lookup_hir_struct_field): Change the function's return
	type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-hir-map.cc (Mappings::insert_hir_self_param): Adapt call
	site to new return type.
	(Mappings::lookup_hir_self_param): Change the function's return type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-hir-map.cc (Mappings::insert_hir_param): Change call site
	to accomodate new return type.
	(Mappings::lookup_hir_param): Change the function's return type.
	* util/rust-hir-map.h: Updat ethe function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-hir-map.cc (Mappings::insert_hir_stmt): Change call site
	to accomodate new return type.
	(Mappings::lookup_hir_stmt): Change the function's return type.
	(Mappings::resolve_nodeid_to_stmt): Adapt call site to new return type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-hir-map.cc (Mappings::insert_hir_type): Change call site
	to accomodate the new return type.
	(Mappings::lookup_hir_type): Change the function's return type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-hir-map.cc (Mappings::insert_hir_generic_param): Change
	call site to accomodate the new return type.
	(Mappings::lookup_hir_generic_param): Wrap the function's return type
	with an optional.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-hir-map.cc (Mappings::insert_hir_path_expr_seg): Change
	call site to accomodate the new return type.
	(Mappings::lookup_hir_path_expr_seg): Wrap the function's return type
	with an optional.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-mangle-v0.cc (v0_path): Adapt call site to new returned
	type.
	* util/rust-hir-map.cc (Mappings::lookup_hir_expr): Change the
	function's return type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-item.cc (CompileItem::visit): Change call site
	to accept new return type.
	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile):
	Likewise.
	* backend/rust-mangle-v0.cc (v0_path): Likewise.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit):
	Likewise.
	* checks/lints/rust-lint-marklive.cc (MarkLive::go): Likewise.
	(MarkLive::visit): Likewise.
	* typecheck/rust-type-util.cc (query_type): Likewise.
	* util/rust-hir-map.cc (Mappings::insert_hir_implitem): Likewise.
	(Mappings::lookup_hir_implitem): Change return type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-autoderef.cc: Adapt calling code to new return type.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Likewise.
	(TypeCheckExpr::resolve_operator_overload): Likewise.
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::assemble_builtin_candidate):
	Likewise.
	* typecheck/rust-tyty.cc (ClosureType::setup_fn_once_output): Likewise.
	* util/rust-hir-map.cc (Mappings::get_lang_item): Change return type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/privacy/rust-visibility-resolver.cc: Update function
	call to match the new return type.
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path):
	Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path):
	Likewise.
	* util/rust-hir-map.cc (Mappings::insert_module): Likewise.
	(Mappings::lookup_module): Change the function's return type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile):
	Adapt code around new return type.
	* checks/errors/rust-const-checker.cc (ConstChecker::check_function_call):
	Likewise.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::check_use_of_static):
	Likewise.
	(UnsafeChecker::check_function_call): Likewise.
	* typecheck/rust-type-util.cc (query_type): Likewise.
	* util/rust-hir-map.cc (Mappings::insert_hir_extern_item): Likewise.
	(Mappings::lookup_hir_extern_item): Change return type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address):
	Update code around lookup return type.
	* typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound):
	Likewise.
	* typecheck/rust-tyty.cc (ClosureType::setup_fn_once_output):
	Likewise.
	* util/rust-hir-map.cc (Mappings::insert_defid_mapping): Likewise.
	(Mappings::lookup_trait_item_defid): Update return type with an
	optional.
	(Mappings::get_lang_item): Likewise.
	* util/rust-hir-map.h: Update the functions prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-hir-map.cc (Mappings::insert_defid_mapping): Adapt call
	to new return type.
	(Mappings::insert_local_defid_mapping): Likewise.
	(Mappings::lookup_local_defid): Change return type to wrap it with an
	optional.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address):
	Change calling code to accomodate new return type.
	* checks/errors/privacy/rust-privacy-reporter.cc:
	Likewise.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::get_marker_predicate):
	Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Likewise.
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::assemble_builtin_candidate):
	Likewise.
	* typecheck/rust-tyty.cc (ClosureType::setup_fn_once_output): Likewise.
	* util/rust-hir-map.cc (Mappings::lookup_defid): Change function's
	return type.
	* util/rust-hir-map.h: Update function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::go):
	Adapt the code to the new return types.
	* resolve/rust-ast-resolve.cc (NameResolution::go): Likewise.
	* util/rust-hir-map.cc (Mappings::get_crate_name): Change return type
	to const string reference optional.
	(Mappings::get_current_crate_name): Likewise.
	* util/rust-hir-map.h: Update function prototypes.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-ast-resolve-toplevel.h: Adapt the code to the new
	return type.
	* rust-session-manager.cc (Session::load_extern_crate): Likewise.
	* util/rust-hir-map.cc (Mappings::crate_num_to_nodeid): Change the
	return type.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-ast-resolve-toplevel.h: Adapt the code to the new
	return type.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
	Likewise.
	* rust-session-manager.cc (Session::load_extern_crate): Likewise.
	* util/rust-hir-map.cc (Mappings::lookup_crate_name): Change the return
	type to an optional.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-type-util.cc (query_type): Adapt code to accomodate
	the new return type.
	* util/rust-hir-map.cc (Mappings::lookup_impl_block_type): Change
	the function's return type and remove the out pointer argument.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-type-util.cc (query_type): Change call to the function
	in order to accomodate the new return type.
	* util/rust-hir-map.cc (Mappings::lookup_hir_impl_block): Change the
	function's return type to an optional.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::check_function_call):
	Adapt function call to new return type.
	* typecheck/rust-type-util.cc (query_type): Likewise.
	* util/rust-hir-map.cc (Mappings::insert_hir_extern_block): Likewise.
	(Mappings::lookup_hir_extern_block): Change return type to an optional.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile):
	Adapt return type to new optional.
	* backend/rust-mangle-v0.cc (v0_function_path): Change prototype to use
	the generic arguments vector instead of the whole HIR function.
	(v0_path): Fix a bug with a null pointer being used to create the
	trait function mangling.
	* util/rust-hir-map.cc (Mappings::insert_hir_trait_item): Adapt code
	to new return type.
	(Mappings::lookup_hir_trait_item): Change the return type of the
	function to an optional.
	* util/rust-hir-map.h: Update the function's prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile):
	Adapt function call to new return type.
	* backend/rust-mangle-v0.cc (v0_path): Likewise.
	* checks/errors/rust-const-checker.cc (ConstChecker::check_function_call):
	Likewise.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::check_use_of_static):
	Likewise.
	(UnsafeChecker::check_function_call): Likewise.
	(UnsafeChecker::check_function_attr): Likewise.
	* checks/lints/rust-lint-marklive.cc (MarkLive::go): Likewise.
	(MarkLive::visit): Likewise.
	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_path_to_trait):
	Likewise.
	* typecheck/rust-type-util.cc (query_type): Likewise.
	* util/rust-hir-map.cc (Mappings::insert_hir_item): Likewise.
	(Mappings::lookup_hir_item): Change function return type to use
	optional.
	* util/rust-hir-map.h: Update function prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-hir-map.cc (Mappings::resolve_nodeid_to_stmt): Change the
	return type and remove pointer out argument.
	* util/rust-hir-map.h: Update function prototype.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-expr.cc (CompileExpr::generate_closure_function):
	Adapt code for new optional return type.
	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::check_base_type_privacy):
	Likewise.
	* util/rust-hir-map.cc (Mappings::lookup_hir_to_node): Change return
	type to an optional.
	* util/rust-hir-map.h: Adapt function prototype with the new return
	type.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Change call to use
	the returned optional.
	(CompileExpr::generate_closure_function): Likewise.
	* backend/rust-compile-resolve-path.cc (ResolvePathRef::resolve):
	Likewise.
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Likewise.
	* backend/rust-mangle-v0.cc (v0_path): Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc:
	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.
	(MarkLive::visit_path_segment): Likewise.
	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_path_to_trait):
	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.
	(ResolveWhereClauseItem::visit): Likewise.
	* util/rust-hir-map.cc (Mappings::lookup_node_to_hir): Return an
	optional instead of a boolean.
	* util/rust-hir-map.h: Change function prototype to match the new
	return type.

2025-03-17  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc
	(DefaultResolver::visit):
	Verify constant item has expression before attempting to visit
	the later.

2025-03-17  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-expr.cc
	(check_match_scrutinee): Add assertion.
	* backend/rust-compile-pattern.cc
	(CompilePatternCheckExpr::visit):
	Handle HIR::PathInExpression matching a non-enum.

2025-03-17  Nobel Singh  <nobel2073@gmail.com>

	* backend/rust-compile-expr.cc (check_match_scrutinee): Handle structs

2025-03-17  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-base.cc
	(HIRCompileBase::compile_function_body):
	Adjust unit_expression calls.
	(HIRCompileBase::unit_expression):
	Remove unused Context parameter.
	* backend/rust-compile-base.h
	(HIRCompileBase::unit_expression): Likewise.
	* backend/rust-compile-block.cc
	(CompileBlock::visit): Adjust unit_expression calls.
	* backend/rust-compile-expr.cc
	(CompileExpr::visit): Likewise.
	* backend/rust-compile-pattern.cc
	(CompilePatternLet::visit): Likewise.
	* backend/rust-compile-resolve-path.cc
	(ResolvePathRef::attempt_constructor_expression_lookup):
	Likewise.
	* backend/rust-compile-type.cc
	(TyTyResolveCompile::get_implicit_enumeral_node_type):
	Remove unused Context parameter.
	(TyTyResolveCompile::get_unit_type):
	Likewise.
	(TyTyResolveCompile::visit):
	Adjust get_implicit_enumeral_node_type and get_unit_type calls.
	* backend/rust-compile-type.h
	(TyTyResolveCompile::get_implicit_enumeral_node_type):
	Remove unused Context parameter.
	(TyTyResolveCompile::get_unit_type):
	Likewise.

2025-03-17  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Change dereference from a pointer to a reference
	accessor.
	* ast/rust-expr.h: Likewise.
	* ast/rust-item.h: Likewise.
	* ast/rust-macro.h: Likewise.
	* ast/rust-path.h: Likewise.
	* ast/rust-pattern.h: Likewise.
	* ast/rust-type.h: Likewise.
	* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address):
	Likewise.
	* backend/rust-compile-context.h: Likewise.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
	(CompileExpr::generate_closure_function): Likewise.
	* backend/rust-compile-extern.h: Likewise.
	* backend/rust-compile-implitem.cc (CompileTraitItem::visit): Likewise.
	* backend/rust-compile-intrinsic.cc (Intrinsics::compile): Likewise.
	* backend/rust-compile-item.cc (CompileItem::visit): Likewise.
	* backend/rust-compile-resolve-path.cc (ResolvePathRef::resolve):
	Likewise.
	(HIRCompileBase::query_compile): Likewise.
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Likewise.
	(TyTyResolveCompile::create_dyn_obj_record): Likewise.
	* backend/rust-compile.cc (HIRCompileBase::coerce_to_dyn_object):
	Likewise.
	* backend/rust-mangle-v0.cc (v0_path): Likewise.
	(v0_mangle_item): Likewise.
	* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::go):
	Likewise.
	* checks/errors/privacy/rust-privacy-check.cc (Resolver::resolve):
	Likewise.
	* checks/errors/rust-const-checker.cc (ConstChecker::ConstChecker):
	Likewise.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::UnsafeChecker):
	Likewise.
	* checks/lints/rust-lint-marklive-base.h: Likewise.
	* checks/lints/rust-lint-marklive.cc (MarkLive::go): Likewise.
	(MarkLive::visit): Likewise.
	(MarkLive::visit_path_segment): Likewise.
	* checks/lints/rust-lint-marklive.h: Likewise.
	* checks/lints/rust-lint-scan-deadcode.h: Likewise.
	* expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Likewise.
	* expand/rust-macro-expand.h (struct MacroExpander): Change mapping
	from pointer to a reference.
	* expand/rust-proc-macro.cc (BangProcMacro::BangProcMacro): Replace
	pointer accessor with reference accessor.
	(AttributeProcMacro::AttributeProcMacro): Likewise.
	(CustomDeriveProcMacro::CustomDeriveProcMacro): Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_lifetime):
	Likewise.
	(ASTLoweringBase::lower_loop_label): Likewise.
	(ASTLoweringBase::lower_path_expr_seg): Likewise.
	(ASTLoweringBase::lower_self): Likewise.
	(ASTLoweringBase::handle_lang_item_attribute): Likewise.
	(ASTLoweringBase::lower_extern_block): Likewise.
	(ASTLoweringBase::lower_macro_definition): Likewise.
	* hir/rust-ast-lower-base.h: Likewise.
	* hir/rust-ast-lower-block.h: Likewise.
	* hir/rust-ast-lower-enumitem.h: Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::translate): Likewise.
	(ASTLoweringExpr::visit): Likewise.
	* hir/rust-ast-lower-extern.h: Likewise.
	* hir/rust-ast-lower-implitem.cc (ASTLowerImplItem::translate):
	Likewise.
	(ASTLowerImplItem::visit): Likewise.
	(ASTLowerTraitItem::translate): Likewise.
	(ASTLowerTraitItem::visit): Likewise.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::translate): Likewise.
	(ASTLoweringItem::visit): Likewise.
	(ASTLoweringSimplePath::lower): Likewise.
	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::translate):
	Likewise.
	(ASTLoweringPattern::visit): Likewise.
	* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::translate): Likewise.
	(ASTLoweringStmt::visit): Likewise.
	* hir/rust-ast-lower-struct-field-expr.h: Likewise.
	* hir/rust-ast-lower-type.cc (ASTLowerTypePath::visit): Likewise.
	(ASTLowerQualifiedPathInType::visit): Likewise.
	(ASTLoweringType::translate): Likewise.
	(ASTLoweringType::visit): Likewise.
	(ASTLowerGenericParam::translate): Likewise.
	(ASTLowerGenericParam::visit): Likewise.
	(ASTLoweringTypeBounds::translate): Likewise.
	(ASTLoweringTypeBounds::visit): Likewise.
	(ASTLowerWhereClauseItem::translate): Likewise.
	(ASTLowerWhereClauseItem::visit): Likewise.
	* hir/rust-ast-lower.cc (ASTLowering::go): Likewise.
	(ASTLoweringBlock::visit): Likewise.
	(ASTLoweringIfBlock::visit): Likewise.
	(ASTLoweringIfLetBlock::visit): Likewise.
	(ASTLowerStructExprField::visit): Likewise.
	(ASTLoweringExprWithBlock::visit): Likewise.
	(ASTLowerPathInExpression::visit): Likewise.
	(ASTLoweringBase::lower_qual_path_type): Likewise.
	(ASTLowerQualPathInExpression::visit): Likewise.
	* metadata/rust-export-metadata.cc (ExportContext::emit_trait):
	Likewise.
	(ExportContext::emit_function): Likewise.
	(ExportContext::emit_macro): Likewise.
	(PublicInterface::PublicInterface): Likewise.
	(PublicInterface::expected_metadata_filename): Likewise.
	* metadata/rust-export-metadata.h: Likewise.
	* resolve/rust-ast-resolve-base.h: Likewise.
	* resolve/rust-ast-resolve-implitem.h: Likewise.
	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
	Likewise.
	(ResolveItem::visit): Likewise.
	(ResolveExternItem::visit): Likewise.
	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path):
	Likewise.
	* resolve/rust-ast-resolve-stmt.h: Likewise.
	* resolve/rust-ast-resolve-toplevel.h: Likewise.
	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go):
	Likewise.
	(ResolveTypeToCanonicalPath::visit): Likewise.
	* resolve/rust-ast-resolve-type.h: Likewise.
	* resolve/rust-ast-resolve.cc (NameResolution::NameResolution):
	Likewise.
	(NameResolution::go): Likewise.
	* resolve/rust-ast-resolve.h: Likewise.
	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
	Likewise.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::EarlyNameResolver):
	Likewise.
	* resolve/rust-late-name-resolver-2.0.cc (next_node_id): Likewise.
	(next_hir_id): Likewise.
	* resolve/rust-name-resolution-context.cc (NameResolutionContext::NameResolutionContext):
	Likewise.
	* resolve/rust-name-resolver.cc (Resolver::Resolver): Likewise.
	(Resolver::generate_builtins): Likewise.
	(Resolver::setup_builtin): Likewise.
	* resolve/rust-name-resolver.h: Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
	Likewise.
	(TopLevel::handle_use_glob): Likewise.
	* rust-session-manager.cc (Session::get_instance): Likewise.
	(Session::handle_input_files): Likewise.
	(Session::handle_crate_name): Likewise.
	(Session::compile_crate): Likewise.
	(Session::load_extern_crate): Likewise.
	* rust-session-manager.h: Likewise.
	* typecheck/rust-autoderef.cc (Adjuster::try_unsize_type): Likewise.
	* typecheck/rust-coercion.cc (TypeCoercionRules::do_coercion):
	Likewise.
	(TypeCoercionRules::coerce_unsafe_ptr): Likewise.
	(TypeCoercionRules::coerce_borrowed_pointer): Likewise.
	(TypeCoercionRules::coerce_unsized): Likewise.
	* typecheck/rust-coercion.h: 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_enum_item_for_candiates):
	Likewise.
	(PathProbeType::process_impl_items_for_candidates): Likewise.
	(PathProbeImplTrait::process_trait_impl_items_for_candidates):
	Likewise.
	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_path_to_trait):
	Likewise.
	(TraitItemReference::get_parent_trait_mappings): Likewise.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal):
	Likewise.
	(TypeCheckBase::get_marker_predicate): Likewise.
	* typecheck/rust-hir-type-check-base.h: Likewise.
	* typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit):
	Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Likewise.
	(TypeCheckExpr::resolve_operator_overload): Likewise.
	(TypeCheckExpr::resolve_fn_trait_call): 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-path.cc (TypeCheckExpr::resolve_root_path):
	Likewise.
	(TypeCheckExpr::resolve_segments): Likewise.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::emit_pattern_size_error):
	Likewise.
	(ClosureParamInfer::Resolve): Likewise.
	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve):
	Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): Likewise.
	(TypeCheckType::resolve_root_path): Likewise.
	(TypeResolveGenericParam::visit): Likewise.
	(ResolveWhereClauseItem::visit): Likewise.
	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn):
	Likewise.
	* typecheck/rust-type-util.cc (query_type): Likewise.
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::compute_inference_variables):
	Likewise.
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::scan): Likewise.
	(TypeBoundsProbe::assemble_builtin_candidate): Likewise.
	(TypeCheckBase::get_predicate_from_bound): Likewise.
	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Likewise.
	(TypeCheckMethodCallExpr::check): Likewise.
	* typecheck/rust-tyty-call.h: Likewise.
	* typecheck/rust-tyty-cmp.h: Likewise.
	* typecheck/rust-tyty-subst.cc (SubstitutionParamMapping::override_context):
	Likewise.
	(SubstitutionRef::monomorphize): Likewise.
	* typecheck/rust-tyty-util.cc (TyVar::get_implicit_infer_var):
	Likewise.
	(TyVar::monomorphized_clone): Likewise.
	(TyWithLocation::TyWithLocation): Likewise.
	* typecheck/rust-tyty.cc (BaseType::satisfies_bound): Likewise.
	(InferType::clone): Likewise.
	(ADTType::handle_substitions): Likewise.
	(TupleType::handle_substitions): Likewise.
	(FnType::handle_substitions): Likewise.
	(ClosureType::setup_fn_once_output): Likewise.
	(ArrayType::handle_substitions): Likewise.
	(SliceType::handle_substitions): Likewise.
	(ReferenceType::handle_substitions): Likewise.
	(PointerType::handle_substitions): Likewise.
	(ParamType::handle_substitions): Likewise.
	* typecheck/rust-tyty.h: Likewise.
	* typecheck/rust-unify.cc (UnifyRules::UnifyRules): Likewise.
	(UnifyRules::commit): Likewise.
	* util/rust-hir-map.cc: Change getter return type to a reference.
	* util/rust-hir-map.h: Update function's prototype.

2025-03-17  Mael Cravero  <mael.cravero@embecosm.com>

	* rust-gcc.cc: remove unnecessary TREE_SIDE_EFFECTS and TREE_READONLY
	macros used in arithmetic overflow checks.

2025-03-17  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
	(ExprStmtBuilder::visit): Use std::ignore.

2025-03-17  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/ffi-polonius/src/gccrs_ffi_generated.rs: Error reporting.
	* checks/errors/borrowck/ffi-polonius/src/lib.rs: Error reporting.
	* checks/errors/borrowck/polonius/rust-polonius-ffi.h (struct FactsView):
	Error reporting.
	(struct Output): Error reporting.
	* checks/errors/borrowck/polonius/rust-polonius.h (struct Facts): Error reporting.
	* checks/errors/borrowck/rust-borrow-checker.cc: Error reporting.

2025-03-17  Jakub Dupak  <dev@jakubdupak.com>

	* Make-lang.in: Link Polonius.
	* checks/errors/borrowck/rust-borrow-checker.cc: Run Polonius.

2025-03-17  Jakub Dupak  <dev@jakubdupak.com>

	* Make-lang.in: Build Polonius.

2025-03-17  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/polonius/rust-polonius.h (struct FullPoint):
	Polonius facts dump.
	(struct Facts): Polonius facts dump.
	* checks/errors/borrowck/rust-bir-dump.cc (Dump::go):
	Polonius facts dump.
	(Dump::visit): Polonius facts dump.
	(Dump::visit_place): Polonius facts dump.
	(Dump::visit_move_place): Polonius facts dump.
	(Dump::visit_scope): Polonius facts dump.
	* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::go): Polonius facts dump.

2025-03-17  Kushal Pal  <kushalpal109@gmail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Lines
	removed as the objects are unused.

2025-03-17  zhanghe9702  <zhanghe9702@163.com>

	* backend/rust-tree.h: removing the CLASSTYPE_VBASECLASSES macro
	which is duplicated three times.

2025-03-06  Simon Martin  <simon@nasilyan.com>

	* rust-diagnostics.h (RUST_ATTRIBUTE_GCC_DIAG): Fix comment
	typo, paramter -> parameter.

2024-12-02  Owen Avery  <powerboat9.gamer@gmail.com>
	    Thomas Schwinge  <tschwinge@baylibre.com>

	* typecheck/rust-hir-type-check-toplevel.cc: Removed.
	* typecheck/rust-hir-type-check-toplevel.h: Removed.

2024-11-28  David Malcolm  <dmalcolm@redhat.com>

	PR c/104896
	* backend/rust-compile-expr.cc
	(CompileExpr::compile_integer_literal): Replace "%<%s%>" with
	"%qs" in message wording.
	(CompileExpr::compile_float_literal): Likewise.
	* backend/rust-compile-intrinsic.cc (Intrinsics::compile):
	Likewise.
	* backend/rust-tree.cc (maybe_warn_nodiscard): Likewise.
	* checks/lints/rust-lint-scan-deadcode.h: Likewise.
	* lex/rust-lex.cc (Lexer::parse_partial_unicode_escape): Likewise.
	(Lexer::parse_raw_byte_string): Likewise.
	* lex/rust-token.cc (Token::get_str): Likewise.
	* metadata/rust-export-metadata.cc
	(PublicInterface::write_to_path): Likewise.
	* parse/rust-parse.cc
	(peculiar_fragment_match_compatible_fragment): Likewise.
	(peculiar_fragment_match_compatible): Likewise.
	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path):
	Likewise.
	* resolve/rust-ast-resolve-toplevel.h: Likewise.
	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go):
	Likewise.
	* rust-session-manager.cc (validate_crate_name): Likewise.
	(Session::load_extern_crate): Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Likewise.
	(TypeCheckExpr::resolve_fn_trait_call): Likewise.
	* typecheck/rust-hir-type-check-implitem.cc
	(TypeCheckImplItemWithTrait::visit): Likewise.
	* typecheck/rust-hir-type-check-item.cc
	(TypeCheckItem::validate_trait_impl_block): Likewise.
	* typecheck/rust-hir-type-check-struct.cc
	(TypeCheckStructExpr::visit): Likewise.
	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
	Likewise.
	* typecheck/rust-tyty.cc (BaseType::bounds_compatible): Likewise.
	* typecheck/rust-unify.cc (UnifyRules::emit_abi_mismatch):
	Likewise.
	* util/rust-attributes.cc (AttributeChecker::visit): Likewise.

2024-11-22  Andrew Pinski  <quic_apinski@quicinc.com>

	PR bootstrap/117737
	* resolve/rust-ast-resolve-expr.cc (INCLUDE_MEMORY): Remove.
	* rust-attribs.cc (INCLUDE_MEMORY): Remove.
	* rust-system.h (INCLUDE_MEMORY): Remove.

2024-11-01  David Malcolm  <dmalcolm@redhat.com>

	PR bootstrap/117361
	* Make-lang.in (s-selftest-rust): Use GCC_FOR_SELFTESTS.
	(selftest-rust-gdb): Likewise.
	(selftest-rust-valgrind): Likewise.

2024-10-25  Jakub Jelinek  <jakub@redhat.com>

	* util/optional.h: Remove trailing whitespace.
	* util/expected.h: Likewise.
	* util/rust-unicode-data.h: Likewise.

2024-10-24  David Malcolm  <dmalcolm@redhat.com>
	    Gaius Mulley  <gaiusmod2@gmail.com>

	PR other/116613
	* resolve/rust-ast-resolve-expr.cc: Add #define INCLUDE_MEMORY.
	* rust-attribs.cc: Likewise.
	* rust-system.h: Likewise.

2024-10-18  Alejandro Colomar  <alx@kernel.org>

	* backend/rust-tree.h (array_type_nelts_top)
	* backend/rust-tree.cc (array_type_nelts_top):
	Remove function.

2024-10-18  Alejandro Colomar  <alx@kernel.org>

	* backend/rust-tree.cc (array_type_nelts_top):
	Rename array_type_nelts => array_type_nelts_minus_one

2024-09-26  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/borrowck/rust-bir.h
	(class AbstractExpr): Add virtual destructor.

2024-09-25  Mikael Morin  <mikael@gcc.gnu.org>

	PR other/116801
	* lang.opt.urls: Regenerate.

2024-09-20  David Malcolm  <dmalcolm@redhat.com>

	PR other/116613
	* resolve/rust-ast-resolve-expr.cc
	(funny_ice_finalizer): : Convert first param from
	diagnostic_context * to diagnostic_text_output_format &.
	(ResolveExpr::visit): Update for renaming.

2024-08-12  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/errors/borrowck/rust-bir-builder.h: Cast size_t values to unsigned
	long before printing.
	* checks/errors/borrowck/rust-bir-fact-collector.h: Likewise.

2024-08-12  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/errors/borrowck/rust-bir-fact-collector.h (points): Rename
	`push_subset(PlaceId, PlaceId)` to `push_subset_place(PlaceId, PlaceId)`

2024-08-05  Thomas Schwinge  <tschwinge@baylibre.com>

	* Make-lang.in (RUST_LIBDEPS): Inline into all users.

2024-08-05  Thomas Schwinge  <tschwinge@baylibre.com>

	* Make-lang.in (LIBS): Don't override.
	(crab1$(exeext):): Use 'CRAB1_LIBS'.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Visit
	inherent impl type.

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/ffi-polonius/src/gccrs_ffi.rs: Bump copyright.
	* checks/errors/borrowck/ffi-polonius/src/lib.rs: Bump copyright.
	* checks/errors/borrowck/polonius/rust-polonius-ffi.h: Bump copyright.
	* checks/errors/borrowck/polonius/rust-polonius.h: Bump copyright.
	* checks/errors/borrowck/rust-bir-dump.cc: Bump copyright.
	* checks/errors/borrowck/rust-bir-fact-collector.h: Bump copyright.
	* checks/errors/borrowck/rust-bir-free-region.h: Bump copyright.

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-dump.cc (renumber_places):
	Remove unecessary braces.
	(Dump::go): Remove unecessary braces.
	(Dump::visit): Remove unecessary braces.
	(Dump::visit_scope): Remove unecessary braces.
	* checks/errors/borrowck/rust-bir-fact-collector.h (class FactCollector):
	Remove unecessary braces.
	(points): Remove unecessary braces.
	* checks/errors/borrowck/rust-bir-free-region.h: Remove unecessary braces.
	* checks/errors/borrowck/rust-bir-place.h: Remove unecessary braces.
	* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::go):
	Remove unecessary braces.
	* checks/errors/borrowck/rust-function-collector.h: Remove unecessary braces.

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-fact-collector.h: New file.
	* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::go):
	Enable fact collection.

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-place.h (struct Lifetime):
	Extended regions and loans.
	(struct Loan): Representation of loan (result of borrowing)
	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit):
	Fix let stmt handling.
	* checks/errors/borrowck/rust-bir-builder-pattern.h: improved
	pattern translation
	* checks/errors/borrowck/rust-bir-builder-internal.h: region binding
	* checks/errors/borrowck/rust-bir-builder-expr-stmt.h (class ExprStmtBuilder):
	Region support.
	(class RenumberCtx): Region support.
	* checks/errors/borrowck/rust-bir-builder.h (class Builder): Region support.
	* checks/errors/borrowck/rust-bir-dump.cc (get_lifetime_name): Region support.
	(renumber_places): Region support.
	(Dump::go): Region support.
	(Dump::visit): Region support.
	(Dump::visit_lifetime): Region support.
	(Dump::visit_scope): Region support.
	* checks/errors/borrowck/rust-bir.h (class AbstractExpr): Region support.
	(struct Function): Region support.
	(class BorrowExpr): Region support.
	(class CallExpr): Region support.

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-tyty-variance-analysis-private.h (class FieldVisitorCtx):
	Region extraction.
	* typecheck/rust-tyty-variance-analysis.cc (query_field_regions): Region extraction.
	(FieldVisitorCtx::collect_regions): Region extraction.
	(FieldVisitorCtx::add_constraints_from_ty): Region extraction.
	(FieldVisitorCtx::add_constraints_from_region): Region
	extraction.
	(FieldVisitorCtx::add_constrints_from_param): Region extraction.
	* typecheck/rust-tyty-variance-analysis.h (query_field_regions):
	Region extraction.

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-free-region.h: New file.

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/ffi-polonius/Cargo.toml: New file.
	* checks/errors/borrowck/ffi-polonius/src/gccrs_ffi.rs: New file.
	* checks/errors/borrowck/ffi-polonius/src/gccrs_ffi_generated.rs: New file.
	* checks/errors/borrowck/ffi-polonius/src/lib.rs: New file.
	* checks/errors/borrowck/polonius/rust-polonius-ffi.h: New file.
	* checks/errors/borrowck/polonius/rust-polonius.h: New file.

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-dump.cc (Dump::visit): const
	visitor
	* checks/errors/borrowck/rust-bir-dump.h: const visitor
	* checks/errors/borrowck/rust-bir-visitor.h: const visitor
	* checks/errors/borrowck/rust-bir.h: const getter

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit): Emit moves.
	* checks/errors/borrowck/rust-bir-builder-internal.h: Emit moves.
	* checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h: Emit moves.
	* checks/errors/borrowck/rust-bir-dump.cc (Dump::visit_move_place): Emit moves.
	(Dump::visit): Emit moves.
	* checks/errors/borrowck/rust-bir-place.h (struct Place): Emit moves.
	* checks/errors/borrowck/rust-bir-visitor.h: Emit moves.
	* checks/errors/borrowck/rust-bir.h (enum class): Emit moves.
	(class AbstractExpr): Emit moves.
	(BasicBlock::is_terminated): Emit moves.

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::setup_loop):
	Loop handling.
	(ExprStmtBuilder::visit): Handle scopes.
	* checks/errors/borrowck/rust-bir-builder-internal.h (struct BuilderContext):
	Handle scopes.
	* checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Dump scopes.
	(Dump::visit): Add scopes dump.
	(Dump::indent): Add indentation logic.
	(Dump::visit_scope): Dump scope.
	* checks/errors/borrowck/rust-bir-dump.h: Dump methods.
	* checks/errors/borrowck/rust-bir-place.h (std::numeric_limits::max): Scope constants.
	(struct Scope): Scope representation.
	(class PlaceDB): Scope tracking.

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-place.h:
	Create place tree traverse API.

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit):
	Use callable API

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/bir-design-notes.md (nodes): Rename node to statement.
	(Nodes): Rename node to statement.
	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit):
	Rename node to statement.
	* checks/errors/borrowck/rust-bir-builder-internal.h: Rename node to statement.
	* checks/errors/borrowck/rust-bir-builder.h: Rename node to statement.
	* checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Rename node to statement.
	(Dump::visit): Rename node to statement.
	* checks/errors/borrowck/rust-bir-dump.h (class Dump): Rename node to statement.
	* checks/errors/borrowck/rust-bir-visitor.h (class Node): Rename node to statement.
	(class Statement): Rename node to statement.
	* checks/errors/borrowck/rust-bir.h (class Node): Rename node to statement.
	(class Statement): Rename node to statement.
	(class AbstractExpr): Rename node to statement.
	(struct Function): Rename node to statement.
	(struct BasicBlock): Rename node to statement.

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-dump.cc: Use rust-system.h
	* checks/errors/borrowck/rust-bir-dump.h (RUST_BIR_DUMP_H): Use rust-system.h
	* checks/errors/borrowck/rust-bir-place.h (RUST_BIR_PLACE_H): Use rust-system.h
	* checks/errors/borrowck/rust-function-collector.h: Use rust-system.h
	* rust-system.h: Use rust-system.h
	* typecheck/rust-hir-type-check.h: Use rust-system.h
	* typecheck/rust-tyty-subst.cc: Use rust-system.h
	* typecheck/rust-tyty-subst.h: Use rust-system.h
	* typecheck/rust-tyty.h: Use rust-system.h

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* typecheck/rust-unify.cc (UnifyRules::go): Always unify to `ltype` if
	we are matching against a `Never` in `rtype`.
	(UnifyRules::expect_never): Always unify to the expected type.

2024-08-01  Owen Avery  <powerboat9.gamer@gmail.com>

	* lex/rust-lex.cc
	(Lexer::parse_raw_string):
	Bring handling of edge cases to par with parse_raw_byte_string.

2024-08-01  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h
	(Parser::parse_vis_item):
	Call parse_function instead of parse_async_item when finding
	UNSAFE or EXTERN_KW during lookahead.

2024-08-01  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-attribute-values.h
	(Attributes::UNSTABLE): New.
	* util/rust-attributes.cc
	(__definitions): Add Attributes::UNSTABLE.

2024-08-01  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-attribute-values.h
	(Attributes::RUSTC_DEPRECATED): New.
	* util/rust-attributes.cc
	(__definitions): Add Attributes::RUSTC_DEPRECATED.

2024-08-01  Owen Avery  <powerboat9.gamer@gmail.com>

	* lex/rust-lex.cc
	(Lexer::parse_raw_byte_string):
	Bring handling of edge cases to par with parse_byte_string.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-forever-stack.h: Change dfs function prototype and
	declare dfs return type structure.
	* resolve/rust-forever-stack.hxx: Adapt dfs function to the new return
	type.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-compile-resolve-path.cc: Attempt to resolve names
	also using new name resolution context.
	* backend/rust-compile-resolve-path.h: Add new declaration.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::handle_use_glob):
	Change function prototype to use a reference instead.
	(TopLevel::handle_use_dec): Likewise.
	(TopLevel::handle_rebind): Add name resolution on rebind use
	declarations.
	(flatten_rebind): Change prototype to accept a pair of path/alias.
	(flatten_list): Adapt call to flatten_rebind.
	(flatten): Adapt call to flatten_rebind.
	(flatten_glob): Remove unused part.
	(TopLevel::visit): Add rebind resolution.
	* resolve/rust-toplevel-name-resolver-2.0.h: Adapt function prototypes.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add mapping
	implementation.
	* resolve/rust-late-name-resolver-2.0.h: Add function visitor prototype
	override.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::handle_use_dec):
	Replace the string format %<%s%> with the proper %qs format.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path):
	Only get immutable name resolution context when name resolution 2.0 is
	used.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path):
	Likewise.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-canonical-path.h: Also assign crate number.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Add
	Self generic parameter injection and a warning.
	* resolve/rust-toplevel-name-resolver-2.0.h: Add function prototype.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-item.cc (CompileItem::visit): Check the resolver
	flag and use the new one when required.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Remove
	empty visit function.
	* resolve/rust-default-resolver.h: Remove function prototype.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Remove
	visitor implementation and scoping.
	* resolve/rust-default-resolver.h: Remove function prototype.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Add
	constant identifiers to the resolver.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): Change
	search location for struct types.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (GlobbingVisitor::visit):
	Change enum type namespace.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (GlobbingVisitor::visit):
	Add tuple struct type to the resolver's context.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (GlobbingVisitor::visit):
	Add the struct constructor when the struct is a unit.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Change the
	namespace for values from "label" to "values".

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Remove
	function implementation.
	* resolve/rust-default-resolver.h: Remove function prototype.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Visit
	constant item's types.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Visit
	function return type.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path):
	Change error message to match old resolver and test case.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Add
	the struct constructor to the value namespace.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::visit): Adapt
	resolved type to the new API.
	(Early::visit_attributes): Retrieve the node id from the definition.
	* resolve/rust-forever-stack.h: Change the return type of getter
	functions. Those functions now return a definition type instead of a
	node id.
	* resolve/rust-forever-stack.hxx: Change member function implementation
	in the forever stack to accomodate it's API changes.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Use internal
	node id. Emit an error when resolving multiple ambiguous values.
	* resolve/rust-rib.cc (Rib::Definition::Definition): Add a default
	constructor.
	(Rib::Definition::is_ambiguous): Add a new function to determine
	whether a function definition is ambiguous or not.
	(Rib::Definition::to_string): Add a member function to convert a given
	definition to a string.
	(Rib::insert): Add new rules for value insertion in a rib. Insertion
	order does not impact the result anymore: inserting a shadowable value
	after a non shadowable one does not trigger an error anymore. All
	shadowable values inserted in a rib are kepts until being replaced by a
	non shadowable one.
	(Rib::get): Return a definition instead of a node id.
	* resolve/rust-rib.h: Update function prototypes.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::handle_use_glob):
	Update return value container to match the new function's prototype.
	(TopLevel::handle_use_dec): Likewise.
	(flatten_glob): Likewise.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-forever-stack.h: Add a new function prototype to insert
	a shadowable definition.
	* resolve/rust-forever-stack.hxx: Add the new insert_shadowable
	function to insert shadowable definition into the forever stack.
	* resolve/rust-name-resolution-context.cc (NameResolutionContext::insert_shadowable):
	Likewise with the name resolution context.
	* resolve/rust-name-resolution-context.h: Add name resolution context
	insert_shadowable member function prototype.
	* resolve/rust-toplevel-name-resolver-2.0.cc (GlobbingVisitor::visit):
	Insert shadowable definition into the forever stack for glob use
	declaration.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add a check
	for missing item.
	* resolve/rust-toplevel-name-resolver-2.0.cc (GlobbingVisitor::go):
	Add a new function in the visitor to dispatch the visitor to items in
	the given module.
	(TopLevel::handle_use_glob): Change call to visitor to use the pointer.
	* resolve/rust-toplevel-name-resolver-2.0.h: Add prototype for new
	member function.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/lints/rust-lint-marklive.cc (MarkLive::find_ref_node_id):
	Add code path for the resolver 2.0
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Remove failing
	label context resolve call.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (GlobbingVisitor::visit):
	Insert names into their namespace.
	(TopLevel::visit): Insert ast module.
	(TopLevel::handle_use_dec): Resolve use declaration.
	(TopLevel::handle_use_glob): Use globbing visitor.
	(flatten_list): Use globbing path vector.
	(flatten_glob): Likewise.
	(flatten): Likewise.
	(prefix_subpaths): Add a function to prefix subpath.
	* resolve/rust-toplevel-name-resolver-2.0.h (class GlobbingVisitor):
	Add globbing visitor.
	* util/rust-hir-map.cc (Mappings::insert_ast_module): Add function to
	insert module in module hashmap.
	(Mappings::lookup_ast_module): Add function to retrieve ast module.
	* util/rust-hir-map.h: Add module map and getter/setter prototypes.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Module
	should be added to the type namespace in order to be retrieved later.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::setup_builtin_types):
	Setup bool as builtin type.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (insert_macros): Add
	constraint over the ast node id.
	(TopLevel::visit): Likewise.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Change
	error message.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::handle_use_dec):
	Use the new dict to track down already resolved use declarations.
	* resolve/rust-toplevel-name-resolver-2.0.h: Add new dict to store
	previous use declarations.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::insert_or_error_out):
	Add new constraint to duplicate errors.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.hxx: Start using Rib::Definition for
	shadowable information.
	* resolve/rust-late-name-resolver-2.0.cc (next_node_id): New.
	(next_hir_id): New.
	(Late::setup_builtin_types): Improve builtin type setup.
	* resolve/rust-rib.cc (Rib::Definition::Definition): New constructor.
	(Rib::Definition::Shadowable): Likewise.
	(Rib::Definition::NonShadowable): Likewise.
	(Rib::Rib): Fix general constructor.
	(Rib::insert): Use Definition class.
	(Rib::get): Likewise.
	* resolve/rust-rib.h: New Definition class, new prototypes.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-name-resolution-context.cc (NameResolutionContext::map_usage):
	Use newtype pattern.
	(NameResolutionContext::lookup): Likewise.
	* resolve/rust-name-resolution-context.h (class Usage): New class.
	(class Definition): Likewise.
	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Create instances
	of Usage and Definition.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-compile-base.cc: Use new ImmutableNrCtx.
	* backend/rust-compile-context.h: Likewise.
	* backend/rust-compile-expr.cc: Likewise.
	* backend/rust-compile-item.cc: Likewise.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): Start
	fetching name resolution information in the typechecker.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path):
	Likewise.
	* typecheck/rust-hir-type-check-path.cc: Use nr 2.0.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-name-resolution-context.cc (NameResolutionContext::lookup):
	Add lookup function.
	* resolve/rust-name-resolution-context.h: Include mappings and optional.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* rust-session-manager.cc (Session::compile_crate): Create an immutable
	view of the name resolution context.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* rust-session-manager.cc: Add files for dumping name resolution, call
	name resolution dump function.
	(Session::dump_name_resolution): New.
	* rust-session-manager.h: New declaration.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* rust-session-manager.cc (Session::compile_crate): Create name resolution
	context for Session::expansion and subsequent name resolution passes.
	(Session::expansion): Take name resolution context as a parameter
	instead.
	* rust-session-manager.h (Session::expansion): Fix declaration.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Compile it.
	* resolve/rust-immutable-name-resolution-context.cc: New file.
	* resolve/rust-immutable-name-resolution-context.h: New file.

2024-08-01  Thomas Schwinge  <tschwinge@baylibre.com>

	* lex/rust-lex.cc (is_identifier_start): Placate clang-format.

2024-08-01  jjasmine  <tanghocle456@gmail.com>

	* Make-lang.in: add new .o builds for new .cc files
	* expand/rust-cfg-strip.h (RUST_CFG_STRIP_H): Add include guards
	for rust-cfg-strip
	* expand/rust-macro-builtins.cc (make_macro_path_str): moved to new respective files
	(make_token): moved to new respective files
	(make_string): moved to new respective files
	(macro_end_token): moved to new respective files
	(try_extract_string_literal_from_fragment): moved to new respective files
	(try_expand_many_expr): moved to new respective files
	(parse_single_string_literal): moved to new respective files
	(source_relative_path): moved to new respective files
	(load_file_bytes): moved to new respective files
	(MacroBuiltin::assert_handler): moved to new respective files
	(MacroBuiltin::file_handler): moved to new respective files
	(MacroBuiltin::column_handler): moved to new respective files
	(MacroBuiltin::include_bytes_handler): moved to new respective files
	(MacroBuiltin::include_str_handler): moved to new respective files
	(MacroBuiltin::compile_error_handler): moved to new respective files
	(MacroBuiltin::concat_handler): moved to new respective files
	(MacroBuiltin::env_handler): moved to new respective files
	(MacroBuiltin::cfg_handler): moved to new respective files
	(MacroBuiltin::include_handler): moved to new respective files
	(MacroBuiltin::line_handler): moved to new respective files
	(MacroBuiltin::stringify_handler): moved to new respective files
	(struct FormatArgsInput): moved to new respective files
	(struct FormatArgsParseError): moved to new respective files
	(format_args_parse_arguments): moved to new respective files
	(MacroBuiltin::format_args_handler): moved to new respective files
	* expand/rust-macro-builtins.h (builtin_macro_from_string):
	merge tl::optional from master
	* expand/rust-macro-builtins-asm.cc: New file.
	* expand/rust-macro-builtins-format-args.cc: New file.
	* expand/rust-macro-builtins-helpers.cc: New file.
	* expand/rust-macro-builtins-helpers.h: New file.
	* expand/rust-macro-builtins-include.cc: New file.
	* expand/rust-macro-builtins-location.cc: New file.
	* expand/rust-macro-builtins-log-debug.cc: New file.
	* expand/rust-macro-builtins-test-bench.cc: New file.
	* expand/rust-macro-builtins-trait.cc: New file.
	* expand/rust-macro-builtins-utility.cc: New file.

2024-08-01  Guillaume Gomez  <guillaume1.gomez@gmail.com>

	* expand/rust-derive.cc (DeriveVisitor::derive): Fix typo

2024-08-01  jjasmine  <tanghocle456@gmail.com>

	* hir/rust-ast-lower-extern.h: Add translate_visiblity
	* hir/tree/rust-hir-item.h: Fix constructor of ExternalTypeItem

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
	Collect variance info from types.

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* Make-lang.in: Add new .cc file.
	* rust-session-manager.cc (Session::compile_crate): Run
	analysis.
	* typecheck/rust-tyty-variance-analysis-private.h: New file.
	* typecheck/rust-tyty-variance-analysis.cc: New file.
	* typecheck/rust-tyty-variance-analysis.h: New file.
	* typecheck/rust-typecheck-context.cc
	(TypeCheckContext::get_variance_analysis_ctx):
	Variance analysis context.
	* typecheck/rust-hir-type-check.h (TypeCheckItem::visit):
	Variance analysis context.

2024-08-01  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_arg_at):
	Add unified API.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-builtins.cc (struct FormatArgsInput): Store the format_str
	as a string instead of an AST::Expr.
	(format_args_parse_arguments): Transform format_expr into a format string
	properly - add note for handling eager macro invocations later on.
	(MacroBuiltin::format_args_handler): Parse the correct input, append
	newline to format_str if necessary.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-builder.h: Rename AST::AstBuilder -> AST::Builder
	* ast/rust-ast-builder.cc: Likewise.
	* expand/rust-derive.cc: Use new AST::Builder name.
	* expand/rust-derive.h: Likewise.
	* ast/rust-builtin-ast-nodes.h: Add required getters.
	* expand/rust-expand-format-args.cc (format_arg): New.
	(get_trait_name): New.
	(expand_format_args): Properly expand basic format_args!() invocations.
	* expand/rust-expand-format-args.h (expand_format_args): Fix signature.
	* expand/rust-macro-builtins.cc (MacroBuiltin::format_args_handler):
	Call into expand_format_args().

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-fmt.cc (ffi::RustHamster::to_string): New.
	(Pieces::collect): Adapt to use new handle API.
	(Pieces::~Pieces): Likewise.
	(Pieces::Pieces): Likewise.
	(Pieces::operator=): Likewise.
	* ast/rust-fmt.h (struct RustString): Add members.
	(struct FormatArgsHandle): New.
	(clone_pieces): Adapt for new FFI API.
	(destroy_pieces): Likewise.
	(struct Pieces): Store new FormatArgsHandle type.
	* expand/rust-expand-format-args.cc (expand_format_args): Use proper
	namespace.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): FormatArgs
	nodes are already resolved, so do nothing.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Add new object.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Remove calls to
	FormatArgsLowering.
	* expand/rust-expand-format-args.cc: New file.
	* expand/rust-expand-format-args.h: New file.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-macro.h: Use proper node id instead of the one in the base
	Expr class - which is uninitialized.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Remove reference
	to unique pointer and replace it with a direct reference to the wrapped
	data.
	* ast/rust-ast.cc (VariadicParam::as_string): Likewise.
	(BlockExpr::normalize_tail_expr): Likewise.
	* ast/rust-expr.h: Likewise and add pointer getter in order to allow
	pointer reseat.
	* ast/rust-item.h: Likewise and add pointer getter for reseat.
	* ast/rust-path.h: Likewise.
	* ast/rust-pattern.h: Likewise.
	* ast/rust-stmt.h: Likewise.
	* ast/rust-type.h: Likewise.
	* expand/rust-cfg-strip.cc (CfgStrip::maybe_strip_struct_fields):
	Remove references to unique pointers and replace it with direct
	references to the wrapped object.
	(CfgStrip::maybe_strip_tuple_fields): Likewise.
	(CfgStrip::maybe_strip_generic_args): Likewise.
	(CfgStrip::maybe_strip_qualified_path_type): Likewise.
	(CfgStrip::visit): Likewise.
	* expand/rust-expand-visitor.cc (ExpandVisitor::maybe_expand_expr):
	Likewise.
	(ExpandVisitor::maybe_expand_type): Likewise.
	(ExpandVisitor::visit): Likewise.
	* expand/rust-expand-visitor.h: Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_binding):
	Likewise.
	(ASTLoweringBase::lower_generic_args): Likewise.
	(ASTLoweringBase::lower_self): Likewise.
	(ASTLoweringBase::lower_type_no_bounds): Likewise.
	(ASTLoweringBase::lower_bound): Likewise.
	(ASTLoweringBase::lower_range_pattern_bound): Likewise.
	* hir/rust-ast-lower-base.h: Likewise.
	* hir/rust-ast-lower-block.h: Likewise.
	* hir/rust-ast-lower-enumitem.h: Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::translate): Likewise.
	(ASTLoweringExpr::visit): Likewise.
	* hir/rust-ast-lower-expr.h: Likewise.
	* hir/rust-ast-lower-extern.h: Likewise.
	* hir/rust-ast-lower-implitem.cc (ASTLowerImplItem::translate):
	Likewise.
	(ASTLowerImplItem::visit): Likewise.
	(ASTLowerTraitItem::translate): Likewise.
	(ASTLowerTraitItem::visit): Likewise.
	* hir/rust-ast-lower-implitem.h: Likewise.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::translate): Likewise.
	(ASTLoweringItem::visit): Likewise.
	* hir/rust-ast-lower-item.h: Likewise.
	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::translate):
	Likewise.
	(ASTLoweringPattern::visit): Likewise.
	* hir/rust-ast-lower-pattern.h: Likewise.
	* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Likewise.
	* hir/rust-ast-lower-struct-field-expr.h: Likewise.
	* hir/rust-ast-lower-type.cc (ASTLowerTypePath::visit): Likewise.
	(ASTLowerQualifiedPathInType::visit): Likewise.
	(ASTLoweringType::translate): Likewise.
	(ASTLoweringType::visit): Likewise.
	(ASTLowerGenericParam::translate): Likewise.
	(ASTLowerGenericParam::visit): Likewise.
	(ASTLoweringTypeBounds::translate): Likewise.
	(ASTLoweringTypeBounds::visit): Likewise.
	(ASTLowerWhereClauseItem::visit): Likewise.
	* hir/rust-ast-lower-type.h: Likewise.
	* hir/rust-ast-lower.cc (ASTLowering::go): Likewise.
	(ASTLoweringBlock::visit): Likewise.
	(ASTLoweringIfBlock::visit): Likewise.
	(ASTLoweringIfLetBlock::visit): Likewise.
	(ASTLowerStructExprField::visit): Likewise.
	(ASTLoweringExprWithBlock::visit): Likewise.
	(ASTLoweringBase::lower_qual_path_type): Likewise.
	(ASTLoweringBase::lower_closure_param): Likewise.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::resolve_visibility):
	Likewise.
	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::go): Likewise.
	(ResolveExpr::visit): Likewise.
	(ResolveExpr::resolve_closure_param): Likewise.
	* resolve/rust-ast-resolve-expr.h: Likewise.
	* resolve/rust-ast-resolve-implitem.h: Likewise.
	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
	Likewise.
	(ResolveItem::go): Likewise.
	(ResolveItem::visit): Likewise.
	(ResolveItem::resolve_impl_item): Likewise.
	(ResolveItem::resolve_extern_item): Likewise.
	(ResolveImplItems::go): Likewise.
	(ResolveExternItem::go): Likewise.
	(ResolveExternItem::visit): Likewise.
	* resolve/rust-ast-resolve-item.h: Likewise.
	* resolve/rust-ast-resolve-path.cc (ResolvePath::go): Likewise.
	(ResolvePath::resolve_path): Likewise.
	* resolve/rust-ast-resolve-path.h: Likewise.
	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go):
	Likewise.
	(PatternDeclaration::visit): Likewise.
	(resolve_range_pattern_bound): Likewise.
	* resolve/rust-ast-resolve-pattern.h: Likewise.
	* resolve/rust-ast-resolve-stmt.cc (ResolveStmt::visit): Likewise.
	* resolve/rust-ast-resolve-stmt.h: Likewise.
	* resolve/rust-ast-resolve-struct-expr-field.cc (ResolveStructExprField::go):
	Likewise.
	(ResolveStructExprField::visit): Likewise.
	* resolve/rust-ast-resolve-struct-expr-field.h: Likewise.
	* resolve/rust-ast-resolve-toplevel.h: Likewise.
	* resolve/rust-ast-resolve-type.cc (ResolveType::visit): Likewise.
	(ResolveRelativeTypePath::go): Likewise.
	(ResolveRelativeQualTypePath::resolve_qual_seg): Likewise.
	(ResolveTypeToCanonicalPath::go): Likewise.
	(ResolveTypeToCanonicalPath::visit): Likewise.
	(ResolveGenericArgs::resolve_disambiguated_generic): Likewise.
	(ResolveGenericArgs::go): Likewise.
	* resolve/rust-ast-resolve-type.h: Likewise.
	* resolve/rust-ast-resolve.cc (NameResolution::go): Likewise.
	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Likewise.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::resolve_qualified_path_type):
	Likewise.
	(EarlyNameResolver::visit): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
	Likewise.
	* checks/errors/rust-ast-validation.cc: Likewise.

2024-08-01  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-item.h: Change getter function prototype to return a
	reference directly instead of a reference to the wrapper type.
	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Fix
	the code to accept references instead.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_self): Change
	function implementation to return a reference.
	* hir/rust-ast-lower-base.h: Accept a reference instead of a unique
	pointer reference.
	* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Adapt the code
	to a reference instead of a unique pointer.

2024-08-01  Thomas Schwinge  <tschwinge@baylibre.com>

	* backend/rust-tree.cc (c_common_type_for_mode): Placate clang-format.

2024-08-01  0xn4utilus  <gyanendrabanjare8@gmail.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit):
	Remove dead code.
	* ast/rust-ast-collector.h: Likewise.
	* ast/rust-ast-full-decls.h (class ExternalFunctionItem):
	Likewise.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit):
	Likewise.
	* ast/rust-ast-visitor.h: Likewise.
	* ast/rust-ast.cc (ExternalFunctionItem::as_string): Likewise.
	(ExternalFunctionItem::accept_vis): Likewise.
	* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
	Likewise.
	* checks/errors/rust-ast-validation.h: Likewise.
	* checks/errors/rust-feature-gate.h: Likewise.
	* expand/rust-cfg-strip.cc (CfgStrip::visit):
	Likewise.
	* expand/rust-cfg-strip.h: Likewise.
	* expand/rust-derive.h: Likewise.
	* expand/rust-expand-visitor.cc (ExpandVisitor::visit):
	Likewise.
	* expand/rust-expand-visitor.h: Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit):
	Likewise.
	* hir/rust-ast-lower-base.h: Likewise.
	* metadata/rust-export-metadata.cc (ExportContext::emit_function):
	Likewise.
	* parse/rust-parse-impl.h: Likewise.
	* parse/rust-parse.h: Likewise.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit):
	Likewise.
	* resolve/rust-ast-resolve-base.h: Likewise.
	* resolve/rust-default-resolver.cc (DefaultResolver::visit):
	Likewise.
	* resolve/rust-default-resolver.h: Likewise.
	* util/rust-attributes.cc (AttributeChecker::visit): Likewise.
	* util/rust-attributes.h: Likewise.

2024-08-01  0xn4utilus  <gyanendrabanjare8@gmail.com>

	* checks/errors/rust-feature-gate.cc (FeatureGate::visit):
	Check if function is_external or not.
	* hir/rust-ast-lower-extern.h: Use AST::Function
	instead of AST::ExternalFunctionItem.
	* parse/rust-parse-impl.h (Parser::parse_external_item):
	Likewise.
	(Parser::parse_pattern): Fix clang format.
	* resolve/rust-ast-resolve-implitem.h: Likewise.
	* resolve/rust-ast-resolve-item.cc (ResolveExternItem::visit):
	Likewise.
	* resolve/rust-ast-resolve-item.h: Likewise.
	* resolve/rust-default-resolver.cc (DefaultResolver::visit):
	Check if param has_pattern before using get_pattern.

2024-08-01  0xn4utilus  <gyanendrabanjare8@gmail.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
	Add external function validation support. Add ErrorCode::E0130.
	* parse/rust-parse-impl.h (Parser::parse_function): Parse
	external functions from `parse_function`.
	(Parser::parse_external_item): Clang format.
	(Parser::parse_pattern): Clang format.
	* parse/rust-parse.h: Add default parameter
	`is_external` in `parse_function`.

2024-08-01  0xn4utilus  <gyanendrabanjare8@gmail.com>

	* ast/rust-ast.h: Add Kind Enum to
	Pattern.
	* ast/rust-macro.h: Add get_pattern_kind().
	* ast/rust-path.h: Likewise.
	* ast/rust-pattern.h: Likewise.

2024-08-01  0xn4utilus  <gyanendrabanjare8@gmail.com>

	* ast/rust-ast.cc (Function::Function): Add `is_external_function` field.
	(Function::operator=): Likewise.
	* ast/rust-ast.h: New constructor for ExternalItem.
	* ast/rust-item.h (class Function): Add `is_external_function`
	field. Update `get_node_id`.
	* ast/rust-macro.h: Update copy constructor.

2024-08-01  Sourabh Jaiswal  <sourabhrj31@gmail.com>

	* expand/rust-expand-visitor.cc
	(ExpandVisitor::expand_inner_items): Adjust to use has_value ()
	(ExpandVisitor::expand_inner_stmts): Likewise
	* expand/rust-macro-builtins.cc (builtin_macro_from_string): Likewise
	(make_macro_path_str): Likewise
	* util/rust-hir-map.cc (Mappings::insert_macro_def): Likewise
	* util/rust-lang-item.cc (LangItem::Parse): Adjust to return tl::optional
	(LangItem::toString) Likewise
	* util/rust-token-converter.cc (handle_suffix): Adjust to use value.or ()
	(from_literal) Likewise
	* util/bi-map.h (BiMap::lookup): Adjust to use tl::optional for
	lookups

2024-08-01  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-pattern.h
	(class TupleStructPattern): Assert that items != nullptr.
	(class TuplePattern): Likewise.
	(TupleStructPattern::has_items): Remove.
	(TuplePattern::has_tuple_pattern_items): Likewise.
	* parse/rust-parse-impl.h
	(Parser::parse_ident_leading_pattern):
	Prevent construction of TupleStructPattern with
	(items == nullptr).
	(Parser::parse_pattern_no_alt): Likewise.
	* ast/rust-ast-collector.cc
	(TokenCollector::visit): Remove usage of
	TupleStructPattern::has_items.
	* ast/rust-ast-visitor.cc
	(DefaultASTVisitor::visit): Likewise.
	* resolve/rust-early-name-resolver.cc
	(EarlyNameResolver::visit): Likewise.

2024-08-01  jjasmine  <tanghocle456@gmail.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add error emitting

2024-08-01  jjasmine  <tanghocle456@gmail.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add error emitting

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-builtins.cc (MacroBuiltin::format_args_handler): Add
	documentation regarding future tasks.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Compile the new source file.
	* ast/rust-ast-collector.cc (TokenCollector::visit): Error out when
	visiting FormatArgs nodes.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
	* ast/rust-ast.cc (FormatArgs::get_locus): New.
	* ast/rust-builtin-ast-nodes.h: Improve FormatArgs API.
	* ast/rust-fmt.cc (Pieces::~Pieces): Cleanup.
	(Pieces::Pieces): Likewise.
	* ast/rust-fmt.h (struct Pieces): Add pieces_vector member.
	* hir/rust-ast-lower-format-args.cc: New file.
	* hir/rust-ast-lower-format-args.h: New file.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.cc: Make FormatArgs inherit from AST::Expr
	* ast/rust-builtin-ast-nodes.h: Improve FormatArg* nodes and helpers.
	* ast/rust-fmt.cc (Pieces::collect): Fix interface to match FFI function.
	* ast/rust-fmt.h (collect_pieces): Likewise.
	(struct Pieces): Add append_newline parameter.
	* expand/rust-macro-builtins.cc: Add proper parsing of format_args
	input.
	* hir/rust-ast-lower-base.cc: Include diagnostics header.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* parse/rust-parse.h: New method.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-builtins.cc (format_args_maker): New function.
	(try_expand_many_expr): Add comment about reworking function.
	(MacroBuiltin::format_args_handler): Add newline parameter.
	* expand/rust-macro-builtins.h: Likewise.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-builtin-ast-nodes.h: New file.
	* ast/rust-ast-full-decls.h (class FormatArgs): Declare new class.
	* ast/rust-ast-collector.cc: Handle FormatArgs nodes properly.
	* ast/rust-ast-collector.h: Likewise.
	* ast/rust-ast-full.h: Likewise.
	* ast/rust-ast-visitor.cc: Likewise.
	* ast/rust-ast-visitor.h: Likewise.
	* ast/rust-ast.cc: Likewise.
	* ast/rust-ast.h: Likewise.
	* expand/rust-derive.h: Likewise.
	* hir/rust-ast-lower-base.cc: Likewise.
	* hir/rust-ast-lower-base.h: Likewise.
	* hir/rust-ast-lower-expr.cc: Likewise.
	* hir/rust-ast-lower-expr.h: Likewise.
	* resolve/rust-ast-resolve-base.cc: Likewise.
	* resolve/rust-ast-resolve-base.h: Likewise.

2024-08-01  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-default-resolver.cc
	(DefaultResolver::visit): Visit inner AST nodes of ClosureExprInner,
	ClosureExprInnerTyped, IfExpr, IfExprConseqElse, MatchExpr,
	PathInExpression, EnumItemTuple, EnumItemStruct, and
	EnumItemDiscriminant.
	* ast/rust-item.h
	(EnumItemDiscriminant::has_expr): New function.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* hir/rust-ast-lower-extern.h: Lower to HIR::ExternalTypeItem nodes.
	* hir/tree/rust-hir-item.h (class ExternalTypeItem): Create private
	visibility by default as extern types have no visibility - add a comment
	about the correctness of this.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* hir/tree/rust-hir-item.h (class ExternalTypeItem): New class.
	* hir/tree/rust-hir.cc (ExternalTypeItem::as_string): Likewise.
	* backend/rust-compile-extern.h: Add base for handling HIR::ExternalTypeItem
	node.
	* checks/errors/borrowck/rust-bir-builder-struct.h: Likewise.
	* 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-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
	* checks/errors/rust-unsafe-checker.h: Likewise.
	* hir/rust-ast-lower-extern.h: Likewise.
	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
	* hir/rust-hir-dump.h: Likewise.
	* hir/tree/rust-hir-full-decls.h (class ExternalTypeItem): Likewise.
	* hir/tree/rust-hir-visitor.h: Likewise.
	(ExternalTypeItem::accept_vis): Likewise.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit): Likewise.
	* typecheck/rust-hir-type-check-implitem.h: Likewise.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-ast-resolve-implitem.h: Declare external types as new
	types.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-lang-item.h (class RustLangItem): Renamed to...
	(class LangItem): ...this. Rename ItemType enum to Kind
	* util/rust-lang-item.cc: Rename methods to use new class name.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Use new lang-item API.
	(CompileExpr::resolve_operator_overload): Likewise.
	* backend/rust-compile-expr.h: Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_lang_item_attribute): Likewise.
	* typecheck/rust-autoderef.cc (Adjuster::try_deref_type): Likewise.
	(AutoderefCycle::cycle): Likewise.
	* typecheck/rust-autoderef.h: Likewise.
	* typecheck/rust-hir-type-bounds.h: Likewise.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::get_marker_predicate): Likewise.
	* typecheck/rust-hir-type-check-base.h: Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
	* typecheck/rust-hir-type-check-expr.h: Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeResolveGenericParam::visit): Likewise.
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::assemble_sized_builtin): Likewise.
	(TypeBoundsProbe::assemble_builtin_candidate): Likewise.
	(TypeCheckBase::get_predicate_from_bound): Likewise.
	* typecheck/rust-tyty.cc (ClosureType::setup_fn_once_output): Likewise.
	* util/rust-hir-map.cc (Mappings::get_lang_item): Likewise.
	(Mappings::lookup_trait_item_lang_item): Likewise.
	* util/rust-hir-map.h: Likewise.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Compile new rust-lang-item.o.
	* util/rust-lang-item.h: Split into header and source.
	* util/rust-lang-item.cc: Cleanup parsing of lang items by using a hashmap
	and returning optional values, cleanup handling of exhaustive lang item
	lookups.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_lang_item_attribute): Use
	new optional API.

2024-08-01  jjasmine  <tanghocle456@gmail.com>

	* expand/rust-macro-builtins.cc: Change BuiltinMacro in
	builtin_macro_from_string to tl::optional<>
	* expand/rust-macro-builtins.h (enum class): Change BuiltinMacro
	in builtin_macro_from_string to tl::optional<>
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
	Resolved wrong type dependency of builtin_macro_from_string

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-fmt.cc (Pieces::collect): Fix signature to take ownership
	of the given string.
	* ast/rust-fmt.h (struct Pieces): Store parsed string in the struct.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-builtins.cc (MacroBuiltin::format_args_handler):
	Transform entire invocation token stream into string for the parser.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-builtins.cc (MacroBuiltin::format_args_handler):
	Construct string to parser properly.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-fmt.cc (Pieces::~Pieces): Call libformat_parser's release
	function in destructor.
	* ast/rust-fmt.h (struct PieceSlice): Add capacity.
	(destroy_pieces): New.
	(struct Pieces): Add destructor.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-fmt.cc (Pieces::collect): Use new Pieces API.
	* ast/rust-fmt.h: Update interface with new FFI bindings.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-fmt.h: Add remaining FFI types.

2024-08-01  Thomas Schwinge  <tschwinge@baylibre.com>

	* Make-lang.in (LIBFORMAT_PARSER): Point to 'libformat_parser'
	build in libgrust.
	(%.toml:, $(LIBFORMAT_PARSER):): Remove.

2024-08-01  Thomas Schwinge  <tschwinge@baylibre.com>

	* Make-lang.in (LIBFORMAT_PARSER): Point to the GCC build
	directory.
	* ($(LIBFORMAT_PARSER)): Build in the GCC build directory.

2024-08-01  Thomas Schwinge  <tschwinge@baylibre.com>

	* Make-lang.in (LIBFORMAT_PARSER): Point to the actual build artifact.
	($(LIBFORMAT_PARSER)): Don't cache it.

2024-08-01  Thomas Schwinge  <tschwinge@baylibre.com>

	* Make-lang.in (LIBPROC_MACRO_INTERNAL): New.
	(RUST_LIBDEPS, crab1$(exeext), rust/libformat_parser.a): Use it.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Compile libformat_parser.
	* ast/rust-fmt.cc: New FFI definitions.
	* ast/rust-fmt.h: Likewise.
	* expand/rust-macro-builtins.cc (MacroBuiltin::format_args_handler): Call
	into libformat_parser.
	* expand/rust-macro-builtins.h: Define format_args!() handler proper.

2024-08-01  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Compile rust-fmt object
	* ast/rust-fmt.cc: New file.
	* ast/rust-fmt.h: New file.

2024-08-01  Marc Poulhiès  <dkm@kataplop.net>

	* rust-lang.cc (grs_langhook_type_for_mode): simplify code for
	xImode. Add missing long_double_type_node.

2024-08-01  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/rust-ast-lower-pattern.cc
	(ASTLoweringPattern::visit):
	Reset is_let_top_level while visiting GroupedPattern.

2024-08-01  Thomas Schwinge  <thomas@codesourcery.com>

	* backend/rust-compile-base.cc (HIRCompileBase::compile_function):
	For 'main', initialize 'main_identifier_node'.

2024-07-12  Daniel Bertalan  <dani@danielbertalan.dev>

	* metadata/rust-imports.cc (Import::try_package_in_directory):
	Change NULL to nullptr.

2024-06-25  Kewen Lin  <linkw@linux.ibm.com>

	* rust-gcc.cc (float_type): Use TYPE_PRECISION of
	{float,double,long_double}_type_node to replace
	{FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE.

2024-06-11  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Remove overazealous LIBS = -ldl -lpthread line, link
	crab1 against CRAB1_LIBS.

2024-04-15  Thomas Schwinge  <tschwinge@baylibre.com>

	* Make-lang.in (RUST_LIBDEPS): Inline into single user.

2024-04-15  Thomas Schwinge  <tschwinge@baylibre.com>

	* Make-lang.in (LIBPROC_MACRO_INTERNAL): New.
	(RUST_LIBDEPS, crab1$(exeext)): Use it.

2024-04-15  Thomas Schwinge  <tschwinge@baylibre.com>

	* Make-lang.in (RUST_LDFLAGS): Inline into single user.

2024-04-15  Thomas Schwinge  <tschwinge@baylibre.com>

	* Make-lang.in (RUST_LDFLAGS): Remove
	'libgrust/libproc_macro_internal'.

2024-04-09  Christophe Lyon  <christophe.lyon@linaro.org>

	* Make-lang.in (rust.install-dvi, rust.install-html): New rules.

2024-03-04  Mark Wielaard  <mark@klomp.org>

	* lang.opt.urls: Regenerate.

2024-02-21  0xn4utilus  <gyanendrabanjare8@gmail.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
	Add variadic check on all parameters.

2024-02-21  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-pattern.cc
	(CompilePatternLet::visit):
	Lookup type of sub-pattern, not tuple pattern itself.

2024-02-21  Marc Poulhiès  <dkm@kataplop.net>

	* backend/rust-builtins.cc
	(BuiltinsContext::register_rust_mappings): Add powi and reformat.
	* backend/rust-builtins.h: Add missing copyright header.

2024-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-expand.h (struct MacroExpander): Nitpick: fix
	formatting of emitted error.

2024-02-21  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-ast-resolve-item.cc
	(flatten_glob): Use Import class.
	(flatten_rebind): Likewise.
	(flatten_list): Likewise.
	(flatten): Likewise.
	(flatten_use_dec_to_paths): Likewise.
	(flatten_use_dec_to_imports): Likewise.
	(ResolveItem::visit): Likewise.
	(Import::add_prefix): New.
	(rust_flatten_nested_glob): Adjust test.
	(rust_flatten_glob): Likewise.
	(rust_flatten_rebind_none): Likewise.
	(rust_flatten_rebind): Likewise.
	(rust_flatten_rebind_nested): Likewise.
	(rust_flatten_list): Likewise.
	* resolve/rust-ast-resolve-item.h
	(class Import): New.

2024-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* typecheck/rust-hir-type-check-implitem.h: Fix typo in field
	(region_costraints -> region_constraints).

2024-02-07  Kushal Pal  <kushalpal109@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_trait_item):
	Handle macros in trait items similar to how its handled for trait
	implementation items.

2024-02-07  Kushal Pal  <kushalpal109@gmail.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit):
	Remove obsolete classes and functions.
	* ast/rust-ast-collector.h:
	Likewise.
	* ast/rust-ast-full-decls.h (class TraitFunctionDecl):
	Likewise.
	(class TraitItemFunc):
	Likewise.
	(class TraitMethodDecl):
	Likewise.
	(class TraitItemMethod):
	Likewise.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit):
	Likewise.
	* ast/rust-ast-visitor.h:
	Likewise.
	* ast/rust-ast.cc (TraitItemFunc::TraitItemFunc):
	Likewise.
	(TraitItemFunc::operator=):
	Likewise.
	(TraitItemFunc::as_string):
	Likewise.
	(TraitFunctionDecl::as_string):
	Likewise.
	(TraitItemMethod::TraitItemMethod):
	Likewise.
	(TraitItemMethod::operator=):
	Likewise.
	(TraitItemMethod::as_string):
	Likewise.
	(TraitMethodDecl::as_string):
	Likewise.
	(TraitItemFunc::accept_vis):
	Likewise.
	(TraitItemMethod::accept_vis):
	Likewise.
	* ast/rust-item.h (class TraitFunctionDecl):
	Likewise.
	(class TraitItemFunc):
	Likewise.
	(class TraitMethodDecl):
	Likewise.
	(class TraitItemMethod):
	Likewise.
	* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
	Likewise.
	* checks/errors/rust-ast-validation.h:
	Likewise.
	* checks/errors/rust-feature-gate.h:
	Likewise.
	* expand/rust-cfg-strip.cc (CfgStrip::maybe_strip_trait_function_decl):
	Likewise.
	(CfgStrip::maybe_strip_trait_method_decl):
	Likewise.
	(CfgStrip::visit):
	Likewise.
	* expand/rust-cfg-strip.h:
	Likewise.
	* expand/rust-derive.h:
	Likewise.
	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_trait_function_decl):
	Likewise.
	(ExpandVisitor::expand_trait_method_decl):
	Likewise.
	(ExpandVisitor::visit):
	Likewise.
	* expand/rust-expand-visitor.h:
	Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit):
	Likewise.
	* hir/rust-ast-lower-base.h:
	Likewise.
	* hir/rust-ast-lower-implitem.cc (ASTLowerTraitItem::visit):
	Likewise.
	* hir/rust-ast-lower-implitem.h:
	Likewise.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit):
	Likewise.
	* resolve/rust-ast-resolve-base.h:
	Likewise.
	* resolve/rust-ast-resolve-implitem.h (visit):
	Likewise.
	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
	Likewise.
	* resolve/rust-ast-resolve-item.h:
	Likewise.
	* resolve/rust-default-resolver.cc (DefaultResolver::visit):
	Likewise.
	* resolve/rust-default-resolver.h:
	Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
	Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.h:
	Likewise.
	* util/rust-attributes.cc (AttributeChecker::visit):
	Likewise.
	* util/rust-attributes.h:
	Likewise.

2024-02-07  Kushal Pal  <kushalpal109@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_trait_item):
	Use parse_function() to parse trait functions.

2024-02-07  Kushal Pal  <kushalpal109@gmail.com>

	* hir/rust-ast-lower-implitem.cc (ASTLowerTraitItem::visit):
	Provide visitor for AST::Function.
	* hir/rust-ast-lower-implitem.h:
	Likewise.
	* resolve/rust-ast-resolve-implitem.h:
	Likewise.
	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
	Likewise.
	* resolve/rust-ast-resolve-item.h:
	Likewise.

2024-02-07  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
	Add checks for Trait functions.

2024-02-07  Kushal Pal  <kushalpal109@gmail.com>

	* ast/rust-ast.h: Replace TraitItem with AssociatedItem.
	* ast/rust-item.h (class Trait): Likewise.
	* expand/rust-expand-visitor.cc (ExpandVisitor::visit):
	Likewise.
	* parse/rust-parse-impl.h (Parser::parse_trait): Likewise.
	* parse/rust-parse.h: Likewise.

2024-02-07  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): use destructure

2024-02-07  Nobel Singh  <nobel2073@gmail.com>

	* Make-lang.in: Add rust-ast-lower-implitem.cc to list of objects.
	* hir/rust-ast-lower-implitem.h (RUST_AST_LOWER_IMPLITEM_H): Remove
	implementation.
	* hir/rust-ast-lower-implitem.cc: Copy implementation from header.

2024-02-07  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): refactor
	* typecheck/rust-hir-type-check.h: new prototype
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::compute_inference_variables): x

2024-02-07  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-type.cc: remove hack

2024-02-07  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): remove hack

2024-02-07  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args): fix

2024-02-07  Nobel Singh  <nobel2073@gmail.com>

	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_qualifiers):
	Change default ABI to C for extern functions
	(ASTLoweringBase::lower_extern_block): Likewise

2024-02-07  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-tyty.cc (BaseType::BaseType): Store orig ref.
	(BaseType::get_orig_ref): Add getter.
	* typecheck/rust-tyty.h: Store orig ref.

2024-02-07  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
	Add region constraints.
	(TypeCheckImplItem::visit): Add region constraints.
	* typecheck/rust-hir-type-check-implitem.h: Add region constraints.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::ResolveImplBlockSelf):
	Add region constraints.
	(TypeCheckItem::visit): Add region constraints.
	(TypeCheckItem::resolve_impl_item): Add region constraints.
	(TypeCheckItem::resolve_impl_block_substitutions): Add region constraints.
	* typecheck/rust-hir-type-check-item.h: Add region constraints.
	* typecheck/rust-hir-type-check-type.cc (ResolveWhereClauseItem::Resolve):
	Add region constraints.
	(ResolveWhereClauseItem::visit): Add region constraints.
	* typecheck/rust-hir-type-check-type.h (class ResolveWhereClauseItem):
	Add region constraints.
	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn):
	Add region constraints.
	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::TypeBoundPredicate):
	Add region constraints.
	* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_region_constraints):
	Add region constraints.
	* typecheck/rust-tyty-subst.h (class BaseType): Add region constraints.
	(struct RegionConstraints): Add region constraints.
	* typecheck/rust-tyty.cc (BaseType::monomorphized_clone): Add region constraints.
	(ADTType::clone): Add region constraints.
	(FnType::clone): Add region constraints.
	(ProjectionType::clone): Add region constraints.
	* typecheck/rust-tyty.h: Add region constraints.

2024-02-07  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-hir-trait-resolve.cc: add regions
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal):
	add regions, resolve generic lifetimes
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): add regions
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
	add regions, resolve lifetimes
	(TypeCheckImplItem::visit): add regions, resove lifetimes
	* typecheck/rust-hir-type-check-implitem.h: add default value for result
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): add regions,
	resove lifetimes
	(TypeCheckItem::resolve_impl_block_substitutions): add regions, resove lifetimes
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): add regions,
	resove lifetimes
	(TypeCheckExpr::resolve_root_path): add regions, resove lifetimes
	(TypeCheckExpr::resolve_segments): add regions, resove lifetimes
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): add regions,
	resove lifetimes
	(TypeCheckType::resolve_root_path): add regions, resove lifetimes
	(ResolveWhereClauseItem::Resolve): add regions, resove lifetimes
	(ResolveWhereClauseItem::visit): add regions, resove lifetimes
	* typecheck/rust-hir-type-check.cc (TypeCheckContext::LifetimeResolver::resolve):
	add regions, resolve lifetimes
	(TraitItemReference::get_type_from_fn): add regions, resove lifetimes
	* typecheck/rust-hir-type-check.h: add regions, resove lifetimes
	* typecheck/rust-substitution-mapper.cc (SubstMapper::SubstMapper): add regions,
	resove lifetimes
	(SubstMapper::Resolve): add regions, resove lifetimes
	(SubstMapper::InferSubst): add regions, resove lifetimes
	(SubstMapper::visit): add regions, resove lifetimes
	* typecheck/rust-substitution-mapper.h: add regions, resove lifetimes
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::TypeCheckContext):
	lifetime resolution
	(TypeCheckContext::regions_from_generic_args): lifetime resolution helper
	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::TypeBoundPredicate):
	add regions, resove lifetimes
	(TypeBoundPredicate::operator=): add regions, resove lifetimes
	(TypeBoundPredicate::apply_generic_arguments): add regions, resove lifetimes
	(TypeBoundPredicateItem::get_tyty_for_receiver): add regions, resove lifetimes
	* typecheck/rust-tyty-subst.cc (SubstitutionArgumentMappings::get_regions):
	add regions, resove lifetimes
	(SubstitutionArgumentMappings::get_mut_regions): getter
	(SubstitutionArgumentMappings::error): split error and empty
	(SubstitutionArgumentMappings::empty): split error and empty
	(SubstitutionArgumentMappings::find_symbol): helper
	(SubstitutionRef::get_num_lifetime_params): getter
	(SubstitutionRef::get_num_type_params): getter
	(SubstitutionRef::needs_substitution): extend to regions
	(SubstitutionRef::get_mappings_from_generic_args): helper
	(SubstitutionRef::infer_substitions): add regions
	* typecheck/rust-tyty-subst.h (class RegionParamList): region param handler
	* typecheck/rust-tyty.cc (BaseType::monomorphized_clone): add regions, resove lifetimes
	(InferType::default_type): add regions, resove lifetimes
	(FnType::clone): add regions, resove lifetimes
	(ReferenceType::ReferenceType): add regions
	(ReferenceType::get_region): getter
	(ReferenceType::clone): add regions
	* typecheck/rust-tyty.h: add regions, resove

2024-02-07  Jakub Dupak  <dev@jakubdupak.com>

	* hir/tree/rust-hir-item.h: Add missing getter

2024-02-07  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-tyty-region.h: New file.

2024-02-07  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-hir-type-check.h (class Lifetime): add interned lifetime class
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::TypeCheckContext): add
	resolution tool
	(TypeCheckContext::intern_lifetime): add method to intern lifetime from tyctx
	(TypeCheckContext::lookup_lifetime): add method to lookup lifetime from tyctx
	(TypeCheckContext::intern_and_insert_lifetime): add a helper method

2024-02-07  Raiki Tamura  <tamaron1203@gmail.com>

	* rust-lang.cc (run_rust_tests): Add test.
	* rust-system.h: Add <algorithm>.
	* util/make-rust-unicode.py: Output NFC_Quick_Check table.
	* util/rust-codepoint.h (struct Codepoint): Add is_supplementary
	method.
	* util/rust-unicode-data.h: Generated.
	* util/rust-unicode.cc (binary_search_sorted_array): Removed.
	(lookup_cc): Remove namespace.
	(is_alphabetic): Use std::binary_search
	(nfc_quick_check): New function.
	(nfc_normalize): Use nfc_quick_check.
	(is_nfc_qc_maybe): New function.
	(is_nfc_qc_no): New function.
	(rust_nfc_qc_test): New test.
	* util/rust-unicode.h (is_nfc_qc_no): New function.
	(is_nfc_qc_maybe): New function.
	(enum class): New enum class.
	(nfc_quick_check): New function.
	(rust_nfc_qc_test): New test.

2024-02-07  Kushal Pal  <kushalpal109@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_function):
	Skip token if its a COMMA.

2024-01-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-full-decls.h
	(class TraitImplItem): Remove forward declaration.
	(class AssociatedItem): Add forward declaration.
	* ast/rust-ast.h
	(class TraitImplItem): Remove.
	(class TraitItem): Inherit from AssociatedItem.
	(SingleASTNode::take_trait_impl_item):
	Return std::unique_ptr<AssociatedItem> instead of
	std::unique_ptr<TraitImplItem>.
	* ast/rust-item.h
	(class Function): Inherit from AssociatedItem instead of
	TraitImplItem.
	(class TypeAlias): Likewise.
	(class ConstantItem): Likewise.
	(class TraitImpl): Store items as AssociatedItem.
	* expand/rust-derive-clone.cc
	(DeriveClone::clone_fn): Return std::unique_ptr<AssociatedItem>.
	(DeriveClone::clone_impl): Take std::unique_ptr<AssociatedItem>.
	* expand/rust-derive-clone.h
	(DeriveClone::clone_fn): Return std::unique_ptr<AssociatedItem>.
	(DeriveClone::clone_impl): Take std::unique_ptr<AssociatedItem>.
	* expand/rust-expand-visitor.cc
	(ExpandVisitor::visit): Handle changes to
	SingleASTNode::take_trait_impl_item.
	* parse/rust-parse-impl.h
	(Parser::parse_impl): Parse TraitImpl as containing AssociatedItem.
	(Parser::parse_trait_impl_item): Return
	std::unique_ptr<AssociatedItem>.
	(Parser::parse_trait_impl_function_or_method): Likewise.
	* parse/rust-parse.h
	(Parser::parse_trait_impl_item): Return
	std::unique_ptr<AssociatedItem>.
	(Parser::parse_trait_impl_function_or_method): Likewise.

2024-01-30  Robert Goss  <goss.robert@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit) Add additional check
	* typecheck/rust-hir-type-check-struct-field.h: A helper method to make error added
	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve) Update message

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* hir/rust-ast-lower-type.cc (ASTLoweringTypeBounds::visit): fix for lifetimes
	(ASTLowerWhereClauseItem::visit): fix for lifetimes

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* parse/rust-parse-impl.h (Parser::parse_where_clause): fix parsing
	(Parser::parse_where_clause_item): fix parsing
	(Parser::parse_type_bound_where_clause_item): fix parsing
	(Parser::parse_trait_bound): fix parsing
	* parse/rust-parse.h: fix parsing

2024-01-30  Kushal Pal  <kushalpal109@gmail.com>

	* lex/rust-lex.cc (Lexer::dump_and_skip):
	Changed " " to '\n'

2024-01-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-fragment.cc
	(Fragment::assert_single_fragment): Update.
	* ast/rust-ast.h
	(class TraitImplItem): Move definition before that of TraitItem.
	(class TraitItem):
	Inherit from TraitImplItem instead of AssociatedItem.
	(class SingleASTNode): Unify handling of associated items.
	(SingleASTNode::take_assoc_item): Move from...
	(SingleASTNode::take_impl_item): ...here, but leave stub calling
	take_assoc_item behind.
	(SingleASTNode::take_trait_item):
	Cast associated item to TraitItem.
	(SingleASTNode::take_trait_impl_item):
	Cast associated item to TraitImplItem.
	* ast/rust-ast.cc
	(SingleASTNode::SingleASTNode):
	Unify handling of associated items.
	(SingleASTNode::operator=): Likewise.
	(SingleASTNode::accept_vis): Likewise.
	(SingleASTNode::is_error): Likewise.
	(SingleASTNode::as_string): Likewise.
	* ast/rust-item.h
	(class Function): Remove direct inheritence from AssociatedItem.
	(class ConstantItem): Likewise.
	* ast/rust-macro.h
	(class MacroInvocation):
	Remove direct inheritence from AssociatedItem and TraitImplItem.

2024-01-30  Robert Goss  <goss.robert@gmail.com>

	* typecheck/rust-hir-type-check-struct-field.h: Allow visit to return a bool
	* typecheck/rust-hir-type-check-struct.cc: Improve check of repeat fields

2024-01-30  Kushal Pal  <kushalpal109@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_inherent_impl_item):
	Added switch-case for ASYNC token.

2024-01-30  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
	Enclose const in single quotes.

2024-01-30  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
	Added check for `async` functions inside trait.
	* parse/rust-parse-impl.h (Parser::parse_trait_item):
	Added switch-case for ASYNC token.

2024-01-30  Nirmal Patel  <nirmal@nirmal.dev>

	* lex/rust-lex.cc (Lexer::parse_byte_string): Handle newline
	while parsing byte strings
	(Lexer::parse_string): Handle newline while parsing strings

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Use new API.
	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Use new API.
	* typecheck/rust-tyty-cmp.h: Remove old API.
	* typecheck/rust-tyty.cc (FnPtr::is_equal): Use new API.
	* typecheck/rust-tyty.h: Remove old API.
	* typecheck/rust-unify.cc (UnifyRules::expect_fnptr): Use new API.

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* hir/rust-ast-lower-type.cc (ASTLoweringType::visit): For lifetimes.

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_lifetime): Propagate static
	requirement.
	* hir/rust-ast-lower-base.h: Propagate static requirement.
	* hir/rust-ast-lower-implitem.h: Propagate static requirement.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Propagate static requirement.
	* hir/rust-ast-lower-type.cc (ASTLoweringType::translate): Propagate static requirement.
	(ASTLoweringType::visit): Propagate static requirement.
	* hir/rust-ast-lower-type.h: Propagate static requirement.

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* parse/rust-parse-impl.h (Parser::parse_generic_param): Lifetime elision control.
	(Parser::parse_lifetime_where_clause_item): Lifetime elision control.
	(Parser::parse_type_param_bound): Lifetime elision control.
	(Parser::parse_lifetime_bounds): Lifetime elision control.
	(Parser::parse_lifetime): Lifetime elision control.
	(Parser::parse_path_generic_args): Lifetime elision control.
	(Parser::parse_self_param): Lifetime elision control.
	(Parser::parse_break_expr): Lifetime elision control.
	(Parser::parse_continue_expr): Lifetime elision control.
	(Parser::parse_reference_type_inner): Lifetime elision control.
	* parse/rust-parse.h: Lifetime elision control.

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast.h: Elided lifetime static constructor
	* ast/rust-type.h: Default lifetime to elided.
	* parse/rust-parse-impl.h (Parser::parse_lifetime_param): Use elided lifetime.
	(Parser::parse_lifetime): Use elided lifetime/
	(Parser::lifetime_from_token): Use elided lifetime.
	(Parser::parse_self_param): Use elided lifetime.
	(Parser::parse_reference_type_inner): Use elided lifetime.

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* parse/rust-parse-impl.h (Parser::lifetime_from_token): Fix matched pattern.

2024-01-30  Kushal Pal  <kushalpal109@gmail.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
	Added check for `async` function inside trait.

2024-01-30  Kushal Pal  <kushalpal109@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_trait_impl_item):
	Handled `async` items

2024-01-30  Raiki Tamura  <tamaron1203@gmail.com>

	* Make-lang.in: Add .o files
	* backend/rust-mangle.cc (struct V0Path): moved to splitted files
	(v0_path): Likewise.
	(legacy_mangle_name): Likewise.
	(legacy_mangle_canonical_path): Likewise.
	(legacy_hash): Likewise.
	(v0_tuple_prefix): Likewise.
	(v0_numeric_prefix): Likewise.
	(v0_simple_type_prefix): Likewise.
	(v0_complex_type_prefix): Likewise.
	(v0_integer_62): Likewise.
	(v0_opt_integer_62): Likewise.
	(v0_disambiguator): Likewise.
	(v0_type_prefix): Likewise.
	(v0_generic_args): Likewise.
	(v0_identifier): Likewise.
	(v0_type_path): Likewise.
	(v0_function_path): Likewise.
	(v0_scope_path): Likewise.
	(v0_crate_path): Likewise.
	(v0_inherent_or_trait_impl_path): Likewise.
	(v0_closure): Likewise.
	(legacy_mangle_item): Likewise.
	(v0_mangle_item): Likewise.
	* backend/rust-mangle.h (legacy_mangle_item): Likewise.
	(v0_mangle_item): Likewise.
	* backend/rust-mangle-legacy.cc: New file.
	* backend/rust-mangle-v0.cc: New file.

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-place.h: Cleanup.
	* checks/errors/borrowck/rust-borrow-checker.h: Cleanup.

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-tyty.h (BaseType::is): Cast API.
	(SubstitutionRef>): Cast API.
	(BaseType::as): Cast API.
	(BaseType::try_as): Cast API.

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-tyty.h (class ClosureType): Inherit interface.
	(class FnPtr): Inherit interface.
	(class FnType): Inherit interface.
	(class CallableTypeInterface): New interface.
	(BaseType::is): Detect interface members API.

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path): Refactor.

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-builder-internal.h: Replace nodiscard.
	* checks/errors/borrowck/rust-bir-place.h: Replace nodiscard.

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-tyty.h: Fix nodiscard to warn unused.

2024-01-30  Jakub Dupak  <dev@jakubdupak.com>

	* hir/tree/rust-hir-item.h: Ad lifetime getter.
	* hir/tree/rust-hir-path.h: Make getter const ref.
	* hir/tree/rust-hir.h: Const ref and new getter.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in (GRS_OBJS): Add rust-attribs.o.
	* backend/rust-builtins.cc (builtin_const, builtin_noreturn)
	(builtin_novops): Remove.
	(BuiltinsContext::lookup_simple_builtin): Adjust.
	(BuiltinsContext::setup_overflow_fns): Remove.
	(BuiltinsContext::define_function_type): Set builtin type to
	errormark so the builtin is considered unavailable.
	(BuiltinsContext::setup_math_fns): Remove.
	(BuiltinsContext::setup_atomic_fns): Remove.
	(build_c_type_nodes): Refactor based on D frontend.
	(BuiltinsContext::define_builtin_types): Likewise.
	(DEF_PRIMITIVE_TYPE): New.
	(DEF_FUNCTION_TYPE_0): New.
	(DEF_FUNCTION_TYPE_1): New.
	(DEF_FUNCTION_TYPE_2): New.
	(DEF_FUNCTION_TYPE_3): New.
	(DEF_FUNCTION_TYPE_4): New.
	(DEF_FUNCTION_TYPE_5): New.
	(DEF_FUNCTION_TYPE_6): New.
	(DEF_FUNCTION_TYPE_7): New.
	(DEF_FUNCTION_TYPE_8): New.
	(DEF_FUNCTION_TYPE_9): New.
	(DEF_FUNCTION_TYPE_10): New.
	(DEF_FUNCTION_TYPE_11): New.
	(DEF_FUNCTION_TYPE_VAR_0): New.
	(DEF_FUNCTION_TYPE_VAR_1): New.
	(DEF_FUNCTION_TYPE_VAR_2): New.
	(DEF_FUNCTION_TYPE_VAR_3): New.
	(DEF_FUNCTION_TYPE_VAR_4): New.
	(DEF_FUNCTION_TYPE_VAR_5): New.
	(DEF_FUNCTION_TYPE_VAR_6): New.
	(DEF_FUNCTION_TYPE_VAR_7): New.
	(DEF_FUNCTION_TYPE_VAR_11): New.
	(DEF_POINTER_TYPE): New.
	(BuiltinsContext::setup): Adjust.
	(BuiltinsContext::define_builtin_attributes): New.
	(DEF_ATTR_NULL_TREE): New.
	(DEF_ATTR_INT): New.
	(DEF_ATTR_STRING): New.
	(DEF_ATTR_IDENT): New.
	(DEF_ATTR_TREE_LIST): New.
	(handle_flags): Remove.
	(BuiltinsContext::define_builtins): New.
	(DEF_BUILTIN): New.
	(BuiltinsContext::define_builtin): Remove.
	(BuiltinsContext::register_rust_mappings): New. Add all missing
	builtins.
	(BuiltinsContext::lookup_gcc_builtin): Adjust.
	* backend/rust-builtins.h (DEF_PRIMITIVE_TYPE): New.
	(DEF_FUNCTION_TYPE_0): New.
	(DEF_FUNCTION_TYPE_1): New.
	(DEF_FUNCTION_TYPE_2): New.
	(DEF_FUNCTION_TYPE_3): New.
	(DEF_FUNCTION_TYPE_4): New.
	(DEF_FUNCTION_TYPE_5): New.
	(DEF_FUNCTION_TYPE_6): New.
	(DEF_FUNCTION_TYPE_7): New.
	(DEF_FUNCTION_TYPE_8): New.
	(DEF_FUNCTION_TYPE_9): New.
	(DEF_FUNCTION_TYPE_10): New.
	(DEF_FUNCTION_TYPE_11): New.
	(DEF_FUNCTION_TYPE_VAR_0): New.
	(DEF_FUNCTION_TYPE_VAR_1): New.
	(DEF_FUNCTION_TYPE_VAR_2): New.
	(DEF_FUNCTION_TYPE_VAR_3): New.
	(DEF_FUNCTION_TYPE_VAR_4): New.
	(DEF_FUNCTION_TYPE_VAR_5): New.
	(DEF_FUNCTION_TYPE_VAR_6): New.
	(DEF_FUNCTION_TYPE_VAR_7): New.
	(DEF_FUNCTION_TYPE_VAR_11): New.
	(DEF_POINTER_TYPE): New.
	(DEF_ATTR_NULL_TREE): New.
	(DEF_ATTR_INT): New.
	(DEF_ATTR_STRING): New.
	(DEF_ATTR_IDENT): New.
	(DEF_ATTR_TREE_LIST): New.
	* backend/rust-compile-intrinsic.cc (Intrinsics::compile): Add
	comment.
	(op_with_overflow_inner): Adjust.
	(copy_handler_inner): Adjust.
	(prefetch_data_handler): Adjust.
	(build_atomic_builtin_name): Adjust.
	(atomic_load_handler_inner): Adjust.
	(uninit_handler): Adjust.
	(move_val_init_handler): Adjust.
	(expect_handler_inner): Adjust.
	* rust-gcc.cc (fetch_overflow_builtins): Adjust.
	* rust-lang.cc (rust_localize_identifier): Adjust.
	(LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): New.
	* rust-attribs.cc: New file.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-cfg-strip.cc (CfgStrip::visit): Change calls from visitor
	to default visitor.
	(CfgStrip::go): Add call to visit crate.
	* expand/rust-cfg-strip.h (class CfgStrip): Update prototypes and
	remove empty ones.
	* ast/rust-ast-visitor.cc: add WhereClause condition check.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc (ExpandVisitor::go): Add call to visit
	on the crate.
	(ExpandVisitor::visit): Remove some visit functions in favor of their
	default visitor counterpart.
	* expand/rust-expand-visitor.h (class ExpandVisitor): Inherit from
	default visitor and remove now useless function prototypes.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Remove
	duplicated functions.
	* resolve/rust-default-resolver.h (class DefaultResolver): Make the
	default resolver inherit from the default visitor.

2024-01-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/rust-feature.cc
	(Feature::name_hash_map):
	Add entries for Name::LANG_ITEMS and Name::NO_CORE.
	* checks/errors/rust-feature.h
	(Feature::Name::LANG_ITEMS): New.
	(Feature::Name::NO_CORE): New.

2024-01-30  Kushal Pal  <kushalpal109@gmail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::setup_abi_options):
	Renamed `WIN64` to `WIN_64`
	* util/rust-abi.cc (get_abi_from_string): Likewise
	(get_string_from_abi): Likewise
	* util/rust-abi.h (enum ABI): Likewise

2024-01-30  Nobel Singh  <nobel2073@gmail.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
	check for const funtion.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
	a validation check and emit an error depending on the context.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Adapt defintion
	getter.
	* 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-implitem.h: Likewise.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
	* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Likewise.
	* resolve/rust-ast-resolve-stmt.h: Likewise.
	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Likewise.
	* util/rust-attributes.cc (AttributeChecker::visit):  Likewise.
	* parse/rust-parse-impl.h: Allow empty function body during parsing.
	* ast/rust-ast.cc (Function::Function): Constructor now take an
	optional for the body.
	(Function::operator=): Adapt to new optional member.
	(Function::as_string): Likewise.
	* ast/rust-item.h (class Function): Make body optional and do not
	rely on nullptr anymore.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::resolve_generic_args):
	Move function.
	(EarlyNameResolver::resolve_qualified_path_type): Likewise.
	(EarlyNameResolver::visit): Add a top level visit function for crate
	and remove duplicated code.
	* resolve/rust-early-name-resolver.h (class EarlyNameResolver): Update
	overriden function list.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.cc (AttributeChecker::visit): Add visit function
	for crates.
	* util/rust-attributes.h (class AttributeChecker): Update function
	prototypes.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-feature-gate.cc (FeatureGate::visit): Add a visit
	function for the crate level.
	(FeatureGate::check): Add call to crate visit.
	* checks/errors/rust-feature-gate.h (class FeatureGate): Remove now
	useless visit functions (traversal only).

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
	const check.
	* checks/errors/rust-ast-validation.h: Add visit function prototype.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
	async const check.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_vis_item): Allow parsing async
	items in const.
	(Parser::parse_async_item): Account for const offset during async
	lookahead.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-builder.cc (AstBuilder::fn_qualifiers): Change
	constructor to match the new arguments.
	* ast/rust-ast-collector.cc (TokenCollector::visit): Change behavior
	to handle both const and async specifiers at the same time.
	* ast/rust-ast.cc (FunctionQualifiers::as_string): Likewise.
	* ast/rust-item.h (class FunctionQualifiers): Remove AsyncConstStatus
	and replace it with both Async and Const status. Also change the safety
	arguments to use an enum instead of a boolean.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_qualifiers):
	Update constructor call.
	* hir/tree/rust-hir-item.h: Add Const and Async status, remove
	AsyncConstStatus, update the constructor.
	* hir/tree/rust-hir.cc (FunctionQualifiers::as_string): Update with
	the new status.
	* parse/rust-parse-impl.h (Parser::parse_function_qualifiers): Update
	constructor call.
	* util/rust-common.h (enum Mutability): Make an enum class.
	(enum class): Add Async and Const enum class to avoid booleans.
	(enum Unsafety): Change to an enum class.

2024-01-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-full-decls.h
	(class InherentImplItem): Remove.
	* ast/rust-ast.h
	(class InherentImplItem): Remove.
	(class SingleASTNode):
	Store pointer to AssociatedItem instead of InherentImplItem.
	* ast/rust-ast.cc
	(SingleASTNode::SingleASTNode):
	Use clone_associated_item instead of clone_inherent_impl_item.
	(SingleASTNode::operator=): Likewise.
	* ast/rust-item.h
	(class InherentImpl):
	Use AssociatedItem rather than InherentImplItem.
	(class Function): Likewise.
	(class ConstantItem): Likewise.
	* ast/rust-macro.h
	(class MacroInvocation): Likewise.
	* expand/rust-expand-visitor.cc
	(ExpandVisitor::visit): Likewise.
	* parse/rust-parse-impl.h
	(Parser::parse_impl): Likewise.
	(Parser::parse_inherent_impl_item): Likewise.
	(Parser::parse_inherent_impl_function_or_method): Likewise.
	* parse/rust-parse.h
	(Parser::parse_inherent_impl_item): Likewise.
	(Parser::parse_inherent_impl_function_or_method): Likewise.

2024-01-30  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::compile_locals_for_block): removed
	* backend/rust-compile-base.h: update header
	* backend/rust-compile-block.cc (CompileBlock::visit): remove old logic
	* backend/rust-compile-expr.cc (CompileExpr::generate_closure_function): likewise
	* backend/rust-compile-stmt.cc (CompileStmt::visit): likewise
	* backend/rust-compile-var-decl.h: ensure we setup tuple bindings correctly

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-item.h: Add safety getter to modules.
	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Check
	a module's safety and emit an error when meeting an unsafe module.
	* checks/errors/rust-ast-validation.h: Add function prototype.
	* parse/rust-parse-impl.h (Parser::parse_module): Move the module locus
	to the first token instead of the mod keyword.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_vis_item): Dispatch to parse
	module when meeting an unsafe module.
	(Parser::parse_module): Set unsafe status when the parser encounter an
	unsafe keyword.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-item.h: Add safety status to Modules in the AST.
	* parse/rust-parse-impl.h (Parser::parse_module): Adapt constructors.

2024-01-30  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-pattern.h
	(class TupleItems): New.
	(class TupleStructItems): Inherit from TupleItems.
	(class TuplePatternItems): Likewise.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::insert_or_error_out): New functions.
	(TopLevel::handle_use_dec): New function.
	(flatten_rebind): Likewise.
	(flatten_list): Likewise.
	(flatten_glob): Likewise.
	(flatten): Likewise.
	(TopLevel::visit): Visit various `use` declaration nodes.
	* resolve/rust-toplevel-name-resolver-2.0.h: Declare functions and
	visitors.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc
	(Early::visit): Remove visitors.
	* resolve/rust-early-name-resolver-2.0.h: Likewise.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-item.h (class UseTree): Add `node_id` member.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::insert_or_error_out): Add documentation comment.
	(TopLevel::go): Likewise.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc
	(Early::insert_once): New function.
	(Early::visit): Likewise.
	* resolve/rust-early-name-resolver-2.0.h: Likewise.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Store mappings
	after having resolved them.
	* resolve/rust-late-name-resolver-2.0.h: Add `TypePath` visitor.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-late-name-resolver-2.0.cc
	(Late::setup_builtin_types): New function.
	(Late::go): Setup builtin types.
	* resolve/rust-late-name-resolver-2.0.h:
	* resolve/rust-name-resolution-context.cc
	(NameResolutionContext::map_usage): New function.
	* resolve/rust-name-resolution-context.h: Likewise.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-name-resolution-context.h: Store a reference to the
	mappings.
	* resolve/rust-name-resolution-context.cc
	(NameResolutionContext::NameResolutionContext): Likewise.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Use
	the DefaultResolver in the toplevel visitor.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Compile late name resolver.
	* resolve/rust-late-name-resolver-2.0.cc: New file.
	* resolve/rust-late-name-resolver-2.0.h: New file.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-name-resolution-context.h: Add a Labels stack.

2024-01-30  M V V S Manoj Kumar  <mvvsmanojkumar@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_item): Likewise.
	(Parser::parse_vis_item): Likewise.
	(Parser::parse_async_item): Likewise.
	* parse/rust-parse.h: Made declaration for parse_async_item.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-lex.cc (Lexer::classify_keyword): Update keyword map name.
	* lex/rust-token.h (enum PrimitiveCoreType): Remove some deprecated
	comments.
	* util/rust-keyword-values.cc (get_keywords): Update the keyword map
	name.
	(RS_TOKEN): Define as empty
	(RS_TOKEN_KEYWORD_2015): Add the emission value.
	(RS_TOKEN_KEYWORD_2018): Likewise.
	* util/rust-keyword-values.h (RS_KEYWORD_LIST): Introduce the keyword
	list.
	(RS_TOKEN_KEYWORD_2018): Define multiple new keywords.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Replace raw value.
	* parse/rust-parse-impl.h (Parser::is_macro_rules_def): Likewise.
	(Parser::parse_item): Likewise.
	(Parser::parse_vis_item): Likewise.
	(Parser::parse_macro_rules_def): Likewise.
	(Parser::parse_union): Likewise.
	(Parser::parse_trait_impl_item): Likewise.
	(Parser::parse_stmt): Likewise.
	(Parser::parse_stmt_or_expr): Likewise.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-keyword-values.h (class WeakKeywords): Add new class with
	weak keyword constexpr.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Replace raw value
	with keyword call.
	* ast/rust-ast.h: Likewise.
	* parse/rust-parse-impl.h (Parser::parse_path_ident_segment): Likewise.
	(Parser::parse_macro_match_fragment): Likewise.
	(Parser::parse_extern_crate): Likewise.
	(Parser::parse_use_tree): Likewise.
	(Parser::parse_const_item): Likewise.
	(Parser::parse_literal_expr): Likewise.
	(Parser::parse_maybe_named_param): Likewise.
	(Parser::parse_pattern_no_alt): Likewise.
	(Parser::left_denotation): Likewise.
	(Parser::parse_path_in_expression_pratt): Likewise.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-token.h (enum PrimitiveCoreType): Add await keyword
	definition.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-token.h (enum PrimitiveCoreType): Change macro for
	underscore in token list.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-token.h (enum PrimitiveCoreType): Change enum macro calls.
	(RS_TOKEN_KEYWORD): Remove generic token keyword macro.
	(RS_TOKEN_KEYWORD_2015): Introduce keywords for edition 2015.
	(RS_TOKEN_KEYWORD_2018): Likewise with edition 2018.
	* lex/rust-token.cc (RS_TOKEN_KEYWORD): Remove old macro definition.
	(RS_TOKEN_KEYWORD_2015): Replace with 2015 definition...
	(RS_TOKEN_KEYWORD_2018): ... and 2018 definition.
	* util/rust-keyword-values.cc (RS_TOKEN_KEYWORD):  Likewise.
	(RS_TOKEN_KEYWORD_2015): Likewise.
	(RS_TOKEN_KEYWORD_2018): Likewise.
	* util/rust-keyword-values.h (RS_TOKEN_KEYWORD): Likewise.
	(RS_TOKEN_KEYWORD_2015): Likewise.
	(RS_TOKEN_KEYWORD_2018): Likewise.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-token.h (enum PrimitiveCoreType): Change keyword suffix from
	tok to kw.
	* ast/rust-ast-collector.cc (TokenCollector::visit): Update suffix to
	match the new declaration.
	* lex/rust-lex.cc (Lexer::parse_raw_identifier): Likewise.
	* parse/rust-parse-impl.h (can_tok_start_type): Likewise.
	(Parser::parse_item): Likewise.
	(Parser::parse_vis_item): Likewise.
	(Parser::parse_extern_crate): Likewise.
	(Parser::parse_function): Likewise.
	(Parser::parse_function_qualifiers): Likewise.
	(Parser::parse_struct): Likewise.
	(Parser::parse_enum): Likewise.
	(Parser::parse_static_item): Likewise.
	(Parser::parse_trait_item): Likewise.
	(Parser::parse_inherent_impl_item): Likewise.
	(Parser::parse_trait_impl_item): Likewise.
	(Parser::parse_extern_block): Likewise.
	(Parser::parse_external_item): Likewise.
	(Parser::parse_stmt): Likewise.
	(Parser::parse_return_expr): Likewise.
	(Parser::parse_match_expr): Likewise.
	(Parser::parse_type): Likewise.
	(Parser::parse_for_prefixed_type): Likewise.
	(Parser::parse_type_no_bounds): Likewise.
	(Parser::parse_stmt_or_expr): Likewise.
	* parse/rust-parse.cc (peculiar_fragment_match_compatible): Likewie.
	* util/rust-token-converter.cc (convert): Likewise.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
	zero field check during ast validation pass.
	* checks/errors/rust-ast-validation.h: Add union visit function
	prototype.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
	ast validation pass to reject variadic arguments on regular functions.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add auto
	trait associated item check in AST validation pass.
	* parse/rust-parse-impl.h: Remove old error emission done during
	parsing pass.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Reject
	auto traits with super traits.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
	check for generics on auto traits.
	* checks/errors/rust-ast-validation.h: Add visit function prototype.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.hxx: Remove debug log.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Format.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.h: New method.
	* resolve/rust-forever-stack.hxx: Likewise.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.h: New method.
	* resolve/rust-forever-stack.hxx: Likewise.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.hxx: Do not copy segment when
	dereferencing iterator in `find_starting_point`.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.h: Fix `ForeverStack::resolve_path`
	signature.
	* resolve/rust-forever-stack.hxx: Likewise.
	* resolve/rust-early-name-resolver-2.0.cc (Early::visit): Use new API.
	(Early::visit_attributes): Likewise.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.hxx: Add specific behavior for
	`ForeverStack::get` when dealing with labels.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.h: Improve resolve_path API.
	* resolve/rust-forever-stack.hxx: Likewise and fix implementation.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-rib.h: Add Namespace enum.

2024-01-30  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h: Change Path API to be more consistent.
	* ast/rust-path.h: Likewise.
	* ast/rust-ast-collector.cc (TokenCollector::visit): Use new API.
	* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Likewise.
	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Likewise.
	* resolve/rust-forever-stack.hxx: Likewise.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_function): Early return on
	unrecoverable errors.
	(Parser::parse_trait_item): Likewise.
	(Parser::parse_self_param): Update return type.
	* parse/rust-parse.h (enum ParseSelfError): Add enumeration to describe
	different self parameter parsing errors.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_self_param): Fix the loop
	exit condition.

2024-01-30  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-item.h (struct Visibility): Move Visibility from here...
	* ast/rust-ast.h (struct Visibility): ...to here.
	* parse/rust-parse-impl.h (Parser::parse_trait_item): Parse visibility
	before giving it back to the item parsing function.
	(Parser::parse_trait_type): Add visibility modifier.
	* parse/rust-parse.h (RUST_PARSE_H): Change function prototype.

2024-01-18  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address):
	Cast size_t value to unsigned long.
	* expand/rust-proc-macro.cc (load_macros): Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-pattern.h
	(TupleStructItems::ItemType::RANGE): Rename to...
	(TupleStructItems::ItemType::RANGED): ...here.
	(TupleStructItems::ItemType::NO_RANGE): Rename to...
	(TupleStructItems::ItemType::MULTIPLE): ...here.
	(TuplePatternItems::TuplePatternItemType): Rename to...
	(TuplePatternItems::ItemType): ...here.
	: Handle renames.
	* backend/rust-compile-pattern.cc: Likewise.
	* typecheck/rust-hir-type-check-pattern.cc: Likewise.
	* checks/errors/borrowck/rust-bir-builder-pattern.h: Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-lex.cc (Lexer::parse_decimal_int_or_float): Remove
	additional zero after empty floating point.
	* parse/rust-parse-impl.h (Parser::left_denotation): Handle float with
	empty floating point.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* backend/rust-compile-expr.cc (CompileExpr::generate_closure_function):
	Fix reference to node.
	* backend/rust-mangle.cc (struct V0Path): Modified to accept closures.
	(v0_crate_path): Modified to accept closures.
	(v0_closure): New function to mangle closures.
	(v0_path): Modified to accept closures
	* util/rust-mapping-common.h (UNKNOWN_NODEID): Change to UINT32_MAX.
	(UNKNOWN_HIRID): Change to UINT32_MAX.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Move from here...
	* ast/rust-ast-visitor.h: ... to here.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Move to header
	file.
	(TokenCollector::visit_items_joined_by_separator): Likewise.
	(TokenCollector::visit_as_line): Likewise.
	(TokenCollector::visit_items_as_lines): Likewise.
	(TokenCollector::visit_items_as_block): Likewise.
	* ast/rust-ast-collector.h: Add implementation.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Add visitor for
	VariadicParam and remove Self parameter visitor from Function visit.
	* expand/rust-cfg-strip.cc (CfgStrip::maybe_strip_self_param): Remove
	function.
	(CfgStrip::maybe_strip_trait_method_decl): Remove self parameter visit.
	(CfgStrip::maybe_strip_function_params): Handle new function
	parameters.
	(CfgStrip::visit): Handle VariadicParam, SelfParam and FunctionParam.
	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_self_param):
	Remove function.
	(ExpandVisitor::expand_trait_method_decl): Do not visit self parameter.
	(ExpandVisitor::visit): Add visit for VariadicParam, FunctionParam and
	SelfParam.
	(ExpandVisitor::expand_function_params): Visit parameters instead.
	* expand/rust-expand-visitor.h: Update function prototypes.
	* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Update visit
	with new parameters.
	(ResolveTraitItems::visit): Likewise.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
	Update visit functions with the new visitor functions for VariadicParam
	SelfParam and FunctionParam.
	* resolve/rust-early-name-resolver.h: Update function prototypes.
	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Update visitor
	according to the new function parameter structures.
	* ast/rust-ast-visitor.h: Update prototypes and add visitor virtual
	functions for SelfParam, FunctionParam and VariadicParam.
	* ast/rust-ast.cc (Function::Function): Move constructor in
	implementation instead of header.
	(Function::operator=): Likewise.
	(Function::as_string): Update function with pointer dereference.
	(VariadicParam::as_string): Likewise.
	(TraitFunctionDecl::as_string): Likewise.
	(TraitMethodDecl::as_string): Likewise.
	(FunctionParam::accept_vis): Add function for visitor.
	(SelfParam::accept_vis): Likewise.
	(VariadicParam::accept_vis): Likewise.
	(TraitItemFunc::TraitItemFunc): Move constructor to implementation
	file.
	(TraitItemFunc::operator=): Likewise.
	(TraitItemMethod::TraitItemMethod): Likewise.
	(TraitItemMethod::operator=): Likewise.
	* ast/rust-item.h (class Function): Remove self optional member.
	(class TraitMethodDecl): Likewise.
	(class TraitFunctionDecl): Likewise.
	(class Param): Add abstract parameter class.
	(class SelfParam): Inherit from Param and remove parameter common
	members.
	(class FunctionParam): Likewise.
	(class VariadicParam): Likewise.
	(struct Visibility): Move structure declaration.
	(class VisItem):  Likewise.
	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
	a self parameter check during AST validation.
	* checks/errors/rust-ast-validation.h: Add function prototype.
	* expand/rust-derive-clone.cc (DeriveClone::clone_fn): Update function
	constructor.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_self): Rework
	function for the new parameters.
	(ASTLoweringBase::visit): Add visit functions for VariadicParam,
	FunctionParam and SelfParam.
	* hir/rust-ast-lower-base.h: Update function prototypes.
	* parse/rust-parse-impl.h (Parser::parse_function): Update function
	according to new function representation.
	(Parser::parse_function_param): Return vector of abstract param instead
	of FunctionParam.
	(Parser::parse_method): Update according to new representation.
	(Parser::parse_trait_item): Likewise.
	(Parser::parse_self_param): Error out with
	self pointers and prevent the lexer from eating regular function
	parameters. Update return type.
	* parse/rust-parse.h: Update function return types.
	* ast/rust-ast-collector.h: Add VariadicParam visit prototype.
	* ast/rust-ast.h (struct Visibility): Move struct declaration.
	(class VisItem): Likewise.
	* ast/rust-expr.h: Update included files.
	* checks/errors/rust-feature-gate.h: Add visitor functions for
	SelfParam, FunctionParam and VariadicParam.
	* expand/rust-cfg-strip.h: Update function prototypes.
	* expand/rust-derive.h: Likewise.
	* hir/rust-ast-lower-implitem.h: Handle special arguments.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
	* metadata/rust-export-metadata.cc (ExportContext::emit_function):
	Likewise.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Add visitor
	functions.
	* resolve/rust-ast-resolve-base.h: Update prototypes.
	* resolve/rust-ast-resolve-stmt.h: Handle new parameter kind.
	* resolve/rust-default-resolver.cc (DefaultResolver::visit): Likewise.
	* resolve/rust-default-resolver.h: Update prototype.
	* util/rust-attributes.cc (AttributeChecker::visit): Add visitor
	functions for SelfParam and VariadicParam.
	* util/rust-attributes.h: Add visit prototypes.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
	check for additional named argument as well as variadic argument's
	position.
	* checks/errors/rust-ast-validation.h: Add visit function prototype for
	external functions.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-visitor.cc (ContextualASTVisitor::visit): Push the new
	trait context when visiting a trait.
	* ast/rust-ast-visitor.h: Add visit function prototype and TRAIT
	context.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Change
	reported error location to the lifetime location.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Check if there is
	a label before visit.
	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Emit an
	error when a label has a forbidden name.
	* checks/errors/rust-ast-validation.h: Add function prototype.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-expr.h (class BreakExpr): Change Lifetime to LoopLabel.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Lower lifetime
	inside the label instead.
	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Resolve the
	inner lifetime.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-lex.cc (Lexer::parse_raw_identifier): Use const value.
	* parse/rust-parse-impl.h (Parser::parse_simple_path_segment):
	Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-lex.cc (RS_TOKEN): Remove local map.
	(RS_TOKEN_KEYWORD): Likewise.
	(Lexer::classify_keyword): Change call to utils.
	* util/rust-keyword-values.cc (get_keywords): Add init function.
	(RS_TOKEN_KEYWORD): Call to X macro.
	* util/rust-keyword-values.h: Change from set to a map.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-ast-validation.cc (RS_TOKEN): Remove locale set.
	(RS_TOKEN_KEYWORD): Likewise.
	(ASTValidation::visit): Change keyword set call to the one from utils.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add rust-keyword-values.cc to the list.
	* util/rust-keyword-values.cc: New file.
	* util/rust-keyword-values.h: New file.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attribute-values.h (RUST_ATTRIBUTES_VALUE_H): Remove old
	header guard.
	(RUST_ATTRIBUTE_VALUES_H): Add new one.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-ast-validation.cc (RS_TOKEN): Add keyword set.
	(RS_TOKEN_KEYWORD): Likewise.
	(ASTValidation::visit): Add validation on lifetime visit.
	* checks/errors/rust-ast-validation.h: Add function prototype.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-item.h
	(class Method): Remove.
	(Function::self_param): New.
	(Function::has_self_param): New.
	(Function::Function): Initialize self_param.
	(Function::operator=): Likewise.
	(Function::get_self_param): New.
	* ast/rust-ast.cc
	(Method::as_string): Remove.
	(Method::accept_vis): Remove.
	* ast/rust-ast-collector.cc
	(TokenCollector::visit):
	Remove AST::Method visitor, handle self_param in AST::Function visitor.
	* ast/rust-ast-collector.h
	(TokenCollector::visit): Remove AST::Method visitor.
	* ast/rust-ast-full-decls.h (class Method): Remove.
	* ast/rust-ast-visitor.h
	(ASTVisitor::visit): Remove AST::Method visitor.
	(DefaultASTVisitor::visit): Likewise.
	* ast/rust-ast-visitor.cc
	(DefaultASTVisitor::visit):
	Remove AST::Method visitor, handle self_param in AST::Function visitor.
	* checks/errors/rust-feature-gate.cc
	(FeatureGate::visit): Remove AST::Method visitor.
	* checks/errors/rust-feature-gate.h
	(FeatureGate::visit): Likewise..
	* expand/rust-cfg-strip.cc
	(CfgStrip::visit):
	Remove AST::Method visitor, handle self_param in AST::Function visitor.
	* expand/rust-cfg-strip.h
	(CfgStrip::visit): Remove AST::Method visitor.
	* expand/rust-derive-clone.cc
	(DeriveClone::clone_fn): Return AST::Function instead of AST::Method.
	* expand/rust-derive.h (DeriveVisitor::visit): Remove AST::Method visitor.
	* expand/rust-expand-visitor.cc
	(ExpandVisitor::visit):
	Remove AST::Method visitor, handle self_param in AST::Function visitor.
	* expand/rust-expand-visitor.h:
	(ExpandVisitor::visit): Remove AST::Method visitor.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
	* hir/rust-ast-lower-base.h (ASTLoweringBase::visit): Likewise.
	* hir/rust-ast-lower-implitem.h
	(ASTLowerImplItem::visit):
	Remove AST::Method visitor, handle self_param in AST::Function visitor.
	* parse/rust-parse-impl.h: Include optional.h.
	(Parser::parse_function): Adjust AST::Function construction.
	(Parser::parse_inherent_impl_function_or_method):
	Construct AST::Function instead of AST::Method,
	adjust AST::Function construction.
	(Parser::parse_trait_impl_function_or_method): Likewise.
	(Parser::parse_method):
	Return std::unique_ptr<AST::Function> instead of AST::Method.
	* parse/rust-parse.h
	(Parser::parse_method): Likewise.
	* resolve/rust-ast-resolve-base.cc
	(ResolverBase::visit): Remove AST::Method visitor.
	* resolve/rust-ast-resolve-base.h
	(ResolverBase::visit): Likewise.
	* resolve/rust-ast-resolve-implitem.h
	(ResolveToplevelImplItem::visit): Likewise.
	* resolve/rust-ast-resolve-item.cc
	(ResolveItem::visit): Remove AST::Method visitor,
	handle self_param in AST::Function visitor.
	* resolve/rust-ast-resolve-item.h
	(ResolveItem::visit): Remove AST::Method visitor.
	* resolve/rust-default-resolver.cc
	(DefaultResolver::visit): Remove AST::Method visitor.
	* resolve/rust-default-resolver.h
	(DefaultResolver::visit): Likewise.
	* resolve/rust-early-name-resolver.cc
	(EarlyNameResolver::visit): Remove AST::Method visitor,
	handle self_param in AST::Function visitor.
	* resolve/rust-early-name-resolver.h
	(EarlyNameResolver::visit): Remove AST::Method visitor.
	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::visit): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.h
	(TopLevel::visit): Likewise.
	* util/rust-attributes.cc
	(AttributeChecker::visit): Likewise.
	* util/rust-attributes.h
	(AttributeChecker::visit): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_named_function_param): Add
	new parsing ability.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (ExternalFunctionItem::as_string): Adapt as_string
	function to the new ast representation.
	(NamedFunctionParam::as_string): Likewise.
	* ast/rust-item.h: Add a function to test whether a FunctionParam has
	a name pattern.
	* expand/rust-cfg-strip.cc (CfgStrip::visit): Adapt cfg strip visitor
	for the new variadic arguments.
	* hir/rust-ast-lower-extern.h: Adapt lowering to the new variadic
	function representation.
	* metadata/rust-export-metadata.cc (ExportContext::emit_function):
	Change call to constructor.
	* parse/rust-parse-impl.h (Parser::parse_named_function_param): Change
	NamedFunctionParam parsing to accomodate new variadic representation.
	(Parser::parse_external_item): Change external item parsing to use the
	new NamedFunctionParam variadics.
	* parse/rust-parse.h: Add new parsing function prototypes.
	* ast/rust-ast-collector.cc (TokenCollector::visit): Rework token
	collection to take into account variadic parameters.
	* ast/rust-ast-visitor.cc: Likewise.
	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Change function
	bound to avoid getting the type of a variadic parameter.
	* resolve/rust-ast-resolve-item.cc (ResolveExternItem::visit):
	Likewise.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
	Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-item.h (class NamedFunctionParam): Add variadic boolean and
	another constructor.
	* hir/rust-ast-lower-extern.h: Avoid last parameter when variadic.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-item.h: Add a getter to check if a given function is
	variadic.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_function_param): Parse
	variadic functions.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-item.h (class FunctionParam): Add some informations to
	function parameters in order to be able to store variadic argument as
	a function parameter.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Adapt
	the call to the new visit functions.
	(ASTValidation::check): Launch the parent class visitor root function.
	* checks/errors/rust-ast-validation.h (class ASTValidation): Inherit
	from the contextual visitor.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-visitor.cc (ContextualASTVisitor::visit): Add multiple
	context saving calls.
	* ast/rust-ast-visitor.h (class DefaultASTVisitor): Make visit
	functions virtual.
	(class ContextualASTVisitor): Add a stack like container for the
	current context chain.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add the new visitor object file.
	* ast/rust-ast-visitor.h (class DefaultASTVisitor): Create the default
	visitor class.
	* ast/rust-ast.h: Add a new reference getter for visitor pattern.
	* ast/rust-ast-visitor.cc: New file.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Add some missing mutable reference getters.
	* ast/rust-expr.h: Likewise.
	* ast/rust-item.h: Likewise.
	* ast/rust-path.h: Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Check for presence
	of a type and use the default value instead of the type.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/rust-ast-validation.cc (ASTValidation::check): Launch
	check over the whole given crate.
	(ASTValidation::visit): Implement visitor for some members of the ast.
	* checks/errors/rust-ast-validation.h: Update some prototype according
	to implemented visitor functions. Also add a context tracker.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-session-manager.cc (Session::compile_crate): Add call to ast
	validation.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lang.opt: Add the new compile options and update the enum values.
	* rust-session-manager.h (struct CompileOptions): Add the new steps to
	the enumeration.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add the new object file the list.
	* checks/errors/rust-ast-validation.cc: New file.
	* checks/errors/rust-ast-validation.h: New file.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-cfg-strip.cc (CfgStrip::visit): Add expr value check.
	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Likewise.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
	Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Move implementation from here...
	* ast/rust-ast.cc (SingleASTNode::SingleASTNode): ...to here.
	(SingleASTNode::operator=): ...and here...
	(SingleASTNode::accept_vis): ...and here...
	(SingleASTNode::is_error): ...and here...
	(SingleASTNode::as_string): ...also here.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Add override specifier.
	* ast/rust-item.h: Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-invoc-lexer.cc (MacroInvocLexer::split_current_token):
	Add implementation for multiple token split.
	* expand/rust-macro-invoc-lexer.h: Add function prototype.
	* expand/rust-proc-macro-invoc-lexer.cc (ProcMacroInvocLexer::split_current_token):
	Add implementation for 2+ token split for procedural macros.
	* expand/rust-proc-macro-invoc-lexer.h: Add function prototype.
	* lex/rust-lex.cc (Lexer::split_current_token): Add function to split a
	token in multiple other tokens.
	* lex/rust-lex.h: Add function prototype for split_current_token.
	* parse/rust-parse-impl.h (Parser::left_denotation): Handle float tuple
	index identified as a float literal.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* hir/rust-hir-dump.cc (Dump::visit): Remove obsolete member.
	* hir/tree/rust-hir-expr.h (class BorrowExpr): Remove obsolete member.
	* hir/tree/rust-hir.cc (BorrowExpr::as_string): Remove obsolete member.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Fix typo.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-expr.cc
	(patterns_mergeable): Remove.
	(struct PatternMerge): Remove.
	(sort_tuple_patterns): Remove.
	(simplify_tuple_match): Remove.
	(CompileExpr::visit): Modify compilation of MatchExpr.
	* backend/rust-compile-pattern.cc
	(CompilePatternCaseLabelExpr::visit): Replace with...
	(CompilePatternCheckExpr::visit): ...this.
	* backend/rust-compile-pattern.h
	(class CompilePatternCaseLabelExpr): Replace with...
	(class CompilePatternCheckExpr): ...this.
	* backend/rust-compile-type.cc
	(TyTyResolveCompile::get_implicit_enumeral_node_type):
	Make enumeral type equivalent to isize.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-base.cc (get_attributes): Add documentation for
	indices 3 and 4.
	(get_trait_name): Add documentation for index 1.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add gcc/rust/backend/rust-compile-proc-macro.cc to the
	list of file to compile.
	* backend/rust-compile.cc (attribute_array): Move to
	rust-compile-proc-macro.cc
	(derive_proc_macro): Likewise.
	(bang_proc_macro): Likewise.
	(attribute_proc_macro): Likewise.
	(proc_macro_payload): Likewise.
	(proc_macro): Likewise.
	(proc_macro_buffer): Likewise.
	(entrypoint): Likewise.
	(proc_macro_array): Likewise.
	(CompileCrate::add_proc_macro_symbols): Likewise.
	* backend/rust-compile-proc-macro.cc: New file.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile.cc (proc_macro_buffer): Update type builder with
	array length information.
	(proc_macro_array): Update type initializer with array length
	information.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile.cc (build_attribute_array): Renamed from...
	(attribute_array): ...to attribute array.
	(build_derive_proc_macro): Likewise from...
	(derive_proc_macro): ... to derive_proc_macro.
	(build_bang_proc_macro): Likewise from...
	(bang_proc_macro): ...to bang_proc_macro.
	(build_attribute_proc_macro): Likewise from...
	(attribute_proc_macro): ... to attribute_proc_macro.
	(build_proc_macro_payload): Likewise from...
	(proc_macro_payload): to proc_macro_payload.
	(build_proc_macro): Likewise from...
	(proc_macro): ...to proc_macro.
	(build_proc_macro_buffer): Likewise from...
	(proc_macro_buffer): ... to proc_macro_buffer.
	(build_entrypoint): Likewise from...
	(entrypoint): ...to entrypoint.
	(init_derive_proc_macro): Renamed to it's shorter counterpart.
	(init_attribute_proc_macro): Likewise.
	(init_bang_proc_macro): Likewise.
	(init_proc_macro): Likewise.
	(initialize_proc_macro_array): Likewise.
	(proc_macro_array): Likewise.
	(CompileCrate::add_proc_macro_symbols): Update function calls.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-base.h: Make static function address_expression
	public.
	* backend/rust-compile.cc (CompileCrate::add_proc_macro_symbols): Add
	new global variable in export function.
	(build_bang_proc_macro): Add a function to build the bang proc macro
	structure type.
	(build_proc_macro): Add a function to build the proc macro structure
	type.
	(build_proc_macro_payload): Add a function to build the proc macro
	union used in proc macro structures.
	(init_derive_proc_macro): Add a function to initialize custom derive
	proc macros.
	(init_attribute_proc_macro): Add a function to initialize attribute
	proc macros.
	(init_bang_proc_macro): Add a function to initialize bang proc macros.
	(init_proc_macro): Add a function to initialize proc macro structures.
	(initialize_proc_macro_array): Add a function to initialize the proc
	macro buffer array.
	(CompileCrate::add_proc_macro_symbols): Add call to the new functions
	to correctly initialize proc macros as well as their entrypoint.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-proc-macro.cc (CustomDeriveProcMacro::CustomDeriveProcMacro):
	Remove constant string declaration.
	(load_macros_array): Add call to the new generation function.
	(generate_proc_macro_decls_symbol): Add a new function to generate the
	entrypoint symbol name from the stable crate id.
	(PROC_MACRO_DECLS_FMT_ARGS):
	New macro to keep formats arguments in sync between each call.
	* expand/rust-proc-macro.h (generate_proc_macro_decls_symbol): Add
	function prototype.
	* rust-system.h: Include <iomanip>.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile.cc (build_attribute_array): Add a function to
	build the attribute array type.
	(build_derive_proc_macro): Add a function to build the derive proc
	macro type.
	(build_bang_proc_macro): Add a function to build the bang proc macro
	type.
	(build_attribute_proc_macro): Add a function to build the attribute
	proc macro type.
	(build_proc_macro): Add a function to build the proc macro tagged union
	type.
	(build_proc_macro_buffer): Add a function to build the proc macro
	buffer type.
	(build_entrypoint): Add a function to build the proc macro entrypoint
	type.
	* backend/rust-compile.h: Add function prototype.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-context.h: Add getters.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-base.cc (HIRCompileBase::setup_fndecl):
	Make the function non static in order to be able to access the
	compile context. Also add the whole proc macro infomrmation
	collection.
	(get_attributes): Add a function to retrieve the different
	attributes from a derive procedural macro definition attribute.
	(get_trait_name): Add a function to retrieve the trait name from
	a derive procedural macro definition attribute.
	* backend/rust-compile-base.h: Add function prototypes.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-base.cc (HIRCompileBase::setup_abi_options):
	Reformat uncorrectly formatted comments.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-context.h (struct CustomDeriveInfo): Add
	new derive procedural macro metadata information holder for
	mappings.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Add const getter.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-base.cc (handle_proc_macro_common): Add
	new attribute "gccrs_proc_macro" to all procedural macro
	functions.
	(get_abi): Add a function to retrieve the correct ABI depending
	on wether the function is a proc macro or not.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-base.cc (HIRCompileBase::setup_fndecl):
	Add proc macro handlers dispatch.
	(handle_proc_macro_common): Add a function for common behavior
	between all kinds of proc macros.
	* backend/rust-compile-base.h: Add function prototypes.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::setup_loop): Move.
	(ExprStmtBuilder::get_label_ctx): Move.
	(ExprStmtBuilder::get_unnamed_loop_ctx): Moved.
	(ExprStmtBuilder::visit): BIR improvements.
	* checks/errors/borrowck/rust-bir-builder-expr-stmt.h: Refactor.
	* checks/errors/borrowck/rust-bir-builder-internal.h (class LifetimeResolver):
	Refactor.
	(struct BuilderContext): Move.Refactor.
	(optional_from_ptr): Map on null ptr.
	* checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h (class LazyBooleanExprBuilder):
	Refactor.
	* checks/errors/borrowck/rust-bir-builder-pattern.h: Refactor.
	* checks/errors/borrowck/rust-bir-builder-struct.h (class StructBuilder): Refactor.
	* checks/errors/borrowck/rust-bir-builder.h: Refactor.
	* checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Refactor.
	(Dump::visit): Refactor.
	(Dump::visit_place): Refactor.
	(Dump::visit_move_place): Refactor.
	(Dump::visit_lifetime): Refactor.
	* checks/errors/borrowck/rust-bir-dump.h: Refactor.
	* checks/errors/borrowck/rust-bir-place.h: Refactor.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/dev-notes.md: New file.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/bir-design-notes.md: New file.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit): Use goto.
	* checks/errors/borrowck/rust-bir-builder-internal.h: Explicit goto.
	* checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h: Explicit goto.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit): Continue.
	(ExprStmtBuilder::setup_loop): Continue.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-dump.cc (simplify_cfg): Detech infinite loops.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit): Push ctx.
	(ExprStmtBuilder::setup_loop): Common loop infractructure setup.
	* checks/errors/borrowck/rust-bir-builder-expr-stmt.h: Loop ctx.
	* checks/errors/borrowck/rust-bir-builder-internal.h (struct BuilderContext): Loop ctx.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Improve jumps dump.
	(Dump::visit): Improve jumps dump.
	* checks/errors/borrowck/rust-bir-dump.h (class Dump): Improve jumps dump.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-dump.cc (simplify_cfg): Simplify cfg logic.
	(Dump::go): Run simplify cfg.
	* checks/errors/borrowck/rust-bir-dump.h: Option to simplify cfg.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Use new print.
	(print_comma_separated): Comma separation print.
	(Dump::visit): Use new print.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* Make-lang.in: Build BIR dump.
	* checks/errors/borrowck/rust-borrow-checker.cc (mkdir_wrapped): Cross-platform mkdir.
	(dump_function_bir): Save dump to file.
	(BorrowChecker::go): Run dump during borrowck.
	* checks/errors/borrowck/rust-bir-dump.cc: New file.
	* checks/errors/borrowck/rust-bir-dump.h: New file.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* Make-lang.in: Compile BIR expr visitor.
	* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::go): Use BIR builder.
	* rust-session-manager.cc (Session::compile_crate): Run borrow checker.
	* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc: New file.
	* checks/errors/borrowck/rust-bir-builder-expr-stmt.h: New file.
	* checks/errors/borrowck/rust-bir-builder-internal.h: New file.
	* checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h: New file.
	* checks/errors/borrowck/rust-bir-builder-pattern.h: New file.
	* checks/errors/borrowck/rust-bir-builder-struct.h: New file.
	* checks/errors/borrowck/rust-bir-builder.h: New file.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-borrow-checker.cc: Include to compile new code.
	* checks/errors/borrowck/rust-bir-place.h: New file.
	* checks/errors/borrowck/rust-bir-visitor.h: New file.
	* checks/errors/borrowck/rust-bir.h: New file.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* lang.opt: CLI flag.
	* rust-session-manager.cc (Session::compile_crate): Guard execution.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::BorrowChecker): Opt dump.
	(BorrowChecker::go): Opt dump.
	* checks/errors/borrowck/rust-borrow-checker.h (class BorrowChecker): Opt dump.
	* lang.opt: Add compile until borrowcheck.
	* rust-session-manager.cc (Session::enable_dump): Add BIR.
	(Session::compile_crate): Handle new options.
	* rust-session-manager.h (struct CompileOptions): Add BIR.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* Make-lang.in: Build borrowck.
	* checks/errors/borrowck/rust-borrow-checker.cc: New file.
	* checks/errors/borrowck/rust-borrow-checker.h: New file.
	* checks/errors/borrowck/rust-function-collector.h: New file.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-pattern.h: Add override modifier to overriding methods.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-item.h: Add a new constructor for const with no value
	expression.
	* parse/rust-parse-impl.h (Parser::parse_const_item): Allow const with
	no expression value.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* hir/tree/rust-hir-path.h: Avoid copy in getter.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Rename method.
	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Rename method.
	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Rename method.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Rename method.
	* hir/rust-hir-dump.cc (Dump::visit): Rename method.
	* hir/tree/rust-hir-expr.h: Rename method.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Rename method.
	* typecheck/rust-tyty.h: Rename method.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* backend/rust-compile-base.cc: Rename method.
	* backend/rust-compile-expr.cc (sort_tuple_patterns): Rename method.
	* backend/rust-compile-pattern.cc (CompilePatternCaseLabelExpr::visit): Rename method.
	(CompilePatternBindings::visit): Rename method.
	(CompilePatternLet::visit): Rename method.
	* backend/rust-compile-stmt.cc (CompileStmt::visit): Rename method.
	* backend/rust-compile-var-decl.h: Rename method.
	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::translate): Rename method.
	* hir/rust-hir-dump.cc (Dump::visit): Rename method.
	* hir/tree/rust-hir-path.h: Rename method.
	* hir/tree/rust-hir-pattern.h: Rename method.
	* hir/tree/rust-hir.h: Rename method.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::Resolve): Rename method.
	(TypeCheckPattern::visit): Rename method.
	(ClosureParamInfer::visit): Rename method.
	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Rename method.
	* util/rust-hir-map.cc (Mappings::insert_hir_pattern): Rename method.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* hir/tree/rust-hir-expr.h: Add getter for name.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Implement for tuple pat.
	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit): Implement for tupple pat.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* hir/tree/rust-hir-path.h: Avoid copy in getter.
	* hir/tree/rust-hir-pattern.h: Avoid copy in getter.
	* hir/tree/rust-hir.h: Avoid copy in getter.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-ast-resolve-implitem.h
	(ResolveToplevelImplItem::go): Take AssociatedItem as parameter.
	(ResolveTopLevelTraitItems::go): Likewise.
	* resolve/rust-ast-resolve-item.cc
	(ResolveTraitItems::go): Likewise.
	(ResolveItem::resolve_impl_item): Likewise.
	(ResolveImplItems::go): Likewise.
	* resolve/rust-ast-resolve-item.h
	(ResolveTraitItems::go): Likewise.
	(ResolveItem::resolve_impl_item): Likewise.
	(ResolveImplItems::go): Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/rust-ast-lower-implitem.h
	(ASTLoweringImplItem::translate): Take AssociatedItem as parameter.
	(ASTLoweringTraitItem::translate): Likewise.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Bail on labelled block.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Add loop ctx.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Resolve using loop logic.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* hir/rust-ast-lower.cc (ASTLoweringBlock::visit): Call loop lowering and add it to constr.
	* hir/tree/rust-hir-expr.h (class LoopLabel): Move before BlockExpr and add to BlockExpr.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-builder.cc (AstBuilder::block): Add label arg to constructor call.
	* ast/rust-expr.h (class LoopLabel): Move before BlockExpr.
	(class BlockExpr): Add LoopLabel member.
	* expand/rust-derive-clone.cc (DeriveClone::clone_fn): Add label arg to constructor call.
	* parse/rust-parse-impl.h (Parser::parse_block_expr): Add label parameter.
	(Parser::parse_labelled_loop_expr): Add label arg to constructor call.
	* parse/rust-parse.h: Add label arg to constructor call.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast.h
	(class AssociatedItem):
	New, based on TraitItem, InherentImplItem, and TraitImplItem classes.
	(class TraitItem): Inherit from AssociatedItem.
	(class InherentImplItem): Likewise.
	(class TraitImplItem): Likewise.
	* ast/rust-item.h
	(class Method): Update cloning functions.
	(class Function): Likewise.
	(class TypeAlias): Likewise.
	(class ConstantItem): Likewise.
	(class TraitItemFunc): Likewise.
	(class TraitItemMethod): Likewise.
	(class TraitItemConst): Likewise.
	(class TraitItemType): Likewise.
	* ast/rust-macro.h
	(class MacroInvocation): Likewise.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* backend/rust-mangle.cc (v0_identifier): Fix broken encoding.
	(v0_scope_path): Modify paramter.
	(v0_path): Fix namespace for modules.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_closure_expr_pratt): Fix
	closure parsing function to handle consecutive parameter lists.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-macro.h: Add PATH fragment to follow set restrictions.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::is_macro_rules_def): Add a function
	that checks tokens given by the lexer represents an accurate macro
	definition. This will reduce code duplication.
	(Parser::parse_item): Replace condition with call to new checking
	function.
	(Parser::parse_stmt): Likewise.
	* parse/rust-parse.h: Add function prototype for is_macro_rules_def.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_expr): Fix range from expr.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_item): Relax constraints
	around default identifier at item scope to accept "default" macros.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_path_expr_segment): Accept
	left shift tokens in order to let generic parsing function split the
	token.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast.h
	(Pattern::get_pattern_node_id): Rename to...
	(Pattern::get_node_id): ...here.
	* ast/rust-macro.h
	(MacroInvocation::get_pattern_node_id): Rename to...
	(MacroInvocation::get_node_id): ...here.
	* ast/rust-path.h
	(PathInExpression::get_pattern_node_id): Remove.
	(QualifiedPathInExpression::get_pattern_node_id): Remove.
	* ast/rust-pattern.h
	(LiteralPattern::get_pattern_node_id): Remove.
	(IdentifierPattern::get_pattern_node_id): Remove.
	(WildcardPattern::get_pattern_node_id): Remove.
	(RestPattern::get_pattern_node_id): Rename to...
	(RestPattern::get_node_id): ...here.
	(RangePattern::get_pattern_node_id): Remove.
	(ReferencePattern::get_pattern_node_id): Remove.
	(StructPattern::get_pattern_node_id): Remove.
	(TupleStructPattern::get_pattern_node_id): Remove.
	(TuplePattern::get_pattern_node_id): Remove.
	(GroupedPattern::get_pattern_node_id): Remove.
	(SlicePattern::get_pattern_node_id): Remove.
	(AltPattern::get_pattern_node_id): Remove.
	* resolve/rust-early-name-resolver.cc
	(EarlyNameResolver::visit):
	Use get_node_id instead of get_pattern_node_id.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_expr): Add comma delimiter.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_visibility): Relax constraints
	over public visibility return condition in order to accept pub unit
	types.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-tyty.cc (BaseType::is_unit): Refactor.
	(BaseType::satisfies_bound): Refactor.
	(BaseType::get_root): Refactor.
	(BaseType::destructure): Refactor.
	(BaseType::monomorphized_clone): Refactor.
	(BaseType::is_concrete): Refactor.
	(InferType::InferType): Refactor.
	(InferType::clone): Refactor.
	(InferType::apply_primitive_type_hint): Refactor.
	(StructFieldType::is_equal): Refactor.
	(ADTType::is_equal): Refactor.
	(handle_substitions): Refactor.
	(ADTType::handle_substitions): Refactor.
	(TupleType::TupleType): Refactor.
	(TupleType::is_equal): Refactor.
	(TupleType::handle_substitions): Refactor.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* typecheck/rust-tyty.cc (InferType::InferType): Use static constant for kind information.
	(ErrorType::ErrorType): Use static constant for kind information.
	(TupleType::TupleType): Use static constant for kind information.
	(BoolType::BoolType): Use static constant for kind information.
	(IntType::IntType): Use static constant for kind information.
	(UintType::UintType): Use static constant for kind information.
	(FloatType::FloatType): Use static constant for kind information.
	(USizeType::USizeType): Use static constant for kind information.
	(ISizeType::ISizeType): Use static constant for kind information.
	(CharType::CharType): Use static constant for kind information.
	(ReferenceType::ReferenceType): Use static constant for kind information.
	(PointerType::PointerType): Use static constant for kind information.
	(ParamType::ParamType): Use static constant for kind information.
	(StrType::StrType): Use static constant for kind information.
	(NeverType::NeverType): Use static constant for kind information.
	(PlaceholderType::PlaceholderType): Use static constant for kind information.
	* typecheck/rust-tyty.h: Add static kind information to all TyTy classes.
	Create safe cast and check methods.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_type_param_bound): Add missing
	case for lifetime switch.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-token.cc (Token::as_string): Update function to output scope
	resolution tokens correctly.
	* parse/rust-parse-impl.h (Parser::parse_generic_param): Change call to
	as_string.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* backend/rust-compile-context.h: Modify declaration.
	* backend/rust-mangle.cc (struct V0Path): New struct.
	(v0_path): New function.
	(legacy_mangle_name): Take Context as argument.
	(v0_numeric_prefix): Fix type strings.
	(v0_complex_type_prefix): New function.
	(v0_add_integer_62): Deleted
	(v0_integer_62): New function.
	(v0_add_opt_integer_62): Deleted.
	(v0_opt_integer_62): New function.
	(v0_add_disambiguator): Deleted.
	(v0_disambiguator): New function.
	(v0_type_prefix): Support more types.
	(v0_generic_args): New function.
	(v0_add_identifier): Deleted.
	(v0_identifier): New function.
	(v0_type_path): New function.
	(v0_function_path): New function.
	(v0_scope_path): New function.
	(v0_crate_path): New function.
	(v0_inherent_or_trait_impl_path): New function.
	(v0_mangle_item): Use v0_path.
	(Mangler::mangle_item): Take Context as argument.
	* backend/rust-mangle.h (class Context): Add forward declaration.
	* hir/tree/rust-hir-item.h: Fix include.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-pattern.h
	(TupleStructItems::clone_tuple_struct_items_impl): Rename to...
	(TupleStructItems::clone_tuple_items_impl): ...here.
	(TupleStructItemsNoRange::clone_tuple_struct_items_impl): Rename to...
	(TupleStructItemsNoRange::clone_tuple_items_impl): ...here.
	(TupleStructItemsRange::clone_tuple_struct_items_impl): Rename to...
	(TupleStructItemsRange::clone_tuple_items_impl): ...here.
	(TuplePatternItems::clone_tuple_pattern_items_impl): Rename to...
	(TuplePatternItems::clone_tuple_items_impl): ...here.
	(TuplePatternItemsMultiple::clone_tuple_pattern_items_impl): Rename to...
	(TuplePatternItemsMultiple::clone_tuple_items_impl): ...here.
	(TuplePatternItemsRanged::clone_tuple_pattern_items_impl): Rename to...
	(TuplePatternItemsRanged::clone_tuple_items_impl): ...here.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-pattern.h
	(TuplePatternItems::get_pattern_type): Rename to...
	(TuplePatternItems::get_item_type): ...here.
	(TuplePatternItemsMultiple::get_pattern_type): Rename to...
	(TuplePatternItemsMultiple::get_item_type): ...here.
	(TuplePatternItemsRanged::get_pattern_type): Rename to...
	(TuplePatternItemsRanged::get_item_type): ...here.
	* backend/rust-compile-expr.cc: Adjust calls to renamed methods.
	* backend/rust-compile-pattern.cc: Likewise.
	* typecheck/rust-hir-type-check-pattern.cc: Likewise.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Merge 2 if clauses.
	* backend/rust-compile-extern.h: Fix typo in comment.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* parse/rust-parse-impl.h: Add missing token consumption

2024-01-16  Mohammed Rizan Farooqui  <rizanfarooqui@gmail.com>

	* expand/rust-macro-builtins.cc (MacroBuiltin::include_str_handler): Comment removed
	(MacroBuiltin::env_handler): Comment removed
	(MacroBuiltin::cfg_handler): Comment removed
	(MacroBuiltin::line_handler): Comment removed

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* backend/rust-compile.cc (HIRCompileBase::coercion_site1): Fix wrong cast

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-session-manager.cc (Session::expansion): Add early break on
	error.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* util/rust-canonical-path.h: Add new segment kind for inherent impl.
	* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Use it.
	* resolve/rust-ast-resolve-toplevel.h: Use it.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-expr.h: Fix spelling of "doesn't".
	* backend/rust-compile-expr.cc: Fix spelling of "accessors".
	* backend/rust-compile-implitem.h: Fix spelling of "normal".
	* backend/rust-constexpr.cc: Fix spelling of "actual".

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* hir/rust-hir-dump.cc (Dump::debug): New.
	(debug): New.
	* hir/rust-hir-dump.h (debug): New.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* Make-lang.in: fixup formatting
	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): remove old check
	* rust-session-manager.cc (Session::compile_crate): call new lint
	* resolve/rust-ast-verify-assignee.h: Removed.
	* checks/errors/rust-readonly-check.cc: New file.
	* checks/errors/rust-readonly-check.h: New file.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
	Added ErrorCode & more fixit hints.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-block.h: remove HIR::ForLoopExpr
	* backend/rust-compile-expr.h: likewise
	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): likewise
	* checks/errors/privacy/rust-privacy-reporter.h: likewise
	* checks/errors/rust-const-checker.cc (ConstChecker::visit): likewise
	* checks/errors/rust-const-checker.h: likewise
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): likewise
	* checks/errors/rust-unsafe-checker.h: likewise
	* checks/lints/rust-lint-marklive.h: likewise
	* hir/rust-ast-lower.cc (ASTLoweringExprWithBlock::visit): likewise
	* hir/rust-hir-dump.cc (Dump::visit): likewise
	* hir/rust-hir-dump.h: likewise
	* hir/tree/rust-hir-expr.h (class ForLoopExpr): likewise
	* hir/tree/rust-hir-full-decls.h (class ForLoopExpr): likewise
	* hir/tree/rust-hir-visitor.h: likewise
	* hir/tree/rust-hir.cc (ForLoopExpr::as_string): likewise
	(ForLoopExpr::accept_vis): likewise
	* typecheck/rust-hir-type-check-expr.h: likewise

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Fix typo in varIadic.
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Likewise.
	* rust-backend.h (function_type_varadic): Rename into ...
	(function_type_variadic): ... this.
	* rust-gcc.cc (function_type_varadic): Rename into ...
	(function_type_variadic): ... this.
	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Likewise.
	* typecheck/rust-tyty.h (is_varadic): Renamed into ...
	(is_variadic): ... this.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* backend/rust-compile-base.cc (HIRCompileBase::compile_function):
	Fix typo in substitutions.
	(HIRCompileBase::resolve_method_address): Likewise.
	* backend/rust-compile-extern.h (CompileExternItem::visit):
	Likewise.
	* backend/rust-compile-implitem.cc (CompileTraitItem::visit):
	Likewise.
	* backend/rust-compile-intrinsic.cc (maybe_override_ctx):
	Likewise.
	* backend/rust-compile-item.cc (CompileItem::visit): Likewise.
	* backend/rust-compile-resolve-path.cc
	(HIRCompileBase::query_compile): Likewise.
	* typecheck/rust-coercion.cc (TypeCoercionRules::do_coercion):
	Likewise.
	* typecheck/rust-hir-type-check-item.cc
	(TypeCheckItem::ResolveImplBlockSelfWithInference): Likewise.
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit):
	Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
	Likewise.
	* typecheck/rust-tyty.cc (BaseType::has_subsititions_defined):
	Renamed into ...
	(BaseType::has_substitutions_defined): ... this.
	(ADTType::is_equal): Fix typo in substitutions.
	(handle_substitions): Likewise.
	(FnType::is_equal): Likewise.
	(FnType::handle_substitions): Likewise.
	* typecheck/rust-tyty.h (has_subsititions_defined): Renamed into
	...
	(has_substitutions_defined): ... this.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-intrinsic.cc
	(get_identifier): Add declaration.
	(assume_handler): New.
	(generic_intrinsics): Add assume_handler entry.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-gcc.cc
	(Backend::wchar_type): Store static wchar tree.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h
	(complex_type): Remove.
	(complex_constant_expression): Remove.
	(real_part_expression): Remove.
	(imag_part_expression): Remove.
	(complex_expression): Remove.
	* rust-gcc.cc
	(complex_type): Remove.
	(complex_constant_expression): Remove.
	(real_part_expression): Remove.
	(imag_part_expression): Remove.
	(complex_expression): Remove.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-gcc.cc
	(namespace Backend):
	Use namespace definition instead of qualified names.

2024-01-16  liushuyu  <liushuyu011@gmail.com>

	* backend/rust-compile-intrinsic.cc: add `copy`
	intrinsics and make `copy_nonoverlapping` handler more generic

2024-01-16  liushuyu  <liushuyu011@gmail.com>

	* backend/rust-builtins.cc: add `expect` builtin definition.
	* backend/rust-compile-intrinsic.cc: add `likely` and `unlikely`
	intrinsics handler.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust_error_codes.def: Moved to...
	* rust-error-codes.def: ...here...
	* rust-diagnostics.h: ...and update references.

2024-01-16  Guillaume Gomez  <guillaume1.gomez@gmail.com>

	* backend/rust-compile-intrinsic.cc: Simplify `make_unsigned_long_tree`
	* rust-backend.h: Remove `integer_constant_expression`
	* rust-gcc.cc: Remove `integer_constant_expression`

2024-01-16  Dave Evans  <dave@dmetwo.org>

	* backend/rust-compile-pattern.cc (CompilePatternCaseLabelExpr::visit):
	Add AltPattern visitor function
	* backend/rust-compile-pattern.h:
	Update CompilePatternCaseLabelExpr::visit(AltPattern&).
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
	Update AltPattern visitor

2024-01-16  Guillaume Gomez  <guillaume1.gomez@gmail.com>

	* backend/rust-compile-intrinsic.cc: Remove unused argument

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Added new error message, rich location and error code.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h
	(class Backend): Convert to ...
	(namespace Backend): ... namespace.
	* rust-gcc.cc
	(Backend::Backend): Rename to ...
	(Backend::init): ... here.
	(rust_get_backend): Remove.
	* rust-session-manager.cc
	(rust_get_backend): Remove.
	(Session::init): Use Backend::init instead of rust_get_backend.
	(Session::compile_crate):
	Initialize Context without pointer to Backend.
	* rust-session-manager.h
	(Session::backend): Remove.
	* backend/rust-compile-context.cc
	(Context::Context): Remove pointer to Backend.
	* backend/rust-compile-context.h
	(class Context): Remove pointer to Backend, update function calls.
	* backend/rust-compile-base.cc: Update function calls.
	* backend/rust-compile-block.cc: Likewise.
	* backend/rust-compile-expr.cc: Likewise.
	* backend/rust-compile-extern.h: Likewise.
	* backend/rust-compile-fnparam.cc: Likewise.
	* backend/rust-compile-intrinsic.cc: Likewise.
	* backend/rust-compile-item.cc: Likewise.
	* backend/rust-compile-pattern.cc: Likewise.
	* backend/rust-compile-resolve-path.cc: Likewise.
	* backend/rust-compile-type.cc: Likewise.
	* backend/rust-compile-var-decl.h: Likewise.
	* backend/rust-compile.cc: Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (Attribute::check_cfg_predicate): Change raw
	string to constexpr call.
	(Attribute::separate_cfg_attrs): Likewise.
	* backend/rust-compile-base.cc (should_mangle_item): Likewise.
	(HIRCompileBase::setup_fndecl): Likewise.
	(HIRCompileBase::handle_cold_attribute_on_fndecl): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.cc (find_proc_macro_attribute):
	Likewise.
	* checks/errors/rust-unsafe-checker.cc (check_target_attr):
	Likewise.
	* expand/rust-cfg-strip.cc (fails_cfg): Likewise.
	(fails_cfg_with_expand): Likewise.
	(expand_cfg_attrs): Likewise.
	* expand/rust-macro-builtins.cc: Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_outer_attributes): Likewise.
	(ASTLoweringBase::lower_macro_definition): Likewise.
	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
	* parse/rust-parse-impl.h (Parser::parse_doc_comment): Likewise.
	* parse/rust-parse.cc (extract_module_path): Likewise.
	* resolve/rust-early-name-resolver.cc (is_macro_use_module):
	Likewise.
	(EarlyNameResolver::visit): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc (is_macro_export):
	Likwise.
	* rust-session-manager.cc (Session::injection): Likewise.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options): Likewise.
	* util/rust-attributes.cc (is_proc_macro_type): Likewise.
	(AttributeChecker::check_attribute): Likewise.
	(AttributeChecker::visit): Likewise.
	* util/rust-hir-map.cc (Mappings::insert_macro_def): Likewise.
	* util/rust-attribute-values.h: New file.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h
	(Backend::Backend): New.
	(Backend::~Backend): Remove.
	(class Gcc_backend): Remove.
	* rust-gcc.cc
	(Gcc_backend::Gcc_backend): Rename to ...
	(Backend::Backend): ... here.
	(rust_get_backend): Construct Backend instead of Gcc_backend.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-proc-macro.cc (tokenstream_from_string): Change
	linemap null pointer to the current linemap.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
	Add proc macro definition insertion.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-hir-map.cc (Mappings::insert_derive_proc_macro_def):
	Change the function body to fetch the node id from the macro
	parameter.
	(Mappings::insert_bang_proc_macro_def): Likewise.
	(Mappings::insert_attribute_proc_macro_def): Likewise.
	* util/rust-hir-map.h: Update the function's prototype by
	removing the node id from the list of arguments.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
	Add proc macro handle retrieval for attribute and derive proc macros.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-hir-map.cc (Mappings::lookup_derive_proc_macro_def):
	Update function to accomodate new signature.
	(Mappings::lookup_bang_proc_macro_def): Likewise.
	(Mappings::lookup_attribute_proc_macro_def): Likewise.
	* util/rust-hir-map.h: Update function signatures.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-expand.h (struct MacroExpander): Update
	lookup function prototypes.
	* util/rust-hir-map.cc (Mappings::lookup_derive_proc_macro_invocation):
	Update lookup function according to new signature.
	(Mappings::lookup_bang_proc_macro_invocation): Likewise.
	(Mappings::lookup_attribute_proc_macro_invocation): Likewise.
	* util/rust-hir-map.h: Update function prototypes.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h
	(Backend::write_export_data): Remove.
	* rust-gcc.cc
	(Backend::write_export_data): Remove.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h
	(Backend::real_part_expression): Make non-virtual.
	(Backend::imag_part_expression): Likewise.
	(Backend::complex_expression): Likewise.
	(Backend::convert_expression): Likewise.
	(Backend::struct_field_expression): Likewise.
	(Backend::compound_expression): Likewise.
	(Backend::conditional_expression): Likewise.
	(Backend::negation_expression): Likewise.
	(Backend::arithmetic_or_logical_expression): Likewise.
	(Backend::arithmetic_or_logical_expression_checked): Likewise.
	(Backend::comparison_expression): Likewise.
	(Backend::lazy_boolean_expression): Likewise.
	(Backend::constructor_expression): Likewise.
	(Backend::array_constructor_expression): Likewise.
	(Backend::array_initializer): Likewise.
	(Backend::array_index_expression): Likewise.
	(Backend::call_expression): Likewise.
	(Gcc_backend::real_part_expression): Remove.
	(Gcc_backend::imag_part_expression): Remove.
	(Gcc_backend::complex_expression): Remove.
	(Gcc_backend::convert_expression): Remove.
	(Gcc_backend::struct_field_expression): Remove.
	(Gcc_backend::compound_expression): Remove.
	(Gcc_backend::conditional_expression): Remove.
	(Gcc_backend::negation_expression): Remove.
	(Gcc_backend::arithmetic_or_logical_expression): Remove.
	(Gcc_backend::arithmetic_or_logical_expression_checked): Remove.
	(Gcc_backend::comparison_expression): Remove.
	(Gcc_backend::lazy_boolean_expression): Remove.
	(Gcc_backend::constructor_expression): Remove.
	(Gcc_backend::array_constructor_expression): Remove.
	(Gcc_backend::array_initializer): Remove.
	(Gcc_backend::array_index_expression): Remove.
	(Gcc_backend::call_expression): Remove.
	* rust-gcc.cc
	(Gcc_backend::real_part_expression): Rename to ...
	(Backend::real_part_expression): ... here.
	(Gcc_backend::imag_part_expression): Rename to ...
	(Backend::imag_part_expression): ... here.
	(Gcc_backend::complex_expression): Rename to ...
	(Backend::complex_expression): ... here.
	(Gcc_backend::convert_expression): Rename to ...
	(Backend::convert_expression): ... here.
	(Gcc_backend::struct_field_expression): Rename to ...
	(Backend::struct_field_expression): ... here.
	(Gcc_backend::compound_expression): Rename to ...
	(Backend::compound_expression): ... here.
	(Gcc_backend::conditional_expression): Rename to ...
	(Backend::conditional_expression): ... here.
	(Gcc_backend::negation_expression): Rename to ...
	(Backend::negation_expression): ... here.
	(Gcc_backend::arithmetic_or_logical_expression): Rename to ...
	(Backend::arithmetic_or_logical_expression): ... here.
	(Gcc_backend::arithmetic_or_logical_expression_checked): Rename to ...
	(Backend::arithmetic_or_logical_expression_checked): ... here.
	(Gcc_backend::comparison_expression): Rename to ...
	(Backend::comparison_expression): ... here.
	(Gcc_backend::lazy_boolean_expression): Rename to ...
	(Backend::lazy_boolean_expression): ... here.
	(Gcc_backend::constructor_expression): Rename to ...
	(Backend::constructor_expression): ... here.
	(Gcc_backend::array_constructor_expression): Rename to ...
	(Backend::array_constructor_expression): ... here.
	(Gcc_backend::array_initializer): Rename to ...
	(Backend::array_initializer): ... here.
	(Gcc_backend::array_index_expression): Rename to ...
	(Backend::array_index_expression): ... here.
	(Gcc_backend::call_expression): Rename to ...
	(Backend::call_expression): ... here.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-session-manager.cc (Session::load_extern_crate): Change
	variable name, add temporaries and comments.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-proc-macro.h: Change get_trait_name to get_name in
	order to be coherent with the others proc macro type name
	convention.
	* resolve/rust-toplevel-name-resolver-2.0.cc (insert_macros):
	Add a templated funtion that inserts a proc macro into the
	context and emit an error on failure.
	(TopLevel::visit): Change from manual insertion to a function
	call.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
	Change to assertion.
	* util/rust-hir-map.cc (Mappings::lookup_derive_proc_macros):
	Add empty line.
	(Mappings::lookup_bang_proc_macros): Likewise.
	(Mappings::lookup_attribute_proc_macros): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* metadata/rust-extern-crate.cc (ExternCrate::ExternCrate):
	Update definition to allow Extern crate with no content (pure
	proc macros).
	(ExternCrate::ok): Panic on no content.
	(ExternCrate::load): Likewise.
	* metadata/rust-extern-crate.h: Update prototypes.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go):
	Remove macro resolution.
	(TopLevel::visit): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.h: Add visit prototype
	for extern crate.
	* rust-session-manager.cc (Session::load_extern_crate): Adapt
	content depending on the loaded crate's content.
	* util/rust-hir-map.cc (Mappings::lookup_derive_proc_macros):
	Change return type to optional because it is way more
	convenient.
	(Mappings::lookup_bang_proc_macros): Likewise.
	(Mappings::lookup_attribute_proc_macros): Likewise.
	* util/rust-hir-map.h: Update function prototypes.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* metadata/rust-imports.cc (Import::try_package_in_directory):
	Remove error when some macro are found even if no import data is
	available.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h (class BangProcMacro): Move class from here to
	rust-proc-macro.h. Also remove related functions.
	(class AttributeProcMacro): Likewise.
	(class CustomDeriveProcMacro): Likewise.
	(struct Crate): Remove proc macro vector members.
	* expand/rust-macro-expand.h (struct MacroExpander): Change the
	type to the newly created classes.
	* expand/rust-proc-macro.cc (BangProcMacro::BangProcMacro): Add
	constructor implementation.
	(AttributeProcMacro::AttributeProcMacro): Likewise.
	(CustomDeriveProcMacro::CustomDeriveProcMacro): Likewise.
	* expand/rust-proc-macro.h (class BangProcMacro): Move class to
	here.
	(class AttributeProcMacro): Likewise.
	(class CustomDeriveProcMacro): Likewise.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go):
	Change top level visitor to check mappings instead
	* rust-session-manager.cc (Session::load_extern_crate):
	Add back macro collection to mappings.
	* util/rust-hir-map.cc (Mappings::insert_derive_proc_macros):
	Update getter signature with new types.
	(Mappings::insert_bang_proc_macros): Likewise.
	(Mappings::insert_attribute_proc_macros): Likewise.
	(Mappings::lookup_derive_proc_macros): Likewise.
	(Mappings::lookup_bang_proc_macros): Likewise.
	(Mappings::lookup_attribute_proc_macros): Likewise.
	(Mappings::insert_derive_proc_macro_def): Likewise.
	(Mappings::insert_bang_proc_macro_def): Likewise.
	(Mappings::insert_attribute_proc_macro_def): Likewise.
	(Mappings::lookup_derive_proc_macro_def): Likewise.
	(Mappings::lookup_bang_proc_macro_def): Likewise.
	(Mappings::lookup_attribute_proc_macro_def): Likewise.
	(Mappings::insert_derive_proc_macro_invocation): Likewise.
	(Mappings::lookup_derive_proc_macro_invocation): Likewise.
	(Mappings::insert_bang_proc_macro_invocation): Likewise.
	(Mappings::lookup_bang_proc_macro_invocation): Likewise.
	(Mappings::insert_attribute_proc_macro_invocation): Likewise.
	(Mappings::lookup_attribute_proc_macro_invocation): Likewise.
	* util/rust-hir-map.h: Update function prototypes as well as map
	types.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go):
	Visit crate's newly stored proc macros.
	* rust-session-manager.cc (Session::load_extern_crate):
	Store proc macros in the parsed crate instead of a local
	variable to achieve mappings.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
	Change argument to reference.
	* resolve/rust-early-name-resolver-2.0.h: Update function
	prototype.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Add getters.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h (struct Crate): Add proc macro members.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h (class BangProcMacro): Add new proc macro
	abstraction.
	(class AttributeProcMacro): Likewise.
	(class CustomDeriveProcMacro): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
	Add function to handle attributes.
	(Early::visit): Override visitor functions.
	* resolve/rust-early-name-resolver-2.0.h: Add prototype.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (Attribute::get_traits_to_derive): Convert
	tokenstream to path list.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (Attribute::is_derive): Remove tokenstream
	condition.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (Attribute::get_traits_to_derive): Change
	return type to a vector of references.
	* ast/rust-ast.h: Update constructor.
	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_inner_stmts):
	Update function call.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (Attribute::get_traits_to_derive): Add
	function as member function.
	* ast/rust-ast.h: Add prototype.
	* expand/rust-expand-visitor.cc (get_traits_to_derive): Remove
	function.
	(ExpandVisitor::expand_inner_stmts): Update function call.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (Attribute::is_derive): Add member function.
	* ast/rust-ast.h: Likewise.
	* expand/rust-expand-visitor.cc (is_derive): Remove old
	function.
	(ExpandVisitor::expand_inner_stmts): Update function call.
	(ExpandVisitor::visit_inner_using_attrs): Likewise.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): use a temp for the value

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h
	(Backend::block): Make non-virtual.
	(Backend::block_add_statements): Likewise.
	(Gcc_backend::block): Remove.
	(Gcc_backend::block_add_statements): Remove.
	* rust-gcc.cc
	(Gcc_backend::block): Rename to ...
	(Backend::block): ... here.
	(Gcc_backend::block_add_statements): Rename to ...
	(Backend::block_add_statements): ... here.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-expand.h: Change include directive with the
	new name.
	* expand/rust-proc-macro.h (RUST_PROC_MACRO_H): Likewise.
	* util/rust-hir-map.h: Likewise.
	* util/rust-token-converter.h: Likewise.
	* util/rust-token-converter.cc: Remove useless include
	directive.
	* Make-lang.in: Rename library.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h
	(Backend::init_statement): Make non-virtual.
	(Backend::assignment_statement): Likewise.
	(Backend::return_statement): Likewise.
	(Backend::if_statement): Likewise.
	(Backend::loop_expression): Likewise.
	(Backend::exit_expression): Likewise.
	(Backend::compound_statement): Likewise.
	(Backend::statement_list): Likewise.
	(Backend::exception_handler_statement): Likewise.
	(Gcc_backend::init_statement): Remove.
	(Gcc_backend::assignment_statement): Remove.
	(Gcc_backend::return_statement): Remove.
	(Gcc_backend::if_statement): Remove.
	(Gcc_backend::compound_statement): Remove.
	(Gcc_backend::statement_list): Remove.
	(Gcc_backend::exception_handler_statement): Remove.
	(Gcc_backend::loop_expression): Remove.
	(Gcc_backend::exit_expression): Remove.
	* rust-gcc.cc
	(Gcc_backend::init_statement): Rename to ...
	(Backend::init_statement): ... here.
	(Gcc_backend::assignment_statement): Rename to ...
	(Backend::assignment_statement): ... here.
	(Gcc_backend::return_statement): Rename to ...
	(Backend::return_statement): ... here.
	(Gcc_backend::exception_handler_statement): Rename to ...
	(Backend::exception_handler_statement): ... here.
	(Gcc_backend::if_statement): Rename to ...
	(Backend::if_statement): ... here.
	(Gcc_backend::loop_expression): Rename to ...
	(Backend::loop_expression): ... here.
	(Gcc_backend::exit_expression): Rename to ...
	(Backend::exit_expression): ... here.
	(Gcc_backend::compound_statement): Rename to ...
	(Backend::compound_statement): ... here.
	(Gcc_backend::statement_list): Rename to ...
	(Backend::statement_list): ... here.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h
	(Backend::function): Make non-virtual.
	(Backend::function_defer_statement): Likewise.
	(Backend::function_set_parameters): Likewise.
	(Backend::write_global_definitions): Likewise.
	(Backend::write_export_data): Likewise.
	(Gcc_backend::function): Remove.
	(Gcc_backend::function_defer_statement): Remove.
	(Gcc_backend::function_set_parameters): Remove.
	(Gcc_backend::write_global_definitions): Remove.
	(Gcc_backend::write_export_data): Remove.
	* rust-gcc.cc
	(Gcc_backend::function): Rename to ...
	(Backend::function): ... here.
	(Gcc_backend::function_defer_statement):
	Fix a qualified lookup of Backend::label and rename to ...
	(Backend::function_defer_statement): ... here.
	(Gcc_backend::function_set_parameters) Rename to ...
	(Backend::function_set_parameters): ... here.
	(Gcc_backend::write_global_definitions): Rename to ...
	(Backend::write_global_definitions): ... here.
	(Gcc_backend::write_export_data): Rename to ...
	(Backend::write_export_data): ... here.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-inherent-impl-overlap.h:
	Added rich location and errorcode.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	likewise.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
	Added error code.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h
	(Backend::zero_expression): Make non-virtual.
	(Backend::var_expression): Likewise.
	(Backend::integer_constant_expression): Likewise.
	(Backend::float_constant_expression): Likewise.
	(Backend::complex_constant_expression): Likewise.
	(Backend::string_constant_expression): Likewise.
	(Backend::char_constant_literal): Likewise.
	(Backend::wchar_constant_literal): Likewise.
	(Backend::boolean_constant_expression): Likewise.
	(Gcc_backend::zero_expression): Remove.
	(Gcc_backend::var_expression): Remove.
	(Gcc_backend::integer_constant_expression): Remove.
	(Gcc_backend::float_constant_expression): Remove.
	(Gcc_backend::complex_constant_expression): Remove.
	(Gcc_backend::string_constant_expression): Remove.
	(Gcc_backend::wchar_constant_expression): Remove.
	(Gcc_backend::char_constant_expression): Remove.
	(Gcc_backend::boolean_constant_expression): Remove.
	* rust-gcc.cc
	(Gcc_backend::zero_expression): Rename to ...
	(Backend::zero_expression): ... here.
	(Gcc_backend::var_expression): Rename to ...
	(Backend::var_expression): ... here.
	(Gcc_backend::integer_constant_expression): Rename to ...
	(Backend::integer_constant_expression): ... here.
	(Gcc_backend::float_constant_expression): Rename to ...
	(Backend::float_constant_expression): ... here.
	(Gcc_backend::complex_constant_expression): Rename to ...
	(Backend::complex_constant_expression): ... here.
	(Gcc_backend::string_constant_expression): Rename to ...
	(Backend::string_constant_expression): ... here.
	(Gcc_backend::wchar_constant_expression): Rename to ...
	(Backend::wchar_constant_expression): ... here.
	(Gcc_backend::char_constant_expression): Rename to ...
	(Backend::char_constant_expression): ... here.
	(Gcc_backend::boolean_constant_expression): Rename to ...
	(Backend::boolean_constant_expression): ... here.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h
	(Backend::global_variable): Make non-virtual.
	(Backend::global_variable_set_init): Likewise.
	(Backend::local_variable): Likewise.
	(Backend::parameter_variable): Likewise.
	(Backend::static_chain_variable): Likewise.
	(Backend::temporary_variable): Likewise.
	(Gcc_backend::global_variable): Remove.
	(Gcc_backend::global_variable_set_init): Remove.
	(Gcc_backend::local_variable): Remove.
	(Gcc_backend::parameter_variable): Remove.
	(Gcc_backend::static_chain_variable): Remove.
	(Gcc_backend::temporary_variable): Remove.
	(Gcc_backend::non_zero_size_type): Move to ...
	(Backend::non_zero_size_type): ... here.
	(Gcc_backend::convert_tree): Move to ...
	(Backend::convert_tree): ... here.
	* rust-gcc.cc
	(Gcc_backend::non_zero_size_type): Rename to ...
	(Backend::non_zero_size_type): ... here.
	(Gcc_backend::convert_tree): Rename to ...
	(Backend::convert_tree): ... here.
	(Gcc_backend::global_variable): Rename to ...
	(Backend::global_variable): ... here.
	(Gcc_backend::global_variable_set_init): Rename to ...
	(Backend::global_variable_set_init): ... here.
	(Gcc_backend::local_variable): Rename to ...
	(Backend::local_variable): ... here.
	(Gcc_backend::parameter_variable): Rename to ...
	(Backend::parameter_variable): ... here.
	(Gcc_backend::static_chain_variable): Rename to ...
	(Backend::static_chain_variable): ... here.
	(Gcc_backend::temporary_variable): Rename to ...
	(Backend::temporary_variable): ... here.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* checks/errors/privacy/rust-privacy-reporter.cc
	(PrivacyReporter::check_for_privacy_violation):
	Added errorcode & richlocation.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h
	(Backend::debug): Make non-virtual.
	(Backend::get_identifier_node): Likewise.
	(Gcc_backend::debug): Remove.
	(Gcc_backend::get_identifier_node): Remove.
	* rust-gcc.cc
	(Gcc_backend::debug): Rename to ...
	(Backend::debug): ... here.
	(Gcc_backend::get_identifier_node): Rename to ...
	(Backend::get_identifier_node): ... here.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc
	(TypeCheckExpr::visit): Expect if conditions to have type bool.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h
	(Backend::label): Make non-virtual.
	(Backend::label_definition_statement): Likewise.
	(Backend::goto_statement): Likewise.
	(Backend::label_address): Likewise.
	(Gcc_backend::label): Remove.
	(Gcc_backend::label_definition_statement): Remove.
	(Gcc_backend::goto_statement): Remove.
	(Gcc_backend::label_address): Remove.
	* rust-gcc.cc
	(Gcc_backend::label): Rename to ...
	(Backend::label): ... here.
	(Gcc_backend::label_definition_statement): Rename to ...
	(Backend::label_definition_statement): ... here.
	(Gcc_backend::goto_statement): Rename to ...
	(Backend::goto_statement): ... here.
	(Gcc_backend::label_address): Rename to ...
	(Backend::label_address): ... here.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-constexpr.cc
	(struct constexpr_fundef): Rename to ...
	(struct rust_constexpr_fundef): ... here.
	(struct constexpr_call): Rename to ...
	(struct rust_constexpr_call): ... here.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* lex/rust-input-source.h: Move constants from here...
	* util/rust-codepoint.h (struct Codepoint): ... to here
	* util/rust-attributes.cc (check_no_mangle_function): New function.
	(AttributeChecker::visit): Use it.
	* util/rust-unicode.cc (is_ascii_only): New function.
	* util/rust-unicode.h (is_ascii_only): Likewise.
	* backend/rust-mangle.cc (legacy_mangle_name): Use it.
	* util/rust-punycode.cc (extract_basic_string): Likewise.
	* lex/rust-lex.cc (Lexer::parse_byte_char): Likewise.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit):
	Added richlocation & error code.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc
	(TypeCheckExpr::resolve_fn_trait_call): Add TODO comment.
	* typecheck/rust-tyty-bounds.cc
	(TypeBoundPredicate::TypeBoundPredicate):
	Add assertions, new error constructor.
	(TypeBoundPredicate::error): Use new error constructor.
	* typecheck/rust-tyty.h
	(struct TypeBoundPredicate::mark_is_error): New.
	(TypeBoundPredicate::TypeBoundPredicate):
	Add new error constructor.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h:
	(Backend::wchar_type): Make non-virtual.
	(Backend::get_pointer_size): Likewise.
	(Backend::raw_str_type): Likewise.
	(Backend::integer_type): Likewise.
	(Backend::float_type): Likewise.
	(Backend::complex_type): Likewise.
	(Backend::pointer_type): Likewise.
	(Backend::reference_type): Likewise.
	(Backend::immutable_type): Likewise.
	(Backend::function_type): Likewise.
	(Backend::function_type_varadic): Likewise.
	(Backend::function_ptr_type): Likewise.
	(Backend::struct_type): Likewise.
	(Backend::union_type): Likewise.
	(Backend::array_type): Likewise.
	(Backend::named_type): Likewise.
	(Backend::type_size): Likewise.
	(Backend::type_alignment): Likewise.
	(Backend::type_field_alignment): Likewise.
	(Backend::type_field_offset): Likewise.
	(Gcc_backend::wchar_type): Remove.
	(Gcc_backend::get_pointer_size): Remove.
	(Gcc_backend::raw_str_type): Remove.
	(Gcc_backend::integer_type): Remove.
	(Gcc_backend::float_type): Remove.
	(Gcc_backend::complex_type): Remove.
	(Gcc_backend::pointer_type): Remove.
	(Gcc_backend::reference_type): Remove.
	(Gcc_backend::immutable_type): Remove.
	(Gcc_backend::function_type): Remove.
	(Gcc_backend::function_type_varadic): Remove.
	(Gcc_backend::function_ptr_type): Remove.
	(Gcc_backend::struct_type): Remove.
	(Gcc_backend::union_type): Remove.
	(Gcc_backend::array_type): Remove.
	(Gcc_backend::named_type): Remove.
	(Gcc_backend::type_size): Remove.
	(Gcc_backend::type_alignment): Remove.
	(Gcc_backend::type_field_alignment): Remove.
	(Gcc_backend::type_field_offset): Remove.
	(Gcc_backend::fill_in_fields): Move to ...
	(Backend::fill_in_fields): ... here.
	(Gcc_backend::fill_in_array): Move to ...
	(Backend::fill_in_array): ... here.
	* rust-gcc.cc
	(Gcc_backend::wchar_type): Rename to ...
	(Backend::wchar_type): ... here.
	(Gcc_backend::get_pointer_size): Rename to ...
	(Backend::get_pointer_size): ... here.
	(Gcc_backend::raw_str_type): Rename to ...
	(Backend::raw_str_type): ... here.
	(Gcc_backend::integer_type): Rename to ...
	(Backend::integer_type): ... here.
	(Gcc_backend::float_type): Rename to ...
	(Backend::float_type): ... here.
	(Gcc_backend::complex_type): Rename to ...
	(Backend::complex_type): ... here.
	(Gcc_backend::pointer_type): Rename to ...
	(Backend::pointer_type): ... here.
	(Gcc_backend::reference_type): Rename to ...
	(Backend::reference_type): ... here.
	(Gcc_backend::immutable_type): Rename to ...
	(Backend::immutable_type): ... here.
	(Gcc_backend::function_type): Rename to ...
	(Backend::function_type): ... here.
	(Gcc_backend::function_type_varadic): Rename to ...
	(Backend::function_type_varadic): ... here.
	(Gcc_backend::function_ptr_type): Rename to ...
	(Backend::function_ptr_type): ... here.
	(Gcc_backend::struct_type): Rename to ...
	(Backend::struct_type): ... here.
	(Gcc_backend::union_type): Rename to ...
	(Backend::union_type): ... here.
	(Gcc_backend::fill_in_fields): Rename to ...
	(Backend::fill_in_fields): ... here.
	(Gcc_backend::array_type): Rename to ...
	(Backend::array_type): ... here.
	(Gcc_backend::fill_in_array): Rename to ...
	(Backend::fill_in_array): ... here.
	(Gcc_backend::named_type): Rename to ...
	(Backend::named_type): ... here.
	(Gcc_backend::type_size): Rename to ...
	(Backend::type_size): ... here.
	(Gcc_backend::type_alignment): Rename to ...
	(Backend::type_alignment): ... here.
	(Gcc_backend::type_field_alignment): Rename to ...
	(Backend::type_field_alignment): ... here.
	(Gcc_backend::type_field_offset): Rename to ...
	(Backend::type_field_offset): ... here.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-intrinsic.cc (move_val_init_handler): mark as side-effects

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-intrinsic.cc (uninit_handler): Update fndecl attributes

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-intrinsic.cc (op_with_overflow_inner): fix use before init

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-intrinsic.cc (enter_intrinsic_block): take the locals vector
	(uninit_handler): make a temp variable and use the address of it

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::visit):
	Collect error instead of lambda.
	* resolve/rust-early-name-resolver-2.0.h (std::function<void):
	Remove type alias.
	* rust-diagnostics.h: Change collection type.
	* rust-session-manager.cc (Session::expansion): Change
	collection container.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* resolve/rust-early-name-resolver-2.0.cc (Early::visit):
	Collect error instead of emitting it. Also add invocation
	registration.
	* resolve/rust-early-name-resolver-2.0.h (std::function<void):
	Add type definition for collection.
	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
	Register macro rule definition in mappings.
	* rust-session-manager.cc (Session::expansion): Add macro
	resolve error collection.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* config-lang.in:
	Add "backend/rust-tree.h" and "backend/rust-tree.h" to gtfiles.
	* backend/rust-tree.cc: Include new header generated by gengtype.
	* backend/rust-tree.h
	(struct language_function): Add TODO.
	* rust-lang.cc:
	Include "rust-tree.h".
	(struct lang_type): Remove duplicate definition.
	(struct lang_decl): Likewise.
	(struct lang_identifier): Likewise.
	(struct language_function): Likewise.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
	Added error code and rich location.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-tree.h
	(struct rust_cp_class_binding): Fork from gcc/cp/name_lookup.h.
	(struct rust_cp_binding_level): Likewise.
	(struct named_label_entry): Remove declaration...
	(struct rust_named_label_entry): ... and fork definition from gcc/cp/decl.cc.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* rust-diagnostics.cc (rust_be_error_at): Added overload function.
	(rust_error_at): non-const `rich_location *` function.
	* rust-diagnostics.h (rust_error_at): Implementation of overloaded
	function.
	(rust_be_error_at): likewise.
	* rust_error_codes.def: Added GNU license.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-tyty.cc (BaseType::satisfies_bound):
	Added errorcode and user-friendly error message.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-tree.cc
	(resort_data): Fork from c++ frontend.
	(resort_member_name_cmp): Likewise.
	(resort_type_member_vec): Likewise.
	* backend/rust-tree.h
	(resort_type_member_vec): Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-tree.cc
	(struct conv_type_hasher): Rename to ...
	(struct rust_conv_type_hasher): ... here.
	(struct cplus_array_hasher): Rename to ...
	(struct rust_cplus_array_hasher): ... here.
	(struct source_location_table_entry_hash): Rename to ...
	(struct rust_source_location_table_entry_hash): ... here.
	* backend/rust-tree.h
	(struct named_decl_hash): Rename to ...
	(struct rust_named_decl_hash): ... here.
	(struct cxx_saved_binding): Rename to ...
	(struct rust_cxx_saved_binding): ... here.
	(struct named_label_hash): Rename to ...
	(struct rust_named_label_hash): ... here.
	(struct tree_pair_s): Rename to ...
	(struct rust_tree_pair_s): ... here.
	(struct tree_pair_p): Rename to ...
	(struct rust_tree_pair_p): ... here.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-tree.cc
	(Rust::gt_pch_nx): Move external function declaration ...
	(gt_pch_nx): ... out of Rust namespace.
	* backend/rust-tree.h
	(OVL_FIRST): Qualify function name.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): do a final lookup

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_generic_params):
	Added more user friendly message.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-builtins.cc
	(MacroBuiltin::include_str_handler): Use vector::data.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-type.cc:
	Added last variant name, errorcode & rich location. for enum candidates.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-tree.h
	(struct stmt_tree_s): Remove.
	(typedef stmt_tree): Remove.
	(c_language_function::x_stmt_tree): Remove.
	(saved_scope::x_stmt_tree): Remove.
	(lang_decl_fn::pending_inline_p): Remove.
	(lang_decl_fn::spare): Adjust size.
	(lang_decl_fn::pending_inline_info): Remove.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-constexpr.cc:
	Include gt-rust-rust-constexpr.h.
	(struct constexpr_call_hasher): Rename to ...
	(struct rust_constexpr_call_hasher): ... here.
	(struct constexpr_fundef_hasher): Rename to ...
	(struct rust_constexpr_fundef_hasher): ... here.
	* config-lang.in: Add rust-constexpr.cc to gtfiles.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* backend/rust-mangle.cc (v0_add_identifier): Added punycode encoding
	(v0_mangle_item): Likewise.
	* lex/rust-lex.cc (assert_source_content): Change type
	(test_buffer_input_source): Change type
	(test_file_input_source): Change type
	* resolve/rust-ast-resolve-toplevel.h: fix typo
	* rust-session-manager.cc (Session::load_extern_crate): fix typo
	* util/rust-canonical-path.h: fix typo
	* util/rust-hir-map.cc (NodeMapping::get_error): fix typo
	(Mappings::Mappings): fix typo
	* util/rust-mapping-common.h (UNKNOWN_CREATENUM): fix typo
	(UNKNOWN_CRATENUM): Change 0 to UINT32_MAX

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait):
	Updated errorcode & more userfriendly message.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit):
	Added more helpful error message.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-path-probe.h:
	Fixes issue & added rich location message.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Added rich location and error code.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-lex.cc (Lexer::parse_decimal_int_or_float): Only
	accept digits after a dot instead of accepting any float
	member.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* ast/rust-pattern.h: No need of assertion, we are handling it.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
	Added check which emits error instead of using assertion.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
	Added rich location and error code.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::handle_inline_attribute_on_fndecl):
	Added rich_location & error code.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_trait):
	added errorcode & updated error message.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_outer_attribute):
	Added errorcode & updated error function.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* rust-diagnostics.cc (va_constructor):
	Added constructor for all possible cases.
	(Error::Error): Updated error struct
	for all possible cases.
	* rust-diagnostics.h (struct Error):
	Updated error struct to support error
	code & rich location support.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::handle_inline_attribute_on_fndecl):
	Added rich_location & error code.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* rust-diagnostics.cc: Switch from new[] to xcalloc

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* util/make-rust-unicode.py: Add type annotation

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-intrinsic.cc (check_for_cached_intrinsic):
	simplify this cached intrinsic check
	* backend/rust-mangle.cc (legacy_mangle_item): use new interface
	* typecheck/rust-tyty.h: new managle helper

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address):
	use the single candidate

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* hir/rust-hir-dump.cc (Dump::visit): Remove useless if/else
	already handled by visit_field.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-punycode.cc: Add CHECKING_P guard.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* backend/rust-mangle.cc (legacy_mangle_name): Use Unicode escape

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): remove hack

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-proc-macro-invoc-lexer.cc
	(ProcMacroInvocLexer::skip_token): Remove.
	* expand/rust-proc-macro-invoc-lexer.h:
	Include "rust-macro-invoc-lexer.h".
	(class ProcMacroInvocLexer):
	Extend MacroInvocLexerBase.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* lex/rust-codepoint.h: Moved to...
	* util/rust-codepoint.h: ...here.
	* lex/rust-input-source.h: Add missing license
	* util/rust-unicode.cc: Add missing license
	* util/rust-punycode.cc (extract_basic_string): Remove constant

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-expand.h: Keep optional references for last_def
	and last_invoc.
	* expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Store
	optional references.
	* rust-session-manager.cc (Session::expansion): Use tl::optional's APIs
	for better checking.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* hir/rust-hir-dump.h (do_ifexpr): New.
	* hir/rust-hir-dump.cc (Dump::do_ifexpr): New.
	(Dump::visit): Use do_ifexpr and visit_field

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-casts.cc (TypeCastRules::emit_cast_error):
	Refactored ErrorCodes & error messages.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* backend/rust-compile-base.cc:
	Added ErrorCode.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_qualifiers):
	called error function.
	(ASTLoweringBase::lower_extern_block): likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-collector.cc: Adjust formatting.
	* checks/errors/rust-feature-gate.cc: Add trailing newline.
	* rust-diagnostics.h: Remove old comment.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-gcc.cc
	(Gcc_backend::struct_type): Remove references to "this".
	(Gcc_backend::union_type): Likewise.
	(Gcc_backend::array_type): Likewise.
	(Gcc_backend::wchar_constant_expression): Likewise.
	(Gcc_backend::convert_expression): Likewise.
	(Gcc_backend::constructor_expression): Likewise.
	(Gcc_backend::array_initializer): Likewise.
	(Gcc_backend::assignment_statement): Likewise.
	(Gcc_backend::global_variable): Likewise.
	(Gcc_backend::temporary_variable): Likewise.
	(Gcc_backend::function_defer_statement): Likewise.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* Make-lang.in: Add rust-punycode.o.
	* rust-lang.cc (run_rust_tests): Add selftest.
	* util/rust-punycode.cc: New file.
	* util/rust-punycode.h: New file.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* backend/rust-compile.cc (HIRCompileBase::verify_array_capacities):
	Added ErrorCode.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve):
	added errorcode.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h
	(Backend::error_variable): Remove.
	(Gcc_backend::error_variable): Move to ...
	* rust-gcc.cc
	(Bvariable::error_variable): ... here ...
	* rust-gcc.h
	(Bvariable::error_variable): ... and declare here.
	(Gcc_backend::global_variable): Update error_variable call.
	(Gcc_backend::local_variable): Likewise.
	(Gcc_backend::parameter_variable): Likewise.
	(Gcc_backend::static_chain_variable): Likewise.
	(Gcc_backend::temporary_variable): Likewise.
	* backend/rust-compile-extern.h
	(CompileExternItem::visit): Likewise.
	* backend/rust-compile-fnparam.cc
	(CompileFnParam::CompileFnParam): Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-type.cc
	(TyTyResolveCompile::visit): Inline Backend::bool_type call.
	* rust-backend.h
	(Backend::bool_type): Remove.
	(Backend::char_type): Remove.
	(Gcc_backend::bool_type): Remove.
	(Gcc_backend::char_type): Remove.
	* rust-gcc.cc
	(Gcc_backend::char_constant_expression): Inline Backend::char_type call.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* lex/rust-lex.cc (assert_source_content): Fix namespace specifier
	(test_buffer_input_source): Likewise.
	(test_file_input_source): Likewise.
	* lex/rust-lex.h: Move InputSource ...
	* lex/rust-input-source.h: ... to here. (New file)
	* lex/rust-token.cc (nfc_normalize_token_string): New function
	* lex/rust-token.h (nfc_normalize_token_string): New function
	* rust-lang.cc (run_rust_tests): Modify order of selftests.
	* rust-session-manager.cc (validate_crate_name): Modify interface of Utf8String.
	* util/rust-unicode.cc (lookup_cc): Modify codepoint_t typedef.
	(lookup_recomp): Likewise.
	(recursive_decomp_cano): Likewise.
	(decomp_cano): Likewise.
	(sort_cano): Likewise.
	(compose_hangul): Likewise.
	(assert_normalize): Likewise.
	(Utf8String::nfc_normalize): New function.
	* util/rust-unicode.h: Modify interface of Utf8String.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go):
	Added ErrorCode.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-common.h (enum_to_str): Remove extra semicolon after
	the function.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* checks/errors/rust-const-checker.cc (ConstChecker::visit):
	Use of mutable reference in constant functions.
	* checks/errors/rust-feature-gate.cc (FeatureGate::gate):
	ErrorCode for intrinsics are subject to change.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* checks/errors/rust-const-checker.cc (ConstChecker::check_function_call):
	Added errorcode.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args):
	Added errorcode.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Declare
	macros in the current rib if they are macros 2.0.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-macro.h: Add new method to `MacroRulesDefinition` to allow
	getting the `MacroKind` contained.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* rust-session-manager.cc
	(Session::expansion): Use new `Early` name resolution 2.0 pass

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Add new object file.
	* resolve/rust-early-name-resolver-2.0.cc: New file.
	* resolve/rust-early-name-resolver-2.0.h: New file.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-default-resolver.cc
	(DefaultResolver::visit): Visit CallExpr and MethodCallExpr properly.
	* resolve/rust-default-resolver.h: Switch "node" to plural in documentation.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::insert_or_error_out): Fix format string.
	(is_macro_export): New method.
	(TopLevel::visit): Handle macro definitions.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-name-resolution-context.cc
	(Resolver::insert): Do not call into `rust_unreachable` when resolving
	macros anymore.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.h
	(insert_at_root): New method.
	(resolve_path): New method.
	(reverse_iter): Iterate on `Node`s instead of `Rib`s
	* resolve/rust-forever-stack.hxx: Add path resolution.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-rib.h: Add shadowing parameter. Make kind field public.
	* resolve/rust-rib.cc (Rib::insert): Likewise.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
	refactored message and called error function.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* checks/errors/rust-feature-gate.cc (FeatureGate::check):
	errorcode support for unknown feature.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-unify.cc (UnifyRules::emit_type_mismatch):
	refactored & called error function.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* expand/rust-macro-builtins.cc
	(load_file_bytes): Return a tl::optional.
	(MacroBuiltin::include_byte_handler): Adjust and check file was
	correctly opened.
	(MacroBuiltin::include_str_handler): Likewise.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-toplevel-name-resolver-2.0.h
	(class TopLevel): Inherit from DefaultResolver
	* resolve/rust-toplevel-name-resolver-2.0.cc
	(TopLevel::TopLevel): Remove unecessary methods

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Add new object file.
	* resolve/rust-default-resolver.cc: New file.
	* resolve/rust-default-resolver.h: New file.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* util/rust-unicode.cc (decomp_cano): Decompose Hangul.
	(sort_cano): Fix bounds check.
	(recomp): use `compose_hangul`.
	(compose_hangul): Compose Hangul.
	(rust_utf8_normalize_test): Add tests.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.hxx: assert() -> rust_assert()

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Add new object file.
	* resolve/rust-toplevel-name-resolver-2.0.cc: New file.
	* resolve/rust-toplevel-name-resolver-2.0.h: New file.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Add new object file.
	* resolve/rust-name-resolution-context.cc: New file.
	* resolve/rust-name-resolution-context.h: New file.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	called error function.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-invoc-lexer.cc
	(MacroInvocLexer::skip_token): Remove.
	* expand/rust-macro-invoc-lexer.h
	(class MacroInvocLexer): Extend MacroInvocLexerBase.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* ast/rust-ast-fragment.cc (Fragment::create_empty): New.
	* ast/rust-ast-fragment.h (MacroTranscriberFunc): New.
	* ast/rust-macro.h (MacroRulesDefinition): Use MacroTranscriberFunc.
	* expand/rust-macro-builtins.cc
	(MacroBuiltin::builtin_transcribers): likewise.
	(MacroBuiltin::assert_handler): Return optional.
	(MacroBuiltin::file_handler): Likewise.
	(MacroBuiltin::column_handler): Likewise.
	(MacroBuiltin::include_bytes_handler): Likewise.
	(MacroBuiltin::include_str_handler): Likewise.
	(MacroBuiltin::compile_error_handler): Likewise.
	(MacroBuiltin::concat_handler): Likewise.
	(MacroBuiltin::env_handler): Likewise.
	(MacroBuiltin::cfg_handler): Likewise.
	(MacroBuiltin::include_handler): Likewise.
	(MacroBuiltin::line_handler): Likewise.
	(MacroBuiltin::stringify_handler): Likewise.
	(MacroBuiltin::sorry): Likewise.
	* expand/rust-macro-builtins.h (builtin_transcribers): Use
	MacroTranscriberFunc.
	(assert_handler): Return optional.
	(file_handler): Likewise.
	(column_handler): Likewise.
	(include_bytes_handler): Likewise.
	(include_str_handler): Likewise.
	(compile_error_handler): Likewise.
	(concat_handler): Likewise.
	(env_handler): Likewise.
	(cfg_handler): Likewise.
	(include_handler): Likewise.
	(line_handler): Likewise.
	(stringify_handler): Likewise.
	(sorry): Likewise.
	* expand/rust-macro-expand.cc (MacroExpander::expand_invoc):
	Adjust to transcribers returning optional.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item):
	always resolve the type even when its an a mandatory trait item
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path):
	Add check for enum candidates otherwise you get undefined behaviour

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* lex/rust-codepoint.h: Add comment
	* lex/rust-lex.h: New method to get decoded characters
	* rust-session-manager.cc (validate_crate_name): Modify unicode check
	(rust_crate_name_validation_test): Add testcases
	* util/rust-unicode.h (RUST_UNICODE_H): New class Utf8String.
	(class Utf8String): New class.
	* util/rust-unicode.cc (binary_search_sorted_array): Add comment.
	(recursive_decomp_cano): Add comment.
	(recomp): Remove dead code.
	(dump_string): Removed.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-unicode.cc: Add CHECKING_P guard.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	We need to check if a function context exists

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* expand/rust-proc-macro.cc (literal_from_string): update Lexer constructor
	(tokenstream_from_string): likewise
	* lex/rust-lex.cc (Lexer::Lexer): likewise
	* lex/rust-lex.h: pass through Linemap
	* parse/rust-cfg-parser.cc (parse_cfg_option): likewise
	* rust-session-manager.cc (Session::load_extern_crate): likewise
	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait):
	dont apply Sized on self
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::get_marker_predicate): new
	* typecheck/rust-hir-type-check-base.h: add prototype
	* typecheck/rust-hir-type-check-type.cc (TypeResolveGenericParam::Resolve): apply Sized
	(TypeResolveGenericParam::visit): likewise
	* typecheck/rust-hir-type-check-type.h: update prototypes
	* typecheck/rust-typecheck-context.cc: remove bad assertions
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::assemble_sized_builtin): cleanup
	(TypeCheckBase::get_predicate_from_bound): apply sized rules properly
	* util/rust-hir-map.cc (Mappings::lookup_trait_item_lang_item): helpers
	(Mappings::get_lang_item): likewise
	* util/rust-hir-map.h: likewise
	* util/rust-token-converter.cc (from_ident): update lexer ctor
	(from_punct): likewise

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-path-probe.cc: track regular polarity
	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): likewise
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): likewise
	* typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound): likewise
	(TypeBoundPredicate::TypeBoundPredicate): update ctor
	(TypeBoundPredicate::operator=): update copy assignment ctor
	(TypeBoundPredicate::error): update error node
	* typecheck/rust-tyty.h: add polarity field to predicate

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): use new BoundPolarity enum
	* hir/rust-ast-lower-type.cc (ASTLoweringTypeBounds::visit): likewise
	* hir/rust-hir-dump.cc (BoundPolarityString): new helper
	(Dump::visit): update hir dump
	* hir/tree/rust-hir-item.h (class ImplBlock): likewise
	* hir/tree/rust-hir-type.h (class TraitBound): likewise
	* hir/tree/rust-hir.cc (TraitBound::as_string): fix as string
	* util/rust-common.h (enum Polarity): add new anti bound
	(enum BoundPolarity): likewise
	* util/rust-hir-map.cc (Mappings::Mappings): update naming

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-backend.h: Include "rust-gcc.h".
	(class Gcc_backend): Move to ...
	* rust-gcc.cc (class Gcc_backend): ... here.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-item.cc: add is_error check

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* Make-lang.in: Add rust-unicode.o
	* rust-lang.cc (run_rust_tests): Add test.
	* rust-system.h: Include <array>
	* util/make-rust-unicode.py: Generater of rust-unicode-data.h.
	* util/rust-unicode-data.h: Auto-generated file.
	* util/rust-unicode.cc: New file.
	* util/rust-unicode.h: New file.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* rust-diagnostics.cc: Rework `make_description` and `make_url` functions.
	* rust-diagnostics.h: Specify ErrorCode's underlying type,
	remove error_codes_strings table.
	* rust_error_codes.def: New file.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-location.h (typedef Location): Remove.
	* expand/rust-proc-macro.cc
	(register_callback): Replace Location constructor with UNDEF_LOCATION.
	* ast/rust-ast-collector.h: Replace Location with location_t.
	* checks/errors/privacy/rust-privacy-reporter.cc: Likewise.
	* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
	* checks/errors/privacy/rust-pub-restricted-visitor.cc: Likewise.
	* checks/errors/privacy/rust-pub-restricted-visitor.h: Likewise.
	* checks/errors/rust-feature-gate.cc: Likewise.
	* checks/errors/rust-feature-gate.h: Likewise.
	* metadata/rust-imports.h: Likewise.
	* resolve/rust-ast-resolve-path.h: Likewise.
	* resolve/rust-name-resolver.h: Likewise.
	* rust-backend.h: Likewise.
	* rust-diagnostics.h: Likewise.
	* rust-gcc.cc: Likewise.
	* rust-linemap.h: Likewise.
	* util/rust-attributes.cc: Likewise.
	* util/rust-hir-map.cc: Likewise.
	* util/rust-hir-map.h: Likewise.
	* util/rust-token-converter.cc: Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-autoderef.cc: Replace Location with location_t.
	* typecheck/rust-coercion.cc: Likewise.
	* typecheck/rust-coercion.h: Likewise.
	* typecheck/rust-hir-path-probe.h: Likewise.
	* typecheck/rust-hir-trait-reference.cc: Likewise.
	* typecheck/rust-hir-trait-resolve.cc: Likewise.
	* typecheck/rust-hir-type-check-base.cc: Likewise.
	* typecheck/rust-hir-type-check-expr.cc: Likewise.
	* typecheck/rust-hir-type-check-expr.h: Likewise.
	* typecheck/rust-hir-type-check-implitem.cc: Likewise.
	* typecheck/rust-hir-type-check-item.cc: Likewise.
	* typecheck/rust-hir-type-check-path.cc: Likewise.
	* typecheck/rust-hir-type-check-pattern.cc: Likewise.
	* typecheck/rust-hir-type-check-stmt.cc: Likewise.
	* typecheck/rust-hir-type-check-struct.cc: Likewise.
	* typecheck/rust-hir-type-check-type.cc: Likewise.
	* typecheck/rust-hir-type-check-type.h: Likewise.
	* typecheck/rust-type-util.cc: Likewise.
	* typecheck/rust-type-util.h: Likewise.
	* typecheck/rust-tyty-bounds.cc: Likewise.
	* typecheck/rust-tyty-call.cc: Likewise.
	* typecheck/rust-tyty-call.h: Likewise.
	* typecheck/rust-tyty-cmp.h: Likewise.
	* typecheck/rust-tyty-subst.cc: Likewise.
	* typecheck/rust-tyty-subst.h: Likewise.
	* typecheck/rust-tyty.cc: Likewise.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	refactored error message & called error function.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-proc-macro.cc (literal_from_string): Add callback
	function.
	(load_macros_array): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (handle_suffix): Rework function
	to make it work with the new literal conversion function.
	(convert_literal): Add a new function to convert to a proc macro
	literal from a literal tokenptr. The function will abort if the
	pointer does not point to a literal.
	(convert): Add call to convert literal for every literal case.
	* util/rust-token-converter.h (convert_literal): Add public
	prototype.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-proc-macro.cc: Remove static modifier and move to
	an anonymous namespace.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* backend/rust-compile-intrinsic.cc (Intrinsics::compile):
	Formatted according to enum class.
	* checks/errors/rust-feature-gate.cc (FeatureGate::gate): likewise.
	* checks/errors/rust-unsafe-checker.cc (check_unsafe_call): likewise.
	* hir/rust-ast-lower-base.cc (struct_field_name_exists): likewise.
	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): likewise.
	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path):
	likewise.
	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go): likewise.
	(PatternDeclaration::add_new_binding): likewise.
	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): likewise.
	* resolve/rust-ast-verify-assignee.h: likewise.
	* rust-diagnostics.cc: updated make_desc & url function for enum class.
	* rust-diagnostics.h (struct ErrorCode): removed struct to switch to enum.
	(enum class): Switched from errorcode struct to enum class.
	(XSTR): Macro for converting enum to string.
	(STR): macro Used by XSTR for converting to string.
	(ERROR_CODE): macro used by map for check.
	(TABLE_TO_MAP): macro used by map for check
	* typecheck/rust-casts.cc (TypeCastRules::emit_cast_error):
	Formatted according to enum class.
	* typecheck/rust-hir-path-probe.h: likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
	likewise.
	(TypeCheckImplItemWithTrait::visit): likewise.
	* typecheck/rust-hir-type-check-item.cc: likewise.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): likewise.
	(emit_invalid_field_error): likewise.
	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve): likewise.
	* typecheck/rust-tyty-call.cc (emit_unexpected_argument_error): likewise.
	(TypeCheckCallExpr::visit): likewise.
	* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args):
	likewise.
	* typecheck/rust-tyty.cc (BaseType::bounds_compatible): likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.cc (check_proc_macro_non_root): Add
	function to emit this specific error.
	(AttributeChecker::visit): Modify visitor to propagate to some
	containers that were not handled correctly.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-base.h: Replace Location with location_t.
	* metadata/rust-imports.h: Likewise.
	* resolve/rust-name-resolver.cc: Likewise.
	* resolve/rust-name-resolver.h: Likewise.
	* rust-backend.h: Likewise.
	* rust-gcc.cc: Likewise.
	* rust-gcc.h: Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-proc-macro.cc (available): Remove function.
	(load_macros_array): There was no need for an indirection here.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-proc-macro.cc (available): Add symbol
	registration.
	(load_macros_array): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-proc-macro.cc (load_macros_array): Symbol rename.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/privacy/rust-privacy-reporter.cc (find_proc_macro_attribute):
	Refactor the function to be safer and more efficient.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/privacy/rust-privacy-reporter.cc (find_proc_macro_attribute):
	Add a new function to find a potential proc macro type
	attribute on a given item.
	(proc_macro_privacy_check): Move all proc macro privacy check in
	their own function to avoid cluttering the usual privacy check.
	(PrivacyReporter::go): Add call to newly created proc macro
	privacy check function.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::go):
	Add visibility verification.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.cc (is_proc_macro_type): Add function to
	identify matching proc macro attribute type.
	(check_proc_macro_non_function): Add function to check and emit
	error.
	(AttributeChecker::visit): Add cal to new check function.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Remove NodeId from identifiers.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
	Added check for error code support.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit):
	called error function.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-base.cc: Replace Location with location_t.
	* backend/rust-compile-base.h: Likewise.
	* backend/rust-compile-expr.cc: Likewise.
	* lex/rust-token.h: Likewise.
	* metadata/rust-import-archive.cc: Likewise.
	* metadata/rust-imports.cc: Likewise.
	* metadata/rust-imports.h: Likewise.
	* rust-backend.h: Likewise.
	* rust-diagnostics.cc: Likewise.
	* rust-diagnostics.h: Likewise.
	* rust-gcc.cc: Likewise.
	* rust-linemap.cc: Likewise.
	* util/rust-token-converter.cc: Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-builder.h: Replace Location with location_t.
	* ast/rust-ast.h: Likewise.
	* ast/rust-expr.h: Likewise.
	* ast/rust-item.h: Likewise.
	* ast/rust-macro.h: Likewise.
	* ast/rust-path.h: Likewise.
	* hir/tree/rust-hir-expr.h: Likewise.
	* hir/tree/rust-hir-item.h: Likewise.
	* hir/tree/rust-hir-path.h: Likewise.
	* hir/tree/rust-hir.h: Likewise.
	* lex/rust-lex.cc: Likewise.
	* lex/rust-lex.h: Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-derive-clone.cc: Replace Location with location_t.
	* expand/rust-derive-clone.h: Likewise.
	* expand/rust-derive-copy.cc: Likewise.
	* expand/rust-derive-copy.h: Likewise.
	* expand/rust-derive.cc: Likewise.
	* expand/rust-derive.h: Likewise.
	* expand/rust-macro-builtins.cc: Likewise.
	* expand/rust-macro-builtins.h: Likewise.
	* expand/rust-macro-expand.cc: Likewise.
	* parse/rust-parse-impl.h: Likewise.
	* parse/rust-parse.cc: Likewise.
	* parse/rust-parse.h: Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h
	(Parser::parse_macro_match): Use token_id_is_keyword.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h (class Identifier): Remove interface
	inheritance.
	(class SimplePath): Likewise.
	* expand/rust-expand-visitor.cc (get_traits_to_derive): Change
	return type.
	(derive_item): Update according to get_traits_to_derive return
	type.
	(expand_item_attribute): Likewise.
	(ExpandVisitor::expand_inner_stmts): Likewise.
	* expand/rust-macro-expand.h (struct MacroExpander): Likewise.
	* util/rust-hir-map.cc (Mappings::insert_derive_proc_macro_invocation):
	Change input type to SimplePath.
	(Mappings::lookup_derive_proc_macro_invocation): Likewise.
	(Mappings::insert_attribute_proc_macro_invocation): Likewise.
	(Mappings::lookup_attribute_proc_macro_invocation): Likewise.
	* util/rust-hir-map.h: Likewise with function prototypes.
	* util/rust-proc-macro-invocation.h: Removed.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Add new constructor for SimplePath from an
	identifier.
	* expand/rust-expand-visitor.cc (get_traits_to_derive): Add
	conversion.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-macro-expand.cc (MacroExpander::import_proc_macros):
	Remove function.
	* expand/rust-macro-expand.h (struct MacroExpander): Remove
	import_proc_macro function.
	* util/rust-hir-map.cc (Mappings::insert_derive_proc_macro_def):
	Add a function to insert a derive proc macro definition.
	(Mappings::insert_bang_proc_macro): Remove function.
	(Mappings::insert_bang_proc_macro_def): Add function to insert a
	bang proc macro definition.
	(Mappings::insert_attribute_proc_macro_def): Likewise with
	attribute proc macros.
	(Mappings::lookup_derive_proc_macro_def): Add a function to
	lookup a defined derive proc macro definition.
	(Mappings::lookup_bang_proc_macro): Remove function.
	(Mappings::lookup_bang_proc_macro_def): Add a function to lookup
	a bang proc macro definition.
	(Mappings::lookup_attribute_proc_macro_def): Add a function to
	lookup an attribute prod macro definition.
	(Mappings::insert_derive_proc_macro_invocation): Add a function
	to insert a derive proc macro invocation.
	(Mappings::lookup_derive_proc_macro_invocation): Add a function
	to lookup a derive proc macro invocation.
	(Mappings::insert_bang_proc_macro_invocation): Add a function to
	insert a bang proc macro invocation.
	(Mappings::lookup_bang_proc_macro_invocation): Add a function to
	lookup a bang proc macro invocation.
	(Mappings::insert_attribute_proc_macro_invocation): Add a
	function to insert an attribute proc macro invocation.
	(Mappings::lookup_attribute_proc_macro_invocation): Add a
	function to lookup an attribute proc macro invocation.
	* util/rust-hir-map.h: Add different proc macro mappings
	and change function prototypes.
	* expand/rust-expand-visitor.cc (get_traits_to_derive): Return a
	vector of SimplePath instead.
	(derive_item): Accept SimplePath instead of a string.
	* ast/rust-ast.h: Add common ProcMacroInvocable interface to
	Identifiers and SimplePath nodes.
	* ast/rust-ast.cc: Add const modifier.
	* ast/rust-macro.h: Change path and identifier getters.
	* ast/rust-path.h: Change return type to reference.
	* util/rust-proc-macro-invocation.h: New file.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.h (RUST_ATTRIBUTES_H): Add missing header
	guard.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h (class MetaItem): Add MetaItem dispatch values.
	* ast/rust-expr.h: Add LitExpr and PathLit dispatch.
	* ast/rust-macro.h: Add remaining dispatch getters.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* metadata/rust-extern-crate.h: Add proc macro getter.
	* rust-session-manager.cc (Session::load_extern_crate): Collect
	mappings and create mappings.
	* util/rust-hir-map.cc: Add insertion and lookup functions for
	every mapping.
	* util/rust-hir-map.h: Add function prototypes.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* metadata/rust-imports.cc (Import::try_package_in_directory):
	Add call to load macros before loading metadatas.
	* expand/rust-proc-macro.cc: Return empty vector instead of
	panicking on error.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* metadata/rust-import-archive.cc (Stream_concatenate::do_peek):
	Remove deletion.
	(Stream_concatenate::do_advance): Likewise.
	(Import::find_archive_export_data): Replace with a smart
	pointer.
	* metadata/rust-imports.cc (add_search_path): Change return type
	to smart pointer.
	(Import::open_package): Likewise.
	(Import::try_package_in_directory): Likewise.
	(Import::find_export_data): Likewise.
	(Import::find_object_export_data): Likewise.
	(Import::Import): Change constructor to accept unique_ptr.
	* metadata/rust-imports.h: Change constructor prototype.
	* rust-session-manager.cc (Session::load_extern_crate): Change
	pointer to smart pointer.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* metadata/rust-extern-crate.cc (ExternCrate::ExternCrate):
	Change constructor to accept procedural macro vector.
	* metadata/rust-extern-crate.h: Add vector of procecural macro
	in extern crate.
	* rust-session-manager.cc (Session::load_extern_crate): Add
	argument to new constructor call.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* metadata/rust-imports.cc (add_search_path): Change prototype,
	now return a pair of Stream and procedural macro vector.
	(Import::open_package): Likewise.
	(Import::try_package_in_directory): Likewise.
	* metadata/rust-imports.h: Likewise.
	* rust-session-manager.cc (Session::load_extern_crate):
	Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* metadata/rust-imports.h: Make the function to load a given
	file public.
	* rust-session-manager.cc (Session::load_extern_crate): Change
	path resolution depending on extern crate declaration in cli
	arguments.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-collector.h
	(TokenCollector::visit):
	Replace default argument with UNDEF_LOCATION.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-base.cc: Replace Location with location_t.
	* backend/rust-compile-base.h: Likewise.
	* backend/rust-compile-block.cc: Likewise.
	* backend/rust-compile-expr.cc: Likewise.
	* backend/rust-compile-expr.h: Likewise.
	* backend/rust-compile-extern.h: Likewise.
	* backend/rust-compile-implitem.h: Likewise.
	* backend/rust-compile-intrinsic.cc: Likewise.
	* backend/rust-compile-item.h: Likewise.
	* backend/rust-compile-pattern.h: Likewise.
	* backend/rust-compile-resolve-path.cc: Likewise.
	* backend/rust-compile-stmt.cc: Likewise.
	* backend/rust-compile-type.cc: Likewise.
	* backend/rust-compile.cc: Likewise.
	* backend/rust-constexpr.cc: Likewise.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	refactored and call error function.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.cc (AttributeChecker::visit): Add help
	message.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.cc (AttributeChecker::visit): Add
	attribute input check.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.cc (AttributeChecker::visit): Add
	attribute check on functions.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (from_ident): Adapt code to new
	constructor.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-proc-macro.cc (tokenstream_from_string): Add a
	function that creates a tokenstream from a given string.
	(load_macros_array): Add call to registration function.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lang.opt: Add option
	* rust-session-manager.cc: Add option registration in session
	target options.
	* rust-session-manager.h (struct CompileOptions): Add new getter
	for proc macros instead of a boolean.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-forever-stack.h: New file.
	* resolve/rust-forever-stack.hxx: New file.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* hir/rust-hir-dump.cc (convert_param_kind_to_str): New.
	(convert_new_bind_type_to_str): New.
	(convert_mut_to_str): New.
	(Dump::go): New.
	(Dump::put): New.
	(Dump::begin): New.
	(Dump::end): New.
	(Dump::begin_field): New.
	(Dump::end_field): New.
	(Dump::put_field): New.
	(Dump::visit_field): New.
	(Dump::visit): Refactor.
	(Dump::visit_collection): New.
	(Dump::do_traititem): New.
	(Dump::do_vis_item): New.
	(Dump::do_functionparam): New.
	(Dump::do_pathpattern): New.
	(Dump::do_structexprstruct): New.
	(Dump::do_expr): New.
	(Dump::do_pathexpr): New.
	(Dump::do_typepathsegment): New.
	(Dump::do_typepathfunction): New.
	(Dump::do_qualifiedpathtype): New.
	(Dump::do_operatorexpr): New.
	(Dump::do_mappings): New.
	(Dump::do_inner_attrs): New.
	(Dump::do_outer_attrs): New.
	(Dump::do_baseloopexpr): New.
	(Dump::do_ifletexpr): New.
	(Dump::do_struct): New.
	(Dump::do_enumitem): New.
	(Dump::do_traitfunctiondecl): New.
	(Dump::do_externalitem): New.
	(Dump::do_namefunctionparam): New.
	(Dump::do_stmt): New.
	(Dump::do_type): New.
	(Dump::do_item): New.
	(Dump::do_tuplefield): New.
	(Dump::do_structfield): New.
	(Dump::do_genericargs): New.
	(Dump::do_maybenamedparam): New.
	* hir/rust-hir-dump.h: Refactor.
	* hir/tree/rust-hir-item.h (enum_to_str): New.
	* hir/tree/rust-hir-type.h (enum_to_str): New.
	* hir/tree/rust-hir.cc (enum_to_str): New.
	* util/rust-common.h (enum_to_str): New.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
	    Matthew Jasper  <mjjasper1@gmail.com>

	* Make-lang.in: Add `rust-rib.cc` object.
	* resolve/rust-rib.cc: New file.
	* resolve/rust-rib.h: New file.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast.h: Replace Location with location_t.
	* ast/rust-expr.h: Likewise.
	* ast/rust-item.h: Likewise.
	* ast/rust-macro.h: Likewise.
	* ast/rust-path.h: Likewise.
	* ast/rust-pattern.h: Likewise.
	* ast/rust-stmt.h: Likewise.
	* ast/rust-type.h: Likewise.
	* hir/rust-ast-lower-base.h: Likewise.
	* hir/tree/rust-hir-expr.h: Likewise.
	* hir/tree/rust-hir-item.h: Likewise.
	* hir/tree/rust-hir-path.h: Likewise.
	* hir/tree/rust-hir-pattern.h: Likewise.
	* hir/tree/rust-hir-stmt.h: Likewise.
	* hir/tree/rust-hir-type.h: Likewise.
	* hir/tree/rust-hir.h: Likewise.
	* lex/rust-token.h: Likewise.
	* resolve/rust-ast-resolve-pattern.h: Likewise.
	* typecheck/rust-hir-trait-reference.h: Likewise.
	* typecheck/rust-tyty-bounds.h: Likewise.
	* typecheck/rust-tyty-call.h: Likewise.
	* typecheck/rust-tyty-subst.h: Likewise.
	* typecheck/rust-tyty-util.h: Likewise.
	* typecheck/rust-tyty.h: Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-collector.cc: Replace Location with location_t.
	* ast/rust-ast.cc: Likewise.
	* ast/rust-ast.h: Likewise.
	* ast/rust-expr.h: Likewise.
	* ast/rust-item.h: Likewise.
	* ast/rust-macro.h: Likewise.
	* ast/rust-path.cc: Likewise.
	* ast/rust-path.h: Likewise.
	* ast/rust-pattern.h: Likewise.
	* ast/rust-stmt.h: Likewise.
	* ast/rust-type.h: Likewise.
	* backend/rust-compile-base.cc: Likewise.
	* backend/rust-compile-base.h: Likewise.
	* backend/rust-compile-block.cc: Likewise.
	* backend/rust-compile-expr.cc: Likewise.
	* backend/rust-compile-expr.h: Likewise.
	* backend/rust-compile-fnparam.cc: Likewise.
	* backend/rust-compile-fnparam.h: Likewise.
	* backend/rust-compile-intrinsic.cc: Likewise.
	* backend/rust-compile-pattern.cc: Likewise.
	* backend/rust-compile-resolve-path.h: Likewise.
	* backend/rust-compile.cc: Likewise.
	* checks/errors/rust-const-checker.cc: Likewise.
	* checks/errors/rust-const-checker.h: Likewise.
	* checks/errors/rust-unsafe-checker.cc: Likewise.
	* checks/errors/rust-unsafe-checker.h: Likewise.
	* expand/rust-macro-builtins.cc: Likewise.
	* expand/rust-macro-expand.h: Likewise.
	* hir/rust-ast-lower-base.h: Likewise.
	* hir/rust-ast-lower-implitem.h: Likewise.
	* hir/rust-ast-lower-item.cc: Likewise.
	* hir/tree/rust-hir-expr.h: Likewise.
	* hir/tree/rust-hir-item.h: Likewise.
	* hir/tree/rust-hir-path.h: Likewise.
	* hir/tree/rust-hir-pattern.h: Likewise.
	* hir/tree/rust-hir-stmt.h: Likewise.
	* hir/tree/rust-hir-type.h: Likewise.
	* hir/tree/rust-hir.cc: Likewise.
	* hir/tree/rust-hir.h: Likewise.
	* lex/rust-token.h: Likewise.
	* metadata/rust-extern-crate.cc: Likewise.
	* metadata/rust-extern-crate.h: Likewise.
	* parse/rust-parse-impl.h: Likewise.
	* parse/rust-parse.h: Likewise.
	* resolve/rust-ast-resolve-expr.cc: Likewise.
	* resolve/rust-ast-resolve-implitem.h: Likewise.
	* resolve/rust-ast-resolve-pattern.h: Likewise.
	* resolve/rust-ast-resolve-stmt.h: Likewise.
	* resolve/rust-ast-resolve-toplevel.h: Likewise.
	* resolve/rust-ast-resolve-type.h: Likewise.
	* resolve/rust-name-resolver.cc: Likewise.
	* resolve/rust-name-resolver.h: Likewise.
	* rust-diagnostics.cc: Likewise.
	* rust-diagnostics.h: Likewise.
	* rust-gcc.cc: Likewise.
	* rust-session-manager.cc: Likewise.
	* rust-session-manager.h: Likewise.
	* typecheck/rust-casts.cc: Likewise.
	* typecheck/rust-casts.h: Likewise.
	* typecheck/rust-coercion.cc: Likewise.
	* typecheck/rust-coercion.h: Likewise.
	* typecheck/rust-hir-path-probe.cc: Likewise.
	* typecheck/rust-hir-path-probe.h: Likewise.
	* typecheck/rust-hir-trait-reference.cc: Likewise.
	* typecheck/rust-hir-trait-reference.h: Likewise.
	* typecheck/rust-hir-trait-resolve.cc: Likewise.
	* typecheck/rust-hir-type-check-base.cc: Likewise.
	* typecheck/rust-hir-type-check-base.h: Likewise.
	* typecheck/rust-hir-type-check-item.cc: Likewise.
	* typecheck/rust-hir-type-check-item.h: Likewise.
	* typecheck/rust-hir-type-check-path.cc: Likewise.
	* typecheck/rust-hir-type-check-pattern.cc: Likewise.
	* typecheck/rust-hir-type-check-pattern.h: Likewise.
	* typecheck/rust-hir-type-check-type.cc: Likewise.
	* typecheck/rust-hir-type-check-type.h: Likewise.
	* typecheck/rust-hir-type-check.cc: Likewise.
	* typecheck/rust-hir-type-check.h: Likewise.
	* typecheck/rust-substitution-mapper.cc: Likewise.
	* typecheck/rust-substitution-mapper.h: Likewise.
	* typecheck/rust-type-util.cc: Likewise.
	* typecheck/rust-typecheck-context.cc: Likewise.
	* typecheck/rust-tyty-bounds.cc: Likewise.
	* typecheck/rust-tyty-call.h: Likewise.
	* typecheck/rust-tyty-subst.cc: Likewise.
	* typecheck/rust-tyty-subst.h: Likewise.
	* typecheck/rust-tyty-util.cc: Likewise.
	* typecheck/rust-tyty-util.h: Likewise.
	* typecheck/rust-tyty.cc: Likewise.
	* typecheck/rust-tyty.h: Likewise.
	* typecheck/rust-unify.cc: Likewise.
	* typecheck/rust-unify.h: Likewise.
	* util/rust-hir-map.cc: Likewise.
	* util/rust-hir-map.h: Likewise.
	* util/rust-identifier.h: Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-gcc.cc
	(Gcc_backend::debug): Move out of class declaration.
	(Gcc_backend::get_identifier_node): Likewise.
	(Gcc_backend::wchar_type): Likewise.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
	called error function.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-linemap.h (Linemap::predeclared_location): Remove.
	* backend/rust-compile-type.cc:
	Replace Linemap::predeclared_location with BUILTINS_LOCATION.
	* resolve/rust-name-resolver.cc: Likewise.
	* typecheck/rust-hir-type-check-type.cc: Likewise.
	* typecheck/rust-tyty.cc: Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-gcc.h: Add include guard.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* rust-system.h (rust_unreachable): Change definition to fancy_abort
	* ast/rust-ast-collector.cc (TokenCollector::visit): Use rust_unreachable
	instead of gcc_unreachable.
	(get_delimiters): Likewise.
	* ast/rust-ast-dump.h: Likewise.
	* ast/rust-ast-formatting.cc (get_string_in_delims): Likewise.
	(get_mode_dump_desc): Likewise.
	* ast/rust-ast.cc (Visibility::as_string): Likewise.
	(UseTreeGlob::as_string): Likewise.
	* ast/rust-ast.h: Likewise.
	* ast/rust-macro.h: Likewise.
	* ast/rust-path.h: Likewise.
	* backend/rust-compile-expr.cc (sort_tuple_patterns): Likewise.
	(CompileExpr::visit): Likewise.
	(CompileExpr::generate_closure_fntype): Likewise.
	* backend/rust-compile-intrinsic.cc (op_with_overflow_inner): Likewise.
	* backend/rust-compile-pattern.cc (CompilePatternBindings::visit): Likewise.
	(CompilePatternLet::visit): Likewise.
	* backend/rust-constexpr.cc (base_field_constructor_elt): Likewise.
	(eval_array_reference): Likewise.
	(label_matches): Likewise.
	(eval_store_expression): Likewise.
	(eval_call_expression): Likewise.
	(build_data_member_initialization): Likewise.
	(array_index_cmp): Likewise.
	(get_array_or_vector_nelts): Likewise.
	(eval_bit_field_ref): Likewise.
	(eval_loop_expr): Likewise.
	(potential_constant_expression_1): Likewise.
	* backend/rust-mangle.cc (v0_simple_type_prefix): Likewise.
	(v0_type_prefix): Likewise.
	(v0_mangle_item): Likewise.
	(Mangler::mangle_item): Likewise.
	* backend/rust-tree.cc (convert_to_void): Likewise.
	(type_memfn_quals): Likewise.
	(rs_tree_equal): Likewise.
	(fold_offsetof): Likewise.
	(fold_builtin_source_location): Likewise.
	(lvalue_error): Likewise.
	* backend/rust-tree.h (struct named_decl_hash): Likewise.
	(struct named_label_hash): Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc
	(VisibilityResolver::resolve_visibility): Likewise.
	(VisibilityResolver::visit): Likewise.
	* checks/errors/rust-const-checker.cc (ConstChecker::ctx_to_str): Likewise.
	* checks/errors/rust-feature.cc (Feature::create): Likewise.
	* expand/rust-expand-visitor.cc (get_traits_to_derive): Likewise.
	(derive_item): Likewise.
	(expand_item_attribute): Likewise.
	(expand_stmt_attribute): Likewise.
	* expand/rust-macro-expand.cc (MacroExpander::match_matcher): Likewise.
	(MacroExpander::match_repetition): Likewise.
	(transcribe_context): Likewise.
	(MacroExpander::import_proc_macros): Likewise.
	(MacroExpander::parse_proc_macro_output): Likewise.
	* expand/rust-macro-expand.h: Likewise.
	* expand/rust-macro-invoc-lexer.h: Likewise.
	* expand/rust-macro-substitute-ctx.cc (SubstituteCtx::substitute_token): Likewise.
	* expand/rust-proc-macro-invoc-lexer.h: Likewise.
	* expand/rust-proc-macro.cc (load_macros): Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_generic_args): Likewise.
	(ASTLoweringBase::lower_literal): Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Likewise.
	* hir/rust-ast-lower-type.cc (ASTLoweringType::visit): Likewise.
	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
	* hir/tree/rust-hir.cc (get_string_in_delims): Likewise.
	(Visibility::as_string): Likewise.
	(UseTreeGlob::as_string): Likewise.
	(CompoundAssignmentExpr::as_string): Likewise.
	(ArithmeticOrLogicalExpr::as_string): Likewise.
	* lex/rust-lex.cc (Lexer::parse_byte_string): Likewise.
	(Lexer::parse_string): Likewise.
	* lex/rust-token.cc (RS_TOKEN): Likewise.
	* parse/rust-parse-impl.h (Parser::parse_simple_path_segment): Likewise.
	(Parser::parse_path_ident_segment): Likewise.
	(Parser::parse_attr_input): Likewise.
	(Parser::parse_inherent_impl_item): Likewise.
	(Parser::parse_trait_impl_item): Likewise.
	(Parser::parse_type_path_segment): Likewise.
	(Parser::parse_reference_type): Likewise.
	(get_lbp_for_comparison_expr): Likewise.
	* parse/rust-parse.cc (peculiar_fragment_match_compatible): Likewise.
	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Likewise.
	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit): Likewise.
	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): Likewise.
	(ResolveTypeToCanonicalPath::visit): Likewise.
	(ResolveGenericArgs::resolve_disambiguated_generic): Likewise.
	* rust-gcc.cc (operator_to_tree_code): Likewise.
	(fetch_overflow_builtins): Likewise.
	(Gcc_backend::non_zero_size_type): Likewise.
	(Gcc_backend::convert_tree): Likewise.
	* rust-lang.cc (grs_langhook_type_for_mode): Likewise.
	(grs_langhook_global_bindings_p): Likewise.
	(grs_langhook_pushdecl): Likewise.
	(grs_langhook_getdecls): Likewise.
	(convert): Likewise.
	* typecheck/rust-autoderef.h: Likewise.
	* typecheck/rust-hir-path-probe.cc: Likewise.
	* typecheck/rust-hir-trait-reference.cc (TraitItemReference::get_tyty): Likewise.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal): Likewise.
	* typecheck/rust-hir-type-check-expr.cc: Likewise.
	* typecheck/rust-hir-type-check-expr.h: Likewise.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItem::visit): Likewise.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
	* typecheck/rust-hir-type-check-stmt.h: Likewise.
	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): Likewise.
	* typecheck/rust-substitution-mapper.h: Likewise.
	* typecheck/rust-typecheck-context.cc (TypeCheckContextItem::get_context_type): Likewise.
	* typecheck/rust-tyty-call.h: Likewise.
	* typecheck/rust-tyty.cc (TypeKindFormat::to_string): Likewise.
	(BaseType::monomorphized_clone): Likewise.
	(VariantDef::variant_type_string): Likewise.
	(ClosureType::handle_substitions): Likewise.
	(IntType::as_string): Likewise.
	(UintType::as_string): Likewise.
	(FloatType::as_string): Likewise.
	* typecheck/rust-unify.cc (UnifyRules::expect_projection): Likewise.
	* util/rust-token-converter.cc (convert): Likewise.
	(from_literal): Likewise.
	(from_group): Likewise.
	(from_tokentree): Likewise.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* checks/errors/rust-feature-gate.cc (FeatureGate::gate):
	called error function.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* backend/rust-compile-intrinsic.cc (Intrinsics::compile):
	called error function.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* checks/errors/rust-unsafe-checker.cc (check_unsafe_call):
	called error function.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-location.h
	(typedef RichLocation): Remove.
	* expand/rust-macro-expand.cc: Replace RichLocation with rich_location.
	* hir/rust-ast-lower-base.cc: Likewise.
	* resolve/rust-ast-resolve-implitem.h: Likewise.
	* resolve/rust-ast-resolve-stmt.h: Likewise.
	* resolve/rust-ast-resolve-toplevel.h: Likewise.
	* rust-diagnostics.cc: Likewise.
	* rust-diagnostics.h: Likewise.
	* rust-session-manager.cc: Likewise.
	* typecheck/rust-casts.cc: Likewise.
	* typecheck/rust-coercion.cc: Likewise.
	* typecheck/rust-hir-inherent-impl-overlap.h: Likewise.
	* typecheck/rust-hir-path-probe.h: Likewise.
	* typecheck/rust-hir-trait-reference.cc: Likewise.
	* typecheck/rust-hir-type-check-expr.cc: Likewise.
	* typecheck/rust-hir-type-check-implitem.cc: Likewise.
	* typecheck/rust-hir-type-check-item.cc: Likewise.
	* typecheck/rust-hir-type-check-pattern.cc: Likewise.
	* typecheck/rust-tyty-cmp.h: Likewise.
	* typecheck/rust-tyty-subst.cc: Likewise.
	* typecheck/rust-tyty.cc: Likewise.
	* typecheck/rust-unify.cc: Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* lex/rust-lex.cc
	(Lexer::start_line): Use linemap_line_start.
	* rust-linemap.cc
	(Linemap::start_line): Remove.
	* rust-linemap.h
	(Linemap::start_line): Remove.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-linemap.cc
	(RichLocation::RichLocation): Remove.
	(RichLocation::~RichLocation): Remove.
	(RichLocation::add_range): Remove.
	(RichLocation::add_fixit_insert_before): Remove.
	(RichLocation::add_fixit_insert_after): Remove.
	* rust-location.h
	(class RichLocation): Remove.
	* rust-diagnostics.cc
	(rust_be_error_at): Remove RichLocation::get invocation.
	* expand/rust-macro-expand.cc: Fix RichLocation constructor.
	* hir/rust-ast-lower-base.cc: Likewise.
	* resolve/rust-ast-resolve-implitem.h: Likewise.
	* resolve/rust-ast-resolve-stmt.h: Likewise.
	* resolve/rust-ast-resolve-toplevel.h: Likewise.
	* rust-session-manager.cc: Likewise.
	* typecheck/rust-casts.cc: Likewise.
	* typecheck/rust-coercion.cc: Likewise.
	* typecheck/rust-hir-inherent-impl-overlap.h: Likewise.
	* typecheck/rust-hir-path-probe.h: Likewise.
	* typecheck/rust-hir-trait-reference.cc: Likewise.
	* typecheck/rust-hir-type-check-expr.cc: Likewise.
	* typecheck/rust-hir-type-check-implitem.cc: Likewise.
	* typecheck/rust-hir-type-check-item.cc: Likewise.
	* typecheck/rust-hir-type-check-pattern.cc: Likewise.
	* typecheck/rust-tyty-cmp.h: Likewise.
	* typecheck/rust-tyty-subst.cc: Likewise.
	* typecheck/rust-tyty.cc: Likewise.
	* typecheck/rust-unify.cc: Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* lex/rust-lex.cc
	(Lexer::get_current_location): Use linemap_position_for_column.
	* rust-session-manager.cc
	(Session::handle_crate_name): Likewise.
	* rust-linemap.cc
	(Linemap::get_location): Remove.
	* rust-linemap.h
	(Linemap::get_location): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-token.cc (escape_special_chars): Add a function that
	escape a given string.
	(Token::as_string): Add call to escape function for string/char
	representations.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* hir/tree/rust-hir-type.h (MaybeNamedParam::get_type): Remove
	rust_assert.
	(BareFunctionType::get_return_type): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* backend/rust-compile-intrinsic.cc (offset_handler): Remove
	braces.
	(sizeof_handler): Likewise.
	(transmute_handler): Likewise.
	(rotate_handler): Likewise.
	(wrapping_op_handler_inner): Likewise.
	(op_with_overflow_inner): Likewise.
	(atomic_load_handler_inner): Likewise.
	(unchecked_op_inner): Likewise.
	(uninit_handler): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Add virtual destructor.
	* expand/rust-macro-expand.h: Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* hir/tree/rust-hir-full-decls.h (struct Crate): Change to
	class.
	(class Crate): Likewise.
	(struct StructField): Likewise.
	(class StructField): Likewise.
	(struct TupleField): Likewise.
	(class TupleField): Likewise.
	(struct TraitFunctionDecl): Likewise.
	(class TraitFunctionDecl): Likewise.
	* rust-session-manager.h (struct Crate): Likewise.
	(class Crate): Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-expr.h
	(MetaItemPathLit::get_locus): Remove copy construction.
	* backend/rust-constexpr.cc
	(eval_constant_expression): Likewise.
	(is_valid_constexpr_fn): Likewise.
	* util/rust-token-converter.cc
	(convert): Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* lex/rust-lex.cc
	(Lexer::dump_and_skip): Use location_to_string.
	* rust-linemap.cc
	(Linemap::to_string): Move to...
	(Linemap::location_to_string): ... here.
	* rust-linemap.h
	(Linemap::to_string): Remove.
	(Linemap::location_to_string): Remove definition.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* hir/tree/rust-hir-expr.h (TypeCastExpr::get_casted_expr): Remove
	assert in accessor.
	(TypeCastExpr::get_type_to_convert_to): Likewise.
	(CompoundAssignmentExpr::get_left_expr): Likewise.
	(CompoundAssignmentExpr::get_right_expr): Likewise.
	(GroupedExpr::get_expr_in_parens): Likewise.
	(TupleIndexExpr::get_tuple_expr): Likewise.
	(FieldAccessExpr::get_receiver_expr): Likewise.
	(ClosureParam::get_pattern): Likewise.
	(ClosureParam::get_type): Likewise.
	(ExprType::get_return_type): Likewise.
	(IfLetExpr::get_scrutinee_expr): Likewise.
	(MatchArm::get_guard_expr): Likewise.
	(MatchExpr::get_scrutinee_expr): Likewise.
	* hir/tree/rust-hir-item.h (TypeParam::get_type): Likewise.
	(SelfParam::get_type): Likewise.
	(Function::get_return_type): Likewise.
	(TypeAlias::get_type_aliased): Likewise.
	(StructField::get_field_type): Likewise.
	(TraitFunctionDecl::get_block_expr): Likewise.
	(ImplBlock::get_trait_ref): Likewise.
	* hir/tree/rust-hir-path.h (ConstGenericArg::get_expression): New.
	(TypePathFunction::get_return_type): Remove assert in accessor.
	(QualifiedPathType::get_trait): Likewise.
	* hir/tree/rust-hir-pattern.h (PatternType::get_lower_bound): Likewise.
	(PatternType::get_upper_bound): Likewise.
	(ReferencePattern::get_referenced_pattern): Likewise.
	* hir/tree/rust-hir.h (ConstGenericParam::get_default_expression): Likewise.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* hir/rust-ast-lower-base.cc (struct_field_name_exists):
	called error function.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-diagnostics.cc
	(rust_be_error_at): Add function accepting location_t and ErrorCode.
	(rust_error_at): Likewise.
	* rust-diagnostics.h
	(rust_error_at): Likewise.
	(rust_be_error_at): Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-linemap.cc
	(class Gcc_linemap): Remove.
	(Gcc_linemap::start_file): Move to...
	(Linemap::start_file): ... here.
	(Gcc_linemap::to_string): Move to...
	(Linemap::to_string): ... here.
	(Gcc_linemap::stop): Move to...
	(Linemap::stop): ... here.
	(Gcc_linemap::start_line): Move to...
	(Linemap::start_line): ... here.
	(Gcc_linemap::get_location): Move to...
	(Linemap::get_location): ... here.
	(rust_get_linemap): Use Linemap.
	* rust-linemap.h
	(Linemap::in_file_): New field from Gcc_linemap.
	(Linemap::Linemap): Initialize in_file_.
	(Linemap::~Linemap): Make non-virtual.
	(Linemap::start_file): Likewise.
	(Linemap::start_line): Likewise.
	(Linemap::get_location): Likewise.
	(Linemap::stop): Likewise.
	(Linemap::to_string): Likewise.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Remove rust-optional-test.cc's object file
	* ast/rust-macro.h: Remove use of Rust::Optional
	* backend/rust-compile-base.cc
	(HIRCompileBase::resolve_method_address): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.cc
	(PrivacyReporter::check_for_privacy_violation): Likewise.
	(PrivacyReporter::visit): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
	* checks/errors/rust-feature-gate.cc (FeatureGate::check): Likewise.
	* checks/errors/rust-feature.cc (Feature::create): Likewise.
	(Feature::as_name): Likewise.
	* checks/errors/rust-feature.h: Likewise.
	* expand/rust-macro-builtins.cc: Likewise.
	* lex/rust-lex.cc (Lexer::Lexer): Likewise.
	(Lexer::skip_token): Likewise.
	(Lexer::dump_and_skip): Likewise.
	* lex/rust-lex.h: Likewise.
	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Likewise.
	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): Likewise.
	* rust-lang.cc (run_rust_tests): Likewise.
	* rust-session-manager.cc (Session::compile_crate): Likewise.
	(TargetOptions::dump_target_options): Likewise.
	* rust-session-manager.h (struct TargetOptions): Likewise.
	* util/rust-hir-map.cc (Mappings::lookup_module_children): Likewise.
	(Mappings::lookup_module_chidren_items): Likewise.
	(Mappings::lookup_module_child): Likewise.
	(Mappings::lookup_parent_module): Likewise.
	* util/rust-hir-map.h (RUST_HIR_MAP_H): Likewise.
	* util/rust-optional-test.cc: Removed.
	* util/rust-optional.h: Removed.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-linemap.h (Linemap::unknown_location): Remove.
	* ast/rust-ast.cc:
	Replace Linemap::unknown_location with UNKNOWN_LOCATION.
	* ast/rust-path.cc: Likewise.
	* hir/tree/rust-hir.cc: Likewise.
	* metadata/rust-imports.cc: Likewise.
	* parse/rust-parse-impl.h: Likewise.
	* parse/rust-parse.h: Likewise.
	* rust-backend.h: Likewise.
	* rust-diagnostics.cc: Likewise.
	* rust-session-manager.cc: Likewise.
	* typecheck/rust-tyty.cc: Likewise.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* resolve/rust-ast-verify-assignee.h: called error function.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-tyty-call.cc (emit_unexpected_argument_error):
	Refactored invalid number of argument into one function.
	(TypeCheckCallExpr::visit): called refactored function.
	(TypeCheckMethodCallExpr::check): likewise.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/expected.h: Adapt class to GCC requirements.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/expected.h: New file.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/optional.h: Adapt for GCC.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/optional.h: New file.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-location.h (UNDEF_LOCATION): New.
	* ast/rust-ast-collector.cc: Replace Location () with UNDEF_LOCATION.
	* ast/rust-ast-fragment.cc: Likewise.
	* ast/rust-ast.h: Likewise.
	* ast/rust-expr.h: Likewise.
	* ast/rust-item.h: Likewise.
	* ast/rust-macro.h: Likewise.
	* ast/rust-path.h: Likewise.
	* ast/rust-type.h: Likewise.
	* backend/rust-compile-expr.cc: Likewise.
	* backend/rust-compile-extern.h: Likewise.
	* backend/rust-compile-implitem.h: Likewise.
	* backend/rust-compile-intrinsic.cc: Likewise.
	* backend/rust-compile-item.h: Likewise.
	* backend/rust-compile.cc: Likewise.
	* backend/rust-constexpr.cc: Likewise.
	* expand/rust-expand-visitor.cc: Likewise.
	* expand/rust-macro-expand.cc: Likewise.
	* expand/rust-macro-expand.h: Likewise.
	* expand/rust-macro-invoc-lexer.cc: Likewise.
	* expand/rust-proc-macro-invoc-lexer.cc: Likewise.
	* expand/rust-proc-macro.cc: Likewise.
	* hir/tree/rust-hir-expr.h: Likewise.
	* hir/tree/rust-hir-item.h: Likewise.
	* hir/tree/rust-hir-path.h: Likewise.
	* hir/tree/rust-hir-type.h: Likewise.
	* hir/tree/rust-hir.h: Likewise.
	* lex/rust-lex.cc: Likewise.
	* metadata/rust-export-metadata.cc: Likewise.
	* parse/rust-parse-impl.h: Likewise.
	* resolve/rust-ast-resolve-item.cc: Likewise.
	* resolve/rust-ast-resolve.cc: Likewise.
	* rust-diagnostics.h: Likewise.
	* rust-session-manager.cc: Likewise.
	* typecheck/rust-autoderef.cc: Likewise.
	* typecheck/rust-coercion.cc: Likewise.
	* typecheck/rust-hir-dot-operator.cc: Likewise.
	* typecheck/rust-hir-path-probe.cc: Likewise.
	* typecheck/rust-hir-trait-reference.cc: Likewise.
	* typecheck/rust-hir-trait-reference.h: Likewise.
	* typecheck/rust-hir-type-check-expr.cc: Likewise.
	* typecheck/rust-hir-type-check-implitem.cc: Likewise.
	* typecheck/rust-hir-type-check-type.cc: Likewise.
	* typecheck/rust-hir-type-check.cc: Likewise.
	* typecheck/rust-tyty-bounds.cc: Likewise.
	* typecheck/rust-tyty-subst.cc: Likewise.
	* typecheck/rust-tyty.cc: Likewise.
	* util/rust-hir-map.cc: Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix abit
	output format.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix
	external item trailing semicolon and outer attributes.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Output
	outer attributes on external functions.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix method
	qualifier output.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Add where
	clause.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Add outer
	attributes to collector output.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Add
	variadics in collector output.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Add
	generics.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix generic
	output.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Reformat
	trait impl block.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Output
	generic in inherent impl.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-dump.cc (Dump::require_spacing): Change dollar
	spacing rule.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Change
	formatting.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix trait
	impl block output.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix binding
	args.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Output
	function qualifiers after visibility.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix self
	param output.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-dump.cc (Dump::require_spacing): Add a rule to
	remove spaces around dots and after references.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix several
	token collection rules.
	* ast/rust-ast-dump.cc (Dump::require_spacing): Add spacing rule
	for comma.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-invoc-lexer.h
	(class MacroInvocLexerBase): New.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-builtins.cc
	(source_relative_path): Use LOCATION_FILE.
	(MacroBuiltin::file_handler): Likewise.
	(MacroBuiltin::column_handler): Use LOCATION_COLUMN.
	(MacroBuiltin::line_handler): Use LOCATION_LINE.
	* rust-linemap.cc
	(Gcc_linemap::location_file): Remove.
	(Gcc_linemap::location_line): Remove.
	(Gcc_linemap::location_column): Remove.
	* rust-linemap.h
	(Linemap::location_file): Remove.
	(Linemap::location_line): Remove.
	(Linemap::location_column): Remove.
	(Linemap::location_to_file): Remove.
	(Linemap::location_to_line): Remove.
	(Linemap::location_to_column): Remove.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
	called error function and changed error message
	similiar to rustc.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-linemap.cc
	(Gcc_linemap::get_unknown_location): Remove.
	(Gcc_linemap::get_predeclared_location): Remove.
	(Gcc_linemap::is_predeclared): Remove.
	(Gcc_linemap::is_unknown): Remove.
	* rust-linemap.h
	(Linemap::get_predeclared_location): Remove.
	(Linemap::get_unknown_location): Remove.
	(Linemap::is_predeclared): Remove.
	(Linemap::is_unknown): Remove.
	(Linemap::predeclared_location): Use BUILTINS_LOCATION.
	(Linemap::unknown_location): Use UNKNOWN_LOCATION.
	(Linemap::is_predeclared_location): Remove.
	(Linemap::is_unknown_location): Remove.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit):
	called error function

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve):
	called error function.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* lex/rust-lex.cc (Lexer::input_source_is_valid_utf8): New method of `Lexer`.
	* lex/rust-lex.h: Likewise.
	* rust-session-manager.cc (Session::compile_crate): Add error.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-expand.cc
	(transcribe_expression): Skip trailing semicolon.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-item.cc: called error function.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* ast/rust-ast.h: Modify constructors of `Rust::Identifier`
	* ast/rust-pattern.h: Likewise.
	* hir/tree/rust-hir-item.h: Likewise.
	* parse/rust-parse-impl.h (Parser::parse_macro_rules_def): Likewise.
	(Parser::parse_decl_macro_def): Likewise.
	(Parser::parse_macro_match_fragment): Likewise.
	(Parser::parse_module): Likewise.
	(Parser::parse_use_tree): Likewise.
	(Parser::parse_function): Likewise.
	(Parser::parse_type_param): Likewise.
	(Parser::parse_type_alias): Likewise.
	(Parser::parse_struct): Likewise.
	(Parser::parse_struct_field): Likewise.
	(Parser::parse_enum): Likewise.
	(Parser::parse_enum_item): Likewise.
	(Parser::parse_union): Likewise.
	(Parser::parse_static_item): Likewise.
	(Parser::parse_trait): Likewise.
	(Parser::parse_trait_item): Likewise.
	(Parser::parse_trait_type): Likewise.
	(Parser::parse_trait_const): Likewise.
	(Parser::parse_external_item): Likewise.
	(Parser::parse_generic_args_binding): Likewise.
	(Parser::parse_method): Likewise.
	(Parser::parse_maybe_named_param): Likewise.
	(Parser::parse_identifier_pattern): Likewise.
	(Parser::parse_struct_expr_field): Likewise.
	(ResolveItem::visit): Likewise.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItem::visit):Add comments
	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit): Likewise.
	* checks/lints/rust-lint-scan-deadcode.h: Fix error location

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-base.cc
	(HIRCompileBase::address_expression): Remove gcc_location method call.
	(HIRCompileBase::indirect_expression): Likewise.
	(HIRCompileBase::compile_constant_item): Likewise.
	(HIRCompileBase::named_constant_expression): Likewise.
	* backend/rust-compile-expr.cc
	(CompileExpr::visit): Remove gcc_location method call, use UNKNOWN_LOCATION to initialize.
	(CompileExpr::get_fn_addr_from_dyn): Remove gcc_location method call.
	(CompileExpr::type_cast_expression): Likewise.
	* backend/rust-compile-intrinsic.cc
	(transmute_handler): Replace "Location ().gcc_location ()" with UNKNOWN_LOCATION.
	(copy_nonoverlapping_handler): Likewise.
	(prefetch_data_handler): Likewise.
	(atomic_store_handler_inner): Likewise.
	(atomic_load_handler_inner): Likewise.
	* resolve/rust-ast-resolve-expr.cc
	(ResolveExpr::visit): Remove gcc_location method call.
	* rust-diagnostics.cc
	(rust_be_error_at): Likewise.
	(rust_be_warning_at): Likewise.
	(rust_be_fatal_error): Likewise.
	(rust_be_inform): Likewise.
	* rust-diagnostics.h
	(rust_sorry_at): Likewise.
	* rust-gcc.cc
	(Bvariable::get_tree): Likewise.
	(Gcc_backend::fill_in_fields): Likewise.
	(Gcc_backend::named_type): Likewise.
	(Gcc_backend::real_part_expression): Likewise.
	(Gcc_backend::imag_part_expression): Likewise.
	(Gcc_backend::complex_expression): Likewise.
	(Gcc_backend::convert_expression): Likewise.
	(Gcc_backend::struct_field_expression): Likewise.
	(Gcc_backend::compound_expression): Likewise.
	(Gcc_backend::conditional_expression): Likewise.
	(Gcc_backend::negation_expression): Likewise.
	(Gcc_backend::arithmetic_or_logical_expression): Likewise.
	(Gcc_backend::arithmetic_or_logical_expression_checked): Likewise.
	(Gcc_backend::comparison_expression): Likewise.
	(Gcc_backend::lazy_boolean_expression): Likewise.
	(Gcc_backend::constructor_expression): Likewise.
	(Gcc_backend::array_constructor_expression): Likewise.
	(Gcc_backend::array_initializer): Likewise.
	(Gcc_backend::array_index_expression): Likewise.
	(Gcc_backend::call_expression): Likewise.
	(Gcc_backend::assignment_statement): Likewise.
	(Gcc_backend::return_statement): Likewise.
	(Gcc_backend::exception_handler_statement): Likewise.
	(Gcc_backend::if_statement): Likewise.
	(Gcc_backend::loop_expression): Likewise.
	(Gcc_backend::exit_expression): Likewise.
	(Gcc_backend::block): Likewise.
	(Gcc_backend::convert_tree): Likewise.
	(Gcc_backend::global_variable): Likewise.
	(Gcc_backend::local_variable): Likewise.
	(Gcc_backend::parameter_variable): Likewise.
	(Gcc_backend::static_chain_variable): Likewise.
	(Gcc_backend::temporary_variable): Likewise.
	(Gcc_backend::label): Likewise.
	(Gcc_backend::goto_statement): Likewise.
	(Gcc_backend::label_address): Likewise.
	(Gcc_backend::function): Likewise.
	* rust-linemap.cc
	(Gcc_linemap::to_string): Likewise.
	(Gcc_linemap::location_file): Likewise.
	(Gcc_linemap::location_line): Likewise.
	(Gcc_linemap::location_column): Likewise.
	(Gcc_linemap::is_predeclared): Likewise.
	(Gcc_linemap::is_unknown): Likewise.
	(RichLocation::RichLocation): Likewise.
	(RichLocation::add_range): Likewise.
	(RichLocation::add_fixit_insert_before): Likewise.
	(RichLocation::add_fixit_insert_after): Likewise.
	* rust-location.h
	(class Location): Replace with typedef.
	(operator<): Remove.
	(operator==): Remove.
	(operator+): Remove.
	(operator-): Remove.
	* typecheck/rust-hir-trait-resolve.cc
	(AssociatedImplTrait::setup_associated_types): Initialize Location with UNKNOWN_LOCATION.
	* typecheck/rust-hir-type-check-stmt.cc
	(TypeCheckStmt::visit): Likewise.
	* util/rust-token-converter.cc
	(convert): Remove gcc_location method call.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* hir/tree/rust-hir-expr.h (BorrowExpr::is_double_borrow): New.
	(ArrayElemsCopied::get_elem_to_copy)
	(ArrayElemsCopied::get_num_copies_expr): Return unique_ptr.
	(CallExpr::get_fnexpr): Likewise.
	(ReturnExpr::get_expr): Likewise.
	(StructExprStructFields::get_struct_base): New.
	(MethodCallExpr::has_params): New.
	(ClosureExpr::has_params): New.
	(BlockExpr::get_inner_attrs): New.
	(WhileLoopExpr::get_patterns): New.
	(ForLoopExpr::get_pattern): New.
	(IfLetExpr::get_if_block): Return ref to unique_ptr.
	(IfLetExprConseqElse::get_else_block): Likewise.
	(MatchExpr::get_inner_attrs): New.
	* hir/tree/rust-hir-item.h (Module::get_module_name): New.
	(ExternCrate::get_referenced_crate)
	(ExternCrate::get_as_clause_name): New.
	(UseTreeGlob::get_glob_type, UseTreeGlob::get_path): New.
	(UseTreeList::get_path_type, UseTreeList::get_path)
	(UseTreeList::get_trees): New.
	(TraitItemKind::get_expr): Remove assert. unique_ptr can
	be "empty". Must be checked in caller.
	* hir/tree/rust-hir-pattern.h (IdentifierPattern::get_is_ref)
	(IdentifierPattern::get_to_bind): New.
	(RangePatternBoundType::get_has_minus): New.
	(RangePattern::get_has_ellipsis_syntax): New.
	(StructPatternField::get_outer_attrs): New.
	(StructPatternFieldTuplePat::get_index)
	(StructPatternFieldTuplePat::get_tuple_pattern): New.
	(StructPatternFieldIdent::get_has_ref): New.
	* hir/tree/rust-hir-stmt.h (LetStmt::get_outer_attrs): New.
	(LetStmt::get_type)
	(LetStmt::get_init_expr, LetStmt::get_pattern): Return unique_ptr.
	(ExprStmt::get_expr): Likewise.
	* hir/tree/rust-hir-type.h (TraitBound::get_for_lifetimes): New.
	(TraitBound::get_in_params): New.
	(TraitBound::get_opening_question_mark): New.
	(ImplTraitType::get_type_param_bounds): New.
	(TraitObjectType::get_has_dyn): New.
	(TraitBound::get_type_in_parens): New.
	(ImplTraitTypeOneBound::get_trait_bound): New.
	(BareFunctionType::get_for_lifetimes)
	(BareFunctionType::get_is_variadic)
	(BareFunctionType::get_function_qualifiers): New.
	* hir/tree/rust-hir.h (class Expr): Virtual inherit from FullVisitable.
	(class Pattern): Likewise.
	(ConstGenericParam::get_name): New.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Adjust call.
	(TypeCheckExpr::resolve_fn_trait_call): Likewise.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Adjust call.
	(CompileExpr::array_copied_expr): Likewise.
	(CompileExpr::generate_possible_fn_trait_call): Likewise.
	* backend/rust-compile-stmt.cc (CompileStmt::visit): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise.
	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-path-probe.h: called error function

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args):
	called error function

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* hir/tree/rust-hir-expr.h (class ArrayElems): Inherit from FullVisitable.
	(class StructExprField): Likewise.
	* hir/tree/rust-hir-item.h (class WhereClauseItem): Likewise.
	(class UseTree): Likewise.
	(UseTreeRebind::get_path, UseTreeRebind::get_identifier)
	(UseTreeRebind::get_bind_type): New.
	(UseDeclaration::get_use_tree): New.
	(struct TraitFunctionDecl): Change struct to ...
	(class TraitFunctionDecl): ... class.
	(TraitFunctionDecl::get_where_clause): New.
	(StructField::get_outer_attrs): New.
	(struct TupleField): Change struct to ...
	(class TupleField): ... class.
	(TupleField::get_visibility, TupleField::get_outer_attrs): New.
	* hir/tree/rust-hir-pattern.h (class TupleStructItems): Inherit
	from FullVisitable.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* lex/rust-lex.cc (Lexer::build_token): Replace function call.
	(Lexer::parse_string): Likewise.
	(Lexer::parse_identifier_or_keyword): Likewise.
	(Lexer::parse_raw_string): Likewise.
	(Lexer::parse_char_or_lifetime): Likewise.
	(Lexer::get_input_codepoint_length): Deleted.
	(Lexer::peek_codepoint_input): Deleted.
	(Lexer::skip_codepoint_input): Deleted.
	* lex/rust-lex.h: Remove some methods and fields

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound): track output
	* util/rust-hir-map.cc (Mappings::lookup_trait_item_lang_item): new helper
	* util/rust-hir-map.h: add prototype for helper

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::generate_possible_fn_trait_call): use fnexpr
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::resolve_fn_trait_call): likewise

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): called rust_error_at

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* hir/tree/rust-hir.h (struct Crate): Rename struct into ...
	(class Crate): ... class, and add get_items.
	* backend/rust-compile.cc (CompileCrate::go): Adapt to visibility change of items.
	* checks/errors/privacy/rust-privacy-check.cc (Resolver::resolve): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::go): Likewise.
	* checks/errors/privacy/rust-pub-restricted-visitor.cc (PubRestrictedVisitor::go): Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc (VisibilityResolver::go): Likewise.
	* checks/errors/rust-const-checker.cc (ConstChecker::go): Likewise.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::go): Likewise.
	* checks/lints/rust-lint-marklive.cc (FindEntryPoint::find): Likewise.
	* checks/lints/rust-lint-scan-deadcode.h (ScanDeadCode::Scan): Likewise.
	* metadata/rust-export-metadata.cc (PublicInterface::gather_export_data): Likewise.
	* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): Likewise.
	* hir/rust-hir-dump.cc (CompileCrate::go): Likewise.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* hir/tree/rust-hir-expr.h (AwaitExpr::get_awaited_expr): New.
	(AsyncBlockExpr::get_has_move, AsyncBlockExpr::get_block_expr): New.
	* hir/tree/rust-hir-item.h (Enum::get_where_clause): New.
	(Trait::get_where_clause, Trait::is_unsafe): New.
	(ExternalItem::get_visibility): New.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* hir/tree/rust-hir.h (class FullVisitable): New.
	(class Stmt): Adjust with new class.
	(class Expr): Likewise.
	(class Pattern): Likewise.
	(class Type): Likewise.
	(class TypeParamBound): Likewise.
	(class GenericParam): Likewise.
	(class TraitItem): Likewise.
	(class ImplItem): Likewise.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* hir/tree/rust-hir.h (class WithInnerAttrs): New.
	(class Item): Adjust to new WithInnerAttrs class.
	(struct Crate): Likewise.
	* hir/rust-hir-dump.cc (Dump::go): Likewise.
	(Dump::visit): Likewise.
	* hir/tree/rust-hir-expr.h (class GroupedExpr): Likewise.
	(class ArrayExpr): Likewise.
	(class TupleExpr): Likewise.
	(class StructExprStruct): Likewise.
	(class BlockExpr): Likewise.
	(class MatchExpr): Likewise.
	* hir/tree/rust-hir-item.h (TypeParam::get_outer_attribute): New.
	(class Module): Adjust to new  WithInnerAttrs class.
	(struct StructField): change struct to...
	(class StructField): ... a class.
	(class ImplBlock): Adjust to new  WithInnerAttrs class.
	(class ExternBlock): Likewise.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* hir/tree/rust-hir-type.h (ArrayType::get_element_type): Returns
	unique_ptr.
	* hir/tree/rust-hir-expr.h (ArithmeticOrLogicalExpr::get_lhs)
	(ArithmeticOrLogicalExpr::get_rhs): Likewise.
	(ComparisonExpr::get_lhs, ComparisonExpr::get_rhs): Likewise.
	(LazyBooleanExpr::get_lhs, LazyBooleanExpr::get_rhs): Likewise.
	(AssignmentExpr::get_lhs, AssignmentExpr::get_rhs): Likewise.
	(ArrayExpr::get_internal_elements): Likewise.
	(ArrayIndexExpr::get_index_expr, ArrayIndexExpr::get_array_expr):
	Likewise.
	(StructExprFieldWithVal::get_value): Likewise.
	(IfExpr::get_if_condition, IfExpr::get_if_block): Likewise.
	(ExprWithBlock::get_else_block): Likewise.
	* hir/tree/rust-hir-item.h (FunctionParam::get_param_name)
	(FunctionParam::get_type): Likewise.
	(ConstantItem::get_type, ConstantItem::get_expr): Likewise.
	(StaticItem::get_expr, StaticItem::get_type): Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
	Adjust for previous change.
	* backend/rust-compile-block.cc (CompileConditionalBlocks::visit):
	Likewise.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
	* backend/rust-compile-item.cc (CompileItem::visit): Likewise.
	* backend/rust-compile-struct-field-expr.cc
	(CompileStructExprField::visit): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.cc
	(PrivacyReporter::visit): Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Likewise.
	* typecheck/rust-hir-type-check-implitem.cc
	(TypeCheckImplItem::visit): Likewise.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
	Likewise.
	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit):
	Likewise.
	* typecheck/rust-hir-type-check-struct.cc
	(TypeCheckStructExpr::visit): Likewise.
	* typecheck/rust-hir-type-check.cc
	(TraitItemReference::get_type_from_fn): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-pattern.h: Change constructor to accept new parameter
	instead of defaulting on string type.
	* parse/rust-parse-impl.h (Parser::parse_literal_or_range_pattern):
	Propagate type hint.
	(Parser::parse_pattern_no_alt): Likewise.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* lex/rust-lex.cc (Lexer::parse_byte_char):add check for range of codepoint

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (emit_invalid_field_error): Refactored Field
	Error Function
	(TypeCheckPattern::visit): called emit_invalid_field_error function

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-expand.cc
	(MacroExpander::match_matcher): Remove append_fragment inside repetitions.
	(MacroExpander::match_n_matches): Use sub_stack push/pop to handle repetitions.
	(MatchedFragmentContainer::add_fragment): Add MatchedFragmentContainer accepting version.
	* expand/rust-macro-expand.h
	(MatchedFragmentContainer::add_fragment): Likewise.
	(MatchedFragmentContainerRepetition::add_fragment): Likewise.
	(SubstititionScope::append_fragment): Likewise.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-casts.cc (TypeCastRules::check): apply new argument
	* typecheck/rust-coercion.cc (TypeCoercionRules::Coerce): track if this is a cast site
	(TypeCoercionRules::TryCoerce): update ctor
	(TypeCoercionRules::TypeCoercionRules): cleanup error handling
	(TypeCoercionRules::do_coercion): likewise
	(TypeCoercionRules::coerce_unsafe_ptr): only infer in try mode
	(TypeCoercionRules::coerce_borrowed_pointer): cleanup
	* typecheck/rust-coercion.h: update header

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-reference.h: update prototype
	* typecheck/rust-hir-trait-resolve.cc: add generic args as an out param
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): use the generics

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Add comment
	after tail expressions.
	* ast/rust-ast-dump.cc (Dump::require_spacing): Check for
	missing previous token.
	* ast/rust-ast-dump.h: Output formatting characters.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::collect): Collect
	CollectItems once done.
	(TokenCollector::newline): Add newline formatting
	implementation.
	(TokenCollector::indentation): Add indentation implementation.
	(TokenCollector::increment_indentation): Add indentation
	increment.
	(TokenCollector::comment): Add new comment formatting option.
	* ast/rust-ast-collector.h: Update prototypes.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::collect_tokens):
	Filter tokens.
	(TokenCollector::visit_items_joined_by_separator): Change store
	call.
	(TokenCollector::visit_as_line): Likewise.
	(TokenCollector::visit_items_as_block): Likewise.
	(TokenCollector::trailing_comma): Likewise.
	(TokenCollector::visit): Likewise.
	(TokenCollector::visit_closure_common): Likewise.
	(TokenCollector::visit_function_common): Likewise.
	* ast/rust-ast-collector.h (class CollectItem): Add class to
	differentiate between formatting and raw data (tokens).

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::TokenCollector):
	Remove constructor, changing it to an implicit default
	constructor.
	* ast/rust-ast-collector.h: Change from container reference to
	direct container.
	* ast/rust-ast-dump.h: Change call to constructor.
	* expand/rust-macro-expand.h (struct MacroExpander): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-dump.cc (Dump::require_spacing): Add a function
	to determine wether a space shall output.
	* ast/rust-ast-dump.h: Add function prototype as well as
	condition.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Add a visit
	function for visitable abstract class so we can call a dump on
	any visitable item.
	* ast/rust-ast-collector.h: Add new visit function prototype.
	* ast/rust-ast-dump.cc (Dump::go): Add call to process function.
	(Dump::visit): Remove functions.
	(Dump::visit_items_joined_by_separator): Likewise.
	(Dump::visit_as_line): Likewise.
	(Dump::visit_items_as_lines): Likewise.
	(Dump::visit_items_as_block): Likewise.
	(Dump::visit_function_common): Likewise.
	(get_delimiters): Likewise.
	(Dump::debug): Update with call to tokencollector.
	* ast/rust-ast-dump.h (RUST_AST_DUMP_H): Move include
	directives.
	(class Dump): Remove multiple prototypes and add generic process
	function.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Add
	semicolon in extern blocks.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-session-manager.cc (Session::enable_dump): Remove
	tokenstream dump.
	(Session::compile_crate): Likewise.
	(Session::dump_tokenstream): Likewise.
	* rust-session-manager.h (struct CompileOptions): Likewise.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* lex/rust-lex.cc (Lexer::build_token):add check for all kinds of whitespaces

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Add default constructors.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Change with
	call to getter.
	* ast/rust-ast.cc (Module::as_string): Likewise.
	(StaticItem::as_string): Likewise.
	(TupleStruct::as_string): Likewise.
	(Method::as_string): Likewise.
	(StructStruct::as_string): Likewise.
	(UseTreeRebind::as_string): Likewise.
	(Enum::as_string): Likewise.
	(Trait::as_string): Likewise.
	(Union::as_string): Likewise.
	(Function::as_string): Likewise.
	(TypeAlias::as_string): Likewise.
	(MacroRulesDefinition::as_string): Likewise.
	(FieldAccessExpr::as_string): Likewise.
	(MacroMatchFragment::as_string): Likewise.
	(TypeParam::as_string): Likewise.
	(StructExprFieldIdentifierValue::as_string): Likewise.
	(EnumItem::as_string): Likewise.
	(StructField::as_string): Likewise.
	(ExternalTypeItem::as_string): Likewise.
	(ExternalStaticItem::as_string): Likewise.
	(ExternalFunctionItem::as_string): Likewise.
	(TraitFunctionDecl::as_string): Likewise.
	(TraitMethodDecl::as_string): Likewise.
	(TraitItemConst::as_string): Likewise.
	(TraitItemType::as_string): Likewise.
	(MaybeNamedParam::as_string): Likewise.
	(MetaListPaths::as_string): Likewise.
	(MetaListNameValueStr::as_string): Likewise.
	(Module::process_file_path): Likewise.
	(MetaListNameValueStr::check_cfg_predicate): Likewise.
	(MetaListPaths::check_cfg_predicate): Likewise.
	(MetaWord::check_cfg_predicate): Likewise.
	(MetaNameValueStr::check_cfg_predicate): Likewise.
	(MetaNameValueStr::to_attribute): Likewise.
	(MetaWord::to_attribute): Likewise.
	(MetaListPaths::to_attribute): Likewise.
	(MetaListNameValueStr::to_attribute): Likewise.
	(operator<<): Change Identifier class <<
	operator overload for standard output stream.
	* ast/rust-ast.h (class Identifier): Change typedef to proper
	class definition.
	(operator<<): Add prototype for operator overload.
	(class Token): Change getter identifier.
	(class MetaListNameValueStr): Likewise.
	(class PathExpr): Likewise.
	* ast/rust-expr.h: Likewise.
	* ast/rust-item.h: Likewise.
	* ast/rust-macro.h: Likewise.
	* ast/rust-path.cc (GenericArg::disambiguate_to_type): Likewise.
	(GenericArgsBinding::as_string): Likewise.
	(ConstGenericParam::as_string): Likewise.
	* ast/rust-path.h: Likewise.
	* ast/rust-pattern.cc (IdentifierPattern::as_string): Likewise.
	(StructPatternFieldIdentPat::as_string): Likewise.
	(StructPatternFieldIdent::as_string): Likewise.
	* ast/rust-type.h: Likewise.
	* backend/rust-compile-base.cc: Likewise.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
	* backend/rust-compile-extern.h: Likewise.
	* backend/rust-compile-fnparam.cc (CompileFnParam::visit):
	Likewise.
	* backend/rust-compile-implitem.cc (CompileTraitItem::visit):
	Likewise.
	* backend/rust-compile-item.cc (CompileItem::visit): Likewise.
	* backend/rust-compile-pattern.cc (CompilePatternBindings::visit): Likewise.
	* backend/rust-compile-struct-field-expr.cc (CompileStructExprField::visit):
	Likewise.
	* backend/rust-compile-var-decl.h: Likewise.
	* backend/rust-compile.cc: Likewise.
	* checks/errors/rust-unsafe-checker.cc (check_extern_call):
	Likewise.
	* checks/lints/rust-lint-marklive.cc (MarkLive::visit):
	Likewise.
	* checks/lints/rust-lint-scan-deadcode.h: Likewise.
	* expand/rust-derive-clone.cc (DeriveClone::clone_fn): Likewise.
	(DeriveClone::visit_tuple): Likewise.
	(DeriveClone::visit_struct): Likewise.
	(DeriveClone::visit_union): Likewise.
	* expand/rust-derive-copy.cc (DeriveCopy::visit_struct):
	Likewise.
	(DeriveCopy::visit_tuple): Likewise.
	(DeriveCopy::visit_enum): Likewise.
	(DeriveCopy::visit_union): Likewise.
	* expand/rust-macro-expand.cc (MacroExpander::match_matcher):
	Likewise.
	(MacroExpander::match_n_matches): Likewise.
	(MacroExpander::match_repetition): Likewise.
	(MacroExpander::match_repetition_skipped_metavars): Likewise.
	* hir/rust-ast-lower-base.cc (struct_field_name_exists):
	Likewise.
	* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
	* hir/rust-ast-lower-type.cc (ASTLowerGenericParam::visit):
	Likewise.
	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
	* hir/tree/rust-hir-expr.h: Likewise.
	* hir/tree/rust-hir-item.h: Likewise.
	* hir/tree/rust-hir-path.h: Likewise.
	* hir/tree/rust-hir-type.h: Likewise.
	* hir/tree/rust-hir.cc (Module::as_string): Likewise.
	(StaticItem::as_string): Likewise.
	(TupleStruct::as_string): Likewise.
	(ConstantItem::as_string): Likewise.
	(StructStruct::as_string): Likewise.
	(UseTreeRebind::as_string): Likewise.
	(Enum::as_string): Likewise.
	(Trait::as_string): Likewise.
	(Union::as_string): Likewise.
	(Function::as_string): Likewise.
	(TypeAlias::as_string): Likewise.
	(FieldAccessExpr::as_string): Likewise.
	(TypeParam::as_string): Likewise.
	(GenericArgsBinding::as_string): Likewise.
	(StructPatternFieldIdent::as_string): Likewise.
	(StructPatternFieldIdentPat::as_string): Likewise.
	(IdentifierPattern::as_string): Likewise.
	(StructExprFieldIdentifierValue::as_string): Likewise.
	(EnumItem::as_string): Likewise.
	(StructField::as_string): Likewise.
	(ExternalStaticItem::as_string): Likewise.
	(ExternalFunctionItem::as_string): Likewise.
	(NamedFunctionParam::as_string): Likewise.
	(TraitFunctionDecl::as_string): Likewise.
	(TraitItemConst::as_string): Likewise.
	(TraitItemType::as_string): Likewise.
	(MaybeNamedParam::as_string): Likewise.
	* hir/tree/rust-hir.h: Likewise.
	* parse/rust-parse-impl.h (Parser::parse_macro_match_fragment):
	Likewise.
	(Parser::parse_module): Likewise.
	(Parser::parse_use_tree): Likewise.
	(Parser::parse_maybe_named_param): Likewise.
	* resolve/rust-ast-resolve-implitem.h: Likewise.
	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
	Likewise.
	(ResolveItem::visit): Likewise.
	(flatten_rebind): Likewise.
	(ResolveExternItem::visit): Likewise.
	(rust_flatten_rebind): Likewise.
	(rust_flatten_rebind_nested): Likewise.
	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go):
	Likewise.
	(PatternDeclaration::visit): Likewise.
	(PatternDeclaration::add_new_binding): Likewise.
	* resolve/rust-ast-resolve-stmt.h: Likewise.
	* resolve/rust-ast-resolve-toplevel.h: Likewise.
	* resolve/rust-ast-resolve-type.h: Likewise.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Likewise.
	* typecheck/rust-autoderef.cc: Likewise.
	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select):
	Likewise.
	* typecheck/rust-hir-path-probe.cc (PathProbeType::visit):
	Likewise.
	* typecheck/rust-hir-trait-reference.cc (TraitReference::get_name): Likewise.
	* typecheck/rust-hir-trait-resolve.cc (ResolveTraitItemToRef::visit): Likewise.
	(TraitResolver::resolve_trait): Likewise.
	(TraitItemReference::resolve_item): Likewise.
	(AssociatedImplTrait::setup_raw_associated_types): Likewise.
	* typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit): Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	Likewise.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit): Likewise.
	(TypeCheckImplItem::visit): Likewise.
	(TypeCheckImplItemWithTrait::visit): Likewise.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
	Likewise.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::visit): Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeResolveGenericParam::visit): Likewise.
	* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): Likewise.
	* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args): Likewise.
	* util/rust-attributes.cc (check_doc_attribute): Likewise.
	* util/rust-hir-map.cc (Mappings::insert_macro_def): Likewise.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* lex/rust-lex.cc (is_float_digit):Change types of param to `uint32_t`
	(is_x_digit):Likewise
	(is_octal_digit):Likewise
	(is_bin_digit):Likewise
	(check_valid_float_dot_end):Likewise
	(is_whitespace):Likewise
	(is_non_decimal_int_literal_separator):Likewise
	(is_identifier_start):Likewise
	(is_identifier_continue):Likewise
	(Lexer::skip_broken_string_input):Likewise
	(Lexer::build_token):Remove handling BOM
	(Lexer::parse_in_type_suffix):Modify use of `current_char`
	(Lexer::parse_in_decimal):Likewise
	(Lexer::parse_escape):Likewise
	(Lexer::parse_utf8_escape):Likewise
	(Lexer::parse_partial_string_continue):Likewise
	(Lexer::parse_partial_hex_escape):Likewise
	(Lexer::parse_partial_unicode_escape):Likewise
	(Lexer::parse_byte_char):Likewise
	(Lexer::parse_byte_string):Likewise
	(Lexer::parse_raw_byte_string):Likewise
	(Lexer::parse_raw_identifier):Likewise
	(Lexer::parse_non_decimal_int_literal):Likewise
	(Lexer::parse_decimal_int_or_float):Likewise
	(Lexer::peek_input):Change return type to `Codepoint`
	(Lexer::get_input_codepoint_length):Change to return 1
	(Lexer::peek_codepoint_input):Change to be wrapper of `peek_input`
	(Lexer::skip_codepoint_input):Change to be wrapper of `skip_input`
	(Lexer::test_get_input_codepoint_n_length):Deleted
	(Lexer::split_current_token):Deleted
	(Lexer::test_peek_codepoint_input):Deleted
	(Lexer::start_line):Move backwards
	(assert_source_content):New helper function for selftest
	(test_buffer_input_source):New helper function for selftest
	(test_file_input_source):Likewise
	(rust_input_source_test):New test
	* lex/rust-lex.h (rust_input_source_test):New test
	* rust-lang.cc (run_rust_tests):Add selftest

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-expand.cc
	(MacroExpander::match_repetition_skipped_metavars): New.
	(MacroExpander::match_repetition): Use new method.
	* expand/rust-macro-expand.h
	(MacroExpander::match_repetition_skipped_metavars): New.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): called rust_error_at

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): called rust_error_at

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-expand.cc
	(MacroExpander::match_token): Match token instead of token id.
	* parse/rust-parse-impl.h
	(Parser::skip_token): Add token-skipping variant.
	(Parser::expect_token): Likewise.
	* parse/rust-parse.h
	(Parser::skip_token): Likewise.
	(Parser::expect_token): Likewise.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* lang.opt: Add -frust-name-resolution-2.0 option

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-autoderef.cc (AutoderefCycle::cycle): add check for pointers

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-autoderef.cc: use new selection filter
	* typecheck/rust-hir-dot-operator.cc (MethodResolver::Select): new slection Filter
	* typecheck/rust-hir-dot-operator.h: New select prototype
	* typecheck/rust-hir-type-check-expr.cc: call select
	* typecheck/rust-type-util.cc (try_coercion): new helper
	* typecheck/rust-type-util.h (try_coercion): helper prototype

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): passed "E0277"
	* typecheck/rust-tyty.cc (BaseType::bounds_compatible): passed "E0277"

2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>

	* expand/rust-expand-visitor.cc (ExpandVisitor::visit):
	Expand expressions in more contexts.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
	Visit enum variants.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.cc (BlockExpr::normalize_tail_expr): Refactor
	code and warn about dangling reference.
	* expand/rust-expand-visitor.cc (expand_stmt_attribute):
	Document function and change argument names to make those
	clearer.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_inner_stmts):
	Remove second argument.
	(ExpandVisitor::visit): Remove argument from function call.
	* expand/rust-expand-visitor.h: Update function prototype.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Change
	call to expand_inner_stmts.
	(expand_tail_expr): Change argument name and try to expand the
	last statement as a tail expression once all statements have
	been expanded.
	* expand/rust-expand-visitor.h: Change prototype to accept
	parent class.
	* ast/rust-expr.h: Add try_convert_last_stmt function prototype.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-expr.h: Add a function to take tail expr as well
	as a function to set a tail expression.
	* expand/rust-expand-visitor.cc (expand_tail_expr): Add tail
	expression expansion function.
	(ExpandVisitor::visit): Add call to tail expr expansion in for
	BlockExpr.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>
	    Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc : Change type from pointer to
	reference and expand statements from statements.
	* ast/rust-macro.h: Return macro kind.
	* ast/rust-ast.h: Add Statement kind.
	* ast/rust-item.h: Change module.
	* ast/rust-stmt.h: Return kind.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-expand.cc
	(MacroExpander::expand_decl_macro):
	Use pointers/smart pointers to refer to MatchedFragmentContainer instances.
	(MacroExpander::transcribe_rule): Likewise.
	(MatchedFragmentContainer::get_single_fragment): New implementation.
	(MatchedFragmentContainer::get_fragments): Likewise.
	(MatchedFragmentContainer::add_fragment): Likewise.
	(MatchedFragmentContainer::zero): Likewise.
	(MatchedFragmentContainer::metavar): Likewise.
	* expand/rust-macro-expand.h
	(class MatchedFragmentContainer): Make abstract.
	(class MatchedFragmentContainerMetaVar): New.
	(class MatchedFragmentContainerRepetition): New.
	(class SubstitutionScope):
	Use pointers/smart pointers to refer to MatchedFragmentContainer instances.
	(MacroExpander::transcribe_rule): Likewise.
	* expand/rust-macro-substitute-ctx.cc
	(SubstituteCtx::substitute_metavar): Likewise.
	(SubstituteCtx::check_repetition_amount): Likewise.
	(SubstituteCtx::substitute_repetition): Likewise.
	* expand/rust-macro-substitute-ctx.h
	(class SubstituteCtx): Likewise.

2024-01-16  Muhammad Mahad  <mahadtxt@gmail.com>

	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): called rust_error_at
	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): called rust_error_at

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::ResolveImplBlockSelfWithInference):
	arguments mappings as an out parameter and apply them to the bounds
	* typecheck/rust-hir-type-check-item.h: update the prototype
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
	apply the arguments to the segment type

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
	simplify lookup of the respective predicate
	* typecheck/rust-tyty-subst.cc (SubstitutionArg::SubstitutionArg): track original parameter
	(SubstitutionArg::operator=): update copy ctor
	(SubstitutionArg::get_param_ty): use original param
	(SubstitutionArg::as_string): update as_string
	* typecheck/rust-tyty-subst.h: add new private field

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::ResolveImplBlockSelfWithInference):
	New helper utility to infer non concrete types and handle the case where its not a
	binding generic type (which inherits SubstitutionRef)
	* typecheck/rust-hir-type-check-item.h: new helper prototype
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): use this helper

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-resolve.cc: use lookup_predicate (DefID)
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): fix formatting

2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>

	* ast/rust-ast.h (MacroInvocation::add_semicolon): New method.
	(Expr::to_stmt): Remove method.
	* ast/rust-macro.h (MacroInvocation::add_semicolon): Add override.
	(MacroInvocation::to_stmt): Remove override.
	* ast/rust-stmt.h: Remove use of Expr::to_stmt.
	(ExprStmt::add_semicolon): Add override.
	* expand/rust-macro-expand.h (struct MacroExpander):
	Add EXPR/STMT and remove BLOCK from ContextType.
	* expand/rust-expand-visitor.cc (ExpandVisitor::maybe_expand_expr): Use EXPR context.
	(ExpandVisitor::expand_inner_stmts): Use STMT context.
	(ExpandVisitor::visitor): Remove use of BLOCK context.
	* expand/rust-macro-expand.cc (parse_many): Pass enum by value.
	(transcribe_on_delimiter): Remove function.
	(transcribe_context): Use EXPR/STMT contexts.
	(MacroExpander::parse_proc_macro_output): Use EXPR/STMT contexts.
	(transcribe_many_stmts): Parse statements with semicolons.
	* parse/rust-parse-impl.h (Parser::parse_stmt):
	Delegate macro parsing to parse_expr_stmt, check for ! after macro_rules.
	(Parser::parse_let_stmt): Work around lack of NT tokens.
	(Parser::parse_expr_stmt): Handle statements at end of macro expansions.
	(Parser::parse_expr_stmt): Parse macro statements/expression statements
	starting with a macro.
	(Parser::parse_match_expr): Don't modify flag unnecessarily.
	(Parser::parse_stmt_or_expr):
	Parse macro statements/expression statements starting with a macro.
	(Parser::parse_path_based_stmt_or_expr): Remove method.
	(Parser::parse_macro_invocation_maybe_semi): Remove method.
	(Parser::parse_expr): Move code into left_denotations.
	(Parser::left_denotations): New method.
	(Parser::null_denotation): Split out methods for cases with and without paths.
	(Parser::null_denotation_path): New method.
	(Parser::null_denotation_not_path): New method.
	(Parser::parse_macro_invocation_partial): Don't check for semicolon here.
	* parse/rust-parse.h: Update declarations.
	(struct ParseRestrictions): Additional flag.

2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>

	* ast/rust-ast.cc (BlockExpr::strip_tail_expr):
	Don't normalize tail expression in this method.
	(BlockExpr::normalize_tail_expr): New method that only does the normalization.
	* ast/rust-expr.h: Declare new method.
	* hir/rust-ast-lower-block.h: Normalize tail expressions on blocks before lowering.

2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>

	* ast/rust-ast-dump.cc (Dump::visit): Print macro invocations.

2024-01-16  Raiki Tamura  <tamaron1203@gmail.com>

	* lex/rust-lex.cc (is_whitespace):add all lacked codepoints valid as whitespaces
	(is_identifier_start):new function to check XID_Start and underscore
	(is_identifier_continue):new function to check XID_Continue
	(Lexer::build_token):tokenize Unicode identifiers
	(Lexer::parse_partial_string_continue):add comments
	(Lexer::parse_partial_unicode_escape):add comments
	(Lexer::parse_raw_identifier):change to use `is_identifier_scontinue`
	(Lexer::parse_identifier_or_keyword):change to use `is_identifier_continue`
	(Lexer::parse_char_or_lifetime):change to use `is_identifier_start/continue`
	(Lexer::skip_codepoint_input):do not attempt to skip input when bumping EOF
	* lex/rust-lex.h:add `current_char32` field

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* lex/rust-lex.cc
	(Lexer::classify_keyword): Check if iterator is valid before dereferencing.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-expand.cc
	(MacroExpander::match_repetition): Remove redundant rust_error_at call.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (UnifyRules::go): dont check bounds on placeholders

2024-01-16  tieway59  <tieway59@foxmail.com>

	* typecheck/rust-tycheck-dump.h: Delete this file
	* rust-session-manager.cc: Remove `Session::dump_type_resolution`
	and `TYPE_RESOLUTION_DUMP`
	* rust-session-manager.h: Likewise

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address):
	match the fntype to the candidate

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive.h: Store AstBuilder and location.
	* expand/rust-derive.cc (DeriveVisitor::DeriveVisitor): Update constructor.
	* expand/rust-derive-clone.h: Remove members now stored in `DeriveVisitor`.
	* expand/rust-derive-copy.h: Likewise.
	* expand/rust-derive-clone.cc (DeriveClone::DeriveClone): Update constructor.
	* expand/rust-derive-copy.cc (DeriveCopy::DeriveCopy): Likewise.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-item.cc (CompileItem::visit): ensure assoicated types are setup
	* typecheck/rust-hir-trait-reference.h: new interface for concrete impl block
	* typecheck/rust-hir-trait-resolve.cc (AssociatedImplTrait::setup_raw_associated_types):
	ensure we setup assoicated types for this impl block

2024-01-16  Dave Evans  <dave@dmetwo.org>

	* backend/rust-compile-expr.cc (check_match_scrutinee): Add REF type to rust_assert.
	(CompileExpr::visit): Add REF type for scrutinee_kind in MatchExpr visitor.

2024-01-16  TieWay59  <tieway59@foxmail.com>

	* typecheck/rust-hir-type-check-expr.cc: Remove obsolete error diagnostic

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit):
	use new interface
	* typecheck/rust-type-util.cc (types_compatable): implementation of new interface
	* typecheck/rust-type-util.h (types_compatable): prototype
	* typecheck/rust-unify.cc (UnifyRules::expect_placeholder):
	It is allow for unification against placeholders

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc (derive_item): Add const
	attribute to the trait name argument.
	* expand/rust-macro-expand.h (struct MacroExpander): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc (get_traits_to_derive): Change
	assertion to allow empty derive directives.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc (expand_attribute): Add function
	to expand a given attribute on a given item.
	* expand/rust-macro-expand.h (struct MacroExpander): Change
	return type to ast fragment.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc (get_traits_to_derive): Change
	the function to get traits in a given attribute instead of an
	attribute vector.
	(ExpandVisitor::expand_struct_fields): Remove call in visitor.
	(ExpandVisitor::expand_function_params): Likewise.
	(ExpandVisitor::expand_closure_params): Likewise.
	(ExpandVisitor::visit): Likewise.
	(ExpandVisitor::expand_outer_attribute): Remove function.
	(ExpandVisitor::visit_outer_attrs): Remove function.
	* expand/rust-expand-visitor.h: Remove function prototypes.
	(ExpandVisitor::visit_outer_attrs): Remove function.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.h: Remove fragment collection fro
	procedural macros.
	* expand/rust-macro-expand.h (struct MacroExpander): Remove
	procedural macro fragment from expander.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-fragment.cc (Fragment::Fragment): Remove
	overwrite member in constructor.
	(Fragment::operator=): Removal of overwrite member in copy.
	(Fragment::should_overwrite): Remove overwrite getter.
	* ast/rust-ast-fragment.h: Remove overwrite boolean member.
	* expand/rust-expand-visitor.cc (derive_item): Add a function to
	derive items using the expander for now.
	(builtin_derive_item): Rename from derive_item to
	builtin_derive_item.
	(ExpandVisitor::visit): Remove visit to derive attributes.
	(ExpandVisitor::expand_derive): Remove derive attribute visitor.
	(ExpandVisitor::visit_attrs_with_derive): Likewise.
	* expand/rust-expand-visitor.h: Update insertion of other kind
	of proc macros. We no longer have an overwrite attribute in the
	fragment.
	* expand/rust-macro-expand.cc (MacroExpander::parse_procmacro_output):
	Return the fragment instead of inserting it.
	* expand/rust-macro-expand.h (struct MacroExpander): Return
	fragment.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.h: Update enum name to match
	definition.
	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_derive):
	Add call to expander.
	(ExpandVisitor::expand_outer_attribute):
	Change call to macro expander.
	(ExpandVisitor::expand_inner_attribute): Likewise.
	* expand/rust-expand-visitor.h: Remove const attribute to match
	visitor declaration. Attach result to the AST. Add condition for
	item erasure.
	* expand/rust-proc-macro.h: Add token collector and expansion
	call. Add lexers and parsers for each proc macro type and uses
	them to parse macro output.
	* expand/rust-macro-expand.h (struct MacroExpander): Add
	functions.
	* expand/rust-proc-macro.cc (ProcMacroExpander::import_proc_macros):
	Moved from here...
	* expand/rust-macro-expand.cc (MacroExpander::import_proc_macros):
	... to here. Unify procedural macro parsing under one function.
	Add a flag to determine whether it originate from a derive
	macro.
	(MacroExpander::parse_procmacro_output):
	Parse macro output to statements. Store an error on parsing
	failure.
	* Make-lang.in: Add const_TokenPtr specific lexer.
	* expand/rust-proc-macro-invoc-lexer.cc: New file.
	* expand/rust-proc-macro-invoc-lexer.h: New file.
	* rust-session-manager.cc (Session::expansion): Remove
	ProcMacroExpander declaration.
	* ast/rust-ast-fragment.cc (Fragment::Fragment): Add overwrite
	flag.
	(Fragment::should_overwrite): Add a getter to determine whether
	the fragment shall overwrite it's parent or be appended after.
	* ast/rust-ast-fragment.h: Add flag to declaration.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-hir-map.cc (Mappings::insert_bang_proc_macro):
	Add a function to insert a new bang proc macro.
	(Mappings::lookup_bang_proc_macro): Add a function to lookup a
	bang procedural macro.
	(Mappings::insert_derive_proc_macro): Add a function to insert a
	derive procedural macro.
	(Mappings::lookup_derive_proc_macro): Add a function to lookup a
	derive procedural macro.
	(Mappings::insert_attribute_proc_macro): Add a function to
	insert an attribute procedural macro.
	(Mappings::lookup_attribute_proc_macro): Add a function to
	lookup an attribute procedural macro.
	* util/rust-hir-map.h: Add function prototypes.
	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_outer_attribute):
	Implement expansion of outer attributes.
	(ExpandVisitor::expand_inner_attribute):
	Add call for inner attribute expansion.
	* expand/rust-expand-visitor.h:
	Add new procedural macro expander attribute.
	* expand/rust-proc-macro.cc (load_macros_array): Add a function
	to load the proc macro array from a given shared object.
	(load_macros): Add a function to retrieve procedural macro
	vector from a given shared object.
	(ProcMacroExpander::import_proc_macros): Add a function to load
	procedural macros from a given extern crate name.
	* expand/rust-proc-macro.h (RUST_PROC_MACRO_H): Add new
	proc-macro file.
	(class ProcMacroExpander): Add new ProcMacroExpander class.
	* rust-session-manager.cc (Session::expansion): Create new macro
	expander and feed it to the expand visitor.
	* util/rust-attributes.cc: Add macro_export builtin attribute.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Fix
	attribute collection.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.h: Make trivial visitors public.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add rust-proc-macro object to list.
	* expand/rust-proc-macro.cc: New file.
	* expand/rust-proc-macro.h: New file.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-attributes.cc: Add attribute to the table.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Move
	implementation from here...
	* ast/rust-ast-collector.h: ... to here.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* Make-lang.in: Add "rust-dir-owner.o".
	* ast/rust-ast.cc: Include "rust-dir-owner.h".
	(Module::process_file_path):
	Handle non-mod-rs external file modules properly.
	* parse/rust-parse-impl.h: Include "rust-dir-owner.h".
	(Parser::parse_module):
	Handle non-mod-rs external file modules properly.
	* util/rust-dir-owner.cc: New file.
	* util/rust-dir-owner.h: New file.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-builtins.cc: Fix comments.
	(MacroBuiltin::proc_macro_builtin): Add error message.
	* expand/rust-macro-builtins.h: Fix comments.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-resolve.cc: when the bound is concrete keep the mapping
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): add missing call
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): make this the same as paths

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-optional.h
	(class Optional): Add volatile field to union.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-substitute-ctx.cc
	(SubstituteCtx::substitute_metavar): Substitute crate metavar.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h
	(Parser::null_denotation): Allow struct expression referencing.

2024-01-16  Charalampos Mitrodimas  <charmitro@gmail.com>

	* ast/rust-ast-dump.cc (Dump::visit):
	print literals based on their type.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-builtins.cc (MacroBuiltin::dummy): New function.
	* expand/rust-macro-builtins.h: Declare it.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-builder.cc (AstBuilder::struct_expr_struct): New function.
	(AstBuilder::let): Likewise.
	(AstBuilder::struct_expr): Likewise.
	(AstBuilder::struct_expr_field): Likewise.
	(AstBuilder::field_access): Likewise.
	(AstBuilder::wildcard): Likewise.
	* ast/rust-ast-builder.h: Likewise.
	* expand/rust-derive-clone.cc (DeriveClone::visit_union): Implement
	properly.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Add new files.
	* expand/rust-derive.cc (DeriveVisitor::derive): Call into DeriveCopy.
	* expand/rust-derive-copy.cc: New file.
	* expand/rust-derive-copy.h: New file.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-derive-clone.cc (DeriveClone::visit_struct): Implement proper
	cloning for structs with fields.
	* ast/rust-ast-builder.cc (AstBuilder::struct_expr): New function.
	(AstBuilder::struct_expr_field): Likewise.
	(AstBuilder::field_access): Likewise.
	(AstBuilder::let): Likewise.
	* ast/rust-ast-builder.h: Declare new functions.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (convert): Use a variable instead
	of multiple nested calls.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-lex.h: Make build_token method public.
	* lex/rust-token.h: Add a setter for a token location.
	* util/rust-token-converter.cc (convert): Add the function to
	convert from a Span to a Location.
	(from_ident): Convert Ident span to a Location.
	(from_literal): Convert Literal span to a Location.
	(from_punct): Convert Punct span to a Location.
	(from_group): Convert Group span to a Location.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (convert): Add implementation.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (convert): Update call to
	constructors with location information.
	(handle_suffix): Convert token locus to a Span and use it in the
	literal.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-expand.cc
	(MacroExpander::try_match_rule): Don't match delimiters for root matcher.
	(MacroExpander::match_matcher): Add option to match delimiters.
	* expand/rust-macro-expand.h
	(MacroExpander::match_matcher): Likewise.
	* parse/rust-parse-impl.h
	(Parser::skip_token): Add zero argument method.
	* parse/rust-parse.h:
	(Parser::skip_token): Likewise.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* Make-lang.in: remove files
	* backend/rust-compile-block.h: fix headers
	* backend/rust-compile-expr.h: likewise
	* backend/rust-compile-fnparam.h: likewise
	* backend/rust-compile-item.h: likewise
	* backend/rust-compile-pattern.h: likewise
	* backend/rust-compile-resolve-path.h: likewise
	* backend/rust-compile-stmt.h: likewise
	* typecheck/rust-autoderef.cc: likewise
	* typecheck/rust-hir-path-probe.cc: likewise
	* typecheck/rust-hir-path-probe.h: likewise
	* typecheck/rust-hir-trait-reference.h: likewise
	* typecheck/rust-hir-trait-resolve.cc: use a for loop instead
	* typecheck/rust-hir-trait-resolve.h: fix headers
	* typecheck/rust-hir-type-check-expr.h: likewise
	* typecheck/rust-hir-type-check-implitem.h: likewise
	* typecheck/rust-hir-type-check-item.h: likewise
	* typecheck/rust-hir-type-check-path.cc: likewise
	* typecheck/rust-hir-type-check-pattern.h: likewise
	* typecheck/rust-hir-type-check-stmt.h: likewise
	* typecheck/rust-hir-type-check-type.h: likewise
	* typecheck/rust-hir-type-check-util.cc: Removed.
	* typecheck/rust-hir-type-check-util.h: Removed.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Add new object files to Makefile.
	* expand/rust-expand-visitor.cc (is_derive): Move function.
	(is_builtin): Likewise.
	(get_traits_to_derive): New function.
	(derive_item): Likewise.
	(ExpandVisitor::visit): Visit item/statements containers.
	(ExpandVisitor::visit_outer_attrs): Take a reference on the attribute
	instead of a copy.
	(ExpandVisitor::is_derive): Deleted function.
	(ExpandVisitor::is_builtin): Likewise.
	* expand/rust-expand-visitor.h (RUST_EXPAND_VISITOR_H): Add missing #ifdef
	guards.
	(is_derive): Declare function.
	(is_builtin): Likewise.
	* expand/rust-macro-builtins.cc (builtin_macro_from_string): Use new
	MacroBuiltin::builtins map.
	(make_macro_path_str): Likewise.
	* expand/rust-macro-builtins.h (enum class): Add builtin derive macros.
	* expand/rust-derive-clone.cc: New file.
	* expand/rust-derive-clone.h: New file.
	* expand/rust-derive.cc: New file.
	* expand/rust-derive.h: New file.
	* util/rust-hir-map.cc (Mappings::insert_macro_def): Fix logic for
	setting builtin macro transcribers.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-builder.cc: New file.
	* ast/rust-ast-builder.h: New file.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-invoc-lexer.cc: Add missing copyright header.
	* expand/rust-macro-substitute-ctx.cc: Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-session-manager.h:
	Include "rust-optional.h".
	(struct TargetOptions):
	Store values in config key/value pairs as Optional<std::string> rather than std::string.
	* rust-session-manager.cc
	(TargetOptions::dump_target_options):
	Handle Optional<std::string> values.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-casts.cc (TypeCastRules::check): do coercion
	(TypeCastRules::emit_cast_error): clang-format

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* resolve/rust-ast-resolve-stmt.cc (ResolveStmt::visit): add name resolution
	* resolve/rust-ast-resolve-stmt.h: likewise
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): insert resolved node

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* resolve/rust-ast-resolve-pattern.cc: remove unused

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): fix missing pop

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): remove unused

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::translate): hir lowering
	(ASTLoweringStmt::visit): likewise
	* hir/rust-ast-lower-stmt.h: likewise

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-substitute-ctx.cc
	(SubstituteCtx::substitute_metavar): Allow substitution failure.
	(SubstituteCtx::substitute_token):
	Handle substitution failure, include dollar sign in count of tokens to substitute.
	(SubstituteCtx::substitute_tokens):
	Include dollar sign in count of tokens to substitute.
	* expand/rust-macro-substitute-ctx.h
	(SubstituteCtx::substitute_metavar):
	Adjust signature and document new substitution failure handling.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-substitute-ctx.cc
	(SubstituteCtx::check_repetition_amount):
	Ignore single fragments while checking repetition amount.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): stop if error
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::assemble_sized_builtin): fix sized options
	* typecheck/rust-tyty.cc (BaseType::satisfies_bound): its ok if its an ?T
	(BaseType::bounds_compatible): likewise
	* typecheck/rust-tyty.h: update prototype
	* typecheck/rust-unify.cc (UnifyRules::go): check both sides bounds

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (HIRCompileBase::resolve_deref_adjustment):
	reuse op overload code
	* typecheck/rust-autoderef.cc (Adjuster::try_deref_type): update
	(Adjuster::try_raw_deref_type): likewise
	* typecheck/rust-autoderef.h: likewise
	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select):
	improve debug loging

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address): refactor
	* backend/rust-compile-base.h: likewise
	* backend/rust-compile-expr.cc (CompileExpr::visit): likewise
	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): likewise

2024-01-16  David Malcolm  <dmalcolm@redhat.com>

	* typecheck/rust-hir-trait-reference.cc (TraitItemReference::is_optional): Remove
	stray semicolon.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::go): Cleanup
	order of calls when accumulating #[macro_use] macros.
	(EarlyNameResolver::visit): Likewise.

2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>

	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::accumulate_escaped_macros):
	Remove unnecessary visit.

2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>

	* ast/rust-ast.cc (Attribute::check_cfg_predicate):
	Only check first item as a predicate.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-optional.h
	(operator==): New for Optional<T> == Optional<U>.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h
	(Parser::parse_attr_input): Parse AttrInputMacro.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.cc (TokenCollector::visit): Propagate
	coretype hint.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-optional.h
	(class Optional<T>): Improve inner state.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-substitute-ctx.cc
	(SubstituteCtx::check_repetition_amount): Handle keywords.
	(SubstituteCtx::substitute_token): Likewise.
	* lex/rust-token.cc
	(Token::get_str): Likewise.
	* parse/rust-parse-impl.h
	(Parser::parse_macro_match_fragment): Likewise.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h: Add `outer_attrs` to Item.
	* ast/rust-expr.h: Make use of new inheritance methods.
	* ast/rust-item.h: Likewise.
	* ast/rust-macro.h: Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (dispatch_float_literals): Remove
	function.
	(handle_suffix): Rename old dispatch and add one LitKind
	argument.
	(dispatch_integer_literals): Remove function.
	(convert): Change call from dispatch to suffix handler.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-token.h: Implement hash for token id enumeration.
	* util/rust-token-converter.cc (dispatch_float_literals): Update
	to new internals.
	(dispatch_integer_literals): Likewise.
	(convert): Likewise.
	(string_literal): Remove function.
	(byte_string_literal): Likewise.
	(unsigned_literal): Likewise.
	(signed_literal): Likewise.
	(from_literal): Update with new internals.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-dump.cc
	(Dump::visit): Add AttrInputMacro visitor.
	* ast/rust-ast-dump.h:
	(Dump::visit): Likewise.
	* ast/rust-ast-full-decls.h
	(class AttrInputMacro): New.
	* ast/rust-ast-collector.cc
	(TokenCollector::visit):
	Add and call out to AttrInputMacro visitor.
	* ast/rust-ast-collector.h:
	(TokenCollector::visit): Add AttrInputMacro visitor.
	* ast/rust-ast-visitor.h:
	(ASTVisitor::visit): Likewise.
	* ast/rust-ast.cc
	(AttrInputMacro::accept_vis): New.
	(AttrInputMacro::as_string): New.
	(AttrInputMacro::AttrInputMacro): New.
	(AttrInputMacro::operator=): New.
	* ast/rust-ast.h:
	(AttrInput::AttrInputType::MACRO): New.
	* ast/rust-expr.h
	(class AttrInputMacro): New.
	* checks/errors/rust-feature-gate.h:
	(FeatureGate::visit): Add AttrInputMacro visitor.
	* expand/rust-cfg-strip.cc
	(CfgStrip::visit): Likewise.
	* expand/rust-cfg-strip.h:
	(CfgStrip::visit): Likewise.
	* expand/rust-expand-visitor.cc
	(ExpandVisitor::visit): Likewise.
	* expand/rust-expand-visitor.h:
	(ExpandVisitor::visit): Likewise.
	* hir/rust-ast-lower-base.cc
	(ASTLoweringBase::visit): Likewise.
	* hir/rust-ast-lower-base.h:
	(ASTLoweringBase::visit): Likewise.
	* resolve/rust-ast-resolve-base.cc
	(ResolverBase::visit): Likewise.
	* resolve/rust-ast-resolve-base.h:
	(ResolverBase::visit): Likewise.
	* resolve/rust-early-name-resolver.cc
	(EarlyNameResolver::visit): Likewise.
	* resolve/rust-early-name-resolver.h:
	(EarlyNameResolver::visit): Likewise.
	* util/rust-attributes.cc
	(AttributeChecker::visit): Likewise.
	(check_doc_attribute): Handle AttrInputType::MACRO.
	* util/rust-attributes.h:
	(AttributeChecker::visit): Add AttrInputMacro visitor.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-macro.h
	(MacroInvocation::clone_macro_invocation_impl): Make public.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-optional.h
	(struct std::hash<Optional<T>>): New.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-optional.h
	(class Optional<T&>): Use pointers internally.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-dump.cc (Dump::visit): Implement dump for
	`TupleIndexExpr`.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* lex/rust-token.cc
	(token_id_keyword_string): Return std::string reference.
	* lex/rust-token.h
	(token_id_keyword_string): Return std::string reference.

2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>

	* ast/rust-ast.h (Expr::as_expr_without_block): Remove.
	(Expr::set_outer_attrs): Make public in base class.
	* expand/rust-macro-expand.cc:
	Add fixme comment for pre-existing bug.
	* hir/tree/rust-hir.h: Remove Expr::as_expr_without_block.
	* parse/rust-parse-impl.h (Parser::parse_lifetime): Use lifetime_from_token.
	(Parser::lifetime_from_token): New method.
	(Parser::null_denotation): Handle labelled loop expressions and for loop expressions.
	(Parser::parse_loop_label): Make initial token a parameter.
	(Parser::parse_labelled_loop_expr): Likewise.
	(Parser::parse_for_loop_expr): Allow FOR token to already be skipped.
	(Parser::parse_expr): Handle expr_can_be_stmt.
	(Parser::parse_expr_with_block): Remove.
	(Parser::parse_expr_stmt_with_block): Remove.
	(Parser::parse_expr_stmt_without_block): Remove.
	(Parser::parse_expr_without_block): Remove.
	(Parser::parse_stmt_or_expr_with_block): Remove.
	(Parser::parse_expr_stmt): Use parse_expr directly.
	(Parser::parse_match_expr): Likewise.
	(Parser::parse_stmt): Use parse_expr_stmt in more cases.
	(Parser::parse_stmt_or_expr):
	Rename from parse_stmt_or_expr_without_block, use parse_expr directly.
	(Parser::parse_block_expr): Update error message.
	* parse/rust-parse.h: Update declarations.

2024-01-16  Matthew Jasper  <mjjasper1@gmail.com>

	* ast/rust-ast-full-decls.h (class ExprStmtWithoutBlock): Remove.
	(class ExprStmtWithBlock): Remove.
	* ast/rust-stmt.h (class ExprStmtWithoutBlock): Remove.
	(class ExprStmtWithBlock): Remove.
	(class ExprStmt):
	Make non-abstract, add common functionality from removed base classes.
	* ast/rust-ast.h: Move to_stmt to base class.
	* ast/rust-ast.cc (ExprStmtWithBlock::as_string): Remove.
	* ast/rust-macro.h: Use new signature for to_stmt.
	(ExprStmt::as_string): New method.
	(ExprStmtWithoutBlock::as_string): Remove.
	(BlockExpr::strip_tail_expr): Update for removed classes.
	(ExprStmtWithoutBlock::accept_vis): Remove.
	(ExprStmtWithBlock::accept_vis): Remove.
	(ExprStmt::accept_vis): New method.
	* ast/rust-ast-dump.cc (Dump::visit): Update for removed classes.
	* ast/rust-ast-dump.h: Likewise.
	* ast/rust-ast-collector.h: Likewise.
	* ast/rust-ast-collector.cc (TokenStream::visit): Likewise.
	* ast/rust-ast-visitor.h: Likewise.
	* checks/errors/rust-feature-gate.h: Likewise.
	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Likewise.
	* expand/rust-expand-visitor.h: Likewise.
	* expand/rust-cfg-strip.cc (CfgStrip::visit): Likewise.
	* expand/rust-cfg-strip.h: Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
	* hir/rust-ast-lower-base.h: Likewise.
	* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Likewise.
	* hir/rust-ast-lower-stmt.h: Likewise.
	* util/rust-attributes.cc (AttributeChecker::visit): Likewise.
	* util/rust-attributes.h: Likewise.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
	* resolve/rust-ast-resolve-base.h: Likewise.
	* resolve/rust-ast-resolve-stmt.h: Likewise.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
	Likewise.
	* resolve/rust-early-name-resolver.h: Likewise.
	* parse/rust-parse-impl.h (Parser::parse_match_expr): Likewise.
	(Parser::parse_stmt_or_expr_without_block): Likewise.
	* parse/rust-parse.h: Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* lex/rust-token.cc
	(token_id_is_keyword): New.
	(token_id_keyword_string): New.
	* lex/rust-token.h
	(token_id_is_keyword): New.
	(token_id_keyword_string): New.
	* expand/rust-macro-expand.cc
	(MacroExpander::match_fragment): Match keywords for ident fragment.
	* parse/rust-parse-impl.h
	(Parser::parse_identifier_or_keyword_token): Add.
	* parse/rust-parse.h
	(Parser::parse_identifier_or_keyword_token): Add.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (dispatch_float_literals): Invert
	suffix condition.
	(dispatch_integer_literals): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (convert): Fix style.
	(from_ident): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (dispatch_float_literals): Make
	input immutable.
	(dispatch_integer_literals): Likewise.
	(convert): Likewise.
	* util/rust-token-converter.h (convert): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (from_tokenstream): Add
	conversion of Ident structures.
	(from_ident): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (from_literal): Add function
	implementation.
	(string_literal): String literal specific handler.
	(byte_string_literal): Byte string specific handler.
	(unsigned_literal): Unsigned literal specific handler.
	(signed_literal): Signed literal specific handler.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (from_punct): Add conversion
	implementation.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (dispatch_float_literals): Accept
	const_TokenPtr instead of TokenPtr.
	(dispatch_integer_literals): Likewise.
	(convert): Accept vector of const_TokenPtr instead of a vector
	of TokenPtr.
	* util/rust-token-converter.h (convert): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (from_tokenstream): Add vector
	for joined punct accumulation.
	(from_ident): Accept const pointer vector.
	(from_literal): Likewise.
	(from_punct): Likewise.
	(from_group): Likewise.
	(from_tokentree): Likewise.
	(convert): Likewise.
	* util/rust-token-converter.h (convert): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (from_tokenstream): Add call to
	from_tokentree.
	(from_tokentree): Add implementation, from the from_tokenstream
	function.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (from_punct): Add group
	conversion.
	(from_group): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (to_tokenstream): Change function
	name from to_tokenstream to convert.
	(convert): Likewise.
	(from_tokenstream): Add tokenstream handler.
	(from_ident): Add empty function.
	(from_literal): Likewise.
	(from_punct): Likewise.
	(from_group): Likewise.
	* util/rust-token-converter.h (to_tokenstream): Change function
	name from to_tokenstream to convert.
	(convert): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* util/rust-token-converter.cc (dispatch_float_literals): Remove
	suffixed temporary variable.
	(dispatch_integer_literals): Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add new rust-token-converter file.
	* ast/rust-ast-collector.cc (pop_group): Function moved from
	TokenCollector.
	(dispatch_float_literals): Likewise.
	(dispatch_integer_literals): Likewise.
	(TokenCollector::collect): Removed function.
	* ast/rust-ast-collector.h: Removed function prototype.
	* util/rust-token-converter.cc: New file.
	* util/rust-token-converter.h: New file.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-collector.h (RUST_AST_TOKENSTREAM_H): Rename
	headerguard from RUST_AST_TOKENSTREAM_H ...
	(RUST_AST_COLLECTOR_H): ... to RUST_AST_COLLECTOR_H.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Change file name.
	* ast/rust-ast-tokenstream.cc: Moved to...
	* ast/rust-ast-collector.cc: ...here.
	* ast/rust-ast-tokenstream.h: Moved to...
	* ast/rust-ast-collector.h: ...here.
	* rust-session-manager.cc: Change header name.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::TokenStream): Rename
	TokenStream to TokenCollector.
	(TokenCollector::TokenCollector): Likewise.
	(TokenStream::collect_tokens): Likewise.
	(TokenCollector::collect_tokens): Likewise.
	(TokenStream::collect): Likewise.
	(TokenCollector::collect): Likewise.
	(TokenStream::visit): Likewise.
	(TokenCollector::visit): Likewise.
	(TokenStream::visit_items_joined_by_separator): Likewise.
	(TokenCollector::visit_items_joined_by_separator): Likewise.
	(TokenStream::visit_as_line): Likewise.
	(TokenCollector::visit_as_line): Likewise.
	(TokenStream::visit_items_as_lines): Likewise.
	(TokenCollector::visit_items_as_lines): Likewise.
	(TokenStream::visit_items_as_block): Likewise.
	(TokenCollector::visit_items_as_block): Likewise.
	(TokenStream::trailing_comma): Likewise.
	(TokenCollector::trailing_comma): Likewise.
	(TokenStream::newline): Likewise.
	(TokenCollector::newline): Likewise.
	(TokenStream::indentation): Likewise.
	(TokenCollector::indentation): Likewise.
	(TokenStream::increment_indentation): Likewise.
	(TokenCollector::increment_indentation): Likewise.
	(TokenStream::decrement_indentation): Likewise.
	(TokenCollector::decrement_indentation): Likewise.
	(TokenStream::visit_closure_common): Likewise.
	(TokenCollector::visit_closure_common): Likewise.
	(TokenStream::visit_loop_common): Likewise.
	(TokenCollector::visit_loop_common): Likewise.
	(TokenStream::visit_function_common): Likewise.
	(TokenCollector::visit_function_common): Likewise.
	* ast/rust-ast-tokenstream.h (class TokenStream): Likewise.
	(class TokenCollector): Likewise.
	* rust-session-manager.cc (Session::dump_tokenstream): Rename
	token vector for clearer intent.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (dispatch_float_literals): Add
	dispatch function for floating point literals.
	(TokenStream::collect): Add call to dispatcher.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (dispatch_integer_literals):
	Add a static function to dispatch depending on the core type.
	(TokenStream::collect): Add call to dispatch function.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::collect): Add
	conversion for byte string and string.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::collect): Add Ident
	conversion.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::collect): Add joint
	punct token conversion.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::collect): Add
	conversion for single punctuation tokens.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (pop_group): Add a function to
	easily collect a group from a given stack at the end of it.
	(TokenStream::collect): Collect tokens as a rust compatible
	Tokenstream type.
	* ast/rust-ast-tokenstream.h (RUST_AST_TOKENSTREAM_H): Move
	includes to stay constrained by guards.

2024-01-16  M V V S Manoj Kumar  <mvvsmanojkumar@gmail.com>

	* ast/rust-ast-full-decls.h (enum class): Added declaration.
	(struct AnonConst): Added declaration.
	(struct InlineAsmRegOrRegClass): Added declaration.
	(struct InlineAsmOperand): Added declaration.
	(struct InlineAsmPlaceHolder): Added declaration.
	(struct InlineAsmTemplatePiece): Added declaration.
	(struct TupleClobber): Added declaration.
	(struct TupleTemplateStr): Added declaration.
	* ast/rust-expr.h (class InlineAsm): Defined all it's data members outside.
	(enum class InlineAsmOptions): Converted this to a enum class so we could use it in the HIR.
	(struct AnonConst): Defined it independent of the AST::InlineAsm node.
	(struct InlineAsmRegOrRegClass): Defined it independent of the AST::InlineAsm node.
	(struct InlineAsmOperand): Defined it independent of the AST::InlineAsm node.
	(struct InlineAsmPlaceHolder): Defined it independent of the AST::InlineAsm node.
	(struct InlineAsmTemplatePiece): Defined it independent of the AST::InlineAsm node.
	(struct TupleClobber): Defined it independent of the AST::InlineAsm node.
	(struct TupleTemplateStr): Defined it independent of the AST::InlineAsm node.
	* hir/tree/rust-hir-expr.h (class InlineAsmReg): Added defination.
	(class InlineAsmRegClass): Added defination.
	(struct InlineAsmRegOrRegClass): Added defination.
	(class InlineAsm): Added defination.
	* hir/tree/rust-hir-full-decls.h (class InlineAsmReg): Added declaration.
	(class InlineAsmRegClass): Added declaration.
	(struct InlineAsmRegOrRegClass): Added declaration.
	(class InlineAsm): Added declaration.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc: track return type in fncontext
	* backend/rust-compile-context.h (struct fncontext): likewise
	* backend/rust-compile-expr.cc (CompileExpr::visit): apply coercion site
	(CompileExpr::generate_closure_function): update push_context
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::compile_function_body):
	add missing coercion_site codegen

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): refactr
	(CompileExpr::get_fn_addr_from_dyn): likewise
	(CompileExpr::get_receiver_from_dyn): likewise
	(CompileExpr::type_cast_expression): likewise
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): likewise
	(TyTyResolveCompile::create_dyn_obj_record): likewise
	(TyTyResolveCompile::create_slice_type_record): likewise
	(TyTyResolveCompile::create_str_type_record): likewise
	* backend/rust-compile-type.h: likewise
	* backend/rust-compile.cc (HIRCompileBase::coercion_site1): likewise
	(HIRCompileBase::coerce_to_dyn_object): refactor
	* backend/rust-tree.h (SLICE_FLAG): removed
	(SLICE_TYPE_P): removed
	(RS_DST_FLAG): new flag
	(RS_DST_FLAG_P): new predicate
	* typecheck/rust-tyty.cc (ReferenceType::is_dyn_object): new helper
	(ReferenceType::is_dyn_obj_type): likewise
	(PointerType::is_dyn_object): likewise
	(PointerType::is_dyn_obj_type): likewise
	* typecheck/rust-tyty.h (class DynamicObjectType): moved up

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): add filter

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::compile_function_body): use unit_expression
	(HIRCompileBase::unit_expression): new helper
	* backend/rust-compile-base.h: update prototype
	* backend/rust-compile-block.cc (CompileBlock::visit): use unit_expression
	* backend/rust-compile-expr.cc (CompileExpr::visit): likewise
	(CompileExpr::generate_closure_function): likewise
	* backend/rust-compile-implitem.cc (CompileTraitItem::visit): cleanup
	* backend/rust-compile-item.cc (CompileItem::visit): likewise
	* backend/rust-compile-pattern.cc (CompilePatternLet::visit): likewise
	* backend/rust-compile-resolve-path.cc (ResolvePathRef::resolve): likewise
	* backend/rust-compile-type.cc (TyTyResolveCompile::get_unit_type): new helper
	(TyTyResolveCompile::visit): use new unit_type helper
	* backend/rust-compile-type.h: likewise
	* rust-backend.h: simplify the return_expression
	* rust-gcc.cc (Gcc_backend::function_type): likewise
	(Gcc_backend::return_statement): likewise
	* backend/rust-constexpr.cc (eval_constant_expression): remove bad assertion

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* checks/lints/rust-lint-unused-var.cc (UnusedVariables::Lint): use the decl not the expr

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h
	(Parser::parse_trait_impl_function_or_method):
	Parse function/method qualifiers after "default".

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc: add missing compile_locals call

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h (class AttrInputMetaItemContainer): Run clang-format.
	(class DelimTokenTree): Likewise.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver.cc (is_macro_use_module): New function.
	(EarlyNameResolver::accumulate_escaped_macros): New function.
	(EarlyNameResolver::go): Use `accumulate_escaped_macros`.
	(EarlyNameResolver::visit): Likewise.
	* resolve/rust-early-name-resolver.h: Declare `accumulate_escaped_macros`.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h: Add take_items() and set_items() method to Crate.
	* ast/rust-item.h: Add take_items() and set_items() method to Module.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h (enum Kind): Add MODULE variant.
	* ast/rust-item.h: Return Kind::MODULE in AST::Module::get_kind().

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-macro.cc (builtin_macro_from_string): Move function.
	* ast/rust-macro.h (enum class): Move enum.
	(builtin_macro_from_string): Move function.
	* expand/rust-macro-builtins.cc (builtin_macro_from_string): New function.
	(make_macro_path_str): Use new bi-map.
	(parse_single_string_literal): Use new `BuiltinMacro` enum.
	(MacroBuiltin::include_bytes_handler): Likewise.
	(MacroBuiltin::include_str_handler): Likewise.
	(MacroBuiltin::compile_error_handler): Likewise.
	(MacroBuiltin::concat_handler): Likewise.
	(MacroBuiltin::env_handler): Likewise.
	(MacroBuiltin::include_handler): Likewise.
	(MacroBuiltin::sorry): New function.
	* expand/rust-macro-builtins.h (enum class): Move enum here.
	(builtin_macro_from_string): New function declaration.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Use
	new function.
	* util/rust-hir-map.cc (Mappings::insert_macro_def): Remove old
	builtin macro map.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-builtins.cc: Include bidirectional map.
	* util/bi-map.h: New file.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast.cc
	(BlockExpr::strip_tail_expr):
	Try to take new tail expression from statements list.
	* ast/rust-expr.h
	(BlockExpr::strip_tail_expr):
	Replace definition with only declaration.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast.h
	(Stmt::is_expr): New.
	* ast/rust-stmt.h
	(ExprStmt::is_expr): New.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-substitute-ctx.cc
	(SubstituteCtx::substitute_repetition): Fix out-of-bounds.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Link against the static libproc_macro.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lang.opt: Add frust-extern option.
	* rust-session-manager.cc (Session::handle_extern_option): Add
	frust-extern option handler.
	* rust-session-manager.h (struct Session): Add an unordered map
	to store library name and locations.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h
	(Parser::parse_generic_params):
	Handle parameter parsing error.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc: update for op overload

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): use the predicate
	(TypeCheckExpr::resolve_segments): cleanup

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-reference.cc (AssociatedImplTrait::AssociatedImplTrait):
	bind the predicate
	(AssociatedImplTrait::get_trait): remove
	(AssociatedImplTrait::get_predicate): new getter
	* typecheck/rust-hir-trait-reference.h: bind predicate
	* typecheck/rust-hir-type-check-item.cc: update ctor
	* typecheck/rust-type-util.cc (lookup_associated_impl_block): new function
	* typecheck/rust-type-util.h (class BaseType): remove unused forward decl
	(lookup_associated_impl_block): new helper
	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::is_equal): new
	* typecheck/rust-tyty-subst.cc (SubstitutionRef::lookup_associated_impl): use new helper
	(SubstitutionRef::monomorphize): update usage/error handling
	* typecheck/rust-tyty-subst.h: remove old prototype
	* typecheck/rust-tyty.h: add is_equal decl

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc
	(TypeCheckPattern::visit): Type check StructPatternFieldIdentPat.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/rust-ast-lower-pattern.cc
	(ASTLoweringPattern::visit): Lower StructPatternFieldIdentPat.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::resolve_fn_trait_call):
	return the assoicated predicate
	* typecheck/rust-hir-type-check-expr.h: update prototype

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-ast-lower-implitem.h: add missing where clause lowering

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* hir/tree/rust-hir-item.h: add get_locus() const

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-pattern.h
	(StructPatternFieldIdentPat::get_identifier): New.
	(StructPatternFieldIdentPat::get_pattern): New.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* ast/rust-ast-dump.cc (Dump::visit): print parentheses around
	unique expression operand.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* rust-session-manager.cc
	(Session::enable_dump): Fix error messages.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (UnifyRules::emit_abi_mismatch): new error method
	(UnifyRules::expect_fndef): add ABI check
	* typecheck/rust-unify.h: prototype for new error method

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* util/rust-abi.cc (get_abi_from_string): add ABI mapping

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* hir/tree/rust-hir-pattern.h: add missing get_mutability
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
	use new ClosureParamInfer on untyped parameters
	* typecheck/rust-hir-type-check-pattern.cc (ClosureParamInfer::Resolve): interface
	(ClosureParamInfer::ClosureParamInfer): constructor
	(ClosureParamInfer::visit): visitors for each pattern
	* typecheck/rust-hir-type-check-pattern.h (class ClosureParamInfer): new visitor

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-pattern.h: cleanup

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
	return so we dont hit undefined behaviour

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-implitem.h: remove includes

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-item.cc (CompileItem::visit): remove bad checks

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* lang.opt: add lang option flag
	* rust-lang.cc (grs_langhook_init_options_struct): enable by default

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::operator=):
	we are done if other is in an error state

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): verify it is a method

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): use new interface
	* typecheck/rust-hir-type-check-base.h: update prototype to include Self
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): lifewise
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::resolve_impl_block_substitutions):
	likewise
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): likewise
	(TypeCheckExpr::resolve_segments): likewise
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
	(TypeResolveGenericParam::visit): likewise
	(ResolveWhereClauseItem::visit): likewise
	* typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound): likewise
	(TypeBoundPredicate::apply_generic_arguments): likewise
	(TypeBoundsMappings::lookup_predicate): likewise
	* typecheck/rust-tyty-bounds.h: likewise
	* typecheck/rust-tyty.h:likewise

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check.h: New error state and missing copy implementations
	* typecheck/rust-typecheck-context.cc (TypeCheckContextItem::TypeCheckContextItem):
	missing copy ctor
	(TypeCheckContextItem::operator=): missing copy implementation
	(TypeCheckContextItem::get_error): new static function
	(TypeCheckContextItem::is_error): new method
	(TypeCheckContextItem::get_context_type): handle error state
	(TypeCheckContextItem::get_defid): handle error state

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check.h: new helper
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::have_function_context):
	implementation

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check.h: Add prototype
	* typecheck/rust-typecheck-context.cc (TypeCheckContextItem::get_defid): implementation

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc: refactor

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-autoderef.cc: don't take a reference
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise
	* typecheck/rust-hir-type-check.h: remove reference
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::pop_return_type): likewise

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-ast-resolve-pattern.cc
	(PatternDeclaration::visit): Handle StructPatternFieldIdentPat.

2024-01-16  TieWay59  <tieway59@foxmail.com>

	PR translation/108890
	* lang.opt: Fix translation mistakes 2023 in
	GCC/Rust [PR108890]
	(line 67): change the inconsistent tab to spaces
	(line 75): wrap bare placeholder `integer`
	(line 79): remove redundant text of `Choose which`
	(line 96): remove redundant text of `Choose which`
	(line 112): remove redundant `Flag to`
	(line 124): correct the exclusive term `When to stop`
	(line 124): correct typo of `copimlation`

2024-01-16  M V V S Manoj Kumar  <mvvsmanojkumar@gmail.com>

	* parse/rust-parse-impl.h (Parser::debug_dump_ast_output): Removed this funtion.
	* rust-session-manager.cc (Session::enable_dump): Removed else if (arg == "parse").
	(Session::compile_crate): Removed calls of dump_ast and dump_ast_expanded.
	(Session::dump_ast): Removed this function.
	(Session::dump_ast_expanded): Removed this function.
	* rust-session-manager.h (struct CompileOptions): Removed the PARSER_AST_DUMP option.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_reference_pattern): Do not
	call into `parse_pattern` anymore.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/rust-ast-lower-pattern.cc
	(ASTLoweringPattern::translate): Add is_let_top_level parameter.
	(ASTLoweringPattern::visit): Handle is_let_top_level.
	* hir/rust-ast-lower-pattern.h
	(class ASTLoweringPattern): Add is_let_top_level.
	* hir/rust-ast-lower-stmt.cc
	(ASTLoweringStmt::visit): Set is_let_top_level.

2024-01-16  Zheyuan Chen  <sephirotheca17@gmail.com>

	* ast/rust-ast-dump.cc: fix bad formatting for associated type.

2024-01-16  Sergey Bugaev  <bugaevc@gmail.com>

	* hir/rust-ast-lower-expr.h, hir/rust-ast-lower-expr.cc:
	Lower AST::ErrorPropagationExpr to HIR::ErrorPropagationExpr

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix scope
	resolution token output.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Keep
	associated type.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit_function_common):
	Fix function body output.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_outer_attribute): Fix
	attribute status.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-token.cc (Token::as_string): Fix lifetime string
	representation.

2024-01-16  Sergey Bugaev  <bugaevc@gmail.com>

	* resolve/rust-ast-resolve-expr.cc: Add "break rust" Easter egg

2024-01-16  Sergey Bugaev  <bugaevc@gmail.com>

	* resolve/rust-ast-resolve-expr.h,
	resolve/rust-ast-resolve-expr.cc: Add ResolveExpr::funny_error

2024-01-16  Sergey Bugaev  <bugaevc@gmail.com>

	* ast/rust-ast.h: Add AST::Kind::IDENTIFIER

2024-01-16  Sergey Bugaev  <bugaevc@gmail.com>

	* ast/rust-ast.h (Kind): Convert into a C++ enum class
	* expand/rust-macro-builtins.cc: Adapt to the change

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc
	(TypeCheckExpr::visit): Add implementation for IfLetExprConseqElse.
	* typecheck/rust-hir-type-check-expr.h:
	(TypeCheckExpr::visit): Remove stub implementation for IfLetExprConseqElse.
	* hir/rust-ast-lower-expr.cc
	(ASTLoweringExpr::visit): Lower IfLetExpr{,ConseqElse}.
	* hir/rust-ast-lower-expr.h:
	(ASTLoweringExpr::visit): Likewise.
	* hir/rust-ast-lower-block.h
	(ASTLoweringIfLetBlock::visit): Lower IfLetExprConseqElse.
	(ASTLoweringExprWithBlock::visit): Likewise.
	* hir/rust-ast-lower.cc
	(ASTLoweringIfLetBlock::visit): Lower IfLetExprConseqElse.
	* hir/tree/rust-hir-expr.h
	(IfLetExprConseqElse::IfLetExprConseqElse): Make constructor more general.
	(IfLetExprConseqElse::vis_else_block): Add.
	(IfLetExprConseqElse::get_else_block): Add.
	* resolve/rust-ast-resolve-expr.cc
	(ResolveExpr::visit): Add IfLetExprConseqElse visitor.
	* resolve/rust-ast-resolve-expr.h
	(ResolveExpr::visit): Add IfLetExprConseqElse visitor.

2024-01-16  Sebastian Kirmayer  <gnu@kirmayer.eu>

	* parse/rust-parse-impl.h
	(Parser<ManagedTokenSource>::parse_macro_match_repetition):
	reject separator in `?` repetition

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-expr.h
	(class IfLetExprConseqElse): Make else_block ExprWithBlock.
	(class IfLetExprConseqIf): Remove.
	(class IfLetExprConseqIfLet): Remove.
	* ast/rust-ast-full-decls.h
	(class IfLetExprConseqIf): Remove.
	(class IfLetExprConseqIfLet): Remove.
	* ast/rust-ast.cc
	(IfLetExprConseqElse::as_string): Adjust output.
	(IfLetExprConseqIf::as_string): Remove.
	(IfLetExprConseqIfLet::as_string): Remove.
	(IfLetExprConseqIf::accept_vis): Remove.
	(IfLetExprConseqIfLet::accept_vis): Remove.
	* ast/rust-ast-visitor.h
	(ASTVisitor::visit): Remove IfLetExprConseqIf{,Let} visitors.
	* ast/rust-ast-dump.cc
	(Dump::visit): Likewise.
	* ast/rust-ast-dump.h:
	(Dump::visit): Likewise.
	* ast/rust-ast-tokenstream.cc
	(TokenStream::visit): Likewise.
	* ast/rust-ast-tokenstream.h
	(TokenStream::visit): Likewise.
	* util/rust-attributes.cc
	(AttributeChecker::visit): Likewise.
	* util/rust-attributes.h:
	(AttributeChecker::visit): Likewise.
	* resolve/rust-early-name-resolver.cc
	(EarlyNameResolver::visit): Likewise.
	* resolve/rust-early-name-resolver.h
	(EarlyNameResolver::visit): Likewise.
	* resolve/rust-ast-resolve-base.h
	(ResolverBase::visit): Likewise.
	* resolve/rust-ast-resolve-base.cc
	(ResolverBase::visit): Likewise.
	* checks/errors/rust-feature-gate.h
	(FeatureGate::visit): Likewise.
	* expand/rust-cfg-strip.cc
	(CfgStrip::visit): Likewise.
	* expand/rust-cfg-strip.h:
	(CfgStrip::visit): Likewise.
	* expand/rust-expand-visitor.cc
	(ExpandVisitor::visit): Likewise.
	* expand/rust-expand-visitor.h
	(ExpandVisitor::visit): Likewise.
	* hir/rust-ast-lower-base.cc
	(ASTLoweringBase::visit): Likewise.
	* hir/rust-ast-lower-base.h:
	(ASTLoweringBase::visit): Likewise.
	* parse/rust-parse-impl.h
	(Parser::parse_if_let_expr): Replace IfLetExprConseqIf{,Let} with IfLetExprConseqElse.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add struct
	name and curly braces to output tokenstream.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h
	(Parser::parse_macro_match): Handle underscore.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-full-decls.h
	(class ExprStmtWithoutBlock): Remove.
	(class ExprStmtWithBlock): Remove.
	* hir/tree/rust-hir-stmt.h
	(class ExprStmt):
	Add remaining ExprStmtWith{,out}Block functionality.
	(class ExprStmtWithoutBlock): Remove.
	(class ExprStmtWithBlock): Remove.
	* hir/rust-ast-lower-stmt.cc
	(ASTLoweringStmt::visit):
	Lower to HIR::ExprStmt instead of deriving class.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-stmt.cc
	(CompileStmt::visit): Unify ExprStmtWith{,out}Block visitors.
	* backend/rust-compile-stmt.h
	(CompileStmt::visit): Likewise.
	* backend/rust-compile-item.h
	(CompileItem::visit): Likewise.
	* hir/rust-hir-dump.cc
	(Dump::visit): Likewise.
	* hir/rust-hir-dump.h
	(Dump::visit): Likewise.
	* hir/tree/rust-hir-stmt.h
	(ExprStmt::accept_vis): Add.
	(ExprStmtWithoutBlock::accept_vis): Remove.
	(ExprStmtWithBlock::accept_vis): Remove.
	* hir/tree/rust-hir.cc
	(ExprStmt::accept_vis): Add.
	(ExprStmtWithoutBlock::accept_vis): Remove.
	(ExprStmtWithBlock::accept_vis): Remove.
	* hir/tree/rust-hir-visitor.h
	(HIRFullVisitor::visit): Likewise.
	(HIRFullVisitorBase::visit): Likewise.
	(HIRStmtVisitor::visit): Likewise.
	* checks/errors/rust-const-checker.cc
	(ConstChecker::visit): Likewise.
	* checks/errors/rust-const-checker.h
	(ConstChecker::visit): Likewise.
	* checks/errors/rust-unsafe-checker.cc
	(UnsafeChecker::visit): Likewise.
	* checks/errors/rust-unsafe-checker.h
	(UnsafeChecker::visit): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.cc
	(PrivacyReporter::visit): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.h
	(PrivacyReporter::visit): Likewise.
	* checks/lints/rust-lint-marklive.h
	(MarkLive::visit): Likewise.
	* typecheck/rust-hir-type-check-stmt.cc
	(TypeCheckStmt::visit): Likewise.
	* typecheck/rust-hir-type-check-stmt.h
	(TypeCheckStmt::visit): Likewise.
	* typecheck/rust-tycheck-dump.h
	(TypeResolverDump::visit): Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-stmt.h
	(ExprStmt::expr): Add field.
	(ExprStmt::get_expr): Add method.
	(ExprStmt::ExprStmt): Add copy/move constructors, modify existing constructor.
	(ExprStmt::operator=): Add assignment operator.
	(ExprStmtWithoutBlock::expr): Remove field.
	(ExprStmtWithoutBlock::get_expr): Remove method.
	(ExprStmtWithoutBlock::ExprStmt):
	Remove copy/move constructors, modify existing constructor.
	(ExprStmtWithoutBlock::operator=): Remove assignment operator.
	(ExprStmtWithBlock::expr): Remove field.
	(ExprStmtWithBlock::get_expr): Remove method.
	(ExprStmtWithBlock::ExprStmt): Remove copy/move constructors, modify existing constructor.
	(ExprStmtWithBlock::operator=): Remove assignment operator.
	(ExprStmt::as_string): Add method.
	(ExprStmtWithBlock::as_string): Remove method.
	(ExprStmtWithoutBlock::as_string): Remove method.
	* hir/tree/rust-hir.cc
	(ExprStmt::as_string): Add method.
	(ExprStmtWithBlock::as_string): Remove method.
	(ExprStmtWithoutBlock::as_string): Remove method.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-expr.h
	(class IfExprConseqElse): Make else_block ExprWithBlock.
	(class IfExprConseqIf): Remove.
	(class IfExprConseqIfLet): Remove.
	* ast/rust-ast-full-decls.h
	(class IfExprConseqIf): Remove.
	(class IfExprConseqIfLet): Remove.
	* ast/rust-ast.cc
	(IfExprConseqElse::as_string): Adjust output.
	(IfExprConseqIf::as_string): Remove.
	(IfExprConseqIfLet::as_string): Remove.
	(IfExprConseqIf::accept_vis): Remove.
	(IfExprConseqIfLet::accept_vis): Remove.
	* ast/rust-ast-visitor.h
	(ASTVisitor::visit): Remove IfExprConseqIf{,Let} visitors.
	* ast/rust-ast-tokenstream.cc
	(TokenStream::visit): Likewise.
	* ast/rust-ast-tokenstream.h
	(TokenStream::visit): Likewise.
	* ast/rust-ast-dump.cc
	(Dump::visit): Likewise.
	* ast/rust-ast-dump.h
	(Dump::visit): Likewise.
	* checks/errors/rust-feature-gate.h
	(FeatureGate::visit): Likewise.
	* util/rust-attributes.cc
	(AttributeChecker::visit): Likewise.
	* util/rust-attributes.h
	(AttributeChecker::visit): Likewise.
	* resolve/rust-early-name-resolver.cc
	(EarlyNameResolver::visit): Likewise.
	* resolve/rust-early-name-resolver.h
	(EarlyNameResolver::visit): Likewise.
	* resolve/rust-ast-resolve-base.h
	(ResolverBase::visit): Likewise.
	* resolve/rust-ast-resolve-base.cc
	(ResolverBase::visit): Likewise.
	* resolve/rust-ast-resolve-expr.h
	(ResolveExpr::visit): Remove IfExprConseqIf visitor.
	* resolve/rust-ast-resolve-expr.cc
	(ResolveExpr::visit): Likewise.
	* expand/rust-cfg-strip.cc
	(CfgStrip::visit): Remove IfExprConseqIf{,Let} visitors.
	* expand/rust-cfg-strip.h
	(CfgStrip::visit): Likewise.
	* expand/rust-expand-visitor.cc
	(ExpandVisitor::visit): Likewise.
	* expand/rust-expand-visitor.h
	(ExpandVisitor::visit): Likewise.
	* hir/rust-ast-lower-base.cc
	(ASTLoweringBase::visit): Likewise.
	* hir/rust-ast-lower-base.h
	(ASTLoweringBase::visit): Likewise.
	* hir/rust-ast-lower-block.h
	(ASTLoweringIfBlock::visit): Remove IfExprConseqIf visitor.
	(ASTLoweringExprWithBlock::visit): Likewise.
	* hir/rust-ast-lower.cc
	(ASTLoweringIfBlock::visit):
	Remove IfExprConseqIf visitor, adjust IfExprConseqElse lowering.
	* hir/rust-ast-lower-expr.h
	(ASTLoweringExpr::visit): Remove IfExprConseqIf visitor.
	* hir/rust-ast-lower-expr.cc
	(ASTLoweringExpr::visit): Likewise.
	* parse/rust-parse-impl.h
	(Parser::parse_if_expr): Replace IfExprConseqIf{,Let} with IfExprConseqElse.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix inner
	attribute tokenstream output.

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	* ast/rust-ast-dump.cc (Dump::debug): New.
	* ast/rust-ast-dump.h (Dump::debug): Untemplate it.
	(debug): New.
	* ast/rust-ast.h (class Visitable): New.
	(class TokenTree): Inherit from Visitable.
	(class MacroMatch): Likewise.
	(class AttrInput): Likewise.
	(class MetaItemInner): Likewise.
	(class Pattern): Likewise.
	(classTypeParamBound): Likewise.
	(class GenericParam): Likewise.
	(class TraitItem): Likewise.
	(classInherentImplItem): Likewise.
	(class TraitImplItem): Likewise.
	(class ExternalItem): Likewise.
	(class SingleASTNode): Likewise.

2024-01-16  Thomas Schwinge  <thomas@codesourcery.com>

	* rust-lang.cc (grs_langhook_type_for_mode): Placate clang-format.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Add boolean for differenciation.
	* parse/rust-parse-impl.h (Parser::parse_doc_comment): Change
	function interface to make code cleaner. It should return a body
	instead of the whole attribute.
	(Parser::parse_inner_attribute): Specify the inner status of the
	node.
	(Parser::parse_attribute_body): Change function interface to
	make the code cleaner much like parse_doc_comment.
	(Parser::parse_outer_attribute): Specify outer status of the
	node.
	* parse/rust-parse.h: Update functions prototypes.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile):
	reuse resolve_method_address to monomorphize the call if required
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
	allow matching against unimplemented trait item bounds

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-path-probe.cc: dont subst with a dynamic object

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address): moved here
	* backend/rust-compile-base.h: refactored prototype
	* backend/rust-compile-expr.cc (CompileExpr::resolve_method_address): refactor
	* backend/rust-compile-expr.h: likewise

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): remove unused

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): call destructure

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::resolve_method_address):
	call path probe impl trait

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Add call
	to attribute expansion function.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc (ExpandVisitor::visit_outer_attrs):
	Change condition order.
	(ExpandVisitor::visit_inner_using_attrs): Likewise.
	(ExpandVisitor::visit_attrs_with_derive): Likewise.
	(ExpandVisitor::is_builtin): Add builtin identification
	function.
	* expand/rust-expand-visitor.h: Add function prototype.
	* util/rust-attributes.cc: Add missing rustc_builtin_macro
	attribute.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_struct_fields):
	Add call to expand structu fields.
	(ExpandVisitor::expand_function_params): Add call to expand
	function parameters.
	(ExpandVisitor::expand_closure_params): Add call to expand
	closure parameters.
	(ExpandVisitor::visit): Add calls for item outer attribute
	expansions.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc (ExpandVisitor::expand_outer_attribute):
	Stub for a single attribute expansion.
	(ExpandVisitor::visit_outer_attrs): Visit the attributes to
	expand on a given item.
	* expand/rust-expand-visitor.h: Add function prototypes.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast.h: Add getter to Expr class.
	* ast/rust-expr.h: Add override attribute to existing getters.
	Also implement it for RangeExpr, attempting to retrieve outer
	attributes on those types will crash the compiler.
	* ast/rust-macro.h: Add override attribute to existing getters.
	* ast/rust-path.h: Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Add call
	to inner attribute stub.
	(ExpandVisitor::expand_inner_attribute): Expand one single
	attribute.
	(ExpandVisitor::visit_inner_using_attrs): Expand a given item
	using a vector of attributes.
	(ExpandVisitor::visit_inner_attrs): Visit inner attributes of a
	given item.
	* expand/rust-expand-visitor.h: Add function prototypes.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Add call
	to derive expander.
	(ExpandVisitor::expand_derive): Expand a single derive.
	(ExpandVisitor::visit_attrs_with_derive): Visit an item with
	derive attributes.
	(ExpandVisitor::is_derive): Identify a derive attribute.
	* expand/rust-expand-visitor.h: Add function prototypes.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix ICE.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Remove
	default separator.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Visit inner
	attributes.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Change token
	type.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix existing
	and implement remaining attribute visitors.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor
	to the union's outer attributes.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add call to
	inner attribute visitor.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix ICE.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Make comma
	mandatory.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Remove
	additional semicolon output.
	* ast/rust-ast-tokenstream.h: Change block visitor prototype
	with a default value for trailing tokens.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add two new files to the list of sources.
	* ast/rust-ast-full.h: Add new ast formatting header.
	* ast/rust-ast.cc (enum indent_mode): Move formatting function
	to it's own file.
	(indent_spaces): Likewise.
	(get_string_in_delims): Likewise.
	(enum AttrMode): Likewise.
	(get_mode_dump_desc): Likewise.
	(append_attributes): Likewise.
	(unquote_string): Likewise.
	(GroupedExpr::as_string): Move pattern implementation to it's
	own file.
	(RangePattern::as_string): Likewise.
	(RangePatternBoundLiteral::as_string): Likewise.
	(SlicePattern::as_string): Likewise.
	(AltPattern::as_string): Likewise.
	(TuplePatternItemsMultiple::as_string): Likewise.
	(TuplePatternItemsRanged::as_string): Likewise.
	(TuplePattern::as_string): Likewise.
	(StructPatternField::as_string): Likewise.
	(StructPatternFieldIdent::as_string): Likewise.
	(StructPatternFieldTuplePat::as_string): Likewise.
	(StructPatternFieldIdentPat::as_string): Likewise.
	(StructPatternElements::as_string): Likewise.
	(StructPattern::as_string): Likewise.
	(LiteralPattern::as_string): Likewise.
	(ReferencePattern::as_string): Likewise.
	(IdentifierPattern::as_string): Likewise.
	(TupleStructItemsNoRange::as_string): Likewise.
	(TupleStructItemsRange::as_string): Likewise.
	(TupleStructPattern::as_string): Likewise.
	(GroupedExpr::accept_vis): Likewise.
	(LiteralPattern::accept_vis): Likewise.
	(IdentifierPattern::accept_vis): Likewise.
	(WildcardPattern::accept_vis): Likewise.
	(RestPattern::accept_vis): Likewise.
	(RangePatternBoundLiteral::accept_vis): Likewise.
	(RangePatternBoundPath::accept_vis): Likewise.
	(RangePatternBoundQualPath::accept_vis): Likewise.
	(RangePattern::accept_vis): Likewise.
	(ReferencePattern::accept_vis): Likewise.
	(StructPatternFieldTuplePat::accept_vis): Likewise.
	(StructPatternFieldIdentPat::accept_vis): Likewise.
	(StructPatternFieldIdent::accept_vis): Likewise.
	(StructPattern::accept_vis): Likewise.
	(TupleStructItemsNoRange::accept_vis): Likewise.
	(TupleStructItemsRange::accept_vis): Likewise.
	(TupleStructPattern::accept_vis): Likewise.
	(TuplePatternItemsMultiple::accept_vis): Likewise.
	(TuplePatternItemsRanged::accept_vis): Likewise.
	(TuplePattern::accept_vis): Likewise.
	(GroupedPattern::accept_vis): Likewise.
	(SlicePattern::accept_vis): Likewise.
	(AltPattern::accept_vis): Likewise.
	* ast/rust-ast-formatting.cc: New file.
	* ast/rust-ast-formatting.h: New file.
	* ast/rust-pattern.cc: New file.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add new file for rust-path implementation.
	* ast/rust-ast.cc (PathInExpression::as_string): Move function
	to the new file.
	(PathPattern::as_string): Likewise.
	(QualifiedPathInExpression::as_string): Likewise.
	(ConstGenericParam::as_string): Likewise.
	(QualifiedPathInType::as_string): Likewise.
	(TypePath::as_string): Likewise.
	(PathPattern::convert_to_simple_path): Likewise.
	(TypePath::as_simple_path): Likewise.
	(PathExprSegment::as_string): Likewise.
	(GenericArgs::as_string): Likewise.
	(GenericArgsBinding::as_string): Likewise.
	(TypePath::to_trait_bound): Likewise.
	(TypePathSegmentGeneric::as_string): Likewise.
	(TypePathFunction::as_string): Likewise.
	(TypePathSegmentFunction::as_string): Likewise.
	(ConstGenericParam::accept_vis): Likewise.
	(PathInExpression::accept_vis): Likewise.
	(TypePathSegment::accept_vis): Likewise.
	(TypePathSegmentGeneric::accept_vis): Likewise.
	(TypePathSegmentFunction::accept_vis): Likewise.
	(TypePath::accept_vis): Likewise.
	(QualifiedPathInExpression::accept_vis): Likewise.
	(QualifiedPathInType::accept_vis): Likewise.
	(GenericArg::disambiguate_to_const): Likewise.
	(GenericArg::disambiguate_to_type): Likewise.
	* ast/rust-path.cc: New file.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-item.cc (CompileItem::visit): unwrap the constant expression

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-lang-item.h
	(RustLangItem::ItemType::FN): Add.
	(RustLangItem::ItemType::FN_MUT): Add.
	(RustLangItem::Parse): Handle FN and FN_MUT.
	(RustLangItem::ToString): Handle FN and FN_MUT.

2024-01-16  Emanuele Micheletti  <micheletti.emanuele@hotmail.com>

	* typecheck/rust-casts.cc (TypeCastRules::cast_rules):
	case INTEGRAL handles TypeKind::CHAR

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
	add check for reference marker and type's in self params
	(ResolveItem::visit): likewise
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path):
	remove bad generics check
	(TypeCheckExpr::resolve_segments): likewise
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path): likewise

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* resolve/rust-ast-resolve-item.cc
	(ResolveTraitItems::visit): add name resolution self param
	(ResolveItem::visit): likewise

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::TypeBoundPredicate): this is an empty
	(TypeBoundPredicate::operator=): likewise
	* typecheck/rust-tyty-subst.cc (SubstitutionArgumentMappings::empty): new interface
	(SubstitutionArgumentMappings::is_error): this marks it as an error
	* typecheck/rust-tyty-subst.h: update prototypes

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* checks/errors/privacy/rust-privacy-reporter.cc
	(PrivacyReporter::check_base_type_privacy): allow error types to be permissive

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit_items_as_lines):
	Handle trailing chars.
	(TokenStream::visit_items_as_block): Likewise.
	(TokenStream::visit): Fix visitor.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-token.cc (Token::as_string): Add type hint output.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-session-manager.cc (Session::enable_dump): Enable new
	dump.
	(Session::compile_crate): CLI argument parsing.
	(Session::dump_tokenstream): Dump the tokenstream as a string in
	the specified file.
	* rust-session-manager.h (struct CompileOptions): Add
	tokenstream dump option.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-token.cc (Token::as_string): Add as_string
	implementation.
	* lex/rust-token.h: Add as_string prototype.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::TokenStream): Add
	constructor.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::collect_tokens): Add
	getter.
	(TokenStream::go): Rename function.
	(TokenStream::visit): Likewise.
	* ast/rust-ast-tokenstream.h: Add collect prototype.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Change
	getter name.
	* ast/rust-ast.cc (SimplePath::as_string): Change attribute
	name.
	* ast/rust-ast.h (class SimplePath): Refactor attribute name and
	change getter name.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit_as_line): Add
	formatting calls.
	(TokenStream::visit_items_as_block): Likewise.
	(TokenStream::newline): Add stub.
	(TokenStream::indentation): Add stub.
	(TokenStream::increment_indentation): Add stub.
	(TokenStream::decrement_indentation): Add stub.
	(TokenStream::visit): Add formatting calls.
	(TokenStream::visit_function_common): Likewise.
	* ast/rust-ast-tokenstream.h: Add stub prototypes.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor
	implementation.
	* ast/rust-ast-tokenstream.h: Add additional function prototype.
	* ast/rust-item.h: Add some getters.
	* ast/rust-macro.h: Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor.
	* ast/rust-item.h: Add missing getters.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add
	visitors.
	(TokenStream::visit_closure_common): Merge common code for
	closure visitors.
	* ast/rust-ast-tokenstream.h: Add function prototype.
	* ast/rust-expr.h: Add missing move attribute getter.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add
	visitors.
	(TokenStream::visit_loop_common): Merge common loop code.
	* ast/rust-ast-tokenstream.h: Add function prototypes.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Implement
	visitor.
	* ast/rust-ast-tokenstream.h: Add function prototype for missing
	component.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::trailing_comma):
	Output a trailing comma to the token stream according to the
	configuration.
	* ast/rust-ast-tokenstream.h: Add function prototype.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Implement
	visitors.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-tokenstream.cc (TokenStream::visit): Implement
	visitors.
	* ast/rust-ast-tokenstream.h: Add function prototypes.
	* ast/rust-ast.h: Add missing getters.
	* ast/rust-expr.h: Likewise.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add rust-as-tokenstream to compile list.
	* ast/rust-item.h: Add missing getter for location.
	* ast/rust-ast-tokenstream.cc: Add ast visitor implementation.
	* ast/rust-ast-tokenstream.h: New file.
	* ast/rust-pattern.h: Add getter.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
	Add implicit unit type as the return type when not specified

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* util/rust-attributes.cc: Add stable to the table of known attributes

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): return early on bad type
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::TypeCheckPattern):
	remove assertion in favor of check
	(TypeCheckPattern::visit): likewise

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::generate_closure_function):
	when its not a block we dont have any ribs to generate locals from

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h
	(Parser<ManagedTokenSource>::parse_expr_without_block):
	Remove direct array expression handling.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-item.h: Fix `Visibility::has_path()` implementation.
	* checks/errors/privacy/rust-visibility-resolver.cc
	(VisibilityResolver::resolve_module_path): Check if we are dealing with pub(crate) properly.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Set
	resolved_node_id when visiting root segment of SimplePath.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h: Call SimplePath constructor differently in
	SimplePath::from_str

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* hir/rust-ast-lower-type.h: Move all remaining definitions to source file.
	* hir/rust-ast-lower-type.cc (ASTLoweringType::translate): Moved to source file.
	(ASTLoweringType::visit): Likewise.
	(ASTLowerGenericParam::translate): Likewise.
	(ASTLowerGenericParam::visit): Likewise.
	(ASTLoweringTypeBounds::translate): Likewise.
	(ASTLoweringTypeBounds::visit): Likewise.
	(ASTLowerWhereClauseItem::translate): Likewise.
	(ASTLowerWhereClauseItem::visit): Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-pattern.h: Remove commented out code.

2024-01-16  emanuele-em  <micheletti.emanuele@hotmail.com>

	* typecheck/rust-casts.cc (TypeCastRules::cast_rules): BOOL removed from switch cases

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Rename rust-asttribute-visitor.o -> rust-cfg-strip.o
	* expand/rust-attribute-visitor.cc: Moved to...
	* expand/rust-cfg-strip.cc: ...here.
	* expand/rust-attribute-visitor.h: Moved to...
	* expand/rust-cfg-strip.h: ...here.
	* expand/rust-macro-expand.cc: Fix include of rust-attribute-visitor.h
	* expand/rust-macro-builtins.cc: Likewise.
	* rust-session-manager.cc (Session::expansion): Call CfgStrip instead of
	AttrVisitor.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Add new object file.
	* expand/rust-attribute-visitor.cc (AttrVisitor::go): Visit all items of a
	crate.
	(AttrVisitor::expand_struct_fields): Do not perform macro expansion anymore.
	(AttrVisitor::expand_function_params): Likewise.
	(AttrVisitor::expand_generic_args): Likewise.
	(AttrVisitor::expand_qualified_path_type): Likewise.
	(AttrVisitor::expand_self_param): Likewise.
	(AttrVisitor::expand_trait_function_decl): Likewise.
	(AttrVisitor::expand_trait_method_decl): Likewise.
	(AttrVisitor::visit): Likewise.
	(AttrVisitor::maybe_expand_expr): Remove function.
	(AttrVisitor::maybe_expand_type): Likewise.
	* expand/rust-attribute-visitor.h: Do not keep MacroExpander inside AttrVisitor
	anymore.
	* expand/rust-macro-expand.h (struct MacroExpander): Turn ContextType into an
	enum class for more type safety.
	* expand/rust-macro-expand.cc (MacroExpander::expand_crate): Use new ContextType
	API.
	* rust-session-manager.cc (Session::expansion): Call into ExpandVisitor.
	* expand/rust-expand-visitor.cc: New file.
	* expand/rust-expand-visitor.h: New file.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-expand.cc (MacroExpander::expand_crate): Do not cfg-attr
	strip in MacroExpander
	(MacroExpander::fails_cfg): Function moved...
	(MacroExpander::fails_cfg_with_expand): Function moved...
	(MacroExpander::expand_cfg_attrs): Function moved...
	* expand/rust-attribute-visitor.cc (fails_cfg): ...here.
	(fails_cfg_with_expand): ...here.
	(expand_cfg_attrs): ...here.
	(AttrVisitor::expand_struct_fields): Use new functions.
	(AttrVisitor::expand_tuple_fields): Likewise.
	(AttrVisitor::expand_function_params): Likewise.
	(AttrVisitor::visit): Likewise.
	(AttrVisitor::go): New function.
	* expand/rust-attribute-visitor.h: Declare AttrVisitor::go.
	* expand/rust-macro-expand.h (struct MacroExpander): Remove cfg-attr related
	functions.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_macro_definition):
	New function.
	* hir/rust-ast-lower-base.h: Declare `lower_macro_definition`.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Lower public
	macro definitions.
	* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Likewise.
	* hir/rust-ast-lower-stmt.h: Add visitor for `AST::MacroRulesDefinition`.
	* hir/rust-ast-lower.cc (ASTLowering::go): Formatting.
	(ASTLoweringBlock::visit): Visit `AST::MacroRulesDefinition`
	(ASTLoweringIfLetBlock::visit): Formatting.
	(ASTLoweringExprWithBlock::visit): Formatting.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Add new visitor
	for AST::MacroRulesDefinition.
	* hir/rust-ast-lower-item.h: Declare above mentioned visitor.
	* metadata/rust-export-metadata.cc (ExportContext::emit_macro): New function.
	* metadata/rust-export-metadata.h: Declare it.
	(PublicInterface::gather_export_data): Go through each exported macro.
	* util/rust-hir-map.cc (Mappings::insert_exported_macro): New function.
	(Mappings::get_exported_macros): New function.
	* util/rust-hir-map.h: Add new mappings for exported macros.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-compile-item.h: Revert 1c946687239b86a92839d57dfbc928ad7ce35eae.
	* backend/rust-compile-stmt.h: Likewise.
	* checks/errors/privacy/rust-privacy-reporter.cc
	(PrivacyReporter::visit): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
	* checks/errors/privacy/rust-pub-restricted-visitor.cc
	(PubRestrictedVisitor::visit): Likewise.
	* checks/errors/privacy/rust-pub-restricted-visitor.h: Likewise.
	* checks/errors/privacy/rust-reachability.cc
	(ReachabilityVisitor::visit): Likewise.
	* checks/errors/privacy/rust-reachability.h: Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc
	(VisibilityResolver::visit): Likewise.
	* checks/errors/privacy/rust-visibility-resolver.h: Likewise.
	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
	* checks/errors/rust-const-checker.h: Likewise.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
	* checks/errors/rust-unsafe-checker.h: Likewise.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
	* hir/rust-ast-lower-item.h: Likewise.
	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
	* hir/rust-hir-dump.h: Likewise.
	* hir/tree/rust-hir-full-decls.h (class ExportedMacro): Likewise.
	* hir/tree/rust-hir-item.h (class ExportedMacro): Likewise.
	* hir/tree/rust-hir-visitor.h: Likewise.
	* hir/tree/rust-hir.cc (ExportedMacro::accept_vis): Likewise.
	(ExportedMacro::get_locus): Likewise.
	(ExportedMacro::get_item_kind): Likewise.
	(ExportedMacro::clone_item_impl): Likewise.
	* hir/tree/rust-hir.h: Likewise.
	* metadata/rust-export-metadata.cc: Likewise.
	* typecheck/rust-hir-type-check-item.h: Likewise.
	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
	* typecheck/rust-hir-type-check-stmt.h: Likewise.
	* typecheck/rust-tycheck-dump.h: Likewise.
	* util/rust-attributes.cc: Likewise.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): return a TraitObject

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-resolve.cc: don't inject extra inference variables

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-dump.cc (Dump::visit): Remove extraneous semicolon when
	dumping macro rules.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* metadata/rust-imports.cc (add_search_path): Change `Go` -> `Rust`.
	(Import::try_package_in_directory): Likewise.
	(Import::find_export_data): Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/rust-ast-lower-pattern.cc
	(ASTLoweringPattern::visit): Lower AltPattern.
	* hir/rust-ast-lower-pattern.h:
	(ASTLoweringPattern::visit): Add AltPattern visitor.

2024-01-16  Xiao Ma  <turingki@yeah.net>
	    Thomas Schwinge  <thomas@codesourcery.com>

	* checks/errors/rust-feature-gate.cc: Adjust 'ld'->'u'.
	* checks/errors/rust-feature.h: Adjust
	the type of `m_issue`: 'uint64_t' -> 'unsigned'.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* ast/rust-ast.h: add const get_final_segment helper
	* hir/rust-ast-lower-enumitem.h: dont add an item mapping for enumitems
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): add enum to enum-items mappings
	* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): likewise
	* hir/tree/rust-hir-item.h: add non const helper to get variants
	* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): resolve the use declaration
	* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): handle self
	* resolve/rust-ast-resolve-toplevel.h: add enum item mappings to module mappings
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path): ensure variant
	(TypeCheckExpr::resolve_segments): likewise
	* typecheck/rust-type-util.cc (query_type): lookup enum's
	* util/rust-hir-map.cc (Mappings::insert_hir_enumitem): enum item mappings
	(Mappings::lookup_hir_enumitem): likewise
	* util/rust-hir-map.h: likewise

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* resolve/rust-ast-resolve-path.cc (ResolvePath::ResolvePath): return NodeId
	(ResolvePath::go): update signiture
	(ResolvePath::resolve_path): return resolved_node_id
	* resolve/rust-ast-resolve-path.h: update prototypes

2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>

	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit):
	Add lowering for SlicePattern.
	* hir/rust-ast-lower-pattern.h: Likewise.
	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit):
	Add name resolution visit for SlicePattern.
	* resolve/rust-ast-resolve-pattern.h: Likewise.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* hir/rust-ast-lower-implitem.h (RUST_AST_LOWER_IMPLITEM_H): cleanup header usage
	* hir/rust-ast-lower-item.cc: likewise
	* hir/rust-ast-lower-item.h (RUST_AST_LOWER_ITEM): likewise
	* hir/rust-ast-lower-stmt.cc: likewise
	* hir/rust-ast-lower-stmt.h (RUST_AST_LOWER_STMT): likewise
	* hir/rust-ast-lower-type.h: likewise
	* hir/rust-ast-lower.cc: likewise
	* hir/rust-ast-lower.h: likewise
	* resolve/rust-ast-resolve-expr.h: likewise
	* resolve/rust-ast-resolve-item.cc: likewise
	* resolve/rust-ast-resolve-item.h: likewise
	* resolve/rust-ast-resolve-stmt.cc: likewise
	* resolve/rust-ast-resolve-stmt.h: likewise
	* resolve/rust-ast-resolve-struct-expr-field.h: likewise
	* resolve/rust-ast-resolve-toplevel.h: likewise
	* resolve/rust-ast-resolve-type.h: likewise
	* resolve/rust-ast-resolve.h: likewise

2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>

	* resolve/rust-ast-resolve-pattern.h (class ResolvePattern): Removed.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-intrinsic.cc (move_val_init_handler): new intrinsice
	(uninit_handler): use a builtin memcpy

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-coercion.cc (TypeCoercionRules::select): use the result

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal): fix ctor
	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): likewise
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::push_new_loop_context): likewise
	* typecheck/rust-tyty-util.cc (TyVar::get_implicit_infer_var): likewise
	* typecheck/rust-tyty.cc (InferType::InferType): new ctor with type hint
	(InferType::clone): fix ctor
	(InferType::apply_primitive_type_hint): new function to apply possible hint
	* typecheck/rust-tyty.h: update prototypes
	* typecheck/rust-unify.cc (UnifyRules::expect_inference_variable): apply type hints
	(UnifyRules::expect_bool): likewise
	(UnifyRules::expect_char): likewise
	(UnifyRules::expect_int): likewise
	(UnifyRules::expect_uint): likewise
	(UnifyRules::expect_float): likewise
	(UnifyRules::expect_isize): likewise
	(UnifyRules::expect_usize): likewise

2024-01-16  Jiakun Fan  <120090316@link.cuhk.edu.cn>

	* hir/rust-hir-dump.cc (Dump::go): fix format
	(Dump::visit): impl `visit (AST::Attribute &)`, dump inner attrs and
	`visit (Lifetime &)`
	* hir/rust-hir-dump.h:add `visit (AST::Attribute &)`

2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>

	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go):
	Print out consistency errors.
	(PatternDeclaration::visit): Implement visit for AltPattern.
	(PatternDeclaration::add_new_binding): New helper function for
	adding a binding to identifier.
	* resolve/rust-ast-resolve-pattern.h (struct BindingInfo):
	New struct to facilitate checking for inconsistencies between bindings.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-block.h
	(CompileConditionalBlocks::visit): Remove IfLetExprConseqIf{,Let} visitors.
	(CompileExprWithBlock::visit): Remove IfLetExprConseqIf{,Let} visitors.
	* backend/rust-compile-expr.h
	(CompileExpr::visit): Remove IfLetExprConseqIf{,Let} visitors.
	* checks/errors/rust-unsafe-checker.cc
	(UnsafeChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
	* checks/errors/rust-unsafe-checker.h
	(UnsafeChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
	* checks/errors/rust-const-checker.cc
	(ConstChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
	* checks/errors/rust-const-checker.h
	(ConstChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
	* checks/errors/privacy/rust-privacy-reporter.cc
	(PrivacyReporter::visit): Remove IfLetExprConseqIf{,Let} visitors.
	* checks/errors/privacy/rust-privacy-reporter.h
	(PrivacyReporter::visit): Remove IfLetExprConseqIf{,Let} visitors.
	* hir/tree/rust-hir-expr.h
	(class IfLetExprConseqElse): Make else_block ExprWithBlock.
	(class IfLetExprConseqIf): Remove.
	(class IfLetExprConseqIfLet): Remove.
	* hir/tree/rust-hir-full-decls.h
	(class IfLetExprConseqIf): Remove.
	(class IfLetExprConseqIfLet): Remove.
	* hir/tree/rust-hir.cc
	(IfLetExprConseqElse::as_string): Adjust output.
	(IfLetExprConseqIf::as_string): Remove.
	(IfLetExprConseqIfLet::as_string): Remove.
	(IfLetExprConseqIf::accept_vis): Remove.
	(IfLetExprConseqIfLet::accept_vis): Remove.
	* hir/tree/rust-hir-visitor.h
	(HIRFullVisitor::visit): Remove IfLetExprConseqIf{,Let} visitors.
	(HIRFullVisitorBase::visit): Remove IfLetExprConseqIf{,Let} visitors.
	(HIRExpressionVisitor::visit): Remove IfLetExprConseqIf{,Let} visitors.
	* hir/rust-hir-dump.cc
	(Dump::visit): Remove IfLetExprConseqIf{,Let} visitors.
	* hir/rust-hir-dump.h
	(Dump::visit): Remove IfLetExprConseqIf{,Let} visitors.
	* typecheck/rust-hir-type-check-expr.h
	(TypeCheckExpr::visit): Remove IfLetExprConseqIf{,Let} visitors.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-hir-type-check-expr.cc
	(TypeCheckExpr::visit): Remove IfExprConseqIf visitor.
	* typecheck/rust-hir-type-check-expr.h
	(TypeCheckExpr::visit): Remove IfExprConseqIf{,Let} visitor.
	* backend/rust-compile-block.cc
	(CompileConditionalBlocks::visit): Remove IfExprConseqIf visitor.
	* backend/rust-compile-block.h
	(CompileConditionalBlocks::visit): Remove IfExprConseqIf{,Let} visitors.
	(CompileExprWithBlock::visit):
	Remove IfExprConseqIf{,Let} visitors, implement BlockExpr visitor.
	* backend/rust-compile-expr.cc
	(CompileExpr::visit): Remove IfExprConseqIf visitor.
	* backend/rust-compile-expr.h
	(CompileExpr::visit): Remove IfExprConseqIf{,Let} visitors.
	* checks/lints/rust-lint-marklive.h
	(MarkLive::visit): Remove IfExprConseqIf visitor.
	* checks/errors/rust-const-checker.cc
	(ConstChecker::visit): Remove IfExprConseqIf{,Let} visitors.
	* checks/errors/rust-const-checker.h
	(ConstChecker::visit): Remove IfExprConseqIf{,Let} visitors.
	* checks/errors/rust-unsafe-checker.cc
	(UnsafeChecker::visit): Remove IfExprConseqIf{,Let} visitors.
	* checks/errors/rust-unsafe-checker.h
	(UnsafeChecker::visit): Remove IfExprConseqIf{,Let} visitors.
	* checks/errors/privacy/rust-privacy-reporter.cc
	(PrivacyReporter::visit): Remove IfExprConseqIf{,Let} visitors.
	* checks/errors/privacy/rust-privacy-reporter.h
	(PrivacyReporter::visit): Remove IfExprConseqIf{,Let} visitors.
	* hir/tree/rust-hir-expr.h
	(class IfExprConseqElse): Make else_block ExprWithBlock.
	(class IfExprConseqIf): Remove.
	(class IfExprConseqIfLet): Remove.
	* hir/tree/rust-hir-full-decls.h
	(class IfExprConseqIf): Remove.
	(class IfExprConseqIfLet): Remove.
	* hir/tree/rust-hir.cc
	(IfExprConseqElse::as_string): Adjust output.
	(IfExprConseqIf::as_string): Remove.
	(IfExprConseqIfLet::as_string): Remove.
	(IfExprConseqIf::accept_vis): Remove.
	(IfExprConseqIfLet::accept_vis): Remove.
	* hir/tree/rust-hir-visitor.h
	(HIRFullVisitor::visit): Remove IfExprConseqIf{,Let} visitors.
	(HIRFullVisitorBase::visit): Remove IfExprConseqIf{,Let} visitors.
	(HIRExpressionVisitor::visit): Remove IfExprConseqIf{,Let} visitors.
	* hir/rust-hir-dump.cc
	(Dump::visit): Remove IfExprConseqIf{,Let} visitors.
	* hir/rust-hir-dump.h
	(Dump::visit): Remove IfExprConseqIf{,Let} visitors.
	* hir/rust-ast-lower.cc
	(ASTLoweringIfBlock::visit): Replace HIR::IfExprConseqIf with HIR::IfExprConseqElse.

2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>

	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
	Push a Product context instead of an Or context.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-inherent-impl-overlap.h (class ImplItemToName): remove

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::resolve_method_address): remove unused code

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): remove infer call
	(TypeCheckExpr::resolve_root_path): only infer when we need to

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): add debug

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile.cc: use unify_and instead
	* typecheck/rust-tyty-subst.cc (SubstitutionRef::solve_missing_mappings_from_this): remove
	* typecheck/rust-tyty-subst.h: update header

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-coercion.cc (TypeCoercionRules::select): use new unify_and interface
	* typecheck/rust-hir-dot-operator.cc (MethodResolver::try_hook): grab bounds behind refs

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.cc: fix headers
	* backend/rust-compile-base.h: likewise
	* backend/rust-compile-expr.cc: likewise
	* backend/rust-compile-extern.h: likewise
	* backend/rust-compile-pattern.cc: likewise
	* backend/rust-compile.cc: likewise
	* typecheck/rust-autoderef.cc: likewise
	* typecheck/rust-hir-dot-operator.cc: likewise
	* typecheck/rust-hir-inherent-impl-overlap.h: likewise
	* typecheck/rust-hir-path-probe.cc: likewise
	* typecheck/rust-hir-trait-resolve.cc: likewise
	* typecheck/rust-hir-type-check-base.cc: likewise
	* typecheck/rust-hir-type-check-base.h (RUST_HIR_TYPE_CHECK_BASE): likewise
	* typecheck/rust-hir-type-check-enumitem.cc: likewise
	* typecheck/rust-hir-type-check-expr.cc: likewise
	* typecheck/rust-hir-type-check-implitem.cc: likewise
	* typecheck/rust-hir-type-check-item.cc: likewise
	* typecheck/rust-hir-type-check-path.cc: likewise
	* typecheck/rust-hir-type-check-pattern.cc: likewise
	* typecheck/rust-hir-type-check-stmt.cc: likewise
	* typecheck/rust-hir-type-check-struct.cc: likewise
	* typecheck/rust-hir-type-check-type.cc: likewise
	* typecheck/rust-hir-type-check-type.h: likewise
	* typecheck/rust-hir-type-check.h (RUST_HIR_TYPE_CHECK): likewise
	* typecheck/rust-tyty-bounds.cc: likewise
	* typecheck/rust-tyty-call.cc: likewise
	* typecheck/rust-tyty-subst.cc: likewise
	* typecheck/rust-tyty.cc: likewise

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (BaseType::has_subsititions_defined): new implementation
	(BaseType::needs_generic_substitutions): likewise
	(ProjectionType::needs_generic_substitutions): remove
	(ProjectionType::has_subsititions_defined): remove
	* typecheck/rust-tyty.h: update header

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): update to use new interface
	(TypeCheckExpr::resolve_root_path): likewise
	(TypeCheckExpr::resolve_segments): likewise
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
	(TypeCheckType::resolve_root_path): likewise
	* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args): likewise
	* typecheck/rust-tyty.cc (BaseType::supports_substitutions): likewise
	(BaseType::can_substitute): remove
	(BaseType::contains_type_parameters): remove
	(handle_substitions): cleanup
	(TupleType::handle_substitions): update
	(FnType::handle_substitions): update
	(ProjectionType::supports_substitutions): update
	* typecheck/rust-tyty.h: update header

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.h: cleanup ordering of header

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (BaseType::monomorphized_clone): new impl
	(InferType::monomorphized_clone): remove
	(ErrorType::monomorphized_clone): likewise
	(ADTType::monomorphized_clone): likewise
	(TupleType::monomorphized_clone): likewise
	(FnType::monomorphized_clone): likewise
	(FnPtr::monomorphized_clone): likewise
	(ClosureType::monomorphized_clone): likewise
	(ArrayType::clone): likewise
	(ArrayType::get_var_element_type): likewise
	(ArrayType::monomorphized_clone): likewise
	(SliceType::clone): likewise
	(SliceType::get_var_element_type): likewise
	(SliceType::monomorphized_clone): likewise
	(BoolType::monomorphized_clone): likewise
	(IntType::monomorphized_clone): likewise
	(UintType::monomorphized_clone): likewise
	(FloatType::monomorphized_clone): likewise
	(USizeType::monomorphized_clone): likewise
	(ISizeType::monomorphized_clone): likewise
	(CharType::monomorphized_clone): likewise
	(ReferenceType::clone): likewise
	(ReferenceType::get_var_element_type): likewise
	(ReferenceType::monomorphized_clone): likewise
	(PointerType::clone): likewise
	(PointerType::get_var_element_type): likewise
	(PointerType::monomorphized_clone): likewise
	(ParamType::monomorphized_clone): likewise
	(StrType::monomorphized_clone): likewise
	(NeverType::monomorphized_clone): likewise
	(PlaceholderType::monomorphized_clone): likewise
	(ProjectionType::monomorphized_clone): likewise
	(DynamicObjectType::monomorphized_clone): likewise
	* typecheck/rust-tyty.h: update header

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (BaseType::is_unit): new implementation
	(ErrorType::is_unit): remove
	(TupleType::is_unit): likewise
	(NeverType::is_unit): likewise
	(PlaceholderType::is_unit): likewise
	(ProjectionType::is_unit): likewise
	* typecheck/rust-tyty.h: update header

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (BaseType::is_concrete): new implementation
	(InferType::is_concrete): remove
	(ErrorType::is_concrete): likewise
	(StructFieldType::is_concrete): likewise
	(ADTType::is_concrete): likewise
	(TupleType::is_concrete): likewise
	(BoolType::is_concrete): likewise
	(IntType::is_concrete): likewise
	(UintType::is_concrete): likewise
	(FloatType::is_concrete): likewise
	(USizeType::is_concrete): likewise
	(ISizeType::is_concrete): likewise
	(CharType::is_concrete): likewise
	(ReferenceType::is_concrete): likewise
	(PointerType::is_concrete): likewise
	(ParamType::is_concrete): likewise
	(StrType::is_concrete): likewise
	(NeverType::is_concrete): likewise
	(PlaceholderType::is_concrete): likewise
	(ProjectionType::is_concrete): likewise
	(DynamicObjectType::is_concrete): likewise
	* typecheck/rust-tyty.h: update header

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-type.cc (TyTyResolveCompile::TyTyResolveCompile): call destructure
	(TyTyResolveCompile::compile): use error_mark_node
	(TyTyResolveCompile::visit): use error_mark_node
	* backend/rust-compile-type.h: remove recursive ops

2024-01-16  Tage Johansson  <frans.tage@gmail.com>

	* parse/rust-parse.cc: fix follow-sets

2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>

	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit) :declare and
	pass bindings to PatternDeclaration::go.
	(ResolveExpr::resolve_closure_param): Likewise.
	* resolve/rust-ast-resolve-expr.h: Likewise.
	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit): Likewise.
	(ResolveItem::visit): Likewise.
	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go): Likewise.
	(PatternDeclaration::visit): check for previous identifier bindings
	before inserting the new one.
	* resolve/rust-ast-resolve-pattern.h (enum PatternBoundCtx): New enum.
	* resolve/rust-ast-resolve-stmt.h: pass bindings to PatterDeclaration::go.

2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>

	* backend/rust-compile-expr.cc (CompileExpr::generate_closure_function):
	handle closure parameters pattern bindings using CompilePatternBindings visitor

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* README.md (process): Rename `rust1` to `crab1` in examples.
	* Make-lang.in: Rename `rust1` to `crab1`.
	* config-lang.in: Likewise.
	* lang-specs.h: Likewise.
	* rustspec.cc (lang_specific_driver): Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-pattern.h
	(SlicePattern::get_items): Add.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-full-decls.h
	(struct GenericArgsBinding): Convert to class.
	(class GenericArgsBinding): Convert from struct.
	(struct TypePathFunction): See above.
	(class TypePathFunction): See above.
	(struct QualifiedPathType): See above.
	(class QualifiedPathType): See above.
	* ast/rust-ast-full-decls.h
	(struct WhereClause): See above.
	(class WhereClause): See above.
	(struct SelfParam): See above.
	(class SelfParam): See above.
	(struct FunctionQualifiers): See above.
	(class FunctionQualifiers): See above.
	(struct FunctionParam): See above.
	(class FunctionParam): See above.
	(struct StructField): See above.
	(class StructField): See above.
	(struct TupleField): See above.
	(class TupleField): See above.
	(struct TraitFunctionDecl): See above.
	(class TraitFunctionDecl): See above.
	(struct TraitMethodDecl): See above.
	(class TraitMethodDecl): See above.
	(struct NamedFunctionParam): See above.
	(class NamedFunctionParam): See above.
	* hir/tree/rust-hir-path.h
	(struct GenericArgsBinding): See above.
	(class GenericArgsBinding): See above.
	(struct TypePathFunction): See above.
	(class TypePathFunction): See above.
	(struct QualifiedPathType): See above.
	(class QualifiedPathType): See above.
	* ast/rust-item.h
	(struct WhereClause): See above.
	(class WhereClause): See above.
	(struct SelfParam): See above.
	(class SelfParam): See above.
	(struct FunctionQualifiers): See above.
	(class FunctionQualifiers): See above.
	(struct FunctionParam): See above.
	(class FunctionParam): See above.
	(struct StructField): See above.
	(class StructField): See above.
	(struct TupleField): See above.
	(class TupleField): See above.
	(struct TraitFunctionDecl): See above.
	(class TraitFunctionDecl): See above.
	(struct TraitMethodDecl): See above.
	(class TraitMethodDecl): See above.
	(struct NamedFunctionParam): See above.
	(class NamedFunctionParam): See above.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-pattern.h
	(class AltPattern): Remove duplicate access specifier.
	(AltPattern::get_alts): Add.
	* hir/tree/rust-hir.cc
	(AltPattern::as_string): Add.
	(AltPattern::accept_vis): Add.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* hir/tree/rust-hir-item.h (class ExportedMacro): Add new ExportedMacro class.
	* hir/tree/rust-hir.cc (ExportedMacro::accept_vis): New function.
	(ExportedMacro::get_locus): Likewise.
	(ExportedMacro::get_item_kind): Likewise.
	(ExportedMacro::clone_item_impl): Likewise.
	* hir/tree/rust-hir-full-decls.h (class ExportedMacro): Forward declare class.
	* backend/rust-compile-item.h: Add visitor for ExportedMacro.
	* backend/rust-compile-stmt.h: Likewise.
	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
	* checks/errors/privacy/rust-pub-restricted-visitor.cc (PubRestrictedVisitor::visit):
	Likewise.
	* checks/errors/privacy/rust-pub-restricted-visitor.h: Likewise.
	* checks/errors/privacy/rust-reachability.cc (ReachabilityVisitor::visit): Likewise.
	* checks/errors/privacy/rust-reachability.h: Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc (VisibilityResolver::visit): Likewise.
	* checks/errors/privacy/rust-visibility-resolver.h: Likewise.
	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
	* checks/errors/rust-const-checker.h: Likewise.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
	* checks/errors/rust-unsafe-checker.h: Likewise.
	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
	* hir/rust-ast-lower-item.h: Likewise.
	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
	* hir/rust-hir-dump.h: Likewise.
	* hir/tree/rust-hir-visitor.h: Likewise.
	* metadata/rust-export-metadata.cc: Likewise.
	* typecheck/rust-hir-type-check-item.h: Likewise.
	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
	* typecheck/rust-hir-type-check-stmt.h: Likewise.
	* typecheck/rust-tycheck-dump.h: Likewise.
	* hir/tree/rust-hir.h: Add new ItemKind::MacroExport variant.
	* util/rust-attributes.cc: Add #[macro_export] attribute.

2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>

	* backend/rust-compile-fnparam.cc (CompileFnParam::visit):
	Added visit implementation for ReferencePattern.
	(CompileFnParam::create_tmp_param_var):
	Refactored duplicated code into a helper function.
	* backend/rust-compile-fnparam.h: Added visit implementation for
	ReferencePattern.
	* backend/rust-compile-pattern.cc (CompilePatternBindings::visit):
	Added visit implementation for ReferencePattern and
	IdentifierPattern.
	* backend/rust-compile-pattern.h: Added visit implementation for
	ReferencePattern and IdentifierPattern.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Move
	unloaded module item loading to...
	* expand/rust-attribute-visitor.cc (AttrVisitor::visit): ...here.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* hir/rust-hir-dump.cc (Dump::visit): Simplify indentation dump to single line.

2024-01-16  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Indent::Indent): Move to separate file.
	(operator<<): Move to separate file.
	(Indent::increment): Move to separate file.
	(Indent::decrement): Move to separate file.
	* ast/rust-ast-dump.h (class Indent): Move to separate file.
	* hir/rust-hir-dump.cc (Dump::Dump): Use new indentation object.
	(Dump::go): Use new indentation object.
	(Dump::visit): Use new indention object.
	* hir/rust-hir-dump.h: Use new indentation object.
	* util/rust-dump.h: New file. Moved Indentation from rust-ast-dump.cc

2024-01-16  Mahmoud Mohamed  <mahadelr19@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
	Add the missing infered type assignment

2024-01-16  Marc Poulhiès  <dkm@kataplop.net>

	PR rust/108111
	* ast/rust-ast-full-decls.h (StructPatternElements): Declare as a
	class.
	* ast/rust-item.h (EnumItem): Mark several method as being
	overrides.
	* ast/rust-pattern.h (StructPattern::get_locus): Add override.
	* lex/rust-lex.h (BufferInputSource): Use reference_wrapper
	instead of bare reference.
	(TokenSource::get): Add method to implement the reference_wrapper
	interface.
	* typecheck/rust-tyty.h (TypeBoundPredicate): Add empty dtor.
	* util/rust-buffered-queue.h (peek): Source token stream is now
	using a reference_wrapper, use .get()

2024-01-16  vincent  <jfan30@u.rochester.edu>

	* typecheck/rust-hir-type-check-pattern.cc
	(TypeCheckPattern::visit): rewrite part code to helper function
	(TypeCheckPattern::typecheck_range_pattern_bound): helper function
	* typecheck/rust-hir-type-check-pattern.h
	(TypeCheckPattern::typecheck_range_pattern_bound):
	change the parameter of the function

2024-01-16  goar5670  <mahadelr19@gmail.com>

	* hir/tree/rust-hir-pattern.h (HIR::ReferencePattern):
	added get_referenced_pattern function.
	* resolve/rust-ast-resolve-pattern.h
	(Resolve::PatternDeclaration): add visit function for
	AST::ReferencePattern
	* typecheck/rust-hir-type-check-pattern.cc
	(Resolver::TypeCheckPattern): add visit function for
	HIR::ReferencePattern

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* util/rust-lang-item.h
	(RustLangItem::ItemType): New enumerators.
	(RustLangItem::Parse): Parse new enumerators.
	(RustLangItem::ToString): Handle new enumerators.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-fnparam.h:
	(CompileFnParam::visit): Add AltPattern visitor.
	* backend/rust-compile-pattern.h:
	(CompilePatternCaseLabelExpr::visit): Add AltPattern visitor.
	(CompilePatternBindings::visit): Add AltPattern visitor.
	(CompilePatternLet::visit): Add AltPattern visitor.
	* backend/rust-compile-resolve-path.h:
	(ResolvePathRef::visit): Add AltPattern visitor.
	* backend/rust-compile-var-decl.h:
	(CompileVarDecl::visit): Add AltPattern visitor.
	* checks/errors/rust-const-checker.cc
	(ConstChecker::visit): Add AltPattern visitor.
	* checks/errors/rust-const-checker.h:
	(ConstChecker::visit): Add AltPattern visitor.
	* checks/errors/rust-unsafe-checker.cc
	(UnsafeChecker::visit): Add AltPattern visitor.
	* checks/errors/rust-unsafe-checker.h:
	(UnsafeChecker::visit): Add AltPattern visitor.
	* hir/rust-hir-dump.cc
	(Dump::visit): Add AltPattern visitor.
	* hir/rust-hir-dump.h:
	(Dump::visit): Add AltPattern visitor.
	* hir/tree/rust-hir-full-decls.h
	(class AltPattern): Add forward declaration.
	* hir/tree/rust-hir-pattern.h
	(class AltPattern): New class.
	* hir/tree/rust-hir-visitor.h:
	(HIRFullVisitor::visit): Add AltPattern visitor.
	(HIRFullVisitorBase::visit): Add AltPattern visitor.
	(HIRPatternVisitor::visit): Add AltPattern visitor.
	* hir/tree/rust-hir.h:
	(Pattern::PatternType::ALT): New enumerator.
	* typecheck/rust-hir-type-check-pattern.cc
	(TypeCheckPattern::visit): Add AltPattern visitor.
	* typecheck/rust-hir-type-check-pattern.h:
	(TypeCheckPattern::visit): Add AltPattern visitor.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-macro.cc (builtin_macro_from_string): Add identifier
	identification.
	* ast/rust-macro.h (enum class): Add Stringify builtin macro
	type.
	* expand/rust-macro-builtins.cc (make_macro_path_str): Add path
	for builtin stringify macro.
	(MacroBuiltin::stringify_handler): Add handler for builtin
	stringify macro.
	* expand/rust-macro-builtins.h: Add stringify handler's
	prototype.
	* util/rust-hir-map.cc (Mappings::insert_macro_def): Add
	stringify handler to builtin hir map.

2024-01-16  Nikos Alexandris  <nikos-alexandris@protonmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
		Add length checking for tuple patterns.
	(TypeCheckPattern::emit_pattern_size_error): New function.
	* typecheck/rust-hir-type-check-pattern.h: New function
		emit_pattern_size_error.

2024-01-16  goar5670  <mahadelr19@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_expr):
	split LEFT_SHIFT before null_denotation.

2024-01-16  Parthib  <parthibdutta02@gmail.com>

	* rust-object-export.cc: Modified
	* hir/rust-ast-lower-type.cc (rust_fatal_error): Removed
		(rust_assert): Added

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-early-name-resolver.cc
	(EarlyNameResolver::visit):
	Check for closure parameter without given type.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-typecheck-context.cc (TypeCheckContext::insert_resolved_predicate): remove

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* resolve/rust-ast-resolve-type.cc (ResolveRelativeQualTypePath::resolve_qual_seg): fix

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* ast/rust-path.h: add missing copy for node_id

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* rust-gcc.h: remove unused headers

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* ast/rust-ast.cc (QualifiedPathInType::as_string): add missing to string
	* ast/rust-path.h: add missing copy+move constructors and assignment overloads
	* hir/tree/rust-hir-path.h: likewise
	* hir/tree/rust-hir.cc (QualifiedPathInType::as_string): add missing to string

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (ParamType::get_name): call destructure

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-resolve.cc: use unify_and infer

2024-01-16  goar5670  <mahadelr19@gmail.com>

	* parse/rust-parse-impl.h (Parser::parse_closure_param):
	Replace parse_pattern with parse_pattern_no_alt.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_while_let_loop_expr):
	Prevent hard error on token skip.
	(Parser::null_denotation): Fix parser for while let expressions.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-builtins.cc (BuiltinsContext::setup): add memset builtin to the map
	* backend/rust-compile-intrinsic.cc (uninit_handler): implement uninit intrinsic

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_slice_pattern): Add
	closing square bracket check.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_external_type_item):
	Fix compilation error due to unnecessary move.

2024-01-16  Abdul Rafey  <abdulrafeyq@gmail.com>

	* hir/rust-hir-dump.cc (Dump::go): support inner attrs, crate items and node mappings
	(Dump::visit): support functions, arith/logical exprs, let stmts and literals

2024-01-16  Nikos Alexandris  <nikos-alexandris@protonmail.com>

	* expand/rust-macro-builtins.cc (load_file_bytes): Add location parameter.
	(MacroBuiltin::include_bytes_handler): Pass location to load_file_bytes.
	(MacroBuiltin::include_str_handler): Pass location to load_file_bytes.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_pattern_no_alt): Handle
	RestPattern correctly.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-pattern.h (class RestPattern): Add NodeId as well as
	the clone_impl function.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::null_denotation): Fix if let
	parsing.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-intrinsic.cc (op_with_overflow_inner): wraps op_with_overflow
	(std::function<tree): likewise
	(op_with_overflow): generate the intrinsic based on the tree_code op

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Add rust-ast-lower-stmt.o
	* hir/rust-ast-lower-stmt.h: Move definitions to...
	* hir/rust-ast-lower-stmt.cc: ...here.

2024-01-16  mxlol233  <mxlol233@outlook.com>

	* checks/errors/rust-feature-gate.cc: Add definition
	for `extern_types`.
	* checks/errors/rust-feature-gate.h: Likewise.
	* checks/errors/rust-feature.cc: Likewise.
	* checks/errors/rust-feature.h: Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-pattern.h
	(StructPatternElements::operator=): Clear vector before inserting.
	(TupleStructItemsNoRange::operator=): Clear vector before inserting.
	(TupleStructItemsRange::operator=): Clear vectors before inserting.
	(TuplePatternItemsMultiple::operator=): Clear vector before inserting.
	(TuplePatternItemsRanged::operator=): Clear vectors before inserting.
	(SlicePattern::operator=): Clear vector before inserting.
	(AltPattern::operator=): Clear vector before inserting.
	* hir/tree/rust-hir-pattern.h
	(StructPatternElements::operator=): Clear vector before inserting.
	(TupleStructItemsNoRange::operator=): Clear vector before inserting.
	(TupleStructItemsRange::operator=): Clear vectors before inserting.
	(TuplePatternItemsMultiple::operator=): Clear vector before inserting.
	(TuplePatternItemsRanged::operator=): Clear vectors before inserting.
	(SlicePattern::operator=): Clear vector before inserting.

2024-01-16  bl7awy  <mahadelr19@gmail.com>

	* typecheck/rust-casts.cc (TypeCastRules::cast_rules): Perform destructure on `from` type.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-pattern.h
	(struct StructPatternElements): Change to class.
	(class StructPatternElements): Change from struct.
	* hir/tree/rust-hir-pattern.h
	(struct StructPatternElements): Change to class.
	(class StructPatternElements): Change from struct.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc
	(TypeCheckPattern::visit): Improve error messages.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-pattern.h
	(class TupleStructItemsNoRange): Fix formatting.
	(class TupleStructItemsRange): Fix formatting.
	(class TuplePatternItemsMultiple): Fix formatting.
	(class TuplePatternItemsRanged): Fix formatting.
	(class SlicePattern): Fix formatting.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add visitor.
	* ast/rust-ast-dump.h: Add visitor prototype.
	* ast/rust-ast-full-decls.h (class RestPattern): Add forward
	declaration for class RestPattern.
	* ast/rust-ast-visitor.h: Add visitor prototype.
	* ast/rust-ast.cc (RestPattern::accept_vis): Add function to
	accept a foreign visitor.
	* ast/rust-pattern.h (class RestPattern): Add class RestPattern.
	* checks/errors/rust-feature-gate.h: Add visitor prototype.
	* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Add
	visitor implementation.
	* expand/rust-attribute-visitor.h: Add visitor prototype.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Add
	visitor implementation.
	* hir/rust-ast-lower-base.h: Add visitor prototype.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Add
	visitor implementation.
	* resolve/rust-ast-resolve-base.h: Add visitor prototype.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
	Add visitor implementation.
	* resolve/rust-early-name-resolver.h: Add visitor prototype.
	* util/rust-attributes.cc (AttributeChecker::visit): Add visitor
	implementation.
	* util/rust-attributes.h: Add visitor prototype.

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-cmp.h: remove
	* typecheck/rust-tyty.cc (set_cmp_autoderef_mode): likewise
	(reset_cmp_autoderef_mode): likewise
	* typecheck/rust-tyty.h (set_cmp_autoderef_mode): likewise
	(reset_cmp_autoderef_mode): likewise

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-coercion.cc (TypeCoercionRules::Coerce): Add new try_flag
	(TypeCoercionRules::TypeCoercionRules): set new try flag
	(TypeCoercionRules::do_coercion): default to a final unify_and in the else case
	(TypeCoercionRules::coerce_unsafe_ptr): cannot coerce to a ptr from ref during autoderef
	(TypeCoercionRules::coerce_borrowed_pointer): respect coerceable mutability
	* typecheck/rust-coercion.h: update header
	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): use new TryCoerce interface
	(MethodResolver::append_adjustments): ensure we maintain adjustment mappings
	* typecheck/rust-hir-dot-operator.h: add new method append_adjustments
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): extra logging

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (UnifyRules::go): fix inference check

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-base.h: unconsify
	* backend/rust-compile.cc (HIRCompileBase::coercion_site): likewise
	(HIRCompileBase::coercion_site1): likewise
	* typecheck/rust-autoderef.cc (Adjuster::try_deref_type): likewise
	(Adjuster::try_raw_deref_type): likewise
	(Adjuster::try_unsize_type): likewise
	(AutoderefCycle::cycle): likewise
	(AutoderefCycle::try_autoderefed): likewise
	* typecheck/rust-autoderef.h: likewise
	* typecheck/rust-coercion.cc (TypeCoercionRules::select): likewise
	* typecheck/rust-coercion.h: likewise
	* typecheck/rust-hir-dot-operator.cc (MethodResolver::Probe): likewise
	(MethodResolver::select): likewise
	* typecheck/rust-hir-dot-operator.h: likewise

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (UnifyRules::go): respect the emit_errors flag

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-casts.cc (TypeCastRules::check): update to new interface
	* typecheck/rust-coercion.cc (TypeCoercionRules::Coerce): likewise
	(TypeCoercionRules::TryCoerce): likewise
	(TypeCoercionRules::TypeCoercionRules): likewise
	* typecheck/rust-coercion.h: likewise
	* typecheck/rust-type-util.cc (coercion_site): likewise

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (UnifyRules::go): allow lhs infer vars

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-expr.cc (CompileExpr::resolve_method_address): update to new inteface
	* typecheck/rust-coercion.cc (TypeCoercionRules::coerce_unsafe_ptr): likewise
	(TypeCoercionRules::coerce_borrowed_pointer): likewise
	* typecheck/rust-hir-type-check.h: likewise
	* typecheck/rust-type-util.cc (unify_site_and): new interface to allow for infer and commit
	* typecheck/rust-type-util.h (unify_site_and): likewise
	* typecheck/rust-typecheck-context.cc (TypeCheckContext::clear_type): new interface
	* typecheck/rust-unify.cc (UnifyRules::UnifyRules): update
	(UnifyRules::Resolve): new optional flags for commit and infer
	(UnifyRules::go): likewise
	(UnifyRules::expect_adt): refactor to use new interface
	(UnifyRules::expect_reference): likewise
	(UnifyRules::expect_pointer): likewise
	(UnifyRules::expect_array): likewise
	(UnifyRules::expect_slice): likewise
	(UnifyRules::expect_fndef): likewise
	(UnifyRules::expect_fnptr): likewise
	(UnifyRules::expect_tuple): likewise
	(UnifyRules::expect_closure): likewise
	* typecheck/rust-unify.h: refactor interface

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (UnifyRules::Resolve): refactor
	(UnifyRules::commit): refactor
	* typecheck/rust-unify.h: likewise

2024-01-16  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (ADTType::is_concrete):  need to consider if is a num_variant
	* typecheck/rust-tyty.h: refactor to cc file

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_external_type_item):
	Add function to parser an external type item.
	(Parser::parse_external_item):
	Add identification and parsing for external type items.
	* parse/rust-parse.h:
	Add parser_external_type_item prototype.

2024-01-16  omkar-mohanty  <franzohouser@gmail.com>

	* expand/rust-macro-builtins.cc
	(MacroBuiltin::include_str_handler): eager expansion
	(make_macro_path_str): macto to string
	(parse_single_string_literal): check for eager invocation
	(MacroBuiltin::assert_handler): eager expansion
	(MacroBuiltin::include_bytes_handler): eager expansion
	(MacroBuiltin::include_str_handler): eager expansion
	(MacroBuiltin::compile_error_handler): eager expansion
	(MacroBuiltin::include_handler): eager expansion

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-item.h (class Method): Add `is_default` field.
	(class Function): Likewise.
	* parse/rust-parse-impl.h (Parser::parse_item): Add nice error when
	parsing `default` outside of an `impl` block
	(Parser::parse_trait_impl_item): Allow parsing functions
	or methods when seeing `default`.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::cast_site):
	Remove cast_site.
	* typecheck/rust-hir-type-check-base.h: Remove cast_site
	prototype.
	* typecheck/rust-type-util.cc (cast_site): Add cast_site.
	* typecheck/rust-type-util.h (cast_site): Add cast_site
	prototype.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-item.h: Add non-const `get_visibility` to ExternalTypeItem.
	* ast/rust-ast-dump.cc (Dump::visit): Add implementation for ExternalTypeItem.
	* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Likewise.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-item.h (class ExternalTypeItem): New class.
	* ast/rust-ast.cc (ExternalTypeItem::as_string): New function.
	(ExternalTypeItem::accept_vis): Likewise.
	* ast/rust-ast-full-decls.h (class ExternalTypeItem): Declare class.
	* ast/rust-ast-dump.cc (Dump::visit): Add base visitor for ExternalTypeItem.
	* ast/rust-ast-dump.h: Likewise.
	* ast/rust-ast-visitor.h: Likewise.
	* checks/errors/rust-feature-gate.h: Likewise.
	* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Likewise.
	* expand/rust-attribute-visitor.h: Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
	* hir/rust-ast-lower-base.h: Likewise.
	* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
	* resolve/rust-ast-resolve-base.h: Likewise.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Likewise.
	* resolve/rust-early-name-resolver.h: Likewise.
	* util/rust-attributes.cc (AttributeChecker::visit): Likewise.
	* util/rust-attributes.h: Likewise.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-invoc-lexer.cc (MacroInvocLexer::split_current_token):
	Add proper implementation.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-item.h (class Trait): Add `has_auto` field.
	* checks/errors/rust-feature.cc: Add handling for `feature(optin_builtin_traits)`
	* checks/errors/rust-feature.h: Likewise.
	* lex/rust-lex.cc: Fix keyword classification using hashmap.
	* lex/rust-token.h: Add `auto` keyword token.
	* parse/rust-parse-impl.h (Parser::parse_vis_item): Parse auto traits
	on `auto` keyword.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item):
	Remove TypeCheckBase namespace qualifier.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::coercion_site):
	Remove coercion_site function.
	* typecheck/rust-hir-type-check-base.h: Remove coercion_site
	prototype.
	* typecheck/rust-type-util.cc (coercion_site): Add coercion_site
	function.
	* typecheck/rust-type-util.h (coercion_site): Add coercion_site
	prototype.
	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
	Remove TypeCheckBase namespace qualifier.
	(TypeCheckMethodCallExpr::check): Remove TypeCheckBase namespace
	qualifier.

2024-01-16  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* typecheck/rust-autoderef.cc: Remove TypeCheckBase qualifier.
	* typecheck/rust-hir-trait-resolve.cc: Remove TypeCheckBase
	qualifier.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::unify_site):
	Remove unify_site.
	* typecheck/rust-hir-type-check-base.h: Remove unify_site
	header.
	* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve):
	Remove TypeCheckBase qualifier.
	* typecheck/rust-type-util.cc (unify_site): Add unify_site
	function.
	* typecheck/rust-type-util.h (unify_site): Add unify_site
	prototype.
	* typecheck/rust-tyty-call.cc (TypeCheckMethodCallExpr::check):
	Remove TypeCheckBase qualifier.

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_type): Allow LEFT_SHIFT to
	start a type and then split it in `parse_qualified_path_type`

2024-01-16  Arthur Cohen  <arthur.cohen@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_path_generic_args): Split leading
	`LEFT_SHIFT` token into two `LEFT_ANGLE` tokens when parsing generic arguments.
	(Parser::parse_type_path_segment): Allow `LEFT_ANGLE` as starting token for
	parsing generic arguments.

2024-01-16  mxlol233  <mxlol233@outlook.com>

	* checks/errors/rust-feature-gate.cc: Add implementations
	for `rustc_attri`.
	* checks/errors/rust-feature-gate.h: Likewise.

2024-01-16  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h
	(Parser::parse_pattern): Add.
	(Parser::parse_pattern_no_alt): Rename.
	* parse/rust-parse.h:
	(Parser::parse_pattern): Add.
	(Parser::parse_pattern_no_alt): Rename.

2024-01-04  David Malcolm  <dmalcolm@redhat.com>

	* lang.opt.urls: New file, autogenerated by
	regenerate-opt-urls.py.

2023-12-14  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

	* config-lang.in: Add libgrust as a target module for the rust
	language.

2023-11-19  David Malcolm  <dmalcolm@redhat.com>

	* rust-location.h: Include "rich-location.h".

2023-10-20  Patrick Palka  <ppalka@redhat.com>

	PR rust/111899
	* backend/rust-constexpr.cc (potential_constant_expression_1):
	Remove NON_DEPENDENT_EXPR handling.
	* backend/rust-tree.cc (mark_exp_read): Likewise.
	(mark_use): Likewise.
	(lvalue_kind): Likewise.

2023-09-28  Richard Sandiford  <richard.sandiford@arm.com>

	* backend/rust-constexpr.cc (rs_fold_indirect_ref): Remove unused
	variables.

2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* rust-session-manager.cc (Session::init): Call
	targetrustm.rust_os_info.
	* rust-target.def (rust_os_info): New hook.

2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* rust-lang.cc (rust_add_target_info): Remove sorry.
	* rust-session-manager.cc: Replace include of target.h with
	include of tm.h and rust-target.h.
	(Session::init): Call targetrustm.rust_cpu_info.
	* rust-target.def (rust_cpu_info): New hook.
	* rust-target.h (rust_add_target_info): Declare.

2023-09-21  Iain Buclaw  <ibuclaw@gdcproject.org>

	* rust-target-def.h: New file.
	* rust-target.def: New file.
	* rust-target.h: New file.

2023-09-11  Parthib  <94271200+Parthib314@users.noreply.github.com>

	* Make-lang.in: Removed rust-gcc-diagnostics object file.
	* rust-diagnostics.cc (rust_be_get_quotechars): Added from original file.
		(rust_be_internal_error_at): Likewise.
		(rust_be_error_at): Likewise.
		(class rust_error_code_rule): Likewise.
		(rust_be_warning_at): Likewise.
		(rust_be_fatal_error): Likewise.
		(rust_be_inform): Likewise.
		(rust_be_debug_p): Likewise.
	* rust-gcc-diagnostics.cc: Removed.

2023-09-07  David Malcolm  <dmalcolm@redhat.com>

	* rust-diagnostics.cc (rust_error_at): New overload.
	* rust-diagnostics.h (struct ErrorCode): New struct.
	(rust_error_at): New.
	(rust_be_error_at): Likewise.
	* rust-gcc-diagnostics.cc (class rust_error_code_rule): New class.
	(rust_be_error_at): New function.
	* typecheck/rust-casts.cc (TypeCastRules::emit_cast_error): Emit E0054
	when reporting invalid cast error.

2023-07-05  Robin Dapp  <rdapp@ventanamicro.com>
	    Juzhe-Zhong  <juzhe.zhong@rivai.ai>

	* backend/rust-tree.cc (c_common_type_for_mode): Ditto.

2023-06-22  Paul E. Murphy  <murphyp@linux.ibm.com>

	* rust-object-export.cc [TARGET_AIX]: Rename and update usage to
	TARGET_AIX_OS.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h
	(Parser::parse_stmt): Handle unsafe expression statements.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h
	(Parser::parse_expr_stmt): Remove hypothetical unsafe + expr_stmt_without_block handling.

2023-04-06  M V V S Manoj Kumar  <mvvsmanojkumar@gmail.com>

	* ast/rust-ast-full-decls.h (class InlineAsm):Added class declaration.
	* ast/rust-expr.h (class InlineAsm):Added class definition.

2023-04-06  Arthur Cohen  <arthur.cohen@embecosm.com>

	* rust-diagnostics.h (struct Error): Add new Kind enum and various new
	static constructors to allow for hints as well.
	* rust-diagnostics.cc (Error::Error): Use new `kind` field properly.
	* checks/errors/privacy/rust-visibility-resolver.cc
	(VisibilityResolver::resolve_module_path): Use new Error API.
	* expand/rust-macro-builtins.cc (MacroBuiltin::include_handler): Likewise.
	* expand/rust-macro-expand.cc (parse_many): Likewise.
	(transcribe_type): Likewise.
	* parse/rust-parse-impl.h (Parser::parse_crate): Likewise.
	* rust-session-manager.cc (Session::handle_crate_name): Likewise.
	* ast/rust-ast.cc (Module::load_items): Likewise.

2023-04-06  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h: Keep location in TraitItem base class
	* ast/rust-item.h (class TraitItemFunc): Use base class location instead.
	(class TraitItemMethod): Likewise.
	(class TraitItemConst): Likewise.
	(class TraitItemType): Likewise.
	* ast/rust-macro.h: Likewise.

2023-04-06  SainiAditya1  <Adityasaini10012001@outlook.com>

	* hir/tree/rust-hir-full-test.cc: Moved to...
	* hir/tree/rust-hir.cc: ...here.
	* Make-lang.in: Rename rust-hir-full-test.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-ast-dump.cc
	(Dump::visit): Add AltPattern visitor.
	* ast/rust-ast-dump.h:
	(Dump::visit): Add AltPattern visitor.
	* ast/rust-ast-full-decls.h
	(class AltPattern): Add declaration.
	* ast/rust-ast-visitor.h:
	(ASTVisitor::visit): Add AltPattern visitor.
	* ast/rust-ast.cc
	(AltPattern::as_string): Add definition.
	(AltPattern::accept_vis): Add definition.
	* ast/rust-pattern.h
	(class AltPattern): Add declaration.
	* checks/errors/rust-feature-gate.h:
	(FeatureGate::visit) Add AltPattern visitor
	* expand/rust-attribute-visitor.cc
	(AttrVisitor::visit): Add AltPattern visitor.
	* expand/rust-attribute-visitor.h:
	(AttrVisitor::visit): Add AltPattern visitor.
	* hir/rust-ast-lower-base.cc
	(ASTLoweringBase::visit): Add AltPattern visitor.
	* hir/rust-ast-lower-base.h:
	(ASTLoweringBase::visit): Add AltPattern visitor.
	* resolve/rust-ast-resolve-base.cc
	(ResolverBase::visit): Add AltPattern visitor.
	* resolve/rust-ast-resolve-base.h:
	(ResolverBase::visit): Add AltPattern visitor.
	* resolve/rust-early-name-resolver.cc
	(EarlyNameResolver::visit): Add AltPattern visitor.
	* resolve/rust-early-name-resolver.h:
	(EarlyNameResolver::visit): Add AltPattern visitor.
	* util/rust-attributes.cc
	(AttributeChecker::visit): Add AltPattern visitor.
	* util/rust-attributes.h:
	(AttributeChecker::visit): Add AltPattern visitor.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-pattern.h: Fix formatting.

2023-04-06  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-builtins.cc (MacroBuiltin::include_handler): Do not
	return nullptr token in expansion of `include!()`

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* checks/errors/rust-feature-gate.h: Add trailing newline before EOF.

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-reference.cc (TraitReference::clear_associated_types): make const
	(TraitReference::clear_associated_type_projections): new interface
	* typecheck/rust-hir-trait-reference.h:
	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): refactor
	(TraitItemReference::associated_type_reset): reset projections
	* typecheck/rust-hir-type-bounds.h:
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): fix bounds
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::TypeBoundsProbe): refactor into cc file
	(TypeBoundsProbe::Probe): refactor
	(TypeBoundsProbe::is_bound_satisfied_for_type): likewise
	(TypeBoundsProbe::assemble_sized_builtin): add builtin for Sized
	(TypeCheckBase::get_predicate_from_bound): refactor
	(TypeBoundPredicate::lookup_associated_type): refactor
	* typecheck/rust-tyty-subst.cc (SubstitutionRef::lookup_associated_impl)
	(SubstitutionRef::prepare_higher_ranked_bounds): new interface to clear hanging bounds
	(SubstitutionRef::monomorphize): refactor
	* typecheck/rust-tyty-subst.h:
	* typecheck/rust-tyty.cc (BaseType::get_locus): helper
	(BaseType::satisfies_bound): ensure bounds are satisfied and assoicated types
	(ParamType::ParamType): new field in constructor
	(ParamType::clone): update clone
	(ParamType::set_implicit_self_trait): new interface
	(ParamType::is_implicit_self_trait): likewise
	* typecheck/rust-tyty.h: cleanup
	* util/rust-hir-map.cc (Mappings::Mappings): builtin marker
	(Mappings::~Mappings): delete marker
	(Mappings::lookup_builtin_marker): lookup
	* util/rust-hir-map.h: update header

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* hir/tree/rust-hir-item.h: implement virtual function
	* hir/tree/rust-hir.h: add virtual function

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* Make-lang.in: add new dependancy
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::query_type): refactor
	* typecheck/rust-hir-type-check-base.h: refactor
	* typecheck/rust-hir-type-check.h (RUST_HIR_TYPE_CHECK): refactor
	* typecheck/rust-type-util.cc: New file.
	* typecheck/rust-type-util.h: New file.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* expand/rust-macro-builtins.cc
	(MacroBuiltin::include_str_handler): Add check for valid UTF-8.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* parse/rust-parse-impl.h
	(Parser::parse_grouped_or_tuple_pattern): Add support for empty tuple patterns.

2023-04-06  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* lex/rust-lex.h: Add file type check.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-pattern.cc
	(CompilePatternLet::visit): Simplify WildcardPattern compilation for let statements.
	* backend/rust-compile-var-decl.h:
	(CompileVarDecl::visit): Remove variable declaration for WildcardPattern.
	* resolve/rust-ast-resolve-pattern.h:
	(PatternDeclaration::visit): Remove name resolution for WildcardPattern.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-tyty-call.cc
	(TypeCheckCallExpr::visit): Add variadic argument type checking.
	(TypeCheckCallExpr::visit): Fix comment spelling ("varadic").

2023-04-06  mxlol233  <mxlol233@outlook.com>

	* checks/errors/rust-feature-gate.cc: Add implementation for
	`void FeatureGate::visit (AST::ExternBlock &block)`. Add `valid_feature`
	construction process in `FeatureGate::check`.
	* checks/errors/rust-feature-gate.h: Add declaration for
	`void FeatureGate::visit (AST::ExternBlock &block)`. Add private
	variable `valid_feature`.
	* checks/errors/rust-feature.h: Change `issue` to `m_issue`.

2023-04-06  Thomas Schwinge  <thomas@codesourcery.com>

	* ast/rust-ast-fragment.cc: Update copyright years.
	* ast/rust-ast-fragment.h: Likewise.
	* ast/rust-macro.cc: Likewise.
	* checks/errors/rust-feature-gate.cc: Likewise.
	* checks/errors/rust-feature-gate.h: Likewise.
	* checks/errors/rust-feature.cc: Likewise.
	* checks/errors/rust-feature.h: Likewise.
	* hir/rust-ast-lower-expr.cc: Likewise.
	* hir/rust-ast-lower-type.cc: Likewise.
	* resolve/rust-early-name-resolver.cc: Likewise.
	* resolve/rust-early-name-resolver.h: Likewise.
	* rust-gcc.h: Likewise.
	* typecheck/rust-hir-path-probe.cc: Likewise.
	* typecheck/rust-hir-trait-reference.cc: Likewise.
	* typecheck/rust-tyty-bounds.h: Likewise.
	* typecheck/rust-tyty-subst.cc: Likewise.
	* typecheck/rust-tyty-subst.h: Likewise.
	* typecheck/rust-tyty-util.cc: Likewise.
	* typecheck/rust-tyty-util.h: Likewise.
	* typecheck/rust-unify.cc: Likewise.
	* typecheck/rust-unify.h: Likewise.
	* util/rust-inline-visitor.h: Likewise.

2023-04-06  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* rust-session-manager.cc (Session::compile_crate): Update the
	environment variable name.

2023-04-06  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>

	* Make-lang.in: Add `rust-hir-trait-reference.o`.
	* typecheck/rust-hir-trait-reference.h: Remove multiple function body.
	* typecheck/rust-hir-trait-reference.cc: Add multiple function body.

2023-04-06  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-expand.cc (MacroExpander::expand_eager_invocations):
	Add documentation explaining the algorithm.

2023-04-06  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-macro.cc: New file.
	* Make-lang.in: Add `rust-macro.o` object
	* ast/rust-ast-fragment.cc (Fragment::Fragment): Change API around
	the construction of AST fragments.
	(Fragment::operator=): Correct `Fragment::operator=` to take into
	account the fragment tokens.
	(Fragment::create_error): Use new constructor.
	(Fragment::complete): Remove in favor of new constructor.
	(Fragment::unexpanded): Remove as that Fragment type is no longer used
	or possible.
	(Fragment::get_tokens): Add helper to access a fragment's tokens.
	* ast/rust-ast-fragment.h (enum class): Remove `FragmentKind::Unused`
	* ast/rust-ast.cc (MacroInvocation::as_string): Display
	builtin macro invocations properly.
	* ast/rust-ast.h: Fix `DelimTokenTree` class copy constructors and
	handling of its token vector.
	* ast/rust-macro.h (class MacroMatcher): Format.
	(class MetaItemSeq): Likewise.
	(builtin_macro_from_string): Get a `BuiltinMacroKind` from a given
	string, i.e the name of the macro (`assert!`, `cfg!` and so on).
	* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Do not expand
	macros recursively anymore.
	(AttrVisitor::maybe_expand_expr): Likewise.
	(AttrVisitor::maybe_expand_type): Likewise.
	* expand/rust-attribute-visitor.h: Likewise, and remove
	`expand_macro_fragment_recursively` function.
	* expand/rust-macro-builtins.cc (make_token): Add shorthand for
	returning `std::unique_ptr<AST::Token>`s.
	(make_macro_invocation): Add shorthand for returning fragments
	containing builtin macro invocations.
	(try_expand_macro_expression): Do not expand macros recursively.
	(try_expand_single_string_literal): Likewise.
	(try_expand_many_expr): Likewise.
	(parse_single_string_literal): Error out more appropriately.
	(MacroBuiltin::compile_error_handler): Add explanation for eager
	invocation
	(MacroBuiltin::file_handler): Return the proper tokens associated with
	macro invocation, and builtin macros in the case of necessary eager
	expansion.
	(MacroBuiltin::column_handler): Likewise.
	(MacroBuiltin::include_bytes_handler): Likewise.
	(MacroBuiltin::include_str_handler): Likewise.
	(MacroBuiltin::concat_handler): Likewise.
	(MacroBuiltin::env_handler): Likewise.
	(MacroBuiltin::cfg_handler): Likewise.
	(MacroBuiltin::include_handler): Likewise.
	(MacroBuiltin::line_handler): Likewise.
	* expand/rust-macro-expand.cc (MacroExpander::expand_eager_invocations):
	Add function to expand eager invocations *once* in the fixed point
	pipeline.
	(MacroExpander::expand_invoc): Call into `expand_eager_invocations` for
	builtin macro invocations.
	(MacroExpander::expand_crate): Use new `AttrVisitor` API.
	(parse_many): Return tokens in `AST::Fragment`.
	(transcribe_expression): Likewise.
	(transcribe_type): Likewise.
	* expand/rust-macro-expand.h (struct MacroExpander): Add `has_changed`
	flag for fixed point checking.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::EarlyNameResolver):
	Keep track of the current macro scope.
	(EarlyNameResolver::go): Use `scoped` API.
	(EarlyNameResolver::visit): Likewise.
	* resolve/rust-early-name-resolver.h: Add `scoped` API.
	* rust-session-manager.cc (Session::expansion): Perform macro expansion
	in a fixed-point fashion.

2023-04-06  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-invoc-lexer.cc (MacroInvocLexer::get_token_slice):
	Add API to retrieve token slices when lexing macro expansions.
	* expand/rust-macro-invoc-lexer.h: Declare `get_token_slice`.

2023-04-06  Arthur Cohen  <arthur.cohen@embecosm.com>

	* parse/rust-parse.h: Move `parse_macro_invocation` to public API.

2023-04-06  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-item.h (class BlockExpr): Remove forward declaration of
	class `BlockExpr`.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-pattern.h
	(TuplePatternItemsRanged::get_lower_patterns): Add method.
	(TuplePatternItemsRanged::get_upper_patterns): Add method.
	* backend/rust-compile-pattern.cc
	(CompilePatternLet::visit): Implement TuplePattern visitor.
	* backend/rust-compile-pattern.h
	(CompilePatternLet::visit): Move TuplePattern visitor out of header file.

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-unify.cc (UnifyRules::go): ensure the bounds are checked

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): remove error message

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-reference.h: add const infterface
	* typecheck/rust-tyty-subst.cc (SubstitutionParamMapping::get_generic_param): make const
	(SubstitutionRef::monomorphize): fix issue
	* typecheck/rust-tyty-subst.h: constify interface

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* util/rust-lang-item.h:

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-subst.cc (SubstitutionArg::is_conrete): fix check

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* Make-lang.in: update names
	* backend/rust-compile-expr.cc (CompileExpr::resolve_method_address):
	update to use new interface
	* typecheck/rust-coercion.cc (TypeCoercionRules::coerce_borrowed_pointer): likewise
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::unify_site): likewise
	* typecheck/rust-tyty.cc (BaseType::destructure): likewise
	(InferType::unify): removed old unify interface
	(ErrorType::unify): likewise
	(ADTType::unify): likewise
	(TupleType::unify): likewise
	(FnType::unify): likewise
	(FnPtr::unify): likewise
	(ClosureType::unify): likewise
	(ArrayType::unify): likewise
	(SliceType::unify): likewise
	(BoolType::unify): likewise
	(IntType::unify): likewise
	(UintType::unify): likewise
	(FloatType::unify): likewise
	(USizeType::unify): likewise
	(ISizeType::unify): likewise
	(CharType::unify): likewise
	(ReferenceType::unify): likewise
	(PointerType::unify): likewise
	(ParamType::unify): likewise
	(StrType::unify): likewise
	(NeverType::unify): likewise
	(PlaceholderType::unify): likewise
	(ProjectionType::unify): likewise
	(DynamicObjectType::unify): likewise
	* typecheck/rust-tyty.h: update destructure interface
	* typecheck/rust-tyty-rules.h: Removed.
	* typecheck/rust-unify.cc: New file.
	* typecheck/rust-unify.h: New file.

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-reference.h: change interface to return self
	* typecheck/rust-hir-trait-resolve.cc: likewise
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): likewise
	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): remove monomorphization hack

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-subst.cc: add missing callback

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-subst.cc: update copy constructors

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-bounds.cc: refactor to take a reference
	* typecheck/rust-tyty-subst.cc: likewise
	(SubstitutionRef::get_substitution_arguments): likewise
	(SubstitutionRef::infer_substitions): likewise
	* typecheck/rust-tyty-subst.h: likewise
	* typecheck/rust-tyty.cc (ADTType::handle_substitions): likewise
	(TupleType::handle_substitions): likewise
	(FnType::handle_substitions): likewise
	(ClosureType::handle_substitions): likewise
	(ArrayType::handle_substitions): likewise
	(SliceType::handle_substitions): likewise
	(ReferenceType::handle_substitions): likewise
	(PointerType::handle_substitions): likewise
	(ParamType::handle_substitions): likewise
	(ProjectionType::handle_substitions): likewise
	* typecheck/rust-tyty.h: likewise

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-trait-ref.h: Moved to...
	* typecheck/rust-hir-trait-reference.h: ...here.
	* typecheck/rust-hir-trait-resolve.cc: refactor
	* typecheck/rust-hir-trait-resolve.h (RUST_HIR_TRAIT_RESOLVE_H): likewise
	* typecheck/rust-hir-type-check.h: likewise
	* typecheck/rust-tyty.cc: likewise

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* Make-lang.in: update name
	* typecheck/rust-tyctx.cc: Moved to...
	* typecheck/rust-typecheck-context.cc: ...here.

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-type-check.h: refactor
	* typecheck/rust-tyctx.cc (TypeCheckContext::iterate): refactor
	(TypeCheckContext::have_loop_context): likewise
	(TypeCheckContext::push_new_loop_context): likewise
	(TypeCheckContext::push_new_while_loop_context): likewise
	(TypeCheckContext::peek_loop_context): likewise
	(TypeCheckContext::pop_loop_context): likewise
	(TypeCheckContext::swap_head_loop_context): likewise
	(TypeCheckContext::insert_trait_reference): likewise
	(TypeCheckContext::lookup_trait_reference): likewise
	(TypeCheckContext::insert_receiver): likewise
	(TypeCheckContext::lookup_receiver): likewise
	(TypeCheckContext::insert_associated_type_mapping): likewise
	(TypeCheckContext::clear_associated_type_mapping): likewise
	(TypeCheckContext::lookup_associated_type_mapping): likewise
	(TypeCheckContext::insert_variant_definition): likewise
	(TypeCheckContext::lookup_variant_definition): likewise
	(TypeCheckContext::insert_operator_overload): likewise
	(TypeCheckContext::lookup_operator_overload): likewise
	(TypeCheckContext::insert_unconstrained_check_marker): likewise
	(TypeCheckContext::have_checked_for_unconstrained): likewise
	(TypeCheckContext::insert_resolved_predicate): likewise
	(TypeCheckContext::lookup_predicate): likewise
	(TypeCheckContext::insert_query): likewise
	(TypeCheckContext::query_completed): likewise
	(TypeCheckContext::query_in_progress): likewise
	(TypeCheckContext::insert_trait_query): likewise
	(TypeCheckContext::trait_query_completed): likewise
	(TypeCheckContext::trait_query_in_progress): likewise
	(TypeCheckContextItem::Item::Item): likewise
	(TypeCheckContextItem::TypeCheckContextItem): likewise
	(TypeCheckContextItem::get_item): likewise
	(TypeCheckContextItem::get_impl_item): likewise
	(TypeCheckContextItem::get_trait_item): likewise
	(TypeCheckContextItem::get_type): likewise
	* typecheck/rust-tyty.cc (StructFieldType::StructFieldType): likewise
	(StructFieldType::get_ref): likewise
	(StructFieldType::get_name): likewise
	(StructFieldType::get_field_type): likewise
	(StructFieldType::set_field_type): likewise
	(StructFieldType::is_concrete): likewise
	(StructFieldType::debug): likewise
	(StructFieldType::get_locus): likewise
	(VariantDef::variant_type_string): likewise
	(VariantDef::VariantDef): likewise
	(VariantDef::operator=): likewise
	(VariantDef::get_error_node): likewise
	(VariantDef::is_error): likewise
	(VariantDef::get_id): likewise
	(VariantDef::get_defid): likewise
	(VariantDef::get_variant_type): likewise
	(VariantDef::is_data_variant): likewise
	(VariantDef::is_dataless_variant): likewise
	(VariantDef::get_identifier): likewise
	(VariantDef::num_fields): likewise
	(VariantDef::get_field_at_index): likewise
	(VariantDef::get_fields): likewise
	(VariantDef::lookup_field): likewise
	(VariantDef::get_discriminant): likewise
	(VariantDef::as_string): likewise
	(VariantDef::is_equal): likewise
	(VariantDef::clone): likewise
	(VariantDef::monomorphized_clone): likewise
	(VariantDef::get_ident): likewise
	(TupleType::TupleType): likewise
	(TupleType::get_unit_type): likewise
	(TupleType::is_unit): likewise
	(TupleType::num_fields): likewise
	(TupleType::is_concrete): likewise
	(TupleType::get_fields): likewise
	(BoolType::BoolType): likewise
	(BoolType::get_name): likewise
	(BoolType::is_concrete): likewise
	(IntType::IntType): likewise
	(IntType::get_name): likewise
	(IntType::get_int_kind): likewise
	(IntType::is_concrete): likewise
	(UintType::UintType): likewise
	(UintType::get_name): likewise
	(UintType::get_uint_kind): likewise
	(UintType::is_concrete): likewise
	(FloatType::FloatType): likewise
	(FloatType::get_name): likewise
	(FloatType::get_float_kind): likewise
	(FloatType::is_concrete): likewise
	(USizeType::USizeType): likewise
	(USizeType::get_name): likewise
	(USizeType::is_concrete): likewise
	(ISizeType::ISizeType): likewise
	(ISizeType::get_name): likewise
	(ISizeType::is_concrete): likewise
	(CharType::CharType): likewise
	(CharType::is_concrete): likewise
	(CharType::get_name): likewise
	(ReferenceType::ReferenceType): likewise
	(ReferenceType::is_concrete): likewise
	(ReferenceType::mutability): likewise
	(ReferenceType::is_mutable): likewise
	(ReferenceType::is_dyn_object): likewise
	(ReferenceType::is_dyn_slice_type): likewise
	(ReferenceType::is_dyn_str_type): likewise
	(PointerType::PointerType): likewise
	(PointerType::is_concrete): likewise
	(PointerType::mutability): likewise
	(PointerType::is_mutable): likewise
	(PointerType::is_const): likewise
	(PointerType::is_dyn_object): likewise
	(PointerType::is_dyn_slice_type): likewise
	(PointerType::is_dyn_str_type): likewise
	(ParamType::ParamType): likewise
	(ParamType::get_generic_param): likewise
	(ParamType::can_resolve): likewise
	(ParamType::is_concrete): likewise
	(StrType::StrType): likewise
	(StrType::get_name): likewise
	(StrType::is_concrete): likewise
	(NeverType::NeverType): likewise
	(NeverType::get_name): likewise
	(NeverType::is_unit): likewise
	(NeverType::is_concrete): likewise
	(PlaceholderType::PlaceholderType): likewise
	(PlaceholderType::get_name): likewise
	(PlaceholderType::is_unit): likewise
	(PlaceholderType::get_symbol): likewise
	(PlaceholderType::is_concrete): likewise
	(ProjectionType::is_unit): likewise
	(ProjectionType::get_name): likewise
	(ProjectionType::needs_generic_substitutions): likewise
	(ProjectionType::supports_substitutions): likewise
	(ProjectionType::has_subsititions_defined): likewise
	(ProjectionType::get): likewise
	(ProjectionType::is_concrete): likewise
	(DynamicObjectType::is_concrete): likewise
	* typecheck/rust-tyty.h: likewise

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-path-probe.cc (PathProbeCandidate::Candidate::Candidate): refactor
	(PathProbeCandidate::PathProbeCandidate): likewise
	(PathProbeCandidate::as_string): likewise
	(PathProbeCandidate::is_enum_candidate): likewise
	(PathProbeCandidate::is_impl_candidate): likewise
	(PathProbeCandidate::is_trait_candidate): likewise
	(PathProbeCandidate::is_full_trait_item_candidate): likewise
	(PathProbeCandidate::get_error): likewise
	(PathProbeCandidate::is_error): likewise
	(PathProbeCandidate::get_defid): likewise
	(PathProbeCandidate::operator<): likewise
	* typecheck/rust-hir-path-probe.h (struct PathProbeCandidate): likewise

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-hir-path-probe.cc (PathProbeType::PathProbeType): refactor
	(PathProbeType::Probe): likewise
	(PathProbeType::visit): likewise
	(PathProbeType::process_enum_item_for_candiates): likewise
	(PathProbeType::process_impl_items_for_candidates): likewise
	(PathProbeType::is_reciever_generic): likewise
	(PathProbeImplTrait::PathProbeImplTrait): likewise
	(PathProbeImplTrait::Probe): likewise
	(PathProbeImplTrait::process_trait_impl_items_for_candidates): likewise
	* typecheck/rust-hir-path-probe.h (struct PathProbeCandidate): likewise
	* typecheck/rust-hir-trait-resolve.cc
	(PathProbeImplTrait::process_trait_impl_items_for_candidates): likewise

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty.cc (BaseType::BaseType): refactor
	(BaseType::~BaseType): likewise
	(BaseType::get_ref): likewise
	(BaseType::set_ref): likewise
	(BaseType::get_ty_ref): likewise
	(BaseType::set_ty_ref): likewise
	(BaseType::is_equal): likewise
	(BaseType::is_unit): likewise
	(BaseType::get_kind): likewise
	(BaseType::get_combined_refs): likewise
	(BaseType::append_reference): likewise
	(BaseType::supports_substitutions): likewise
	(BaseType::has_subsititions_defined): likewise
	(BaseType::can_substitute): likewise
	(BaseType::needs_generic_substitutions): likewise
	(BaseType::contains_type_parameters): likewise
	(BaseType::get_ident): likewise
	(BaseType::get_locus): likewise
	(InferType::InferType): likewise
	(InferType::get_infer_kind): likewise
	(InferType::get_name): likewise
	(InferType::is_concrete): likewise
	(ErrorType::ErrorType): likewise
	(ErrorType::is_unit): likewise
	(ErrorType::is_concrete): likewise
	(ErrorType::get_name): likewise
	(ErrorType::monomorphized_clone): likewise
	* typecheck/rust-tyty.h (class SubstitutionArgumentMappings): likewise

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-substitution-mapper.cc (SubstMapper::SubstMapper): refactor
	(SubstMapper::Resolve): likewise
	(SubstMapper::InferSubst): likewise
	(SubstMapper::have_generic_args): likewise
	(SubstMapper::visit): likewise
	(SubstMapperInternal::visit): likewise
	(SubstMapperFromExisting::SubstMapperFromExisting): likewise
	(SubstMapperFromExisting::Resolve): likewise
	(SubstMapperFromExisting::visit): likewise
	(GetUsedSubstArgs::GetUsedSubstArgs): likewise
	(GetUsedSubstArgs::From): likewise
	(GetUsedSubstArgs::visit): likewise
	* typecheck/rust-substitution-mapper.h: refactor
	* typecheck/rust-tyty-subst.cc (SubstitutionParamMapping::get_generic_param): likewise

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* Make-lang.in: update the makefile
	* typecheck/rust-tyty.cc (SubstitutionParamMapping::need_substitution): likewise
	(SubstitutionParamMapping::override_context): likewise
	(SubstitutionRef::get_mappings_from_generic_args): likewise
	(SubstitutionRef::infer_substitions): likewise
	(SubstitutionRef::are_mappings_bound): likewise
	(SubstitutionRef::solve_missing_mappings_from_this): likewise
	(SubstitutionRef::monomorphize): likewise
	* typecheck/rust-tyty.h (class SubstitutionParamMapping): likewise
	(class SubstitutionArg): likewise
	(std::function<void): likewise
	(class SubstitutionArgumentMappings): likewise
	(class SubstitutionRef): likewise
	* typecheck/rust-tyty-subst.cc: New file.
	* typecheck/rust-tyty-subst.h: New file.

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* Make-lang.in: update makefile
	* typecheck/rust-tyty.cc (TyVar::TyVar): move to new file
	(TyVar::get_tyty): likewise
	(TyVar::get_implicit_infer_var): likewise
	(TyVar::subst_covariant_var): likewise
	(TyVar::clone): likewise
	(TyVar::monomorphized_clone): likewise
	(TyWithLocation::TyWithLocation): likewise
	* typecheck/rust-tyty.h (class BaseType): cleanup
	(class TypeBoundPredicate): move to its own file
	(class TypeBoundPredicateItem): likewise
	(class TypeBoundsMappings): likewise
	(class TyVar): likewise
	(class TyWithLocation): likewise
	* typecheck/rust-tyty-bounds.h: New file.
	* typecheck/rust-tyty-util.cc: New file.
	* typecheck/rust-tyty-util.h: New file.

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicateItem::error): refactor
	(TypeBoundPredicateItem::is_error): likewise
	(TypeBoundPredicateItem::get_parent): likewise
	* typecheck/rust-tyty.h: Move the implementation for the above

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Removed copy-pasted comment.

2023-04-06  mxlol233  <mxlol233@outlook.com>

	* Make-lang.in: Add object files: `rust-feature.o` and `rust-feature-gate.o`
	* checks/errors/rust-feature-gate.cc: New file.
	* checks/errors/rust-feature-gate.h: New file.
	* checks/errors/rust-feature.cc: New file.
	* checks/errors/rust-feature.h: New file.
	* rust-session-manager.cc: Add FeatureGate check.

2023-04-06  Arthur Cohen  <arthur.cohen@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_closure_expr): Advance tokens
	properly when parsing closure param list.

2023-04-06  Arthur Cohen  <arthur.cohen@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_generic_arg): Handle type
	paths and nested generics properly.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* ast/rust-pattern.h:
	(ReferencePattern::is_double_reference): Add method.
	(ReferencePattern::get_is_mut): Add method.
	* hir/rust-ast-lower-pattern.cc
	(ASTLoweringPattern::visit): Add ReferencePattern visitor.
	* hir/rust-ast-lower-pattern.h:
	(ASTLoweringPattern::visit): Add ReferencePattern visitor.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-pattern.h
	(class ReferencePattern): Remove has_two_amps field.
	* hir/tree/rust-hir-full-test.cc
	(ReferencePattern::as_string): Remove usage of ReferencePattern::has_two_amps.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-fnparam.h
	(CompileFnParam::visit): Remove HIR::GroupedPattern visitor.
	* backend/rust-compile-pattern.cc
	(CompilePatternCaseLabelExpr::visit): Remove HIR::GroupedPattern visitor.
	(CompilePatternBindings::visit): Remove HIR::GroupedPattern visitor.
	* backend/rust-compile-pattern.h
	(CompilePatternCaseLabelExpr::visit): Remove HIR::GroupedPattern visitor.
	(CompilePatternBindings::visit): Remove HIR::GroupedPattern visitor.
	(CompilePatternLet::visit): Remove HIR::GroupedPattern visitor.
	* backend/rust-compile-resolve-path.h
	(ResolvePathRef::visit): Remove HIR::GroupedPattern visitor.
	* backend/rust-compile-var-decl.h
	(CompileVarDecl::visit): Remove HIR::GroupedPattern visitor.
	* checks/errors/rust-const-checker.cc
	(ConstChecker::visit): Remove HIR::GroupedPattern visitor.
	* checks/errors/rust-const-checker.h
	(ConstChecker::visit): Remove HIR::GroupedPattern visitor.
	* checks/errors/rust-unsafe-checker.cc
	(UnsafeChecker::visit): Remove HIR::GroupedPattern visitor.
	* checks/errors/rust-unsafe-checker.h
	(UnsafeChecker::visit): Remove HIR::GroupedPattern visitor.
	* hir/rust-hir-dump.cc (Dump::visit): Remove HIR::GroupedPattern visitor.
	* hir/rust-hir-dump.h (Dump::visit): Remove HIR::GroupedPattern visitor.
	* hir/tree/rust-hir-full-decls.h (class GroupedPattern): Remove class.
	* hir/tree/rust-hir-full-test.cc (GroupedPattern::accept_vis): Remove method.
	* hir/tree/rust-hir-pattern.h (class GroupedPattern): Remove class.
	* hir/tree/rust-hir-visitor.h
	(HIRFullVisitor::visit): Remove HIR::GroupedPattern visitor.
	(HIRFullVisitorBase::visit): Remove HIR::GroupedPattern visitor.
	(HIRPatternVisitor::visit): Remove HIR::GroupedPattern visitor.
	* typecheck/rust-hir-type-check-pattern.cc
	(TypeCheckPattern::visit): Remove HIR::GroupedPattern visitor.
	* typecheck/rust-hir-type-check-pattern.h
	(TypeCheckPattern::visit): Remove HIR::GroupedPattern visitor.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/rust-ast-lower-pattern.cc
	(ASTLoweringPattern::visit): Lower AST::GroupedPattern to its inner pattern.

2023-04-06  MAHAD  <mahadtxt@gmail.com>

	* rust-buffered-queue.h: Moved to...
	* util/rust-buffered-queue.h: ...here.

2023-04-06  Arthur Cohen  <arthur.cohen@embecosm.com>

	* parse/rust-parse-impl.h (Parser::parse_type): Handle double ampersan
	properly
	(Parser::parse_reference_type): Call into `parse_reference_type_inner`
	and wrap double reference types in another `AST::ReferenceType` node
	(Parser::parse_reference_type_inner): Add parsing implementation
	which does not care about the leading token (& or  &&)
	(Parser::parse_type_no_bounds): Handle double ampersand properly
	* parse/rust-parse.h: Declare `parse_reference_type_inner`

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-pattern.cc (CompilePatternLet::visit): New function.
	* backend/rust-compile-stmt.cc (CompileStmt::visit): Likewise.
	* backend/rust-compile-pattern.h (class CompilePatternLet): New visitor.

2023-04-06  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-macro.h (enum class): Add `BuiltinMacro` enum class.
	* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Mention
	switching on `macro.kind` once builtin macro invocations are properly
	handled.
	* parse/rust-parse-impl.h (Parser::parse_macro_invocation): Switch to new MacroInvocation
	API.
	(Parser::parse_type): Likewise.
	(Parser::parse_type_no_bounds): Likewise.

2023-04-06  Abdul Rafey  <abdulrafeyq@gmail.com>

	* ast/rust-ast-dump.cc (Dump::visit): removed extra indentations in trait ast dump

2023-04-06  Abdul Rafey  <abdulrafeyq@gmail.com>

	* parse/rust-parse-impl.h (Parser::null_denotation): Add proper error
	when seeing wildcard var on right side of assignment.

2023-04-06  Abdul Rafey  <abdulrafeyq@gmail.com>

	* ast/rust-ast.cc: Fix include list.
	* ast/rust-expr.h: Likewise.
	* hir/tree/rust-hir-expr.h: Likewise.
	* rust-backend.h: Likewise.
	* util/rust-lang-item.h: Likewise.
	* operator.h: Moved to...
	* util/rust-operators.h: ...here.

2023-04-06  Parthib  <parthibdutta02@gmail.com>

	* Make-lang.in: Rename object file.
	* ast/rust-ast-full-test.cc: Moved to...
	* ast/rust-ast.cc: ...here.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-pattern.cc (CompilePatternCaseLabelExpr::visit): Add proper
	visitor.
	(CompilePatternBindings::visit): Likewise.
	* backend/rust-compile-pattern.h: Declare them.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Add proper
	visitor.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/tree/rust-hir-pattern.h: Add get_item method.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Add proper visitor.
	* hir/rust-ast-lower-pattern.h: Declare it.

2023-04-06  Lyra  <teromene@teromene.fr>

	* expand/rust-macro-expand.cc (transcribe_expression): Fix ICE when expanding
	empty macros.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* resolve/rust-ast-resolve-pattern.h: Support GroupedPattern properly.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* backend/rust-compile-base.cc (HIRCompileBase::compile_locals_for_block):
	Allow patterns to declare zero or multiple variables.
	* backend/rust-compile-var-decl.h: Change function declaration.

2023-04-06  mxlol233  <mxlol233@outlook.com>

	* lex/rust-lex.cc (Lexer::build_token): Make location enclose entire token.
	(Lexer::parse_byte_char): Likewise.
	(Lexer::parse_byte_string): Likewise.
	(Lexer::parse_raw_byte_string): Likewise.
	(Lexer::parse_raw_identifier): Likewise.
	(Lexer::parse_string): Likewise.
	(Lexer::parse_identifier_or_keyword): Likewise.
	(Lexer::parse_raw_string): Likewise.
	(Lexer::parse_non_decimal_int_literal): Likewise.
	(Lexer::parse_decimal_int_or_float): Likewise.
	(Lexer::parse_char_or_lifetime): Likewise.

2023-04-06  mxlol233  <mxlol233@outlook.com>

	* ast/rust-ast.h: Add get_locus method.
	* ast/rust-expr.h: Likewise.
	* ast/rust-macro.h: Likewise.

2023-04-06  Owen Avery  <powerboat9.gamer@gmail.com>

	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Cleanup LetStmt
	type checking.

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* hir/tree/rust-hir-path.h: Add const get_identifier and get_type method.
	* typecheck/rust-hir-path-probe.h: Use new SubstitutionArgumentMappings constructor.
	* typecheck/rust-hir-trait-resolve.cc: Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
	* typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound):
	Do not assert failure on size mismatch anymore.
	(TypeBoundPredicate::TypeBoundPredicate): Use new SubstitutionArgumentMappings constructor.
	(TypeBoundPredicate::operator=): Likewise.
	(TypeBoundPredicate::apply_generic_arguments): Likewise.
	(TypeBoundPredicateItem::get_tyty_for_receiver): Likewise.
	(TypeBoundPredicate::get_num_associated_bindings): Likewise.
	(TypeBoundPredicate::lookup_associated_type): Fix implementation for new system.
	(TypeBoundPredicate::get_associated_type_items): Likewise.
	* typecheck/rust-tyty.cc (SubstitutionRef::get_mappings_from_generic_args): Add new
	behavior.
	(SubstitutionRef::infer_substitions): Use new constructor and add comment.
	(SubstitutionRef::solve_missing_mappings_from_this): Use new constructor.
	* typecheck/rust-tyty.h: Define new constructors.

2023-04-06  Philip Herron  <herron.philip@googlemail.com>

	* resolve/rust-ast-resolve-type.cc (ResolveGenericArgs::go): Add name resolution to
	Trait items.

2023-04-06  Raiki Tamura  <tamaron1203@gmail.com>

	* ast/rust-ast-full-decls.h (class MacroItem): Remove forward declaration.
	* ast/rust-ast-full-test.cc (MacroRulesDefinition):
	Rework MacroRulesDefinition class
	* ast/rust-ast.h (class MacroItem): Remove abstract class.
	* ast/rust-item.h (class MacroItem): Remove forward declaration.
	* ast/rust-macro.h (class MacroItem): Likewise.
	(class MacroRulesDefinition): Add MacroKind enum.
	(class MacroInvocation): Fix inheritance.
	* lex/rust-token.h: Token "macro" is now used.
	* parse/rust-parse-impl.h (Parser::parse_item): Add handling for MACRO.
	(Parser::parse_vis_item): Call into parse_decl_macro_def.
	(Parser::parse_macro_item): Delete function.
	(Parser::parse_macro_rules_def): Return MBE macros only.
	(Parser::parse_decl_macro_def): New function.
	(Parser::parse_stmt): Handle MACRO token.
	(Parser::parse_stmt_or_expr_without_block): Call into parse_macro_rules_def.
	* parse/rust-parse.h: Declare new function.

2023-04-06  mxlol233  <mxlol233@outlook.com>

	* parse/rust-parse-impl.h (Parser::parse_generic_arg): Add proper bound parsing.

2023-04-06  Dave  <dme2223@gmail.com>

	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Use StackedContext
	class.

2023-04-06  Prajwal S N  <prajwalnadig21@gmail.com>

	* checks/errors/rust-unsafe-checker.cc (check_target_attr): New function.
	(UnsafeChecker::check_function_attr): Call into `check_target_attr`.
	(UnsafeChecker::visit): Check for target_feature attributes.
	* checks/errors/rust-unsafe-checker.h: Add declarations.
	* util/rust-attributes.cc: Add attribute.

2023-04-06  Arthur Cohen  <arthur.cohen@embecosm.com>

	* rust-session-manager.cc (Session::compile_crate): Fix typo.

2023-02-22  Thomas Schwinge  <thomas@codesourcery.com>

	* rust-lang.cc (grs_langhook_type_for_mode): Also consider all
	'int_n' modes/types.

2023-02-22  Thomas Schwinge  <thomas@codesourcery.com>

	* rust-lang.cc (grs_langhook_init): Do not initialize
	void_list_node.

2023-02-22  Thomas Schwinge  <thomas@codesourcery.com>

	* config-lang.in (target_libs): Remove.

2023-02-21  Raiki Tamura  <tamaron1203@gmail.com>

	* backend/rust-builtins.cc (BuiltinsContext::setup_math_fns): New functions.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-constexpr.cc (get_nth_callarg): Remove function.
	(rs_bind_parameters_in_call): Use CALL_EXPR_ARG instead.
	(potential_constant_expression_1): Likewise.

2023-02-21  Thomas Schwinge  <thomas@codesourcery.com>

	* lang.opt: Fix ordering of file.

2023-02-21  Philip Herron  <herron.philip@googlemail.com>

	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Remove unused parameters.
	* backend/rust-constexpr.cc (constant_value_1): Likewise.
	(fold_non_dependent_init): Likewise.
	* backend/rust-tree.cc (publicly_uniquely_derived_p): Likewise.
	(instantiation_dependent_expression_p): Likewise.
	(type_has_nontrivial_copy_init): Likewise.
	(is_normal_capture_proxy): Likewise.
	(resolve_nondeduced_context): Likewise.
	(undeduced_auto_decl): Likewise.
	(require_deduced_type): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise.
	* checks/errors/privacy/rust-reachability.cc (ReachabilityVisitor::visit): Likewise.
	* checks/errors/privacy/rust-visibility-resolver.cc (VisibilityResolver::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::go): Likewise.
	* checks/lints/rust-lint-unused-var.cc (unused_var_walk_fn): Likewise.
	* expand/rust-macro-builtins.cc (try_expand_single_string_literal): Likewise.
	(try_expand_many_expr): Likewise.
	(parse_single_string_literal): Likewise.
	(MacroBuiltin::assert_handler): Likewise.
	(MacroBuiltin::file_handler): Likewise.
	(MacroBuiltin::column_handler): Likewise.
	(MacroBuiltin::concat_handler): Likewise.
	(MacroBuiltin::env_handler): Likewise.
	(MacroBuiltin::line_handler): Likewise.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
	(ASTLoweringBase::handle_doc_item_attribute): Likewise.
	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
	* hir/tree/rust-hir-full-test.cc (ConstGenericParam::accept_vis): Likewise.
	* lex/rust-lex.cc (Lexer::parse_utf8_escape): Likewise.
	(Lexer::parse_string): Likewise.
	(Lexer::parse_char_or_lifetime): Likewise.
	* lex/rust-lex.h: Likewise.
	* metadata/rust-export-metadata.cc: Likewise.
	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Likewise.
	* resolve/rust-ast-resolve-type.cc (ResolveType::visit): Likewise.
	(ResolveTypeToCanonicalPath::visit): Likewise.
	* resolve/rust-ast-verify-assignee.h: Likewise.
	* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Likewise.
	* typecheck/rust-hir-type-check-expr.h: Likewise.
	* typecheck/rust-hir-type-check-item.h: Likewise.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
	* typecheck/rust-tyty-rules.h: Likewise.
	* util/rust-attributes.cc (AttributeChecker::visit): Likewise.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* hir/tree/rust-hir-expr.h: Add const `get_method_name`.
	* hir/tree/rust-hir-full-decls.h (struct GenericArgs): Move from `struct`...
	(class GenericArgs): ...to `class`.
	* hir/tree/rust-hir-path.h (struct GenericArgs): Likewise.
	(class GenericArgs): Clear `type_args` in copy constructor.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Reorder
	debug print.
	* typecheck/rust-tyty.h: Add default constructors for `SubstitutionArgumentMappings`.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* backend/rust-compile-context.cc (Context::push_closure_context): New function.
	(Context::pop_closure_context): Likewise.
	(Context::insert_closure_binding): Likewise.
	(Context::lookup_closure_binding): Likewise.
	* backend/rust-compile-context.h: Declare new functions and closure mappings.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Visit captures properly.
	(CompileExpr::generate_closure_function): Compile captures properly.
	* backend/rust-compile-resolve-path.cc (ResolvePathRef::resolve): Check for
	closure bindings.
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Compile capture list's
	types as well.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Pass captures
	properly to `TyTy::ClosureType` constructor.
	* typecheck/rust-tyty.cc (ClosureType::as_string): Fix string representation.
	(ClosureType::clone): Pass `captures` argument.
	* typecheck/rust-tyty.h: Add `captures` field.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Use proper closure
	contexts.
	* resolve/rust-name-resolver.cc (Scope::lookup_decl_type): New function.
	(Scope::lookup_rib_for_decl): Likewise.
	(Resolver::insert_resolved_name): Insert captured items.
	(Resolver::push_closure_context): New function.
	(Resolver::pop_closure_context): Likewise.
	(Resolver::insert_captured_item): Likewise.
	(Resolver::decl_needs_capture): Likewise.
	(Resolver::get_captures): Likewise.
	* resolve/rust-name-resolver.h: Declare new functions.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Add Rib argument.
	(ResolveExpr::resolve_closure_param): Likewise.
	* resolve/rust-ast-resolve-implitem.h: Likewise.
	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit): Likewise.
	(ResolveItem::visit): Likewise.
	* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit): Likewise.
	* resolve/rust-ast-resolve-pattern.h: Likewise.
	* resolve/rust-ast-resolve-stmt.h: Likewise.
	* resolve/rust-ast-resolve-toplevel.h: Likewise.
	* resolve/rust-ast-resolve-type.h: Likewise.
	* resolve/rust-name-resolver.cc (Rib::lookup_decl_type): Likewise.
	(Scope::insert): Likewise.
	(Resolver::insert_builtin_types): Likewise.
	* resolve/rust-name-resolver.h: Likewise.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* resolve/rust-name-resolver.cc (MKBUILTIN_TYPE): Remove macro.
	(Rib::Rib): Remove `mappings` field.
	(Resolver::generate_builtins): Use `setup_builtin` instead of macro.
	(Resolver::setup_builtin): New function.
	* resolve/rust-name-resolver.h: Declare `setup_builtin`, add FIXME
	comment.

2023-02-21  Raiki Tamura  <tamaron1203@gmail.com>

	* lex/rust-lex.cc (Lexer::Lexer): Add `dump_lex` boolean flag.
	(Lexer::skip_token): Dump tokens if flag is enabled.
	(Lexer::dump_and_skip): New function.
	* lex/rust-lex.h: Include optional.h and declare functions.
	* parse/rust-parse-impl.h (Parser::debug_dump_lex_output): Remove old
	unused function.
	* parse/rust-parse.h: Likewise.
	* rust-session-manager.cc (Session::compile_crate): Pass lexer dump
	option to lexer.
	(Session::dump_lex): New function.
	* util/rust-optional.h: Add missing constructor.

2023-02-21  Dave  <dme2223@gmail.com>

	* ast/rust-item.h: Remoe default location for Visibility class.
	* parse/rust-parse-impl.h (Parser::parse_visibility): Pass proper location
	when instantiating visibilities.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Fix dumping of fn params.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Remove extraneous string when
	dumping statements.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc: Remove unused include.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.
	* ast/rust-ast-dump.h: Likewise.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.
	* ast/rust-ast-dump.h: Add missing getter declaration.
	* ast/rust-ast-full-test.cc (BareFunctionType::as_string): Fix bare function
	string representation.
	* ast/rust-type.h (class BareFunctionType): Declare said getter.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing tuple type visitor.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing never type visitor.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing RawPointer visitor.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing array visitor

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing slice visitor.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing visitors.
	* ast/rust-ast-dump.h: Likewise.
	* ast/rust-ast.h: Add `get_lifetime_bounds` method.
	* ast/rust-item.h: Add missing getter for lifetimes.
	* ast/rust-type.h: Likewise.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add new reference visitor wrapper.
	* ast/rust-ast-dump.h: Declare it.
	* ast/rust-item.h: Add mutable visibility getters.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Fix extra call
	to `delete`.

2023-02-21  Dave  <dme2223@gmail.com>

	* ast/rust-item.h: Add location member.
	* hir/rust-ast-lower.cc (translate_visibility): Pass location argument.
	* hir/tree/rust-hir-item.h: Fix constructor to accept Location argument.

2023-02-21  Raiki Tamura  <tamaron1203@gmail.com>

	* util/rust-lang-item.h: Add handling for `phantom_data` lang item.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add handling for unit structures.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.h: Fix documentation.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::go): Use new API.
	(Dump::format_function_param): Refactor.
	(Dump::visit_items_joined_by_separator): New function.
	(Dump::emit_attrib): Refactor.
	(Dump::visit_as_line): New function.
	(Dump::visit_items_as_lines): Likewise.
	(Dump::visit_items_as_block): Likewise.
	(Dump::visit): Use new API.
	(Dump::emit_visibility): Likewise.
	(Dump::emit_indented_string): Likewise.
	(Dump::emit_generic_params): Likewise.
	(Dump::format_tuple_field): Likewise.
	(Dump::format_struct_field): Likewise.
	(Dump::format_function_common): Likewise.
	(Dump::visit_function_common): Likewise.
	* ast/rust-ast-dump.h: Declare new functions and add documentation.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add new visit function for overloading.
	* ast/rust-ast-dump.h: Add documentation for layer.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-builtins.cc (BuiltinsContext::setup_atomic_fns): Declare atomic
	load intrinsics.
	* backend/rust-compile-intrinsic.cc (atomic_load_handler_inner): New handler.
	(atomic_load_handler): Likewise.
	(unchecked_op_handler): Remove `static` function qualifier.
	(build_atomic_builtin_name): Handle load intrinsics.
	(atomic_store_handler_inner): New handler.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-compile-intrinsic.cc (check_for_basic_integer_type): New function.
	(build_atomic_builtin_name): Use HIR Type instead of `tree`.
	(atomic_store_handler_inner): Cleanup error handling.
	(unchecked_op_inner): Likewise.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-compile-intrinsic.cc (wrapping_op_handler): Refactor to return
	an `std::function`.
	(wrapping_op_handler_inner): Rename.
	(wrapping_add_handler): Remove function.
	(wrapping_sub_handler): Likewise.
	(wrapping_mul_handler): Likewise.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-compile-intrinsic.cc (is_basic_integer_type): New function.
	(unchecked_op_inner): New handler.
	(unchecked_op_handler): New handler.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-builtins.cc (BuiltinsContext::setup_atomic_fns): New function.
	(BuiltinsContext::setup): Call `setup_atomic_fns`.
	* backend/rust-builtins.h: Declare `setup_atomic_fns`.
	* backend/rust-compile-intrinsic.cc (atomic_store_handler_inner): New function.
	(atomic_store_handler): New handler.
	(make_unsigned_long_tree): Add helper around making unsigned long trees.
	(prefetch_data_handler): Use `make_unsigned_long_tree`.
	(build_atomic_builtin_name): New function.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-constexpr.cc (build_anon_member_initialization): Workaround uninitialized
	values.
	(build_data_member_initialization): Likewise.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-compile-intrinsic.cc (sorry_handler): New intrinsic handler.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-builtins.cc (MacroBuiltin::assert): Rename to...
	(MacroBuiltin::assert_handler): ..this.
	(MacroBuiltin::file): Rename to...
	(MacroBuiltin::file_handler): ..this.
	(MacroBuiltin::column): Rename to...
	(MacroBuiltin::column_handler): ..this.
	(MacroBuiltin::include_bytes): Rename to...
	(MacroBuiltin::include_bytes_handler): ..this.
	(MacroBuiltin::include_str): Rename to...
	(MacroBuiltin::include_str_handler): ..this.
	(MacroBuiltin::compile_error): Rename to...
	(MacroBuiltin::compile_error_handler): ..this.
	(MacroBuiltin::concat): Rename to...
	(MacroBuiltin::concat_handler): ..this.
	(MacroBuiltin::env): Rename to...
	(MacroBuiltin::env_handler): ..this.
	(MacroBuiltin::cfg): Rename to...
	(MacroBuiltin::cfg_handler): ..this.
	(MacroBuiltin::include): Rename to...
	(MacroBuiltin::include_handler): ..this.
	(MacroBuiltin::line): Rename to...
	(MacroBuiltin::line_handler): ..this.
	* expand/rust-macro-builtins.h: Rename all handlers.
	* util/rust-hir-map.cc (Mappings::insert_macro_def): Use new handler
	names.

2023-02-21  Simon Cook  <simon.cook@embecosm.com>

	* util/rust-inline-visitor.h: Remove some offending system includes.

2023-02-21  YizhePKU  <yizhe@pku.edu.cn>

	* util/rust-inline-visitor.h: New file.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Refactor checking of closures.
	(CompileExpr::generate_possible_fn_trait_call): New function.
	* backend/rust-compile-expr.h: Declare `generate_possible_fn_trait_call`.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound): Add missing
	implementation.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* Make-lang.in: Compile rust-ast-lower-type.cc.
	* ast/rust-path.h: Add `get_locus` method to `TypePathFunction`.
	* hir/rust-ast-lower-base.cc (ASTLowerTypePath::visit): Move implementation to
	rust-ast-lower-type.cc.
	(ASTLowerQualifiedPathInType::visit): Likewise.
	(ASTLoweringType::visit): Likewise.
	* hir/rust-ast-lower-type.h: Move implementations to source file.
	* hir/tree/rust-hir-path.h: Likewise.
	* hir/rust-ast-lower-type.cc: New file.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): Add missing handling of
	function case.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* backend/rust-compile-context.h: Add new functions: `insert_closure_decl` and
	`lookup_closure_decl`.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Start compiling Closures properly.
	(CompileExpr::generate_closure_function): New function.
	(CompileExpr::generate_closure_fntype): Likewise.
	* backend/rust-compile-expr.h: Declare `generate_closure_function` and
	`generate_closure_fntype`.
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Visit closure types properly.
	* backend/rust-mangle.cc (legacy_mangle_name): Add support for closures.
	* backend/rust-tree.h (RS_CLOSURE_FLAG): Add new tree macro.
	(RS_CLOSURE_TYPE_P): And checking for it on tree nodes.
	* typecheck/rust-tyty.cc (ClosureType::is_equal): Add implementation.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* hir/tree/rust-hir-expr.h: Add `get_params` method.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Typecheck closure nodes.
	(TypeCheckExpr::resolve_fn_trait_call): New function.
	* typecheck/rust-hir-type-check-expr.h: Declare `resolve_fn_trait_call` and
	`resolve_possible_fn_trait_call_method_name`.
	* typecheck/rust-hir-type-check.h: Declare `get_context_type`.
	* typecheck/rust-tyctx.cc (TypeCheckContextItem::get_context_type): New function.
	* typecheck/rust-tyty-cmp.h: Visit closures properly.
	* typecheck/rust-tyty-rules.h: Likewise.
	* typecheck/rust-tyty.cc (BaseType::bounds_compatible): Add commented out assertin.
	(ClosureType::as_string): Implement it.
	(ClosureType::clone): Fix closure cloning.
	(ClosureType::setup_fn_once_output): New function.
	* typecheck/rust-tyty.h: Improve `ClosureType` class and declare `setup_fn_once_output`.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Visit closures properly.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
	* checks/lints/rust-lint-marklive.h: Likewise.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Simplify method
	call type checking 	by removing visitor and instead using one static cast. Use the
	new interface.
	* typecheck/rust-tyty-call.cc (TypeCheckMethodCallExpr::visit): Likewise.
	(TypeCheckMethodCallExpr::go): Likewise.
	(TypeCheckMethodCallExpr::check): Likewise.
	* typecheck/rust-tyty-call.h (class TypeCheckMethodCallExpr): Likewise.
	(class Argument): Likewise.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Visit closure properly when
	name resolving.
	(ResolveExpr::resolve_closure_param): Implement closure name resolving.
	* resolve/rust-ast-resolve-expr.h: Declare visitors for closure types.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::ASTLoweringPattern):
	Improve formatting.
	(ASTLoweringPattern::translate): Likewise.
	* hir/rust-ast-lower-pattern.h: Likewise.
	* resolve/rust-ast-resolve-expr.h: Likewise.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* Make-lang.in: Add new object file for expression lowering.
	* ast/rust-expr.h: Move implementation of expr lowering to source file.
	* backend/rust-compile-block.h: Likewise.
	* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
	* backend/rust-compile-expr.h: Likewise.
	* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise.
	* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
	* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
	* checks/errors/rust-const-checker.h: Likewise.
	* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
	* checks/errors/rust-unsafe-checker.h: Likewise.
	* hir/rust-ast-lower-base.h: Likewise.
	* hir/rust-ast-lower-expr.h (RUST_AST_LOWER_EXPR): Likewise.
	* hir/rust-ast-lower.cc (ASTLoweringBase::lower_closure_param): Likewise.
	* hir/rust-hir-dump.cc (Dump::visit): Likewise.
	* hir/rust-hir-dump.h: Likewise.
	* hir/tree/rust-hir-expr.h (class ClosureExpr): Likewise.
	(class ClosureExprInner): Likewise.
	(class ClosureExprInnerTyped): Likewise.
	* hir/tree/rust-hir-full-decls.h (class ClosureExprInner): Likewise.
	(class ClosureExprInnerTyped): Likewise.
	* hir/tree/rust-hir-full-test.cc (ClosureExprInnerTyped::as_string): Likewise.
	(ClosureExprInner::as_string): Likewise.
	(ClosureExprInner::accept_vis): Likewise.
	(ClosureExpr::accept_vis): Likewise.
	(ClosureExprInnerTyped::accept_vis): Likewise.
	* hir/tree/rust-hir-visitor.h: Likewise.
	* hir/tree/rust-hir.h (class Expr): Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
	* typecheck/rust-hir-type-check-expr.h: Likewise.
	* hir/rust-ast-lower-expr.cc: New file.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* util/rust-lang-item.h: Add handling for `fn_once_output`.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-fragment.cc (Fragment::Fragment): Add better APIs.
	(Fragment::complete): New function.
	(Fragment::unexpanded): New function.
	* ast/rust-ast-fragment.h: Declare new APIs and add documentation.
	* expand/rust-attribute-visitor.h: Use new Fragment API.
	* expand/rust-macro-builtins.cc (MacroBuiltin::file): Likewise.
	(MacroBuiltin::column): Likewise.
	(MacroBuiltin::include_bytes): Likewise.
	(MacroBuiltin::include_str): Likewise.
	(MacroBuiltin::concat): Likewise.
	(MacroBuiltin::env): Likewise.
	(MacroBuiltin::cfg): Likewise.
	(MacroBuiltin::include): Likewise.
	(MacroBuiltin::line): Likewise.
	* expand/rust-macro-expand.cc (parse_many): Likewise.
	(transcribe_expression): Likewise.
	(transcribe_type): Likewise.
	* expand/rust-macro-expand.h (struct MacroExpander): Likewise.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h (class ASTFragment): Remove old ASTFragment class.
	* ast/rust-macro.h (class MacroRulesDefinition): Use new Fragment API.
	* expand/rust-attribute-visitor.h: Likewise.
	* expand/rust-macro-builtins.cc (macro_end_token): Likewise.
	(MacroBuiltin::assert): Likewise.
	(MacroBuiltin::file): Likewise.
	(MacroBuiltin::column): Likewise.
	(MacroBuiltin::include_bytes): Likewise.
	(MacroBuiltin::include_str): Likewise.
	(MacroBuiltin::compile_error): Likewise.
	(MacroBuiltin::concat): Likewise.
	(MacroBuiltin::env): Likewise.
	(MacroBuiltin::cfg): Likewise.
	(MacroBuiltin::include): Likewise.
	(MacroBuiltin::line): Likewise.
	* expand/rust-macro-builtins.h: Likewise.
	* expand/rust-macro-expand.cc (MacroExpander::expand_decl_macro): Likewise.
	(MacroExpander::expand_invoc): Likewise.
	(MacroExpander::match_repetition): Likewise.
	(parse_many): Likewise.
	(transcribe_many_items): Likewise.
	(transcribe_many_ext): Likewise.
	(transcribe_many_trait_items): Likewise.
	(transcribe_many_impl_items): Likewise.
	(transcribe_many_trait_impl_items): Likewise.
	(transcribe_expression): Likewise.
	(transcribe_type): Likewise.
	(transcribe_on_delimiter): Likewise.
	(tokens_to_str): Likewise.
	* expand/rust-macro-expand.h (struct MacroExpander): Likewise.
	* util/rust-hir-map.cc (Mappings::insert_macro_def): Likewise.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Add `rust-ast-fragment.o` object file.
	* ast/rust-ast-fragment.cc: New file.
	* ast/rust-ast-fragment.h: New file.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): Check if a
	trait query is currently in progress.
	* typecheck/rust-hir-type-check.h (class TraitQueryGuard): Add helpers around
	checking for trait queries and inserting them.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add missing visitors for macro definition dumping.
	(get_delimiters): New function.
	* ast/rust-ast-dump.h: Declare `get_delimiters` and add documentation.
	* ast/rust-macro.h: Add `get_token_tree` method.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Properly handle unloaded modules.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-dump.cc (Dump::visit): Fix formatting when dumping modules.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-dump.cc (Dump::visit): Dump items in modules properly.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-dump.cc: Emit visibility when dumping items.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* hir/rust-ast-lower-base.h (class ItemWrapper): New class.
	* hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_outer_attributes): Use
	`ItemWrapper` class.
	(ASTLoweringBase::handle_doc_item_attribute): Likewise.
	(ASTLoweringBase::handle_lang_item_attribute): Likewise.
	* hir/rust-ast-lower-implitem.h: Check outer attributes on items.
	* hir/tree/rust-hir-item.h: Add `get_trait_locus` methods.
	* hir/tree/rust-hir.h: Likewise.
	* util/rust-hir-map.h: Add defId mappings and associated functions.
	* util/rust-hir-map.cc (Mappings::insert_defid_mapping): Implement insertion to said
	mappings.
	(Mappings::lookup_trait_item_defid): And looking up said mappings.

2023-02-21  Jakub Dupak  <dev@jakubdupak.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add code for dumping type aliases.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::TraitResolver): Do not nullptr init
	`resolved_trait_reference` anymore.
	(TraitResolver::resolve_path): Simplify function and rename to...
	(TraitResolver::resolve_path_to_trait): ...this.
	(TraitResolver::lookup_path): Use new interface.
	* typecheck/rust-hir-trait-resolve.h (class TraitResolver): Do not inherit `HIRFullVisitor`
	class anymore.

2023-02-21  David Faust  <david.faust@oracle.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add dump for RangeExprs.

2023-02-21  David Faust  <david.faust@oracle.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add dump for, BorrowExpr, DereferenceExpr,
	ErrorPropagationExpr, NegationExpr, TypeCastExpr and GroupedExpr.

2023-02-21  David Faust  <david.faust@oracle.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add dump code for ArrayExpr.

2023-02-21  David Faust  <david.faust@oracle.com>

	* ast/rust-ast-dump.cc (Dump::visit): Add dumps for ComparisonExpr and
	LazyBooleanExpr.

2023-02-21  David Faust  <david.faust@oracle.com>

	* ast/rust-ast-dump.cc (Dump::visit): Fix IfExpr formatting.

2023-02-21  David Faust  <david.faust@oracle.com>

	* ast/rust-ast-dump.cc (Dump::visit): Fix block formatting.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-autoderef.cc: Add support for multiple resolution candidates.
	* typecheck/rust-hir-dot-operator.cc (MethodResolver::MethodResolver): Edit
	`try_result` field and change constructor.
	(MethodResolver::Probe): Return set of candidates instead of singular candidate.
	(MethodResolver::select): Add better implementation to account for multiple
	candidates.
	* typecheck/rust-hir-dot-operator.h (struct MethodCandidate): Overload comparison
	operator in order to store them in `std::set`.
	* typecheck/rust-hir-inherent-impl-overlap.h: Do not fail assertion on missing type.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Adapt code to use
	multiple candidates.
	* typecheck/rust-tyty.cc (set_cmp_autoderef_mode): Add code to handle automatic
	derefs properly.
	(reset_cmp_autoderef_mode): Add helper function to reset said mode.
	* typecheck/rust-tyty.h (set_cmp_autoderef_mode): Declare function.
	(reset_cmp_autoderef_mode): Likewise.
	* typecheck/rust-tyty-cmp.h: Add handling of `autoderef_cmp_flag`

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* util/rust-abi.cc (get_abi_from_string): Add missing "rust-call"
	possibility for ABI variant.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* util/rust-lang-item.h: Add `fn_once` lang item.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* backend/rust-compile.cc: Add note about missing support for super
	traits.
	* typecheck/rust-tyty.cc (BaseType::satisfies_bound): New function.
	(BaseType::bounds_compatible): New function.
	(DynamicObjectType::get_object_items): New function.
	* typecheck/rust-hir-trait-ref.h: Use new API to perform type resolution
	on dyn objects.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Compile early name resolver.
	* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Move macro
	name resolution.
	* expand/rust-macro-builtins.cc (try_expand_macro_expression): Run ENR
	when recursively expanding macros.
	* expand/rust-macro-expand.cc (MacroExpander::expand_invoc): No longer
	perform name resolution in `expand_invoc`.
	* expand/rust-macro-expand.h (struct MacroExpander): Keep ENR within
	MacroExpander.
	* rust-session-manager.cc (Session::expansion): Run ENR.
	* resolve/rust-early-name-resolver.cc: New file.
	* resolve/rust-early-name-resolver.h: New file.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-path.h: Add `accept_vis` method to `GenericArg` class.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Add note for
	glob import resolving.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-hir-map.h: Add new mappings.
	* util/rust-hir-map.cc (Mappings::insert_macro_invocation): Add insertion
	function into mappings.
	(Mappings::lookup_macro_invocation): Add lookup function for mappings.

2023-02-21  Marc Poulhiès  <dkm@kataplop.net>

	* parse/rust-parse-impl.h (Parser::parse_stmt_or_expr_without_block):
	Check if `expr` is valid after parsing it.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-builtins.cc (BuiltinsContext::setup): Declare prefetch
	intrinsics.
	* backend/rust-compile-intrinsic.cc (enum class Prefetch): Add kinds of
	prefetch intrinsics.
	(prefetch_data_handler): New function.
	(prefetch_read_data): Likewise.
	(prefetch_write_data): Likewise.

2023-02-21  David Faust  <david.faust@oracle.com>

	* ast/rust-ast-dump.cc (Dump::visit): Fill empty functions for
	structs, enums and unions.

2023-02-21  David Faust  <david.faust@oracle.com>

	* ast/rust-ast-dump.cc (Dump::format_tuple_field): New.
	(Dump::format_struct_field): New.
	* ast/rust-ast-dump.h (format_tuple_field): New.
	(format_struct_field): New.

2023-02-21  David Faust  <david.faust@oracle.com>

	* ast/rust-ast-dump.cc (Dump::visit): move generic params dump ...
	(Dump::emit_generic_params): ... here.
	* ast/rust-ast-dump.h (emit_generic_params): New.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-hir-trait-ref.h (lookup_trait_item): Add lookup
	in super_trait.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* backend/rust-compile-expr.cc
	(CompileExpr::resolve_method_address): Use auto and minor change
	in candidate init.
	* typecheck/rust-hir-type-check-path.cc
	(TypeCheckExpr::resolve_segments): Likewise.
	* typecheck/rust-hir-type-check-type.cc: Likewise.
	* backend/rust-compile-resolve-path.cc
	(HIRCompileBase::query_compile): Likewise. Removecall to
	set_ty_ref.
	* typecheck/rust-hir-path-probe.h (struct PathProbeCandidate): Add
	locus initializer in ctor, implement get_defid.
	(class PathProbeType::Probe): return a set instead of vector.
	Adjust class impl.
	(class ReportMultipleCandidateError): Do not inherit from
	HIRImplVisitor anymore and remove corresponding impl. Adjust for
	change in Probe. Simplify Report handling.
	(class PathProbeImplTrait::Probe): Adjust return type.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-hir-type-check-enumitem.cc
	(TypeCheckEnumItem::visit): Adjust VariantDef ctor calls with
	DefID.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
	Likewise.
	* typecheck/rust-tyty.h (VariantDef): Add defid parameter to ctor.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* Make-lang.in: Add `rust-builtins.o` as target
	* backend/rust-builtins.h: Refactor to new file.
	* backend/rust-builtins.cc: New file.

2023-02-21  David Faust  <david.faust@oracle.com>

	* ast/rust-ast-dump.cc (Dump::visit): Implement visitor for If
	expressions.

2023-02-21  David Faust  <david.faust@oracle.com>

	* ast/rust-ast-dump.cc (Dump::visit): Dump assignment and compound
	assignment expressions.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::query_type):
	Check for recursive queries.
	* typecheck/rust-hir-type-check.h: New functions: `query_completed`,
	`query_in_progress`, `insert_query`.
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::scan): Use `query_type` API.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-dump.cc (Dump::emit_visibility): New function.
	(Dump::visit): Call into `emit_visibility`.
	(Dump::format_function_common): Likewise.
	* ast/rust-ast-dump.h: Declare `emit_visibility`.

2023-02-21  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-item.h: Rename get_public_vis_type.
	* hir/rust-ast-lower.cc (translate_visibility): Use new name.

2023-02-21  Philip Herron  <philip.herron@embecosm.com>

	* resolve/rust-name-resolver.h: Add miscellenaous item mappings.
	* resolve/rust-name-resolver.cc (Resolver::insert_resolved_misc): Use
	new mappings.
	(Resolver::lookup_resolved_misc): Likewise.
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
	Adapt function to insert into miscelleanous mappings.
	* checks/lints/rust-lint-marklive.cc (MarkLive::find_ref_node_id):
	Allow lookup in miscelleanous mappings in mark-live phase.

2023-02-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* backend/rust-tree.cc: Include memmodel.h.

2023-02-17  Thomas Schwinge  <thomas@codesourcery.com>

	* backend/rust-tree.cc: '#include "tm_p.h"'.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* Make-lang.in: Remove `rust-hir-typecheck-toplevel` object and add
	`rust-hir-path-probe` one.
	* typecheck/rust-hir-dot-operator.cc (MethodResolver::MethodResolver):
	Remove no longer used `context` and `mapping` fields, and use new
	`query_type` API.
	(MethodResolver::MethodResolver): Likewise.
	(MethodResolver::select): Use new `query_type` API.
	* typecheck/rust-hir-path-probe.h: New header.
	* typecheck/rust-hir-path-probe.cc: New file.
	* typecheck/rust-hir-dot-operator.h (class MethodResolver): Remove no
	longer used `context` and `mapping` fields, and use new `query_type` API.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::query_type): New function.
	* typecheck/rust-hir-type-check-base.h: Declare `query_type` function.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Add debug print.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::Resolve):
	Refactor and make use of new query system.
	(TypeCheckTopLevelExternItem::Resolve): Likewise.
	(TypeCheckTopLevelExternItem::visit): Likewise.
	(TypeCheckTopLevelImplItem::visit): Likewise.
	(TypeCheckImplItem::visit): Likewise.
	(TypeCheckImplItem::TypeCheckImplItem): Likewise.
	(TypeCheckImplItem::Resolve): Likewise.
	(TypeCheckImplItemWithTrait::visit): Likewise.
	* typecheck/rust-hir-type-check-implitem.h (class TypeCheckTopLevelImplItem): Likewise.
	(class TypeCheckImplItemWithTrait): Likewise.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::TypeCheckItem): Likewise.
	(TypeCheckItem::Resolve): Likewise.
	(TypeCheckItem::ResolveImplItem): Likewise.
	(TypeCheckItem::ResolveImplBlockSelf): Likewise.
	(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-item.h: Likewise.
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path): Likewise.
	(TypeCheckExpr::resolve_segments): Likewise.
	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
	* typecheck/rust-hir-type-check-stmt.h: Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::Resolve): Likewise.
	(TypeCheckType::visit): Likewise.
	(TypeCheckType::resolve_root_path): Likewise.
	* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): Likewise.
	* typecheck/rust-hir-type-check.h: Likewise.
	* typecheck/rust-substitution-mapper.h: Likewise.
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::scan): Likewise.
	(TypeCheckBase::get_predicate_from_bound): Likewise.
	(TypeBoundsMappings::add_bound): Likewise.
	* typecheck/rust-tyty-cmp.h: Likewise.
	* typecheck/rust-tyty.h: Likewise.
	* typecheck/rust-tyty.cc (SubstitutionRef::infer_substitions): Likewise.
	(ParamType::resolve): Do not infinite loop anymore.
	* util/rust-hir-map.h: Add new `hirImplBlockTypeMappings` and
	declare `lookup_impl_block_type`.
	* util/rust-hir-map.cc (Mappings::insert_hir_impl_block): Use new
	`hirImplBlockTypeMappings`
	(Mappings::lookup_impl_block_type): New function.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* backend/rust-compile-context.h: Add new optional `asm_name` string
	argument to `lookup_function_decl`.
	* backend/rust-compile-item.cc (CompileItem::visit): Compute assembly
	name and pass it to `lookup_function_decl` when calling it.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* backend/rust-constexpr.cc (eval_store_expression): Remove invalid
	assertion on constexpr constructors.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* backend/rust-compile-expr.h: Formatting.

2023-01-31  liushuyu  <liushuyu011@gmail.com>

	* ast/rust-ast.h (class MacroInvocData): Store expander as
	member of the class.
	(class Expr): Add `is_literal` virtual method
	* ast/rust-expr.h: Override `is_literal` for `LiteralExpr`s.
	* expand/rust-macro-builtins.cc (try_expand_macro_expression): New function.
	(try_extract_string_literal_from_fragment): Likewise.
	(try_expand_single_string_literal): Likewise.
	(try_expand_many_expr): Likewise.
	(parse_single_string_literal): Add macro expander as argument.
	(MacroBuiltin::include_bytes): Pass expander as argument to
	`parse_single_string_literal`.
	(MacroBuiltin::include_str): Likewise.
	(MacroBuiltin::compile_error): Likewise.
	(MacroBuiltin::include): Likewise.
	(MacroBuiltin::concat): Likewise and add better error handling.
	(MacroBuiltin::env): Likewise.
	* expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Expand
	invocations recursively.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>

	* lang.opt: Add new ``-frust-compile-until` option.
	* rust-session-manager.cc (Session::compile_crate): Add stops around
	various compilation steps in the pipeline.
	* rust-session-manager.h (struct CompileOptions): Add `CompileStep` enum
	and field.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* backend/rust-tree.cc (rs_type_quals): Comment out bad assertion

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-hir-type-check-toplevel.cc (TypeCheckTopLevel::visit):
	Make static items behave more similarly to const items.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* backend/rust-compile-item.cc (CompileItem::visit): Const evaluate
	static item expressions.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>

	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Do not lower
	null items within modules.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-attributes.cc: Add `macro_use` to list of builtin
	attributes.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/errors/rust-const-checker.cc (ConstChecker::ctx_to_str): Allow
	getting an error string from a specific constant context.
	(ConstChecker::ctx_allows_default): New function, check if a context
	allows default values for Const generics.
	(ConstChecker::visit): Call into `ctx_allows_default`.
	* checks/errors/rust-const-checker.h: Declare `ctx_allows_default`.

2023-01-31  liushuyu  <liushuyu011@gmail.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Properly formulate
	exit condition when compiling while loops.

2023-01-31  Faisal Abbas  <90.abbasfaisal@gmail.com>

	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Turn
	constant item typechecking into a coercion site instead of a unify
	site.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-tyty.h: Fix `is_concrete` for unit types with
	substitutions.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::contains_associated_types):
	Check if a type bound predicate contains assocated types.
	* typecheck/rust-tyty.h: Declare the above mentioned function.
	* typecheck/rust-hir-trait-resolve.cc: Use `contains_associated_types`
	function.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Add
	more calls to `rust_debug` for development.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* backend/rust-compile-base.cc: Improve compilation pipeline and simplify
	function.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* backend/rust-tree.cc (comptypes): Remove some C++ specific checks in
	Rust const folder for now.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::unify_site): Add
	better unification function with debug calls.
	* typecheck/rust-autoderef.cc (AutoderefCycle::cycle): Add more debug
	calls and use new unify API.
	* typecheck/rust-coercion.cc (TypeCoercionRules::do_coercion): Likewise.
	(TypeCoercionRules::coerce_borrowed_pointer): Likewise.
	(TypeCoercionRules::select): Likewise.
	* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): Likewise.
	* typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item): Likewise.
	(TypeCheckBase::coercion_site): Likewise.
	(TypeCheckBase::cast_site): Likewise.
	* typecheck/rust-hir-type-check-base.h: Likewise.
	* typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit): Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelImplItem::visit): Likewise.
	(TypeCheckImplItem::visit): Likewise.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): Likewise.
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): Likewise.
	* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve): Likewise.
	* typecheck/rust-hir-type-check-toplevel.cc (TypeCheckTopLevel::visit): Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): Likewise.
	* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): Likewise.
	* typecheck/rust-tyctx.cc (TypeCheckContext::peek_return_type): Likewise.
	* typecheck/rust-tyty-call.cc (TypeCheckMethodCallExpr::visit): Likewise.
	* typecheck/rust-tyty-cmp.h: Likewise.
	* typecheck/rust-tyty-rules.h: Likewise.
	* typecheck/rust-tyty.cc (BaseType::mappings_str): Likewise.
	(BaseType::debug): Print type name more clearly.
	(BaseType::debug_str): Add new function to print type pointer and name.
	(TupleType::get_name): Improve type name fetching function.
	(ReferenceType::get_name): Likewise.
	(PointerType::get_name): Likewise.
	* typecheck/rust-tyty.h: Refactor definitions outside of the header.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::TypeCheckBase):
	Remove constructor.
	(TypeCheckBase::coercion_site): Add `Location` argument to function.
	* typecheck/rust-hir-type-check-base.h: Use `TypeCheckBase::coercion_site`
	function with location argument.
	* typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit): Likewise.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
	* typecheck/rust-hir-type-check-expr.h (class TypeCheckExpr): Likewise.
	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
	* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::visit): Likewise.
	* typecheck/rust-hir-type-check-toplevel.cc (TypeCheckTopLevel::visit): Likewise.
	* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Likewise.
	(TypeCheckMethodCallExpr::visit): Likewise.
	* typecheck/rust-tyty.h: Add missing locus field.
	* typecheck/rust-tyty.cc (StructFieldType::clone): Use locus field.
	(StructFieldType::monomorphized_clone): Likewise.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-tyctx.cc (TypeCheckContext::pop_return_type): Add
	guards around `std::vector<T>.pop_back()`.
	(TypeCheckContext::peek_context): Likewise for `std::vector<T>.back()`.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>
	    philberty  <philip.herron@embecosm.com>

	* ast/rust-ast.h: Improve assertions within ASTFragment API.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast.h: Add assertions and accessors for fragment nodes.
	* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Fix expansion
	context typo when visiting `InherentImpl` items.
	(AttrVisitor::maybe_expand_expr): Use new Fragment accessor to fetch
	properly typed node.
	(AttrVisitor::maybe_expand_type): Likewise.
	* expand/rust-macro-expand.cc (transcribe_type): Emit parse errors
	when trying to parse a type.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-dump.h: Add shorthand `AST::Dump::debug` function to
	dump an AST node on `stderr`.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>
	    philberty  <philip.herron@embecosm.com>

	* expand/rust-macro-expand.cc (parse_many): Return early from parsing
	loop if we encounter an error, and emit that error in the meantime.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>

	* expand/rust-macro-expand.cc (MacroExpander::match_matcher): Handle
	fragments differently based on whether or not we are currently trying
	to match a matcher in a repetition context.
	(MacroExpander::match_n_matches): Use new `in_repetition` argument
	properly when calling `match_matcher`.
	* expand/rust-macro-expand.h (MacroExpander::match_matcher): Allow
	passing extra `in_repetition` bool argument

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>

	* parse/rust-parse-impl.h: Allow parsing full range expressions without
	erroring out.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/lints/rust-lint-scan-deadcode.h: Do not report public items
	as dead code.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-attributes.cc: Add `rustc_inherit_overflow_checks` to list
	of builtin attributes.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-compile-expr.cc (CompileExpr::visit): Insert overflow
	checks logic.
	(CompileExpr::array_copied_expr): Insert overflow checks logic.
	* backend/rust-compile-item.cc (CompileItem::visit): Insert overflow
	checks logic.
	* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Insert
	overflow checks logic.
	* rust-gcc.cc (Gcc_backend::arithmetic_or_logical_expression): Differentiate
	existing function from `arithmetic_or_logical_expression_checked`.
	This function does insert perform overflow checks.
	(Gcc_backend::arithmetic_or_logical_expression_checked): New
	function.
	(is_overflowing_expr): New function. Check if an expression is an
	overflowing one (ADD, SUB, MUL).
	(fetch_overflow_builtins): New function.
	* rust-backend.h: Declare `arithmetic_or_logical_expression_checked` in
	abstract `Backend` class.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>

	* backend/rust-builtins.h: Refactor builtin context class and add
	overflow builtins.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>

	* rust-gcc.cc (class Bvariable): Move class to `rust-gcc.h` header.
	* rust-gcc.h: New file.

2023-01-31  Philip Herron  <philip.herron@embecosm.com>

	* hir/rust-ast-lower-expr.h: Lower double borrow expressions to two
	`HIR::BorrowExpr`s.
	* hir/tree/rust-hir-expr.h: Remove `is_double_borrow` field from
	`HIR::BorrowExpr`.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Remove
	call to `gcc_unreachable` on double borrow expressions.

2023-01-31  Faisal Abbas  <90.abbasfaisal@gmail.com>

	* backend/rust-tree.cc : Add new includes.
	(scope_chain): New.
	(maybe_add_global): New.
	(init_modules): New (copied from cp)
	(var_in_constexpr_fn): Likewise.
	(member_vec_linear_search): Likewise.
	(member_vec_binary_search): Likewise.
	(is_overloaded_fn): Likewise.
	(ovl_make): Likewise.
	(lookup_add): Likewise.
	(type_memfn_quals): Likewise.
	(struct find_parameter_pack_data): Likewise.
	(struct conv_type_hasher): Likewise.
	(make_conv_op_name): Likewise.
	(builtin_pack_fn_p): Likewise.
	(builtin_pack_call_p): Likewise.
	(has_extra_args_mechanism_p): Likewise.
	(find_parameter_packs_r): Likewise.
	(WALK_SUBTREE): Likewise.
	(type_memfn_rqual): Likewise.
	(maybe_add_lang_type_raw): Likewise.
	(struct c_fileinfo): Likewise.
	(get_fileinfo): Likewise.
	(cxx_make_type): Likewise.
	(build_min_array_type): Likewise.
	(fields_linear_search): Likewise.
	(nothrow_spec_p): Likewise.
	(maybe_get_fns): Likewise.
	(get_fns): Likewise.
	(get_first_fn): Likewise.
	(dependent_name): Likewise.
	(called_fns_equal): Likewise.
	(canonical_eh_spec): Likewise.
	(rs_tree_code_length): Likewise.
	(rs_tree_operand_length): Likewise.
	(rs_tree_equal): Likewise.
	(publicly_uniquely_derived_p): Likewise.
	(comp_except_types): Likewise.
	(comp_except_specs): Likewise.
	(compparms): Likewise.
	(set_array_type_canon): Likewise.
	(struct cplus_array_info): Likewise.
	(struct cplus_array_hasher): Likewise.
	(cplus_array_hasher::hash): Likewise.
	(cplus_array_hasher::equal): Likewise.
	(is_byte_access_type): Likewise.
	(build_cplus_array_type): Likewise.
	(rs_build_qualified_type_real): Likewise.
	(vector_targets_convertible_p): Likewise.
	(comp_array_types): Likewise.
	(same_type_ignoring_top_level_qualifiers_p): Likewise.
	(comp_ptr_ttypes_const): Likewise.
	(similar_type_p): Likewise.
	(structural_comptypes): Likewise.
	(comptypes): Likewise.
	(next_initializable_field): Likewise.
	(sufficient_parms_p): Likewise.
	(default_ctor_p): Likewise.
	(user_provided_p): Likewise.
	(type_has_non_user_provided_default_constructor): Likewise.
	(default_init_uninitialized_part): Likewise.
	(extract_conversion_operator): Likewise.
	(get_class_binding_direct): Likewise.
	(lang_check_failed): Likewise.
	(skip_artificial_parms_for): Likewise.
	(in_class_defaulted_default_constructor): Likewise.
	(is_instantiation_of_constexpr): Likewise.
	(check_for_uninitialized_const_var): Likewise.
	(cv_unqualified): Likewise.
	(make_tree_vector): Likewise.
	(release_tree_vector): Likewise.
	(instantiation_dependent_expression_p): Likewise.
	(cp_get_callee): Likewise.
	(build_nop): Likewise.
	(scalarish_type_p): Likewise.
	(type_has_nontrivial_copy_init): Likewise.
	(build_local_temp): Likewise.
	(is_normal_capture_proxy): Likewise.
	(reject_gcc_builtin): Likewise.
	(is_bitfield_expr_with_lowered_type): Likewise.
	(maybe_undo_parenthesized_ref): Likewise.
	(fold_offsetof): Likewise.
	(char_type_p): Likewise.
	(resolve_nondeduced_context): Likewise.
	(instantiate_non_dependent_or_null): Likewise.
	(resolve_nondeduced_context_or_error): Likewise.
	(really_overloaded_fn): Likewise.
	(invalid_nonstatic_memfn_p): Likewise.
	(strip_top_quals): Likewise.
	(cxx_incomplete_type_inform): Likewise.
	(cxx_incomplete_type_diagnostic): Likewise.
	(decl_constant_var_p): Likewise.
	(undeduced_auto_decl): Likewise.
	(require_deduced_type): Likewise.
	* backend/rust-tree.h (enum c_tree_index): Likewise.
	(GTY): Likewise.
	(enum cp_tree_index): Likewise.
	(wchar_decl_node): Likewise.
	(vtable_entry_type): Likewise.
	(delta_type_node): Likewise.
	(vtable_index_type): Likewise.
	(class_type_node): Likewise.
	(unknown_type_node): Likewise.
	(init_list_type_node): Likewise.
	(explicit_void_list_node): Likewise.
	(vtbl_type_node): Likewise.
	(vtbl_ptr_type_node): Likewise.
	(std_node): Likewise.
	(abi_node): Likewise.
	(global_namespace): Likewise.
	(const_type_info_type_node): Likewise.
	(conv_op_marker): Likewise.
	(abort_fndecl): Likewise.
	(current_aggr): Likewise.
	(nullptr_node): Likewise.
	(nullptr_type_node): Likewise.
	(align_type_node): Likewise.
	(char8_type_node): Likewise.
	(char16_type_node): Likewise.
	(char32_type_node): Likewise.
	(wchar_type_node): Likewise.
	(underlying_wchar_type_node): Likewise.
	(wint_type_node): Likewise.
	(signed_size_type_node): Likewise.
	(unsigned_ptrdiff_type_node): Likewise.
	(intmax_type_node): Likewise.
	(uintmax_type_node): Likewise.
	(widest_integer_literal_type_node): Likewise.
	(widest_unsigned_literal_type_node): Likewise.
	(sig_atomic_type_node): Likewise.
	(int8_type_node): Likewise.
	(int16_type_node): Likewise.
	(int32_type_node): Likewise.
	(int64_type_node): Likewise.
	(uint8_type_node): Likewise.
	(c_uint16_type_node): Likewise.
	(c_uint32_type_node): Likewise.
	(c_uint64_type_node): Likewise.
	(int_least8_type_node): Likewise.
	(int_least16_type_node): Likewise.
	(int_least32_type_node): Likewise.
	(int_least64_type_node): Likewise.
	(uint_least8_type_node): Likewise.
	(uint_least16_type_node): Likewise.
	(uint_least32_type_node): Likewise.
	(uint_least64_type_node): Likewise.
	(int_fast8_type_node): Likewise.
	(int_fast16_type_node): Likewise.
	(int_fast32_type_node): Likewise.
	(int_fast64_type_node): Likewise.
	(uint_fast8_type_node): Likewise.
	(uint_fast16_type_node): Likewise.
	(uint_fast32_type_node): Likewise.
	(uint_fast64_type_node): Likewise.
	(intptr_type_node): Likewise.
	(uintptr_type_node): Likewise.
	(truthvalue_type_node): Likewise.
	(truthvalue_true_node): Likewise.
	(truthvalue_false_node): Likewise.
	(char_array_type_node): Likewise.
	(char8_array_type_node): Likewise.
	(char16_array_type_node): Likewise.
	(char32_array_type_node): Likewise.
	(wchar_array_type_node): Likewise.
	(string_type_node): Likewise.
	(const_string_type_node): Likewise.
	(default_function_type): Likewise.
	(function_name_decl_node): Likewise.
	(pretty_function_name_decl_node): Likewise.
	(c99_function_name_decl_node): Likewise.
	(saved_function_name_decls): Likewise.
	(null_node): Likewise.
	(ctor_identifier): Likewise.
	(complete_ctor_identifier): Likewise.
	(base_ctor_identifier): Likewise.
	(dtor_identifier): Likewise.
	(complete_dtor_identifier): Likewise.
	(base_dtor_identifier): Likewise.
	(deleting_dtor_identifier): Likewise.
	(conv_op_identifier): Likewise.
	(delta_identifier): Likewise.
	(in_charge_identifier): Likewise.
	(vtt_parm_identifier): Likewise.
	(as_base_identifier): Likewise.
	(this_identifier): Likewise.
	(pfn_identifier): Likewise.
	(vptr_identifier): Likewise.
	(global_identifier): Likewise.
	(anon_identifier): Likewise.
	(auto_identifier): Likewise.
	(decltype_auto_identifier): Likewise.
	(init_list_identifier): Likewise.
	(for_range__identifier): Likewise.
	(for_begin__identifier): Likewise.
	(for_end__identifier): Likewise.
	(for_range_identifier): Likewise.
	(for_begin_identifier): Likewise.
	(for_end_identifier): Likewise.
	(abi_tag_identifier): Likewise.
	(aligned_identifier): Likewise.
	(begin_identifier): Likewise.
	(end_identifier): Likewise.
	(get__identifier): Likewise.
	(gnu_identifier): Likewise.
	(tuple_element_identifier): Likewise.
	(tuple_size_identifier): Likewise.
	(type_identifier): Likewise.
	(value_identifier): Likewise.
	(fun_identifier): Likewise.
	(closure_identifier): Likewise.
	(heap_uninit_identifier): Likewise.
	(heap_identifier): Likewise.
	(heap_deleted_identifier): Likewise.
	(heap_vec_uninit_identifier): Likewise.
	(heap_vec_identifier): Likewise.
	(omp_identifier): Likewise.
	(lang_name_c): Likewise.
	(lang_name_cplusplus): Likewise.
	(empty_except_spec): Likewise.
	(noexcept_true_spec): Likewise.
	(noexcept_false_spec): Likewise.
	(noexcept_deferred_spec): Likewise.
	(terminate_fn): Likewise.
	(call_unexpected_fn): Likewise.
	(get_exception_ptr_fn): Likewise.
	(begin_catch_fn): Likewise.
	(end_catch_fn): Likewise.
	(allocate_exception_fn): Likewise.
	(free_exception_fn): Likewise.
	(throw_fn): Likewise.
	(rethrow_fn): Likewise.
	(atexit_fn_ptr_type_node): Likewise.
	(atexit_node): Likewise.
	(dso_handle_node): Likewise.
	(dynamic_cast_node): Likewise.
	(cleanup_type): Likewise.
	(vtt_parm_type): Likewise.
	(any_targ_node): Likewise.
	(source_location_impl): Likewise.
	(OVL_FUNCTION): Likewise.
	(OVL_CHAIN): Likewise.
	(OVL_DEDUP_P): Likewise.
	(OVL_USING_P): Likewise.
	(OVL_HIDDEN_P): Likewise.
	(OVL_NESTED_P): Likewise.
	(OVL_LOOKUP_P): Likewise.
	(OVL_EXPORT_P): Likewise.
	(OVL_FIRST): Likewise.
	(OVL_NAME): Likewise.
	(OVL_P): Likewise.
	(OVL_SINGLE_P): Likewise.
	(TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
	(CLASSTYPE_LAZY_DEFAULT_CTOR): Likewise.
	(CLASSTYPE_CONSTRUCTORS): Likewise.
	(ATTR_IS_DEPENDENT): Likewise.
	(ABI_TAG_IMPLICIT): Likewise.
	(PARENTHESIZED_LIST_P): Likewise.
	(DECL_DEPENDENT_P): Likewise.
	(USING_DECL_SCOPE): Likewise.
	(USING_DECL_DECLS): Likewise.
	(USING_DECL_TYPENAME_P): Likewise.
	(USING_DECL_UNRELATED_P): Likewise.
	(DECL_DECLARES_FUNCTION_P): Likewise.
	(DECL_DECLARES_TYPE_P): Likewise.
	(IDENTIFIER_KIND_BIT_0): Likewise.
	(IDENTIFIER_KIND_BIT_1): Likewise.
	(IDENTIFIER_KIND_BIT_2): Likewise.
	(IDENTIFIER_MARKED): Likewise.
	(IDENTIFIER_VIRTUAL_P): Likewise.
	(IDENTIFIER_KEYWORD_P): Likewise.
	(IDENTIFIER_CDTOR_P): Likewise.
	(IDENTIFIER_CTOR_P): Likewise.
	(IDENTIFIER_DTOR_P): Likewise.
	(IDENTIFIER_ANY_OP_P): Likewise.
	(IDENTIFIER_OVL_OP_P): Likewise.
	(IDENTIFIER_ASSIGN_OP_P): Likewise.
	(IDENTIFIER_CONV_OP_P): Likewise.
	(IDENTIFIER_NEWDEL_OP_P): Likewise.
	(IDENTIFIER_NEW_OP_P): Likewise.
	(CLASSTYPE_DIAMOND_SHAPED_P): Likewise.
	(CLASSTYPE_REPEATED_BASE_P): Likewise.
	(CLASSTYPE_KEY_METHOD): Likewise.
	(CLASSTYPE_MEMBER_VEC): Likewise.
	(CLASSTYPE_DECL_LIST): Likewise.
	(CLASSTYPE_DESTRUCTOR): Likewise.
	(CLASSTYPE_HAS_PRIMARY_BASE_P): Likewise.
	(CLASSTYPE_PRIMARY_BINFO): Likewise.
	(CLASSTYPE_VBASECLASSES): Likewise.
	(CLASSTYPE_AS_BASE): Likewise.
	(DECL_CONV_FN_P): Likewise.
	(DECL_CONV_FN_TYPE): Likewise.
	(same_type_p): Likewise.
	(WILDCARD_TYPE_P): Likewise.
	(MAYBE_CLASS_TYPE_P): Likewise.
	(FUNCTION_REF_QUALIFIED): Likewise.
	(FUNCTION_RVALUE_QUALIFIED): Likewise.
	(TYPE_PTRMEMFUNC_FN_TYPE): Likewise.
	(TYPE_PTRMEMFUNC_FN_TYPE_RAW): Likewise.
	(TYPE_DEPENDENT_P): Likewise.
	(TYPE_DEPENDENT_P_VALID): Likewise.
	(TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
	(TYPE_RAISES_EXCEPTIONS): Likewise.
	(IDENTIFIER_BINDING): Likewise.
	(LANG_IDENTIFIER_CAST): Likewise.
	(IF_COND): Likewise.
	(THEN_CLAUSE): Likewise.
	(ELSE_CLAUSE): Likewise.
	(IF_SCOPE): Likewise.
	(IF_STMT_CONSTEXPR_P): Likewise.
	(IF_STMT_CONSTEVAL_P): Likewise.
	(DECLTYPE_TYPE_EXPR): Likewise.
	(SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
	(CLASSTYPE_INTERFACE_ONLY): Likewise.
	(TYPE_NAME_STRING): Likewise.
	(TYPE_NAME_LENGTH): Likewise.
	(CONSTRAINT_VAR_P): Likewise.
	(KOENIG_LOOKUP_P): Likewise.
	(DECL_PARM_INDEX): Likewise.
	(DECL_PARM_LEVEL): Likewise.
	(CONV_IMPLICIT): Likewise.
	(CONV_STATIC): Likewise.
	(CONV_CONST): Likewise.
	(CONV_REINTERPRET): Likewise.
	(CONV_PRIVATE): Likewise.
	(CONV_FORCE_TEMP): Likewise.
	(CONV_FOLD): Likewise.
	(CONV_OLD_CONVERT): Likewise.
	(CONV_C_CAST): Likewise.
	(CONV_BACKEND_CONVERT): Likewise.
	(WANT_INT): Likewise.
	(WANT_FLOAT): Likewise.
	(WANT_ENUM): Likewise.
	(WANT_POINTER): Likewise.
	(WANT_NULL): Likewise.
	(WANT_VECTOR_OR_COMPLEX): Likewise.
	(WANT_ARITH): Likewise.
	(COMPARE_STRICT): Likewise.
	(COMPARE_BASE): Likewise.
	(COMPARE_DERIVED): Likewise.
	(COMPARE_REDECLARATION): Likewise.
	(COMPARE_STRUCTURAL): Likewise.
	(SF_DEFAULT): Likewise.
	(SF_PRE_PARSED): Likewise.
	(SF_INCLASS_INLINE): Likewise.
	(SD_UNINITIALIZED): Likewise.
	(SD_INITIALIZED): Likewise.
	(SD_DECOMPOSITION): Likewise.
	(SD_DEFAULTED): Likewise.
	(SD_DELETED): Likewise.
	(TYPE_PTRDATAMEM_P): Likewise.
	(RS_TYPE_CONST_P): Likewise.
	(TYPE_MAIN_DECL): Likewise.
	(DECL_NONTRIVIALLY_INITIALIZED_P): Likewise.
	(DECL_DEFAULTED_FN): Likewise.
	(TYPE_HAS_USER_CONSTRUCTOR): Likewise.
	(DECL_INITIALIZED_IN_CLASS_P): Likewise.
	(DECL_DEFAULTED_IN_CLASS_P): Likewise.
	(DECL_NONSTATIC_MEMBER_FUNCTION_P): Likewise.
	(DECL_HAS_IN_CHARGE_PARM_P): Likewise.
	(DECL_HAS_VTT_PARM_P): Likewise.
	(FUNCTION_FIRST_USER_PARMTYPE): Likewise.
	(FUNCTION_FIRST_USER_PARM): Likewise.
	(DECL_CONSTRUCTOR_P): Likewise.
	(DECL_DELETED_FN): Likewise.
	(BRACE_ENCLOSED_INITIALIZER_P): Likewise.
	(DECL_IMMEDIATE_FUNCTION_P): Likewise.
	(SET_DECL_IMMEDIATE_FUNCTION_P): Likewise.
	(CONSTRUCTOR_MUTABLE_POISON): Likewise.
	(PTRMEM_CST_MEMBER): Likewise.
	(REF_PARENTHESIZED_P): Likewise.
	(TYPE_PTRMEM_P): Likewise.
	(TYPE_PTR_OR_PTRMEM_P): Likewise.
	(DECL_DECOMPOSITION_P): Likewise.
	(DECL_DECOMP_BASE): Likewise.
	(DECL_MAYBE_IN_CHARGE_CDTOR_P): Likewise.
	(DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise.
	(DECL_CLONED_FUNCTION_P): Likewise.
	(DECL_CLONED_FUNCTION): Likewise.
	(DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise.
	(cp_function_chain): Likewise.
	(cdtor_label): Likewise.
	(current_class_ptr): Likewise.
	(current_class_ref): Likewise.
	(current_eh_spec_block): Likewise.
	(current_in_charge_parm): Likewise.
	(current_vtt_parm): Likewise.
	(current_retval_sentinel): Likewise.
	(current_function_returns_value): Likewise.
	(current_function_returns_null): Likewise.
	(current_function_returns_abnormally): Likewise.
	(current_function_infinite_loop): Likewise.
	(in_base_initializer): Likewise.
	(in_function_try_handler): Likewise.
	(current_function_return_value): Likewise.
	(current_class_type): Likewise.
	(TYPE_BEING_DEFINED): Likewise.
	(DECL_STATIC_FUNCTION_P): Likewise.
	(DECL_FUNCTION_MEMBER_P): Likewise.
	(LANG_DECL_MIN_CHECK): Likewise.
	(LANG_DECL_FN_CHECK): Likewise.
	(LANG_DECL_NS_CHECK): Likewise.
	(LANG_DECL_PARM_CHECK): Likewise.
	(LANG_DECL_DECOMP_CHECK): Likewise.
	(RS_INTEGRAL_TYPE_P): Likewise.
	(STAT_HACK_P): Likewise.
	(STAT_TYPE_VISIBLE_P): Likewise.
	(STAT_TYPE): Likewise.
	(STAT_DECL): Likewise.
	(STAT_VISIBLE): Likewise.
	(MAYBE_STAT_DECL): Likewise.
	(MAYBE_STAT_TYPE): Likewise.
	(STAT_TYPE_HIDDEN_P): Likewise.
	(STAT_DECL_HIDDEN_P): Likewise.
	(class warning_sentinel): Likewise.
	(struct uid_sensitive_constexpr_evaluation_checker): Likewise.
	(class iloc_sentinel): Likewise.
	(struct GTY): Likewise.
	(struct named_decl_hash): Likewise.
	(enum lang_decl_selector): Likewise.
	(LANG_DECL_HAS_MIN): Likewise.
	(struct named_label_entry): Likewise.
	(struct named_label_hash): Likewise.
	(enum ref_operator): Likewise.
	(struct c_fileinfo): Likewise.
	(class ovl_iterator): Likewise.
	(class lkp_iterator): Likewise.
	(enum rs_ref_qualifier): Likewise.
	(enum tsubst_flags): Likewise.
	(enum cp_identifier_kind): Likewise.
	(enum tag_types): Likewise.
	(enum compare_bounds_t): Likewise.
	(mark_rvalue_use): Likewise.
	(type_unknown_p): Likewise.
	(init_modules): Likewise.
	(var_in_constexpr_fn): Likewise.
	(ovl_first): Likewise.
	(lookup_add): Likewise.
	(ovl_make): Likewise.
	(is_overloaded_fn): Likewise.
	(maybe_add_lang_type_raw): Likewise.
	(type_memfn_rqual): Likewise.
	(builtin_pack_fn_p): Likewise.
	(make_conv_op_name): Likewise.
	(type_memfn_quals): Likewise.
	(get_fileinfo): Likewise.
	(cxx_make_type): Likewise.
	(build_cplus_array_type): Likewise.
	(is_byte_access_type): Likewise.
	(comptypes): Likewise.
	(canonical_eh_spec): Likewise.
	(cp_tree_operand_length): Likewise.
	(rs_tree_equal): Likewise.
	(compparms): Likewise.
	(rs_build_qualified_type_real): Likewise.
	(rs_build_qualified_type): Likewise.
	(cv_qualified_p): Likewise.
	(similar_type_p): Likewise.
	(vector_targets_convertible_p): Likewise.
	(same_type_ignoring_top_level_qualifiers_p): Likewise.
	(comp_ptr_ttypes_const): Likewise.
	(get_class_binding_direct): Likewise.
	(skip_artificial_parms_for): Likewise.
	(lang_check_failed): Likewise.
	(default_init_uninitialized_part): Likewise.
	(type_has_non_user_provided_default_constructor): Likewise.
	(default_ctor_p): Likewise.
	(user_provided_p): Likewise.
	(sufficient_parms_p): Likewise.
	(next_initializable_field): Likewise.
	(in_class_defaulted_default_constructor): Likewise.
	(is_instantiation_of_constexpr): Likewise.
	(check_for_uninitialized_const_var): Likewise.
	(reduced_constant_expression_p): Likewise.
	(cv_unqualified): Likewise.
	(cp_get_callee): Likewise.
	(cp_get_callee_fndecl_nofold): Likewise.
	(is_nondependent_static_init_expression): Likewise.
	(maybe_constant_init): Likewise.
	(build_nop): Likewise.
	(scalarish_type_p): Likewise.
	(is_bitfield_expr_with_lowered_type): Likewise.
	(convert_bitfield_to_declared_type): Likewise.
	(cp_fold_maybe_rvalue): Likewise.
	(maybe_undo_parenthesized_ref): Likewise.
	(fold_offsetof): Likewise.
	(cp_truthvalue_conversion): Likewise.
	(fold_non_dependent_expr): Likewise.
	(char_type_p): Likewise.
	(instantiation_dependent_expression_p): Likewise.
	(type_has_nontrivial_copy_init): Likewise.
	(build_local_temp): Likewise.
	(is_normal_capture_proxy): Likewise.
	(reject_gcc_builtin): Likewise.
	(resolve_nondeduced_context): Likewise.
	(cxx_incomplete_type_diagnostic): Likewise.
	(cxx_incomplete_type_error): Likewise.
	(invalid_nonstatic_memfn_p): Likewise.
	(really_overloaded_fn): Likewise.
	(resolve_nondeduced_context_or_error): Likewise.
	(instantiate_non_dependent_or_null): Likewise.
	(cxx_incomplete_type_inform): Likewise.
	(strip_top_quals): Likewise.
	(undeduced_auto_decl): Likewise.
	(require_deduced_type): Likewise.
	(decl_constant_var_p): Likewise.
	(type_of_this_parm): Likewise.
	(class_of_this_parm): Likewise.
	(identifier_p): Likewise.
	(gnu_vector_type_p): Likewise.
	(make_tree_vector): Likewise.
	(release_tree_vector): Likewise.
	(class releasing_vec): Likewise.
	(vec_safe_push): Likewise.
	(null_node_p): Likewise.
	* backend/rust-compile-base.cc (HIRCompileBase::setup_fndecl): Correctly
	set fndecl as constexpr from qualifiers.
	(HIRCompileBase::compile_function): Test if fndecl is constexpr.
	(HIRCompileBase::compile_constant_item): Set fndecl as constexpr.
	* backend/rust-compile-intrinsic.cc : Update include.
	(finalize_intrinsic_block): Set fndecl as constexpr.
	* backend/rust-constexpr.cc : Update include.
	(VERIFY_CONSTANT): New.
	(is_instantiation_of_constexpr): New.
	(literal_type_p): New.
	(verify_constant): New.
	(find_array_ctor_elt): New.
	(array_index_cmp): New.
	(potential_constant_expression_1): New.
	(get_nth_callarg): New.
	(unshare_constructor): New.
	(maybe_save_constexpr_fundef): New.
	(returns): New.
	(breaks): New.
	(continues): New.
	(switches): New.
	(struct constexpr_global_ctx): Add new fields.
	(constexpr_fundef): New.
	(struct constexpr_call): New.
	(constexpr_call_hasher : ggc_ptr_hash<constexpr_call>): New.
	(enum constexpr_switch_state): New.
	(struct constexpr_ctx): Add new fields.
	(struct constexpr_fundef_hasher): New.
	(constexpr_fundef_table): New.
	(constexpr_fundef_hasher::equal): New.
	(constexpr_fundef_hasher::hash): New.
	(retrieve_constexpr_fundef): New.
	(uid_sensitive_constexpr_evaluation_value): New.
	(uid_sensitive_constexpr_evaluation_true_counter): New.
	(uid_sensitive_constexpr_evaluation_p): New.
	(class temp_override): New.
	(struct uid_sensitive_constexpr_evaluation_sentinel): New.
	(struct uid_sensitive_constexpr_evaluation_checker): New.
	(::uid_sensitive_constexpr_evaluation_sentinel): New.
	(::uid_sensitive_constexpr_evaluation_checker): New.
	(uid_sensitive_constexpr_evaluation_checker::evaluation_restricted_p): New.
	(constexpr_call_table): New.
	(constexpr_call_hasher::hash): New.
	(constexpr_call_hasher::equal): New.
	(maybe_initialize_constexpr_call_table): New.
	(fundef_copies_table): New.
	(get_fundef_copy): New.
	(save_fundef_copy): New.
	(constexpr_expression): Refactor in ...
	(eval_constant_expression): ...this.
	(eval_store_expression): Add 3 bool params.
	(eval_call_expression): Likewise.
	(eval_binary_expression): Likewise.
	(eval_statement_list): New.
	(extract_string_elt): New.
	(eval_conditional_expression): New.
	(eval_bit_field_ref): New.
	(eval_loop_expr): New.
	(eval_switch_expr): New.
	(eval_unary_expression): New.
	(call_stack): New.
	(call_stack_tick): New.
	(last_cx_error_tick): New.
	(push_cx_call_context): New.
	(pop_cx_call_context): New.
	(cx_error_context): New.
	(fold_expr): Adjust call to eval_constant_expression.
	(same_type_ignoring_tlq_and_bounds_p): New.
	(union_active_member): Port more for cxx constexpr.
	(fold_indirect_ref_1): New.
	(rs_fold_indirect_ref): Likewise.
	(rs_eval_indirect_ref): New (from corresponding cxx FE file).
	(eval_logical_expression): Adjust parameter list.
	(lookup_placeholder): New (from corresponding cxx FE file).
	(constant_value_1): Remove.
	(inline_asm_in_constexpr_error): New (from corresponding cxx FE file).
	(verify_ctor_sanity): New.
	(get_callee): Remove.
	(initialized_type): New.
	(maybe_constexpr_fn): Remove.
	(init_subob_ctx): New.
	(base_field_constructor_elt): New.
	(get_or_insert_ctor_field): New.
	(eval_vector_conditional_expression): New (from correponding cxx FE file).
	(eval_bare_aggregate): New.
	(cxx_eval_trinary_expression): New.
	(reduced_constant_expression_p): New.
	(adjust_temp_type): New.
	(free_constructor): New.
	(eval_and_check_array_index): New.
	(eval_array_reference): New.
	(eval_component_reference): New.
	(label_matches): New.
	(eval_constant_expression): New.
	(modifying_const_object_error): New.
	(is_empty_field): New.
	(eval_store_expression): New.
	(eval_binary_expression): New.
	(addr_of_non_const_var): New.
	(rs_bind_parameters_in_call): New.
	(eval_builtin_function_call): New.
	(eval_call_expression): New.
	(build_anon_member_initialization): New.
	(build_data_member_initialization): New.
	(constexpr_fn_retval): New.
	(constant_value_1): New.
	(decl_constant_value): New.
	(non_const_var_error): New.
	(get_callee): New.
	(get_function_named_in_call): New.
	(maybe_constexpr_fn): New.
	(get_nth_callarg): New.
	(var_in_maybe_constexpr_fn): New.
	(instantiate_cx_fn_r): New.
	(instantiate_constexpr_fns): New.
	(array_index_cmp): New.
	(unshare_constructor): New.
	(find_array_ctor_elt): New.
	(verify_constant): New.
	(find_heap_var_refs): New.
	(find_immediate_fndecl): New.
	(diag_array_subscript): New.
	(get_array_or_vector_nelts): New.
	(eval_and_check_array_index): New.
	(extract_string_elt): New.
	(is_valid_constexpr_fn): New.
	(explain_invalid_constexpr_fn): New.
	(register_constexpr_fundef): New.
	(maybe_save_constexpr_fundef): New.
	(eval_statement_list): New.
	(eval_conditional_expression): New.
	(eval_bit_field_ref): New.
	(returns): New.
	(breaks): New.
	(continues): New.
	(switches): New.
	(eval_loop_expr): New.
	(eval_switch_expr): New.
	(eval_unary_expression): New.
	(cxx_eval_outermost_constant_expr): New.
	(is_static_init_expression): New.
	(is_constant_expression): New.
	(is_nondependent_static_init_expression): New.
	(maybe_constant_init_1): New.
	(maybe_constant_init): New.
	(is_nondependent_constant_expression): New.
	(cv_cache): New.
	(maybe_constant_value): New.
	(potential_constant_expression): New.
	(struct check_for_return_continue_data): New.
	(check_for_return_continue): New.
	(decl_namespace_context): New.
	(decl_in_std_namespace_p): New.
	(is_std_construct_at): New.
	(cxx_dynamic_cast_fn_p): New.
	(is_std_allocator_allocate): New.
	(is_std_allocator_allocate): New.
	(potential_constant_expression_1): New.
	(potential_constant_expression_1): New.
	(fold_non_dependent_init): New.
	* backend/rust-constexpr.h (maybe_save_constexpr_fundef): New.

2023-01-31  Arthur Cohen  <arthur.cohen@embecosm.com>

	* rust-session-manager.cc (Session::compile_crate): Allow the dump of prettified AST
	(Session::dump_ast_pretty): New
	* rust-session-manager.h: Add new output file for pretty AST dump

2023-01-05  David Malcolm  <dmalcolm@redhat.com>

	* resolve/rust-ast-resolve-item.cc (selftest::rust_flatten_list):
	Remove output to stderr.

2023-01-05  David Malcolm  <dmalcolm@redhat.com>

	* Make-lang.in (selftest-rust-gdb): New.
	(selftest-rust-valgrind): New.

2022-12-20  Marc Poulhiès  <dkm@kataplop.net>

	PR rust/108113
	* Make-lang.in (rust.serial): New variable.
	(rust1$(exeext)): Depend on $(rust.prev). Call LINK_PROGRESS.

2022-12-14  Jakub Jelinek  <jakub@redhat.com>

	PR rust/106072
	* parse/rust-parse-impl.h (parse_closure_param): Store
	pattern->get_locus () in a temporary before std::move (pattern) is
	invoked.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* CONTRIBUTING.md: New.
	* README.md: New.
	* logo.png: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* config-lang.in: New.

2022-12-13  Arthur Cohen  <arthur.cohen@embecosm.com>

	* lang.opt (-frust-incomplete-and-experimental-compiler-do-not-use):
	New.
	* rust-session-manager.cc (Session::compile_crate): Check it.
	* Make-lang.in (RUST_SELFTEST_FLAGS): Add it.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* Make-lang.in: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* lang.opt: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* lang-specs.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* rust-lang.cc: New.
	* rust-session-manager.cc: New.
	* rust-session-manager.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* rustspec.cc: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* rust-diagnostics.cc: New.
	* rust-diagnostics.h: New.
	* rust-gcc-diagnostics.cc: New.
	* rust-linemap.cc: New.
	* rust-linemap.h: New.
	* rust-location.h: New.
	* rust-system.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>
	    David Faust  <david.faust@oracle.com>
	    Faisal Abbas  <90.abbasfaisal@gmail.com>

	* backend/rust-compile-context.cc: New.
	* backend/rust-compile-context.h: New.
	* backend/rust-compile.cc: New.
	* backend/rust-compile.h: New.
	* backend/rust-constexpr.cc: New.
	* backend/rust-constexpr.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>
	    David Faust  <david.faust@oracle.com>

	* backend/rust-compile-block.cc: New.
	* backend/rust-compile-block.h: New.
	* backend/rust-compile-expr.cc: New.
	* backend/rust-compile-expr.h: New.
	* backend/rust-compile-extern.h: New.
	* backend/rust-compile-fnparam.cc: New.
	* backend/rust-compile-fnparam.h: New.
	* backend/rust-compile-implitem.cc: New.
	* backend/rust-compile-implitem.h: New.
	* backend/rust-compile-intrinsic.cc: New.
	* backend/rust-compile-intrinsic.h: New.
	* backend/rust-compile-item.cc: New.
	* backend/rust-compile-item.h: New.
	* backend/rust-compile-pattern.cc: New.
	* backend/rust-compile-pattern.h: New.
	* backend/rust-compile-resolve-path.cc: New.
	* backend/rust-compile-resolve-path.h: New.
	* backend/rust-compile-stmt.cc: New.
	* backend/rust-compile-stmt.h: New.
	* backend/rust-compile-struct-field-expr.cc: New.
	* backend/rust-compile-struct-field-expr.h: New.
	* backend/rust-compile-type.cc: New.
	* backend/rust-compile-type.h: New.
	* backend/rust-compile-var-decl.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>
	    David Faust  <david.faust@oracle.com>

	* backend/rust-builtins.h: New.
	* backend/rust-compile-base.cc: New.
	* backend/rust-compile-base.h: New.
	* backend/rust-mangle.cc: New.
	* backend/rust-mangle.h: New.
	* backend/rust-tree.cc: New.
	* backend/rust-tree.h: New.
	* rust-backend.h: New.
	* rust-gcc.cc: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* metadata/rust-export-metadata.cc: New.
	* metadata/rust-export-metadata.h: New.
	* metadata/rust-extern-crate.cc: New.
	* metadata/rust-extern-crate.h: New.
	* metadata/rust-import-archive.cc: New.
	* metadata/rust-imports.cc: New.
	* metadata/rust-imports.h: New.
	* rust-object-export.cc: New.
	* rust-object-export.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* checks/lints/rust-lint-unused-var.cc: New.
	* checks/lints/rust-lint-unused-var.h: New.

2022-12-13  Thomas Young  <wenzhang5800@gmail.com>

	* checks/lints/rust-lint-marklive-base.h: New.
	* checks/lints/rust-lint-marklive.cc: New.
	* checks/lints/rust-lint-marklive.h: New.
	* checks/lints/rust-lint-scan-deadcode.h: New.

2022-12-13  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/errors/privacy/rust-privacy-check.cc: New.
	* checks/errors/privacy/rust-privacy-check.h: New.
	* checks/errors/privacy/rust-privacy-common.h: New.
	* checks/errors/privacy/rust-privacy-ctx.cc: New.
	* checks/errors/privacy/rust-privacy-ctx.h: New.
	* checks/errors/privacy/rust-privacy-reporter.cc: New.
	* checks/errors/privacy/rust-privacy-reporter.h: New.
	* checks/errors/privacy/rust-pub-restricted-visitor.cc: New.
	* checks/errors/privacy/rust-pub-restricted-visitor.h: New.
	* checks/errors/privacy/rust-reachability.cc: New.
	* checks/errors/privacy/rust-reachability.h: New.
	* checks/errors/privacy/rust-visibility-resolver.cc: New.
	* checks/errors/privacy/rust-visibility-resolver.h: New.

2022-12-13  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/errors/rust-const-checker.cc: New.
	* checks/errors/rust-const-checker.h: New.

2022-12-13  Arthur Cohen  <arthur.cohen@embecosm.com>

	* checks/errors/rust-unsafe-checker.cc: New.
	* checks/errors/rust-unsafe-checker.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-autoderef.cc: New.
	* typecheck/rust-autoderef.h: New.
	* typecheck/rust-casts.cc: New.
	* typecheck/rust-casts.h: New.
	* typecheck/rust-coercion.cc: New.
	* typecheck/rust-coercion.h: New.
	* typecheck/rust-hir-dot-operator.cc: New.
	* typecheck/rust-hir-dot-operator.h: New.
	* typecheck/rust-hir-inherent-impl-overlap.h: New.
	* typecheck/rust-hir-path-probe.h: New.
	* typecheck/rust-hir-trait-ref.h: New.
	* typecheck/rust-hir-type-bounds.h: New.
	* typecheck/rust-substitution-mapper.cc: New.
	* typecheck/rust-substitution-mapper.h: New.
	* typecheck/rust-tycheck-dump.h: New.
	* typecheck/rust-tyctx.cc: New.
	* typecheck/rust-tyty-bounds.cc: New.
	* typecheck/rust-tyty-call.cc: New.
	* typecheck/rust-tyty-call.h: New.
	* typecheck/rust-tyty-cmp.h: New.
	* typecheck/rust-tyty-rules.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-tyty.cc: New.
	* typecheck/rust-tyty.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* typecheck/rust-hir-trait-resolve.cc: New.
	* typecheck/rust-hir-trait-resolve.h: New.
	* typecheck/rust-hir-type-check-base.cc: New.
	* typecheck/rust-hir-type-check-base.h: New.
	* typecheck/rust-hir-type-check-enumitem.cc: New.
	* typecheck/rust-hir-type-check-enumitem.h: New.
	* typecheck/rust-hir-type-check-expr.cc: New.
	* typecheck/rust-hir-type-check-expr.h: New.
	* typecheck/rust-hir-type-check-implitem.cc: New.
	* typecheck/rust-hir-type-check-implitem.h: New.
	* typecheck/rust-hir-type-check-item.cc: New.
	* typecheck/rust-hir-type-check-item.h: New.
	* typecheck/rust-hir-type-check-path.cc: New.
	* typecheck/rust-hir-type-check-pattern.cc: New.
	* typecheck/rust-hir-type-check-pattern.h: New.
	* typecheck/rust-hir-type-check-stmt.cc: New.
	* typecheck/rust-hir-type-check-stmt.h: New.
	* typecheck/rust-hir-type-check-struct-field.h: New.
	* typecheck/rust-hir-type-check-struct.cc: New.
	* typecheck/rust-hir-type-check-toplevel.cc: New.
	* typecheck/rust-hir-type-check-toplevel.h: New.
	* typecheck/rust-hir-type-check-type.cc: New.
	* typecheck/rust-hir-type-check-type.h: New.
	* typecheck/rust-hir-type-check-util.cc: New.
	* typecheck/rust-hir-type-check-util.h: New.
	* typecheck/rust-hir-type-check.cc: New.
	* typecheck/rust-hir-type-check.h: New.
	* typecheck/rust-tyty-visitor.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* util/rust-canonical-path.h: New.
	* util/rust-common.h: New.
	* util/rust-hir-map.cc: New.
	* util/rust-hir-map.h: New.
	* util/rust-identifier.h: New.
	* util/rust-lang-item.h: New.
	* util/rust-mapping-common.h: New.
	* util/rust-stacked-contexts.h: New.

2022-12-13  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-attributes.cc: New.
	* util/rust-attributes.h: New.

2022-12-13  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-optional-test.cc: New.
	* util/rust-optional.h: New.

2022-12-13  Arthur Cohen  <arthur.cohen@embecosm.com>

	* util/rust-base62.cc: New.
	* util/rust-base62.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* util/rust-abi.cc: New.
	* util/rust-abi.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* util/fnv-hash.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* util/rust-make-unique.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* hir/rust-ast-lower-base.cc: New.
	* hir/rust-ast-lower-base.h: New.
	* hir/rust-ast-lower-block.h: New.
	* hir/rust-ast-lower-enumitem.h: New.
	* hir/rust-ast-lower-expr.h: New.
	* hir/rust-ast-lower-extern.h: New.
	* hir/rust-ast-lower-implitem.h: New.
	* hir/rust-ast-lower-item.cc: New.
	* hir/rust-ast-lower-item.h: New.
	* hir/rust-ast-lower-pattern.cc: New.
	* hir/rust-ast-lower-pattern.h: New.
	* hir/rust-ast-lower-stmt.h: New.
	* hir/rust-ast-lower-struct-field-expr.h: New.
	* hir/rust-ast-lower-type.h: New.
	* hir/rust-ast-lower.cc: New.
	* hir/rust-ast-lower.h: New.
	* hir/rust-hir-dump.cc: New.
	* hir/rust-hir-dump.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* hir/tree/rust-hir-full-decls.h: New.
	* hir/tree/rust-hir-full-test.cc: New.
	* hir/tree/rust-hir-full.h: New.
	* hir/tree/rust-hir-visitor.h: New.
	* hir/tree/rust-hir.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* hir/tree/rust-hir-expr.h: New.
	* hir/tree/rust-hir-item.h: New.
	* hir/tree/rust-hir-path.h: New.
	* hir/tree/rust-hir-pattern.h: New.
	* hir/tree/rust-hir-stmt.h: New.
	* hir/tree/rust-hir-type.h: New.

2022-12-13  Philip Herron  <philip.herron@embecosm.com>

	* resolve/rust-ast-resolve-base.cc: New.
	* resolve/rust-ast-resolve-base.h: New.
	* resolve/rust-ast-resolve-expr.cc: New.
	* resolve/rust-ast-resolve-expr.h: New.
	* resolve/rust-ast-resolve-implitem.h: New.
	* resolve/rust-ast-resolve-item.cc: New.
	* resolve/rust-ast-resolve-item.h: New.
	* resolve/rust-ast-resolve-path.cc: New.
	* resolve/rust-ast-resolve-path.h: New.
	* resolve/rust-ast-resolve-pattern.cc: New.
	* resolve/rust-ast-resolve-pattern.h: New.
	* resolve/rust-ast-resolve-stmt.cc: New.
	* resolve/rust-ast-resolve-stmt.h: New.
	* resolve/rust-ast-resolve-struct-expr-field.cc: New.
	* resolve/rust-ast-resolve-struct-expr-field.h: New.
	* resolve/rust-ast-resolve-toplevel.h: New.
	* resolve/rust-ast-resolve-type.cc: New.
	* resolve/rust-ast-resolve-type.h: New.
	* resolve/rust-ast-resolve.cc: New.
	* resolve/rust-ast-resolve.h: New.
	* resolve/rust-ast-verify-assignee.h: New.
	* resolve/rust-name-resolver.cc: New.
	* resolve/rust-name-resolver.h: New.

2022-12-13  Arthur Cohen  <arthur.cohen@embecosm.com>
	    Philip Herron  <philip.herron@embecosm.com>
	    Joel Phillips  <simplytheother@gmail.com>

	* expand/rust-attribute-visitor.cc: New.
	* expand/rust-attribute-visitor.h: New.
	* expand/rust-macro-builtins.cc: New.
	* expand/rust-macro-builtins.h: New.
	* expand/rust-macro-expand.cc: New.
	* expand/rust-macro-expand.h: New.
	* expand/rust-macro-invoc-lexer.cc: New.
	* expand/rust-macro-invoc-lexer.h: New.
	* expand/rust-macro-substitute-ctx.cc: New.
	* expand/rust-macro-substitute-ctx.h: New.

2022-12-13  Joel Phillips  <simplytheother@gmail.com>
	    Philip Herron  <philip.herron@embecosm.com>
	    Arthur Cohen  <arthur.cohen@embecosm.com>

	* parse/rust-parse-impl.h: New, second half.

2022-12-13  Joel Phillips  <simplytheother@gmail.com>
	    Philip Herron  <philip.herron@embecosm.com>
	    Arthur Cohen  <arthur.cohen@embecosm.com>

	* parse/rust-cfg-parser.cc: New.
	* parse/rust-cfg-parser.h: New.
	* parse/rust-parse-impl.h: New.
	* parse/rust-parse.cc: New.
	* parse/rust-parse.h: New.

2022-12-13  Joel Phillips  <simplytheother@gmail.com>
	    Philip Herron  <philip.herron@embecosm.com>
	    Arthur Cohen  <arthur.cohen@embecosm.com>
	    Mark Wielaard  <mark@klomp.org>

	* lex/rust-codepoint.h: New.
	* lex/rust-lex.cc: New.
	* lex/rust-lex.h: New.
	* lex/rust-token.cc: New.
	* lex/rust-token.h: New.
	* rust-buffered-queue.h: New.

2022-12-13  Joel Phillips  <simplytheother@gmail.com>
	    Philip Herron  <philip.herron@embecosm.com>
	    Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-dump.cc: New.
	* ast/rust-ast-dump.h: New.
	* ast/rust-ast-visitor.h: New.
	* ast/rust-cond-compilation.h: New.

2022-12-13  Joel Phillips  <simplytheother@gmail.com>
	    Philip Herron  <philip.herron@embecosm.com>

	* ast/rust-expr.h: New.
	* ast/rust-macro.h: New.
	* ast/rust-path.h: New.
	* ast/rust-pattern.h: New.
	* ast/rust-stmt.h: New.
	* ast/rust-type.h: New.

2022-12-13  Joel Phillips  <simplytheother@gmail.com>
	    Philip Herron  <philip.herron@embecosm.com>

	* ast/rust-item.h: New.

2022-12-13  Joel Phillips  <simplytheother@gmail.com>
	    Philip Herron  <philip.herron@embecosm.com>
	    Arthur Cohen  <arthur.cohen@embecosm.com>

	* ast/rust-ast-full-decls.h: New.
	* ast/rust-ast-full-test.cc: New.
	* ast/rust-ast-full.h: New.
	* ast/rust-ast.h: New.
	* operator.h: New.

Copyright (C) 2022-2026 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
