| 2026-10-21 Wesley Lewis <lewis.wes.23@gmail.com> | |
| * checks/errors/rust-attribute-checker.cc | |
| (AttributeChecker::visit): Added check. | |
| 2026-10-21 Utkarsh Bahuguna <utkarshbahuguna10@gmail.com> | |
| * checks/errors/rust-hir-pattern-analysis.cc | |
| (PatStack::pop_head_constructor): Insert the sub-patterns in front of | |
| the remaining columns. | |
| 2026-10-21 Arthur Cohen <arthur.cohen@opensrcsec.com> | |
| * backend/rust-compile-intrinsic.cc: Declare the new intrinsic. | |
| * backend/rust-intrinsic-handlers.cc (float_to_int_unchecked): New handler. | |
| * backend/rust-intrinsic-handlers.h (float_to_int_unchecked): Declare it. | |
| * typecheck/rust-hir-type-check-intrinsic.cc: Add the intrinsic to the typecheck | |
| info. | |
| * util/rust-intrinsic-values.h: New value for float_to_int_unchecked. | |
| 2026-10-21 Owen Avery <powerboat9.gamer@gmail.com> | |
| * checks/errors/feature/rust-feature-defs.h | |
| (DERIVE_COERCE_POINTEE): Move to... | |
| * checks/errors/feature/rust-feature-defs-rfl.h | |
| (DERIVE_COERCE_POINTEE): ...here. | |
| 2026-10-21 Utkarsh Bahuguna <utkarshbahuguna10@gmail.com> | |
| * resolve/rust-forever-stack.h (ForeverStack::forward_declared): Also | |
| flag params declared after the current one. | |
| * resolve/rust-late-name-resolver-2.0.cc (resolve_type_path_like): Skip | |
| the check for Self. | |
| 2026-10-21 Arthur Cohen <arthur.cohen@opensrcsec.com> | |
| * backend/rust-compile-intrinsic.cc: Reformat the table and add entries for | |
| f<op>_fast intrinsics. | |
| * backend/rust-intrinsic-handlers.cc (fop_fast): New handler for f<op>_fast | |
| intrinsics. | |
| * backend/rust-intrinsic-handlers.h (fop_fast): New declaration. | |
| * typecheck/rust-hir-type-check-intrinsic.cc: Add typecheck info for f<op>_fast | |
| intrinsics. | |
| * util/rust-intrinsic-values.h: New intrinsics. | |
| 2026-10-21 Owen Avery <powerboat9.gamer@gmail.com> | |
| * checks/errors/feature/rust-feature-collector.cc | |
| (FeatureCollector::collect (Crate)): Do not automatically enable | |
| extended_key_value_attributes when targetting rustc versions | |
| before 1.50. | |
| * checks/errors/feature/rust-feature-defs-rfl.h | |
| (EXTENDED_KEY_VALUE_ATTRIBUTES): Remove feature definition. | |
| * parse/rust-parse-impl-attribute.hxx | |
| (Parser::parse_attr_input): Remove EXTENDED_KEY_VALUE_ATTRIBUTES | |
| feature gate. | |
| 2026-10-21 Arthur Cohen <arthur.cohen@opensrcsec.com> | |
| * rust-gcc.cc (builtin_remainder_float_call): New function. | |
| (maybe_extend_precision): Likewise. | |
| (arithmetic_or_logical_expression): Call them and adapt logic. | |
| 2026-10-21 Arthur Cohen <arthur.cohen@opensrcsec.com> | |
| * backend/rust-builtins.cc (BuiltinsContext::lookup_simple_builtin): Improve API | |
| to return an optional<tree> instead. | |
| (BuiltinsContext::lookup_gcc_builtin): Likewise. | |
| (BuiltinsContext::map_llvm_to_gcc_builtin): Return an expected<T> instead to avoid | |
| passing two parameters by pointer. | |
| * backend/rust-builtins.h (enum class LlvmBuiltinMappingResult): Rename and improve into... | |
| (struct LlvmBuiltinMappingError): ...This. In order to have a better interface, associated | |
| functions and an associated `emit` method on the error. | |
| * backend/rust-compile-extern.h: Use these new interfaces. | |
| * backend/rust-compile-intrinsic.cc (Intrinsics::compile): Likewise. | |
| * backend/rust-intrinsic-handlers.cc (expect): Likewise. | |
| (op_with_overflow): Likewise. | |
| (copy): Likewise. | |
| (atomic_store): Likewise. | |
| (atomic_load): Likewise. | |
| (ctlz_handler): Likewise. | |
| (cttz_handler): Likewise. | |
| (move_val_init): Likewise. | |
| (uninit): Likewise. | |
| (prefetch_data): Likewise. | |
| (bswap_handler): Likewise. | |
| (write_bytes_handler): Likewise. | |
| * rust-gcc.cc (fetch_overflow_builtins): Likewise. | |
| 2026-10-21 Owen Avery <powerboat9.gamer@gmail.com> | |
| * ast/rust-ast-collector.cc | |
| (TokenCollector::visit (TraitAlias)): New function definition. | |
| * ast/rust-ast-collector.h (TokenCollector::visit (TraitAlias)): | |
| New function declaration. | |
| * ast/rust-ast-visitor.cc | |
| (DefaultASTVisitor::visit (TraitAlias)): New function | |
| definition. | |
| * ast/rust-ast-visitor.h (ASTVisitor::visit (TraitAlias)): | |
| Likewise. | |
| (DefaultASTVisitor::visit (TraitAlias)): New function | |
| declaration. | |
| * ast/rust-ast.cc (TraitAlias::as_string): New function | |
| definition. | |
| (TraitAlias::accept_vis): Likewise. | |
| * ast/rust-ast.h (Item::Kind::TraitAlias): New enumerator. | |
| * ast/rust-item.h (class TraitAlias): New. | |
| * checks/errors/feature/rust-feature-gate.cc | |
| (FeatureGate::visit (TraitAlias)): New function definition, gate | |
| trait alias usage. | |
| * checks/errors/feature/rust-feature-gate.h | |
| (FeatureGate::visit (TraitAlias)): New function declaration. | |
| * expand/rust-derive.h (DeriveVisitor::visit (TraitAlias)): New | |
| function definition. | |
| * hir/rust-ast-lower-base.cc | |
| (ASTLoweringBase::visit (TraitAlias)): Likewise. | |
| * hir/rust-ast-lower-base.h | |
| (ASTLoweringBase::visit (TraitAlias)): New function declaration. | |
| * hir/rust-ast-lower-item.cc | |
| (ASTLoweringItem::visit (TraitAlias)): New function definition, | |
| left as a stub for now. | |
| * hir/rust-ast-lower-item.h | |
| (ASTLoweringItem::visit (TraitAlias)): New function declaration. | |
| * parse/rust-parse-impl.hxx (Parser::parse_trait): Handle trait | |
| aliases in addition to normal trait definitions. | |
| * parse/rust-parse.h (Parser::parse_trait): Change return type | |
| to allow returning trait aliases. | |
| * resolve/rust-default-resolver.cc | |
| (DefaultResolver::visit (TraitAlias)): New function definition. | |
| * resolve/rust-default-resolver.h | |
| (DefaultResolver::Visit (TraitAlias)): New function declaration. | |
| * resolve/rust-toplevel-name-resolver-2.0.cc | |
| (TopLevel::visit (TraitAlias)): New function definition. | |
| * resolve/rust-toplevel-name-resolver-2.0.h | |
| (TopLevel::visit (TraitAlias)): New function declaration. | |
| 2026-10-21 Utkarsh Bahuguna <utkarshbahuguna10@gmail.com> | |
| * rust-gcc.cc (save_call_operands): New function. | |
| (call_expression): Use it to evaluate the callee and the arguments | |
| from left to right. | |
| 2026-10-21 Utkarsh Bahuguna <utkarshbahuguna10@gmail.com> | |
| * typecheck/rust-hir-type-check-expr.cc | |
| (TypeCheckExpr::visit (MatchExpr)): Type check match arm guards as | |
| bool. | |
| * backend/rust-compile-expr.cc (CompileExpr::visit (MatchExpr)): Only | |
| run the arm body when its guard holds. | |
| * checks/errors/rust-unsafe-checker.cc | |
| (UnsafeChecker::visit (MatchExpr)): Visit match arm guards. | |
| * checks/errors/rust-const-checker.cc | |
| (ConstChecker::visit (MatchExpr)): Likewise. | |
| * checks/errors/rust-hir-pattern-analysis.cc | |
| (PatternChecker::visit (MatchExpr)): Likewise. | |
| 2026-10-21 Owen Avery <powerboat9.gamer@gmail.com> | |
| * checks/errors/feature/contrib/Makefile: Remove copyright year | |
| templating. | |
| * checks/errors/feature/contrib/copyright-stub.h: Fill in | |
| copyright year. | |
| * checks/errors/feature/contrib/parse.y: Handle incomplete and | |
| __status_to_bool. | |
| * checks/errors/feature/contrib/scan.l: Likewise and improve | |
| string literal escape handling. | |
| 2026-10-21 Arthur Cohen <arthur.cohen@opensrcsec.com> | |
| * backend/rust-compile-item.cc (handle_used_attr): New function. | |
| (CompileItem::visit): Call it. | |
| 2026-10-21 Arthur Cohen <arthur.cohen@opensrcsec.com> | |
| * checks/errors/feature/rust-feature-defs-rfl.h (FEATURE_ACTIVE): Add `used_with_arg` | |
| feature. | |
| * checks/errors/feature/rust-feature-gate.cc (FeatureGate::check_used_attribute): | |
| New function. | |
| (FeatureGate::visit): Implement feature gating visits for static items. | |
| * checks/errors/feature/rust-feature-gate.h: Declare them. | |
| * checks/errors/rust-builtin-attribute-checker.cc (used): New handler. | |
| (check_valid_attribute_for_item): Handle `used` attribute for static items. | |
| * util/rust-attribute-values.h: Add new attribute value for `used`. | |
| * util/rust-attributes.cc: Likewise. | |
| * backend/rust-compile-item.cc (CompileItem::visit): Add note about implementing the | |
| `#[used]` attribute properly in our backend. | |
| 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. |