aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust
diff options
context:
space:
mode:
authorGCC Administrator <gccadmin@gcc.gnu.org>2023-02-22 00:18:49 +0000
committerGCC Administrator <gccadmin@gcc.gnu.org>2023-02-22 00:18:49 +0000
commitc3bf22d918021d97ee929d7f0bf18693b08a24e1 (patch)
tree8f864c092352323128c6b9cb2107f311ea56613f /gcc/rust
parent8f6369157917a4371b5d66dfe82b84aded3b8268 (diff)
downloadgcc-c3bf22d918021d97ee929d7f0bf18693b08a24e1.zip
gcc-c3bf22d918021d97ee929d7f0bf18693b08a24e1.tar.gz
gcc-c3bf22d918021d97ee929d7f0bf18693b08a24e1.tar.bz2
Daily bump.
Diffstat (limited to 'gcc/rust')
-rw-r--r--gcc/rust/ChangeLog839
1 files changed, 839 insertions, 0 deletions
diff --git a/gcc/rust/ChangeLog b/gcc/rust/ChangeLog
index 0f4aad5..214daee 100644
--- a/gcc/rust/ChangeLog
+++ b/gcc/rust/ChangeLog
@@ -1,3 +1,842 @@
+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.