2023-01-31 Philip Herron * 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 * 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 * backend/rust-constexpr.cc (eval_store_expression): Remove invalid assertion on constexpr constructors. 2023-01-31 Philip Herron * backend/rust-compile-expr.h: Formatting. 2023-01-31 liushuyu * 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 * 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 * backend/rust-tree.cc (rs_type_quals): Comment out bad assertion 2023-01-31 Philip Herron * typecheck/rust-hir-type-check-toplevel.cc (TypeCheckTopLevel::visit): Make static items behave more similarly to const items. 2023-01-31 Philip Herron * backend/rust-compile-item.cc (CompileItem::visit): Const evaluate static item expressions. 2023-01-31 Arthur Cohen * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Do not lower null items within modules. 2023-01-31 Arthur Cohen * util/rust-attributes.cc: Add `macro_use` to list of builtin attributes. 2023-01-31 Arthur Cohen * 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 * 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 * typecheck/rust-tyty.h: Fix `is_concrete` for unit types with substitutions. 2023-01-31 Philip Herron * 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 * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Add more calls to `rust_debug` for development. 2023-01-31 Philip Herron * backend/rust-compile-base.cc: Improve compilation pipeline and simplify function. 2023-01-31 Philip Herron * backend/rust-tree.cc (comptypes): Remove some C++ specific checks in Rust const folder for now. 2023-01-31 Philip Herron * 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 * 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 * typecheck/rust-tyctx.cc (TypeCheckContext::pop_return_type): Add guards around `std::vector.pop_back()`. (TypeCheckContext::peek_context): Likewise for `std::vector.back()`. 2023-01-31 Arthur Cohen philberty * ast/rust-ast.h: Improve assertions within ASTFragment API. 2023-01-31 Arthur Cohen * 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 * ast/rust-ast-dump.h: Add shorthand `AST::Dump::debug` function to dump an AST node on `stderr`. 2023-01-31 Arthur Cohen philberty * 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 * 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 * parse/rust-parse-impl.h: Allow parsing full range expressions without erroring out. 2023-01-31 Arthur Cohen * checks/lints/rust-lint-scan-deadcode.h: Do not report public items as dead code. 2023-01-31 Arthur Cohen * util/rust-attributes.cc: Add `rustc_inherit_overflow_checks` to list of builtin attributes. 2023-01-31 Arthur Cohen * 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 * backend/rust-builtins.h: Refactor builtin context class and add overflow builtins. 2023-01-31 Arthur Cohen * rust-gcc.cc (class Bvariable): Move class to `rust-gcc.h` header. * rust-gcc.h: New file. 2023-01-31 Philip Herron * 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): 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 * 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 * resolve/rust-ast-resolve-item.cc (selftest::rust_flatten_list): Remove output to stderr. 2023-01-05 David Malcolm * Make-lang.in (selftest-rust-gdb): New. (selftest-rust-valgrind): New. 2022-12-20 Marc Poulhiès PR rust/108113 * Make-lang.in (rust.serial): New variable. (rust1$(exeext)): Depend on $(rust.prev). Call LINK_PROGRESS. 2022-12-14 Jakub Jelinek 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 * CONTRIBUTING.md: New. * README.md: New. * logo.png: New. 2022-12-13 Philip Herron * config-lang.in: New. 2022-12-13 Arthur Cohen * 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 * Make-lang.in: New. 2022-12-13 Philip Herron * lang.opt: New. 2022-12-13 Philip Herron * lang-specs.h: New. 2022-12-13 Philip Herron * rust-lang.cc: New. * rust-session-manager.cc: New. * rust-session-manager.h: New. 2022-12-13 Philip Herron * rustspec.cc: New. 2022-12-13 Philip Herron * 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 David Faust 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 David Faust * 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 David Faust * 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 * 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 * checks/lints/rust-lint-unused-var.cc: New. * checks/lints/rust-lint-unused-var.h: New. 2022-12-13 Thomas Young * 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 * 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 * checks/errors/rust-const-checker.cc: New. * checks/errors/rust-const-checker.h: New. 2022-12-13 Arthur Cohen * checks/errors/rust-unsafe-checker.cc: New. * checks/errors/rust-unsafe-checker.h: New. 2022-12-13 Philip Herron * 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 * typecheck/rust-tyty.cc: New. * typecheck/rust-tyty.h: New. 2022-12-13 Philip Herron * 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 * 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 * util/rust-attributes.cc: New. * util/rust-attributes.h: New. 2022-12-13 Arthur Cohen * util/rust-optional-test.cc: New. * util/rust-optional.h: New. 2022-12-13 Arthur Cohen * util/rust-base62.cc: New. * util/rust-base62.h: New. 2022-12-13 Philip Herron * util/rust-abi.cc: New. * util/rust-abi.h: New. 2022-12-13 Philip Herron * util/fnv-hash.h: New. 2022-12-13 Philip Herron * util/rust-make-unique.h: New. 2022-12-13 Philip Herron * 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 * 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 * 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 * 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 Philip Herron Joel Phillips * 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 Philip Herron Arthur Cohen * parse/rust-parse-impl.h: New, second half. 2022-12-13 Joel Phillips Philip Herron Arthur Cohen * 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 Philip Herron Arthur Cohen Mark Wielaard * 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 Philip Herron Arthur Cohen * 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 Philip Herron * 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 Philip Herron * ast/rust-item.h: New. 2022-12-13 Joel Phillips Philip Herron Arthur Cohen * 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-2023 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.