diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2023-04-07 21:43:06 +0200 |
---|---|---|
committer | Thomas Schwinge <thomas_schwinge@mentor.com> | 2023-04-07 21:43:06 +0200 |
commit | ec914345e9ede274de0256cac45dc75804c2243e (patch) | |
tree | e2b551fed81feb7779cbae9806752c27e1e9cc8d /gcc/rust | |
parent | e44f127cdb12a28536fe21983dfad20570bceda0 (diff) | |
parent | 10f085135bc98afa57309fcd679698a0122925bf (diff) | |
download | gcc-ec914345e9ede274de0256cac45dc75804c2243e.zip gcc-ec914345e9ede274de0256cac45dc75804c2243e.tar.gz gcc-ec914345e9ede274de0256cac45dc75804c2243e.tar.bz2 |
Merge commit '7411eca498beb13729cc2acec77e68250940aa81~1' into HEAD
Diffstat (limited to 'gcc/rust')
-rw-r--r-- | gcc/rust/ChangeLog | 839 |
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. |