mirror of https://github.com/gcc-mirror/gcc.git
12889 lines
492 KiB
Plaintext
12889 lines
492 KiB
Plaintext
2024-04-15 Thomas Schwinge <tschwinge@baylibre.com>
|
||
|
||
* Make-lang.in (RUST_LIBDEPS): Inline into single user.
|
||
|
||
2024-04-15 Thomas Schwinge <tschwinge@baylibre.com>
|
||
|
||
* Make-lang.in (LIBPROC_MACRO_INTERNAL): New.
|
||
(RUST_LIBDEPS, crab1$(exeext)): Use it.
|
||
|
||
2024-04-15 Thomas Schwinge <tschwinge@baylibre.com>
|
||
|
||
* Make-lang.in (RUST_LDFLAGS): Inline into single user.
|
||
|
||
2024-04-15 Thomas Schwinge <tschwinge@baylibre.com>
|
||
|
||
* Make-lang.in (RUST_LDFLAGS): Remove
|
||
'libgrust/libproc_macro_internal'.
|
||
|
||
2024-04-09 Christophe Lyon <christophe.lyon@linaro.org>
|
||
|
||
* Make-lang.in (rust.install-dvi, rust.install-html): New rules.
|
||
|
||
2024-03-04 Mark Wielaard <mark@klomp.org>
|
||
|
||
* lang.opt.urls: Regenerate.
|
||
|
||
2024-02-21 0xn4utilus <gyanendrabanjare8@gmail.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
|
||
Add variadic check on all parameters.
|
||
|
||
2024-02-21 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-pattern.cc
|
||
(CompilePatternLet::visit):
|
||
Lookup type of sub-pattern, not tuple pattern itself.
|
||
|
||
2024-02-21 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* backend/rust-builtins.cc
|
||
(BuiltinsContext::register_rust_mappings): Add powi and reformat.
|
||
* backend/rust-builtins.h: Add missing copyright header.
|
||
|
||
2024-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Nitpick: fix
|
||
formatting of emitted error.
|
||
|
||
2024-02-21 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* resolve/rust-ast-resolve-item.cc
|
||
(flatten_glob): Use Import class.
|
||
(flatten_rebind): Likewise.
|
||
(flatten_list): Likewise.
|
||
(flatten): Likewise.
|
||
(flatten_use_dec_to_paths): Likewise.
|
||
(flatten_use_dec_to_imports): Likewise.
|
||
(ResolveItem::visit): Likewise.
|
||
(Import::add_prefix): New.
|
||
(rust_flatten_nested_glob): Adjust test.
|
||
(rust_flatten_glob): Likewise.
|
||
(rust_flatten_rebind_none): Likewise.
|
||
(rust_flatten_rebind): Likewise.
|
||
(rust_flatten_rebind_nested): Likewise.
|
||
(rust_flatten_list): Likewise.
|
||
* resolve/rust-ast-resolve-item.h
|
||
(class Import): New.
|
||
|
||
2024-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* typecheck/rust-hir-type-check-implitem.h: Fix typo in field
|
||
(region_costraints -> region_constraints).
|
||
|
||
2024-02-07 Kushal Pal <kushalpal109@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_trait_item):
|
||
Handle macros in trait items similar to how its handled for trait
|
||
implementation items.
|
||
|
||
2024-02-07 Kushal Pal <kushalpal109@gmail.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit):
|
||
Remove obsolete classes and functions.
|
||
* ast/rust-ast-collector.h:
|
||
Likewise.
|
||
* ast/rust-ast-full-decls.h (class TraitFunctionDecl):
|
||
Likewise.
|
||
(class TraitItemFunc):
|
||
Likewise.
|
||
(class TraitMethodDecl):
|
||
Likewise.
|
||
(class TraitItemMethod):
|
||
Likewise.
|
||
* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit):
|
||
Likewise.
|
||
* ast/rust-ast-visitor.h:
|
||
Likewise.
|
||
* ast/rust-ast.cc (TraitItemFunc::TraitItemFunc):
|
||
Likewise.
|
||
(TraitItemFunc::operator=):
|
||
Likewise.
|
||
(TraitItemFunc::as_string):
|
||
Likewise.
|
||
(TraitFunctionDecl::as_string):
|
||
Likewise.
|
||
(TraitItemMethod::TraitItemMethod):
|
||
Likewise.
|
||
(TraitItemMethod::operator=):
|
||
Likewise.
|
||
(TraitItemMethod::as_string):
|
||
Likewise.
|
||
(TraitMethodDecl::as_string):
|
||
Likewise.
|
||
(TraitItemFunc::accept_vis):
|
||
Likewise.
|
||
(TraitItemMethod::accept_vis):
|
||
Likewise.
|
||
* ast/rust-item.h (class TraitFunctionDecl):
|
||
Likewise.
|
||
(class TraitItemFunc):
|
||
Likewise.
|
||
(class TraitMethodDecl):
|
||
Likewise.
|
||
(class TraitItemMethod):
|
||
Likewise.
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
|
||
Likewise.
|
||
* checks/errors/rust-ast-validation.h:
|
||
Likewise.
|
||
* checks/errors/rust-feature-gate.h:
|
||
Likewise.
|
||
* expand/rust-cfg-strip.cc (CfgStrip::maybe_strip_trait_function_decl):
|
||
Likewise.
|
||
(CfgStrip::maybe_strip_trait_method_decl):
|
||
Likewise.
|
||
(CfgStrip::visit):
|
||
Likewise.
|
||
* expand/rust-cfg-strip.h:
|
||
Likewise.
|
||
* expand/rust-derive.h:
|
||
Likewise.
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::expand_trait_function_decl):
|
||
Likewise.
|
||
(ExpandVisitor::expand_trait_method_decl):
|
||
Likewise.
|
||
(ExpandVisitor::visit):
|
||
Likewise.
|
||
* expand/rust-expand-visitor.h:
|
||
Likewise.
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit):
|
||
Likewise.
|
||
* hir/rust-ast-lower-base.h:
|
||
Likewise.
|
||
* hir/rust-ast-lower-implitem.cc (ASTLowerTraitItem::visit):
|
||
Likewise.
|
||
* hir/rust-ast-lower-implitem.h:
|
||
Likewise.
|
||
* resolve/rust-ast-resolve-base.cc (ResolverBase::visit):
|
||
Likewise.
|
||
* resolve/rust-ast-resolve-base.h:
|
||
Likewise.
|
||
* resolve/rust-ast-resolve-implitem.h (visit):
|
||
Likewise.
|
||
* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
|
||
Likewise.
|
||
* resolve/rust-ast-resolve-item.h:
|
||
Likewise.
|
||
* resolve/rust-default-resolver.cc (DefaultResolver::visit):
|
||
Likewise.
|
||
* resolve/rust-default-resolver.h:
|
||
Likewise.
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
|
||
Likewise.
|
||
* resolve/rust-toplevel-name-resolver-2.0.h:
|
||
Likewise.
|
||
* util/rust-attributes.cc (AttributeChecker::visit):
|
||
Likewise.
|
||
* util/rust-attributes.h:
|
||
Likewise.
|
||
|
||
2024-02-07 Kushal Pal <kushalpal109@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_trait_item):
|
||
Use parse_function() to parse trait functions.
|
||
|
||
2024-02-07 Kushal Pal <kushalpal109@gmail.com>
|
||
|
||
* hir/rust-ast-lower-implitem.cc (ASTLowerTraitItem::visit):
|
||
Provide visitor for AST::Function.
|
||
* hir/rust-ast-lower-implitem.h:
|
||
Likewise.
|
||
* resolve/rust-ast-resolve-implitem.h:
|
||
Likewise.
|
||
* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
|
||
Likewise.
|
||
* resolve/rust-ast-resolve-item.h:
|
||
Likewise.
|
||
|
||
2024-02-07 Kushal Pal <kushalpal109@gmail.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
|
||
Add checks for Trait functions.
|
||
|
||
2024-02-07 Kushal Pal <kushalpal109@gmail.com>
|
||
|
||
* ast/rust-ast.h: Replace TraitItem with AssociatedItem.
|
||
* ast/rust-item.h (class Trait): Likewise.
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::visit):
|
||
Likewise.
|
||
* parse/rust-parse-impl.h (Parser::parse_trait): Likewise.
|
||
* parse/rust-parse.h: Likewise.
|
||
|
||
2024-02-07 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): use destructure
|
||
|
||
2024-02-07 Nobel Singh <nobel2073@gmail.com>
|
||
|
||
* Make-lang.in: Add rust-ast-lower-implitem.cc to list of objects.
|
||
* hir/rust-ast-lower-implitem.h (RUST_AST_LOWER_IMPLITEM_H): Remove
|
||
implementation.
|
||
* hir/rust-ast-lower-implitem.cc: Copy implementation from header.
|
||
|
||
2024-02-07 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): refactor
|
||
* typecheck/rust-hir-type-check.h: new prototype
|
||
* typecheck/rust-typecheck-context.cc (TypeCheckContext::compute_inference_variables): x
|
||
|
||
2024-02-07 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-type.cc: remove hack
|
||
|
||
2024-02-07 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): remove hack
|
||
|
||
2024-02-07 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args): fix
|
||
|
||
2024-02-07 Nobel Singh <nobel2073@gmail.com>
|
||
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_qualifiers):
|
||
Change default ABI to C for extern functions
|
||
(ASTLoweringBase::lower_extern_block): Likewise
|
||
|
||
2024-02-07 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* typecheck/rust-tyty.cc (BaseType::BaseType): Store orig ref.
|
||
(BaseType::get_orig_ref): Add getter.
|
||
* typecheck/rust-tyty.h: Store orig ref.
|
||
|
||
2024-02-07 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
|
||
Add region constraints.
|
||
(TypeCheckImplItem::visit): Add region constraints.
|
||
* typecheck/rust-hir-type-check-implitem.h: Add region constraints.
|
||
* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::ResolveImplBlockSelf):
|
||
Add region constraints.
|
||
(TypeCheckItem::visit): Add region constraints.
|
||
(TypeCheckItem::resolve_impl_item): Add region constraints.
|
||
(TypeCheckItem::resolve_impl_block_substitutions): Add region constraints.
|
||
* typecheck/rust-hir-type-check-item.h: Add region constraints.
|
||
* typecheck/rust-hir-type-check-type.cc (ResolveWhereClauseItem::Resolve):
|
||
Add region constraints.
|
||
(ResolveWhereClauseItem::visit): Add region constraints.
|
||
* typecheck/rust-hir-type-check-type.h (class ResolveWhereClauseItem):
|
||
Add region constraints.
|
||
* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn):
|
||
Add region constraints.
|
||
* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::TypeBoundPredicate):
|
||
Add region constraints.
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_region_constraints):
|
||
Add region constraints.
|
||
* typecheck/rust-tyty-subst.h (class BaseType): Add region constraints.
|
||
(struct RegionConstraints): Add region constraints.
|
||
* typecheck/rust-tyty.cc (BaseType::monomorphized_clone): Add region constraints.
|
||
(ADTType::clone): Add region constraints.
|
||
(FnType::clone): Add region constraints.
|
||
(ProjectionType::clone): Add region constraints.
|
||
* typecheck/rust-tyty.h: Add region constraints.
|
||
|
||
2024-02-07 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* typecheck/rust-hir-trait-resolve.cc: add regions
|
||
* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal):
|
||
add regions, resolve generic lifetimes
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): add regions
|
||
* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
|
||
add regions, resolve lifetimes
|
||
(TypeCheckImplItem::visit): add regions, resove lifetimes
|
||
* typecheck/rust-hir-type-check-implitem.h: add default value for result
|
||
* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): add regions,
|
||
resove lifetimes
|
||
(TypeCheckItem::resolve_impl_block_substitutions): add regions, resove lifetimes
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): add regions,
|
||
resove lifetimes
|
||
(TypeCheckExpr::resolve_root_path): add regions, resove lifetimes
|
||
(TypeCheckExpr::resolve_segments): add regions, resove lifetimes
|
||
* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): add regions,
|
||
resove lifetimes
|
||
(TypeCheckType::resolve_root_path): add regions, resove lifetimes
|
||
(ResolveWhereClauseItem::Resolve): add regions, resove lifetimes
|
||
(ResolveWhereClauseItem::visit): add regions, resove lifetimes
|
||
* typecheck/rust-hir-type-check.cc (TypeCheckContext::LifetimeResolver::resolve):
|
||
add regions, resolve lifetimes
|
||
(TraitItemReference::get_type_from_fn): add regions, resove lifetimes
|
||
* typecheck/rust-hir-type-check.h: add regions, resove lifetimes
|
||
* typecheck/rust-substitution-mapper.cc (SubstMapper::SubstMapper): add regions,
|
||
resove lifetimes
|
||
(SubstMapper::Resolve): add regions, resove lifetimes
|
||
(SubstMapper::InferSubst): add regions, resove lifetimes
|
||
(SubstMapper::visit): add regions, resove lifetimes
|
||
* typecheck/rust-substitution-mapper.h: add regions, resove lifetimes
|
||
* typecheck/rust-typecheck-context.cc (TypeCheckContext::TypeCheckContext):
|
||
lifetime resolution
|
||
(TypeCheckContext::regions_from_generic_args): lifetime resolution helper
|
||
* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::TypeBoundPredicate):
|
||
add regions, resove lifetimes
|
||
(TypeBoundPredicate::operator=): add regions, resove lifetimes
|
||
(TypeBoundPredicate::apply_generic_arguments): add regions, resove lifetimes
|
||
(TypeBoundPredicateItem::get_tyty_for_receiver): add regions, resove lifetimes
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionArgumentMappings::get_regions):
|
||
add regions, resove lifetimes
|
||
(SubstitutionArgumentMappings::get_mut_regions): getter
|
||
(SubstitutionArgumentMappings::error): split error and empty
|
||
(SubstitutionArgumentMappings::empty): split error and empty
|
||
(SubstitutionArgumentMappings::find_symbol): helper
|
||
(SubstitutionRef::get_num_lifetime_params): getter
|
||
(SubstitutionRef::get_num_type_params): getter
|
||
(SubstitutionRef::needs_substitution): extend to regions
|
||
(SubstitutionRef::get_mappings_from_generic_args): helper
|
||
(SubstitutionRef::infer_substitions): add regions
|
||
* typecheck/rust-tyty-subst.h (class RegionParamList): region param handler
|
||
* typecheck/rust-tyty.cc (BaseType::monomorphized_clone): add regions, resove lifetimes
|
||
(InferType::default_type): add regions, resove lifetimes
|
||
(FnType::clone): add regions, resove lifetimes
|
||
(ReferenceType::ReferenceType): add regions
|
||
(ReferenceType::get_region): getter
|
||
(ReferenceType::clone): add regions
|
||
* typecheck/rust-tyty.h: add regions, resove
|
||
|
||
2024-02-07 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* hir/tree/rust-hir-item.h: Add missing getter
|
||
|
||
2024-02-07 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* typecheck/rust-tyty-region.h: New file.
|
||
|
||
2024-02-07 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* typecheck/rust-hir-type-check.h (class Lifetime): add interned lifetime class
|
||
* typecheck/rust-typecheck-context.cc (TypeCheckContext::TypeCheckContext): add
|
||
resolution tool
|
||
(TypeCheckContext::intern_lifetime): add method to intern lifetime from tyctx
|
||
(TypeCheckContext::lookup_lifetime): add method to lookup lifetime from tyctx
|
||
(TypeCheckContext::intern_and_insert_lifetime): add a helper method
|
||
|
||
2024-02-07 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* rust-lang.cc (run_rust_tests): Add test.
|
||
* rust-system.h: Add <algorithm>.
|
||
* util/make-rust-unicode.py: Output NFC_Quick_Check table.
|
||
* util/rust-codepoint.h (struct Codepoint): Add is_supplementary
|
||
method.
|
||
* util/rust-unicode-data.h: Generated.
|
||
* util/rust-unicode.cc (binary_search_sorted_array): Removed.
|
||
(lookup_cc): Remove namespace.
|
||
(is_alphabetic): Use std::binary_search
|
||
(nfc_quick_check): New function.
|
||
(nfc_normalize): Use nfc_quick_check.
|
||
(is_nfc_qc_maybe): New function.
|
||
(is_nfc_qc_no): New function.
|
||
(rust_nfc_qc_test): New test.
|
||
* util/rust-unicode.h (is_nfc_qc_no): New function.
|
||
(is_nfc_qc_maybe): New function.
|
||
(enum class): New enum class.
|
||
(nfc_quick_check): New function.
|
||
(rust_nfc_qc_test): New test.
|
||
|
||
2024-02-07 Kushal Pal <kushalpal109@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_function):
|
||
Skip token if its a COMMA.
|
||
|
||
2024-01-30 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-ast-full-decls.h
|
||
(class TraitImplItem): Remove forward declaration.
|
||
(class AssociatedItem): Add forward declaration.
|
||
* ast/rust-ast.h
|
||
(class TraitImplItem): Remove.
|
||
(class TraitItem): Inherit from AssociatedItem.
|
||
(SingleASTNode::take_trait_impl_item):
|
||
Return std::unique_ptr<AssociatedItem> instead of
|
||
std::unique_ptr<TraitImplItem>.
|
||
* ast/rust-item.h
|
||
(class Function): Inherit from AssociatedItem instead of
|
||
TraitImplItem.
|
||
(class TypeAlias): Likewise.
|
||
(class ConstantItem): Likewise.
|
||
(class TraitImpl): Store items as AssociatedItem.
|
||
* expand/rust-derive-clone.cc
|
||
(DeriveClone::clone_fn): Return std::unique_ptr<AssociatedItem>.
|
||
(DeriveClone::clone_impl): Take std::unique_ptr<AssociatedItem>.
|
||
* expand/rust-derive-clone.h
|
||
(DeriveClone::clone_fn): Return std::unique_ptr<AssociatedItem>.
|
||
(DeriveClone::clone_impl): Take std::unique_ptr<AssociatedItem>.
|
||
* expand/rust-expand-visitor.cc
|
||
(ExpandVisitor::visit): Handle changes to
|
||
SingleASTNode::take_trait_impl_item.
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_impl): Parse TraitImpl as containing AssociatedItem.
|
||
(Parser::parse_trait_impl_item): Return
|
||
std::unique_ptr<AssociatedItem>.
|
||
(Parser::parse_trait_impl_function_or_method): Likewise.
|
||
* parse/rust-parse.h
|
||
(Parser::parse_trait_impl_item): Return
|
||
std::unique_ptr<AssociatedItem>.
|
||
(Parser::parse_trait_impl_function_or_method): Likewise.
|
||
|
||
2024-01-30 Robert Goss <goss.robert@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit) Add additional check
|
||
* typecheck/rust-hir-type-check-struct-field.h: A helper method to make error added
|
||
* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve) Update message
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* hir/rust-ast-lower-type.cc (ASTLoweringTypeBounds::visit): fix for lifetimes
|
||
(ASTLowerWhereClauseItem::visit): fix for lifetimes
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_where_clause): fix parsing
|
||
(Parser::parse_where_clause_item): fix parsing
|
||
(Parser::parse_type_bound_where_clause_item): fix parsing
|
||
(Parser::parse_trait_bound): fix parsing
|
||
* parse/rust-parse.h: fix parsing
|
||
|
||
2024-01-30 Kushal Pal <kushalpal109@gmail.com>
|
||
|
||
* lex/rust-lex.cc (Lexer::dump_and_skip):
|
||
Changed " " to '\n'
|
||
|
||
2024-01-30 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-ast-fragment.cc
|
||
(Fragment::assert_single_fragment): Update.
|
||
* ast/rust-ast.h
|
||
(class TraitImplItem): Move definition before that of TraitItem.
|
||
(class TraitItem):
|
||
Inherit from TraitImplItem instead of AssociatedItem.
|
||
(class SingleASTNode): Unify handling of associated items.
|
||
(SingleASTNode::take_assoc_item): Move from...
|
||
(SingleASTNode::take_impl_item): ...here, but leave stub calling
|
||
take_assoc_item behind.
|
||
(SingleASTNode::take_trait_item):
|
||
Cast associated item to TraitItem.
|
||
(SingleASTNode::take_trait_impl_item):
|
||
Cast associated item to TraitImplItem.
|
||
* ast/rust-ast.cc
|
||
(SingleASTNode::SingleASTNode):
|
||
Unify handling of associated items.
|
||
(SingleASTNode::operator=): Likewise.
|
||
(SingleASTNode::accept_vis): Likewise.
|
||
(SingleASTNode::is_error): Likewise.
|
||
(SingleASTNode::as_string): Likewise.
|
||
* ast/rust-item.h
|
||
(class Function): Remove direct inheritence from AssociatedItem.
|
||
(class ConstantItem): Likewise.
|
||
* ast/rust-macro.h
|
||
(class MacroInvocation):
|
||
Remove direct inheritence from AssociatedItem and TraitImplItem.
|
||
|
||
2024-01-30 Robert Goss <goss.robert@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-struct-field.h: Allow visit to return a bool
|
||
* typecheck/rust-hir-type-check-struct.cc: Improve check of repeat fields
|
||
|
||
2024-01-30 Kushal Pal <kushalpal109@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_inherent_impl_item):
|
||
Added switch-case for ASYNC token.
|
||
|
||
2024-01-30 Kushal Pal <kushalpal109@gmail.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
|
||
Enclose const in single quotes.
|
||
|
||
2024-01-30 Kushal Pal <kushalpal109@gmail.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
|
||
Added check for `async` functions inside trait.
|
||
* parse/rust-parse-impl.h (Parser::parse_trait_item):
|
||
Added switch-case for ASYNC token.
|
||
|
||
2024-01-30 Nirmal Patel <nirmal@nirmal.dev>
|
||
|
||
* lex/rust-lex.cc (Lexer::parse_byte_string): Handle newline
|
||
while parsing byte strings
|
||
(Lexer::parse_string): Handle newline while parsing strings
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Use new API.
|
||
* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Use new API.
|
||
* typecheck/rust-tyty-cmp.h: Remove old API.
|
||
* typecheck/rust-tyty.cc (FnPtr::is_equal): Use new API.
|
||
* typecheck/rust-tyty.h: Remove old API.
|
||
* typecheck/rust-unify.cc (UnifyRules::expect_fnptr): Use new API.
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* hir/rust-ast-lower-type.cc (ASTLoweringType::visit): For lifetimes.
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_lifetime): Propagate static
|
||
requirement.
|
||
* hir/rust-ast-lower-base.h: Propagate static requirement.
|
||
* hir/rust-ast-lower-implitem.h: Propagate static requirement.
|
||
* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Propagate static requirement.
|
||
* hir/rust-ast-lower-type.cc (ASTLoweringType::translate): Propagate static requirement.
|
||
(ASTLoweringType::visit): Propagate static requirement.
|
||
* hir/rust-ast-lower-type.h: Propagate static requirement.
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_generic_param): Lifetime elision control.
|
||
(Parser::parse_lifetime_where_clause_item): Lifetime elision control.
|
||
(Parser::parse_type_param_bound): Lifetime elision control.
|
||
(Parser::parse_lifetime_bounds): Lifetime elision control.
|
||
(Parser::parse_lifetime): Lifetime elision control.
|
||
(Parser::parse_path_generic_args): Lifetime elision control.
|
||
(Parser::parse_self_param): Lifetime elision control.
|
||
(Parser::parse_break_expr): Lifetime elision control.
|
||
(Parser::parse_continue_expr): Lifetime elision control.
|
||
(Parser::parse_reference_type_inner): Lifetime elision control.
|
||
* parse/rust-parse.h: Lifetime elision control.
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast.h: Elided lifetime static constructor
|
||
* ast/rust-type.h: Default lifetime to elided.
|
||
* parse/rust-parse-impl.h (Parser::parse_lifetime_param): Use elided lifetime.
|
||
(Parser::parse_lifetime): Use elided lifetime/
|
||
(Parser::lifetime_from_token): Use elided lifetime.
|
||
(Parser::parse_self_param): Use elided lifetime.
|
||
(Parser::parse_reference_type_inner): Use elided lifetime.
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::lifetime_from_token): Fix matched pattern.
|
||
|
||
2024-01-30 Kushal Pal <kushalpal109@gmail.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
|
||
Added check for `async` function inside trait.
|
||
|
||
2024-01-30 Kushal Pal <kushalpal109@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_trait_impl_item):
|
||
Handled `async` items
|
||
|
||
2024-01-30 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* Make-lang.in: Add .o files
|
||
* backend/rust-mangle.cc (struct V0Path): moved to splitted files
|
||
(v0_path): Likewise.
|
||
(legacy_mangle_name): Likewise.
|
||
(legacy_mangle_canonical_path): Likewise.
|
||
(legacy_hash): Likewise.
|
||
(v0_tuple_prefix): Likewise.
|
||
(v0_numeric_prefix): Likewise.
|
||
(v0_simple_type_prefix): Likewise.
|
||
(v0_complex_type_prefix): Likewise.
|
||
(v0_integer_62): Likewise.
|
||
(v0_opt_integer_62): Likewise.
|
||
(v0_disambiguator): Likewise.
|
||
(v0_type_prefix): Likewise.
|
||
(v0_generic_args): Likewise.
|
||
(v0_identifier): Likewise.
|
||
(v0_type_path): Likewise.
|
||
(v0_function_path): Likewise.
|
||
(v0_scope_path): Likewise.
|
||
(v0_crate_path): Likewise.
|
||
(v0_inherent_or_trait_impl_path): Likewise.
|
||
(v0_closure): Likewise.
|
||
(legacy_mangle_item): Likewise.
|
||
(v0_mangle_item): Likewise.
|
||
* backend/rust-mangle.h (legacy_mangle_item): Likewise.
|
||
(v0_mangle_item): Likewise.
|
||
* backend/rust-mangle-legacy.cc: New file.
|
||
* backend/rust-mangle-v0.cc: New file.
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* checks/errors/borrowck/rust-bir-place.h: Cleanup.
|
||
* checks/errors/borrowck/rust-borrow-checker.h: Cleanup.
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* typecheck/rust-tyty.h (BaseType::is): Cast API.
|
||
(SubstitutionRef>): Cast API.
|
||
(BaseType::as): Cast API.
|
||
(BaseType::try_as): Cast API.
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* typecheck/rust-tyty.h (class ClosureType): Inherit interface.
|
||
(class FnPtr): Inherit interface.
|
||
(class FnType): Inherit interface.
|
||
(class CallableTypeInterface): New interface.
|
||
(BaseType::is): Detect interface members API.
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path): Refactor.
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* checks/errors/borrowck/rust-bir-builder-internal.h: Replace nodiscard.
|
||
* checks/errors/borrowck/rust-bir-place.h: Replace nodiscard.
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* typecheck/rust-tyty.h: Fix nodiscard to warn unused.
|
||
|
||
2024-01-30 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* hir/tree/rust-hir-item.h: Ad lifetime getter.
|
||
* hir/tree/rust-hir-path.h: Make getter const ref.
|
||
* hir/tree/rust-hir.h: Const ref and new getter.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in (GRS_OBJS): Add rust-attribs.o.
|
||
* backend/rust-builtins.cc (builtin_const, builtin_noreturn)
|
||
(builtin_novops): Remove.
|
||
(BuiltinsContext::lookup_simple_builtin): Adjust.
|
||
(BuiltinsContext::setup_overflow_fns): Remove.
|
||
(BuiltinsContext::define_function_type): Set builtin type to
|
||
errormark so the builtin is considered unavailable.
|
||
(BuiltinsContext::setup_math_fns): Remove.
|
||
(BuiltinsContext::setup_atomic_fns): Remove.
|
||
(build_c_type_nodes): Refactor based on D frontend.
|
||
(BuiltinsContext::define_builtin_types): Likewise.
|
||
(DEF_PRIMITIVE_TYPE): New.
|
||
(DEF_FUNCTION_TYPE_0): New.
|
||
(DEF_FUNCTION_TYPE_1): New.
|
||
(DEF_FUNCTION_TYPE_2): New.
|
||
(DEF_FUNCTION_TYPE_3): New.
|
||
(DEF_FUNCTION_TYPE_4): New.
|
||
(DEF_FUNCTION_TYPE_5): New.
|
||
(DEF_FUNCTION_TYPE_6): New.
|
||
(DEF_FUNCTION_TYPE_7): New.
|
||
(DEF_FUNCTION_TYPE_8): New.
|
||
(DEF_FUNCTION_TYPE_9): New.
|
||
(DEF_FUNCTION_TYPE_10): New.
|
||
(DEF_FUNCTION_TYPE_11): New.
|
||
(DEF_FUNCTION_TYPE_VAR_0): New.
|
||
(DEF_FUNCTION_TYPE_VAR_1): New.
|
||
(DEF_FUNCTION_TYPE_VAR_2): New.
|
||
(DEF_FUNCTION_TYPE_VAR_3): New.
|
||
(DEF_FUNCTION_TYPE_VAR_4): New.
|
||
(DEF_FUNCTION_TYPE_VAR_5): New.
|
||
(DEF_FUNCTION_TYPE_VAR_6): New.
|
||
(DEF_FUNCTION_TYPE_VAR_7): New.
|
||
(DEF_FUNCTION_TYPE_VAR_11): New.
|
||
(DEF_POINTER_TYPE): New.
|
||
(BuiltinsContext::setup): Adjust.
|
||
(BuiltinsContext::define_builtin_attributes): New.
|
||
(DEF_ATTR_NULL_TREE): New.
|
||
(DEF_ATTR_INT): New.
|
||
(DEF_ATTR_STRING): New.
|
||
(DEF_ATTR_IDENT): New.
|
||
(DEF_ATTR_TREE_LIST): New.
|
||
(handle_flags): Remove.
|
||
(BuiltinsContext::define_builtins): New.
|
||
(DEF_BUILTIN): New.
|
||
(BuiltinsContext::define_builtin): Remove.
|
||
(BuiltinsContext::register_rust_mappings): New. Add all missing
|
||
builtins.
|
||
(BuiltinsContext::lookup_gcc_builtin): Adjust.
|
||
* backend/rust-builtins.h (DEF_PRIMITIVE_TYPE): New.
|
||
(DEF_FUNCTION_TYPE_0): New.
|
||
(DEF_FUNCTION_TYPE_1): New.
|
||
(DEF_FUNCTION_TYPE_2): New.
|
||
(DEF_FUNCTION_TYPE_3): New.
|
||
(DEF_FUNCTION_TYPE_4): New.
|
||
(DEF_FUNCTION_TYPE_5): New.
|
||
(DEF_FUNCTION_TYPE_6): New.
|
||
(DEF_FUNCTION_TYPE_7): New.
|
||
(DEF_FUNCTION_TYPE_8): New.
|
||
(DEF_FUNCTION_TYPE_9): New.
|
||
(DEF_FUNCTION_TYPE_10): New.
|
||
(DEF_FUNCTION_TYPE_11): New.
|
||
(DEF_FUNCTION_TYPE_VAR_0): New.
|
||
(DEF_FUNCTION_TYPE_VAR_1): New.
|
||
(DEF_FUNCTION_TYPE_VAR_2): New.
|
||
(DEF_FUNCTION_TYPE_VAR_3): New.
|
||
(DEF_FUNCTION_TYPE_VAR_4): New.
|
||
(DEF_FUNCTION_TYPE_VAR_5): New.
|
||
(DEF_FUNCTION_TYPE_VAR_6): New.
|
||
(DEF_FUNCTION_TYPE_VAR_7): New.
|
||
(DEF_FUNCTION_TYPE_VAR_11): New.
|
||
(DEF_POINTER_TYPE): New.
|
||
(DEF_ATTR_NULL_TREE): New.
|
||
(DEF_ATTR_INT): New.
|
||
(DEF_ATTR_STRING): New.
|
||
(DEF_ATTR_IDENT): New.
|
||
(DEF_ATTR_TREE_LIST): New.
|
||
* backend/rust-compile-intrinsic.cc (Intrinsics::compile): Add
|
||
comment.
|
||
(op_with_overflow_inner): Adjust.
|
||
(copy_handler_inner): Adjust.
|
||
(prefetch_data_handler): Adjust.
|
||
(build_atomic_builtin_name): Adjust.
|
||
(atomic_load_handler_inner): Adjust.
|
||
(uninit_handler): Adjust.
|
||
(move_val_init_handler): Adjust.
|
||
(expect_handler_inner): Adjust.
|
||
* rust-gcc.cc (fetch_overflow_builtins): Adjust.
|
||
* rust-lang.cc (rust_localize_identifier): Adjust.
|
||
(LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): New.
|
||
* rust-attribs.cc: New file.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-cfg-strip.cc (CfgStrip::visit): Change calls from visitor
|
||
to default visitor.
|
||
(CfgStrip::go): Add call to visit crate.
|
||
* expand/rust-cfg-strip.h (class CfgStrip): Update prototypes and
|
||
remove empty ones.
|
||
* ast/rust-ast-visitor.cc: add WhereClause condition check.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::go): Add call to visit
|
||
on the crate.
|
||
(ExpandVisitor::visit): Remove some visit functions in favor of their
|
||
default visitor counterpart.
|
||
* expand/rust-expand-visitor.h (class ExpandVisitor): Inherit from
|
||
default visitor and remove now useless function prototypes.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* resolve/rust-default-resolver.cc (DefaultResolver::visit): Remove
|
||
duplicated functions.
|
||
* resolve/rust-default-resolver.h (class DefaultResolver): Make the
|
||
default resolver inherit from the default visitor.
|
||
|
||
2024-01-30 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* checks/errors/rust-feature.cc
|
||
(Feature::name_hash_map):
|
||
Add entries for Name::LANG_ITEMS and Name::NO_CORE.
|
||
* checks/errors/rust-feature.h
|
||
(Feature::Name::LANG_ITEMS): New.
|
||
(Feature::Name::NO_CORE): New.
|
||
|
||
2024-01-30 Kushal Pal <kushalpal109@gmail.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::setup_abi_options):
|
||
Renamed `WIN64` to `WIN_64`
|
||
* util/rust-abi.cc (get_abi_from_string): Likewise
|
||
(get_string_from_abi): Likewise
|
||
* util/rust-abi.h (enum ABI): Likewise
|
||
|
||
2024-01-30 Nobel Singh <nobel2073@gmail.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
|
||
check for const funtion.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
|
||
a validation check and emit an error depending on the context.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Adapt defintion
|
||
getter.
|
||
* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
|
||
* expand/rust-cfg-strip.cc (CfgStrip::visit): Likewise.
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Likewise.
|
||
* hir/rust-ast-lower-implitem.h: Likewise.
|
||
* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
|
||
* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Likewise.
|
||
* resolve/rust-ast-resolve-stmt.h: Likewise.
|
||
* resolve/rust-default-resolver.cc (DefaultResolver::visit): Likewise.
|
||
* util/rust-attributes.cc (AttributeChecker::visit): Likewise.
|
||
* parse/rust-parse-impl.h: Allow empty function body during parsing.
|
||
* ast/rust-ast.cc (Function::Function): Constructor now take an
|
||
optional for the body.
|
||
(Function::operator=): Adapt to new optional member.
|
||
(Function::as_string): Likewise.
|
||
* ast/rust-item.h (class Function): Make body optional and do not
|
||
rely on nullptr anymore.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::resolve_generic_args):
|
||
Move function.
|
||
(EarlyNameResolver::resolve_qualified_path_type): Likewise.
|
||
(EarlyNameResolver::visit): Add a top level visit function for crate
|
||
and remove duplicated code.
|
||
* resolve/rust-early-name-resolver.h (class EarlyNameResolver): Update
|
||
overriden function list.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-attributes.cc (AttributeChecker::visit): Add visit function
|
||
for crates.
|
||
* util/rust-attributes.h (class AttributeChecker): Update function
|
||
prototypes.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-feature-gate.cc (FeatureGate::visit): Add a visit
|
||
function for the crate level.
|
||
(FeatureGate::check): Add call to crate visit.
|
||
* checks/errors/rust-feature-gate.h (class FeatureGate): Remove now
|
||
useless visit functions (traversal only).
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
|
||
const check.
|
||
* checks/errors/rust-ast-validation.h: Add visit function prototype.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
|
||
async const check.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_vis_item): Allow parsing async
|
||
items in const.
|
||
(Parser::parse_async_item): Account for const offset during async
|
||
lookahead.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-builder.cc (AstBuilder::fn_qualifiers): Change
|
||
constructor to match the new arguments.
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Change behavior
|
||
to handle both const and async specifiers at the same time.
|
||
* ast/rust-ast.cc (FunctionQualifiers::as_string): Likewise.
|
||
* ast/rust-item.h (class FunctionQualifiers): Remove AsyncConstStatus
|
||
and replace it with both Async and Const status. Also change the safety
|
||
arguments to use an enum instead of a boolean.
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_qualifiers):
|
||
Update constructor call.
|
||
* hir/tree/rust-hir-item.h: Add Const and Async status, remove
|
||
AsyncConstStatus, update the constructor.
|
||
* hir/tree/rust-hir.cc (FunctionQualifiers::as_string): Update with
|
||
the new status.
|
||
* parse/rust-parse-impl.h (Parser::parse_function_qualifiers): Update
|
||
constructor call.
|
||
* util/rust-common.h (enum Mutability): Make an enum class.
|
||
(enum class): Add Async and Const enum class to avoid booleans.
|
||
(enum Unsafety): Change to an enum class.
|
||
|
||
2024-01-30 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-ast-full-decls.h
|
||
(class InherentImplItem): Remove.
|
||
* ast/rust-ast.h
|
||
(class InherentImplItem): Remove.
|
||
(class SingleASTNode):
|
||
Store pointer to AssociatedItem instead of InherentImplItem.
|
||
* ast/rust-ast.cc
|
||
(SingleASTNode::SingleASTNode):
|
||
Use clone_associated_item instead of clone_inherent_impl_item.
|
||
(SingleASTNode::operator=): Likewise.
|
||
* ast/rust-item.h
|
||
(class InherentImpl):
|
||
Use AssociatedItem rather than InherentImplItem.
|
||
(class Function): Likewise.
|
||
(class ConstantItem): Likewise.
|
||
* ast/rust-macro.h
|
||
(class MacroInvocation): Likewise.
|
||
* expand/rust-expand-visitor.cc
|
||
(ExpandVisitor::visit): Likewise.
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_impl): Likewise.
|
||
(Parser::parse_inherent_impl_item): Likewise.
|
||
(Parser::parse_inherent_impl_function_or_method): Likewise.
|
||
* parse/rust-parse.h
|
||
(Parser::parse_inherent_impl_item): Likewise.
|
||
(Parser::parse_inherent_impl_function_or_method): Likewise.
|
||
|
||
2024-01-30 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::compile_locals_for_block): removed
|
||
* backend/rust-compile-base.h: update header
|
||
* backend/rust-compile-block.cc (CompileBlock::visit): remove old logic
|
||
* backend/rust-compile-expr.cc (CompileExpr::generate_closure_function): likewise
|
||
* backend/rust-compile-stmt.cc (CompileStmt::visit): likewise
|
||
* backend/rust-compile-var-decl.h: ensure we setup tuple bindings correctly
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-item.h: Add safety getter to modules.
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Check
|
||
a module's safety and emit an error when meeting an unsafe module.
|
||
* checks/errors/rust-ast-validation.h: Add function prototype.
|
||
* parse/rust-parse-impl.h (Parser::parse_module): Move the module locus
|
||
to the first token instead of the mod keyword.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_vis_item): Dispatch to parse
|
||
module when meeting an unsafe module.
|
||
(Parser::parse_module): Set unsafe status when the parser encounter an
|
||
unsafe keyword.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-item.h: Add safety status to Modules in the AST.
|
||
* parse/rust-parse-impl.h (Parser::parse_module): Adapt constructors.
|
||
|
||
2024-01-30 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/tree/rust-hir-pattern.h
|
||
(class TupleItems): New.
|
||
(class TupleStructItems): Inherit from TupleItems.
|
||
(class TuplePatternItems): Likewise.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc
|
||
(TopLevel::insert_or_error_out): New functions.
|
||
(TopLevel::handle_use_dec): New function.
|
||
(flatten_rebind): Likewise.
|
||
(flatten_list): Likewise.
|
||
(flatten_glob): Likewise.
|
||
(flatten): Likewise.
|
||
(TopLevel::visit): Visit various `use` declaration nodes.
|
||
* resolve/rust-toplevel-name-resolver-2.0.h: Declare functions and
|
||
visitors.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-early-name-resolver-2.0.cc
|
||
(Early::visit): Remove visitors.
|
||
* resolve/rust-early-name-resolver-2.0.h: Likewise.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-item.h (class UseTree): Add `node_id` member.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc
|
||
(TopLevel::insert_or_error_out): Add documentation comment.
|
||
(TopLevel::go): Likewise.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-early-name-resolver-2.0.cc
|
||
(Early::insert_once): New function.
|
||
(Early::visit): Likewise.
|
||
* resolve/rust-early-name-resolver-2.0.h: Likewise.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Store mappings
|
||
after having resolved them.
|
||
* resolve/rust-late-name-resolver-2.0.h: Add `TypePath` visitor.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-late-name-resolver-2.0.cc
|
||
(Late::setup_builtin_types): New function.
|
||
(Late::go): Setup builtin types.
|
||
* resolve/rust-late-name-resolver-2.0.h:
|
||
* resolve/rust-name-resolution-context.cc
|
||
(NameResolutionContext::map_usage): New function.
|
||
* resolve/rust-name-resolution-context.h: Likewise.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-name-resolution-context.h: Store a reference to the
|
||
mappings.
|
||
* resolve/rust-name-resolution-context.cc
|
||
(NameResolutionContext::NameResolutionContext): Likewise.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Use
|
||
the DefaultResolver in the toplevel visitor.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in: Compile late name resolver.
|
||
* resolve/rust-late-name-resolver-2.0.cc: New file.
|
||
* resolve/rust-late-name-resolver-2.0.h: New file.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-name-resolution-context.h: Add a Labels stack.
|
||
|
||
2024-01-30 M V V S Manoj Kumar <mvvsmanojkumar@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_item): Likewise.
|
||
(Parser::parse_vis_item): Likewise.
|
||
(Parser::parse_async_item): Likewise.
|
||
* parse/rust-parse.h: Made declaration for parse_async_item.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-lex.cc (Lexer::classify_keyword): Update keyword map name.
|
||
* lex/rust-token.h (enum PrimitiveCoreType): Remove some deprecated
|
||
comments.
|
||
* util/rust-keyword-values.cc (get_keywords): Update the keyword map
|
||
name.
|
||
(RS_TOKEN): Define as empty
|
||
(RS_TOKEN_KEYWORD_2015): Add the emission value.
|
||
(RS_TOKEN_KEYWORD_2018): Likewise.
|
||
* util/rust-keyword-values.h (RS_KEYWORD_LIST): Introduce the keyword
|
||
list.
|
||
(RS_TOKEN_KEYWORD_2018): Define multiple new keywords.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Replace raw value.
|
||
* parse/rust-parse-impl.h (Parser::is_macro_rules_def): Likewise.
|
||
(Parser::parse_item): Likewise.
|
||
(Parser::parse_vis_item): Likewise.
|
||
(Parser::parse_macro_rules_def): Likewise.
|
||
(Parser::parse_union): Likewise.
|
||
(Parser::parse_trait_impl_item): Likewise.
|
||
(Parser::parse_stmt): Likewise.
|
||
(Parser::parse_stmt_or_expr): Likewise.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-keyword-values.h (class WeakKeywords): Add new class with
|
||
weak keyword constexpr.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Replace raw value
|
||
with keyword call.
|
||
* ast/rust-ast.h: Likewise.
|
||
* parse/rust-parse-impl.h (Parser::parse_path_ident_segment): Likewise.
|
||
(Parser::parse_macro_match_fragment): Likewise.
|
||
(Parser::parse_extern_crate): Likewise.
|
||
(Parser::parse_use_tree): Likewise.
|
||
(Parser::parse_const_item): Likewise.
|
||
(Parser::parse_literal_expr): Likewise.
|
||
(Parser::parse_maybe_named_param): Likewise.
|
||
(Parser::parse_pattern_no_alt): Likewise.
|
||
(Parser::left_denotation): Likewise.
|
||
(Parser::parse_path_in_expression_pratt): Likewise.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-token.h (enum PrimitiveCoreType): Add await keyword
|
||
definition.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-token.h (enum PrimitiveCoreType): Change macro for
|
||
underscore in token list.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-token.h (enum PrimitiveCoreType): Change enum macro calls.
|
||
(RS_TOKEN_KEYWORD): Remove generic token keyword macro.
|
||
(RS_TOKEN_KEYWORD_2015): Introduce keywords for edition 2015.
|
||
(RS_TOKEN_KEYWORD_2018): Likewise with edition 2018.
|
||
* lex/rust-token.cc (RS_TOKEN_KEYWORD): Remove old macro definition.
|
||
(RS_TOKEN_KEYWORD_2015): Replace with 2015 definition...
|
||
(RS_TOKEN_KEYWORD_2018): ... and 2018 definition.
|
||
* util/rust-keyword-values.cc (RS_TOKEN_KEYWORD): Likewise.
|
||
(RS_TOKEN_KEYWORD_2015): Likewise.
|
||
(RS_TOKEN_KEYWORD_2018): Likewise.
|
||
* util/rust-keyword-values.h (RS_TOKEN_KEYWORD): Likewise.
|
||
(RS_TOKEN_KEYWORD_2015): Likewise.
|
||
(RS_TOKEN_KEYWORD_2018): Likewise.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-token.h (enum PrimitiveCoreType): Change keyword suffix from
|
||
tok to kw.
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Update suffix to
|
||
match the new declaration.
|
||
* lex/rust-lex.cc (Lexer::parse_raw_identifier): Likewise.
|
||
* parse/rust-parse-impl.h (can_tok_start_type): Likewise.
|
||
(Parser::parse_item): Likewise.
|
||
(Parser::parse_vis_item): Likewise.
|
||
(Parser::parse_extern_crate): Likewise.
|
||
(Parser::parse_function): Likewise.
|
||
(Parser::parse_function_qualifiers): Likewise.
|
||
(Parser::parse_struct): Likewise.
|
||
(Parser::parse_enum): Likewise.
|
||
(Parser::parse_static_item): Likewise.
|
||
(Parser::parse_trait_item): Likewise.
|
||
(Parser::parse_inherent_impl_item): Likewise.
|
||
(Parser::parse_trait_impl_item): Likewise.
|
||
(Parser::parse_extern_block): Likewise.
|
||
(Parser::parse_external_item): Likewise.
|
||
(Parser::parse_stmt): Likewise.
|
||
(Parser::parse_return_expr): Likewise.
|
||
(Parser::parse_match_expr): Likewise.
|
||
(Parser::parse_type): Likewise.
|
||
(Parser::parse_for_prefixed_type): Likewise.
|
||
(Parser::parse_type_no_bounds): Likewise.
|
||
(Parser::parse_stmt_or_expr): Likewise.
|
||
* parse/rust-parse.cc (peculiar_fragment_match_compatible): Likewie.
|
||
* util/rust-token-converter.cc (convert): Likewise.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
|
||
zero field check during ast validation pass.
|
||
* checks/errors/rust-ast-validation.h: Add union visit function
|
||
prototype.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
|
||
ast validation pass to reject variadic arguments on regular functions.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add auto
|
||
trait associated item check in AST validation pass.
|
||
* parse/rust-parse-impl.h: Remove old error emission done during
|
||
parsing pass.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Reject
|
||
auto traits with super traits.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
|
||
check for generics on auto traits.
|
||
* checks/errors/rust-ast-validation.h: Add visit function prototype.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-forever-stack.hxx: Remove debug log.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Format.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-forever-stack.h: New method.
|
||
* resolve/rust-forever-stack.hxx: Likewise.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-forever-stack.h: New method.
|
||
* resolve/rust-forever-stack.hxx: Likewise.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-forever-stack.hxx: Do not copy segment when
|
||
dereferencing iterator in `find_starting_point`.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-forever-stack.h: Fix `ForeverStack::resolve_path`
|
||
signature.
|
||
* resolve/rust-forever-stack.hxx: Likewise.
|
||
* resolve/rust-early-name-resolver-2.0.cc (Early::visit): Use new API.
|
||
(Early::visit_attributes): Likewise.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-forever-stack.hxx: Add specific behavior for
|
||
`ForeverStack::get` when dealing with labels.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-forever-stack.h: Improve resolve_path API.
|
||
* resolve/rust-forever-stack.hxx: Likewise and fix implementation.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-rib.h: Add Namespace enum.
|
||
|
||
2024-01-30 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Change Path API to be more consistent.
|
||
* ast/rust-path.h: Likewise.
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Use new API.
|
||
* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Likewise.
|
||
* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Likewise.
|
||
* resolve/rust-forever-stack.hxx: Likewise.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_function): Early return on
|
||
unrecoverable errors.
|
||
(Parser::parse_trait_item): Likewise.
|
||
(Parser::parse_self_param): Update return type.
|
||
* parse/rust-parse.h (enum ParseSelfError): Add enumeration to describe
|
||
different self parameter parsing errors.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_self_param): Fix the loop
|
||
exit condition.
|
||
|
||
2024-01-30 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-item.h (struct Visibility): Move Visibility from here...
|
||
* ast/rust-ast.h (struct Visibility): ...to here.
|
||
* parse/rust-parse-impl.h (Parser::parse_trait_item): Parse visibility
|
||
before giving it back to the item parsing function.
|
||
(Parser::parse_trait_type): Add visibility modifier.
|
||
* parse/rust-parse.h (RUST_PARSE_H): Change function prototype.
|
||
|
||
2024-01-18 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address):
|
||
Cast size_t value to unsigned long.
|
||
* expand/rust-proc-macro.cc (load_macros): Likewise.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/tree/rust-hir-pattern.h
|
||
(TupleStructItems::ItemType::RANGE): Rename to...
|
||
(TupleStructItems::ItemType::RANGED): ...here.
|
||
(TupleStructItems::ItemType::NO_RANGE): Rename to...
|
||
(TupleStructItems::ItemType::MULTIPLE): ...here.
|
||
(TuplePatternItems::TuplePatternItemType): Rename to...
|
||
(TuplePatternItems::ItemType): ...here.
|
||
: Handle renames.
|
||
* backend/rust-compile-pattern.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-pattern.cc: Likewise.
|
||
* checks/errors/borrowck/rust-bir-builder-pattern.h: Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-lex.cc (Lexer::parse_decimal_int_or_float): Remove
|
||
additional zero after empty floating point.
|
||
* parse/rust-parse-impl.h (Parser::left_denotation): Handle float with
|
||
empty floating point.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::generate_closure_function):
|
||
Fix reference to node.
|
||
* backend/rust-mangle.cc (struct V0Path): Modified to accept closures.
|
||
(v0_crate_path): Modified to accept closures.
|
||
(v0_closure): New function to mangle closures.
|
||
(v0_path): Modified to accept closures
|
||
* util/rust-mapping-common.h (UNKNOWN_NODEID): Change to UINT32_MAX.
|
||
(UNKNOWN_HIRID): Change to UINT32_MAX.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Move from here...
|
||
* ast/rust-ast-visitor.h: ... to here.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Move to header
|
||
file.
|
||
(TokenCollector::visit_items_joined_by_separator): Likewise.
|
||
(TokenCollector::visit_as_line): Likewise.
|
||
(TokenCollector::visit_items_as_lines): Likewise.
|
||
(TokenCollector::visit_items_as_block): Likewise.
|
||
* ast/rust-ast-collector.h: Add implementation.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Add visitor for
|
||
VariadicParam and remove Self parameter visitor from Function visit.
|
||
* expand/rust-cfg-strip.cc (CfgStrip::maybe_strip_self_param): Remove
|
||
function.
|
||
(CfgStrip::maybe_strip_trait_method_decl): Remove self parameter visit.
|
||
(CfgStrip::maybe_strip_function_params): Handle new function
|
||
parameters.
|
||
(CfgStrip::visit): Handle VariadicParam, SelfParam and FunctionParam.
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::expand_self_param):
|
||
Remove function.
|
||
(ExpandVisitor::expand_trait_method_decl): Do not visit self parameter.
|
||
(ExpandVisitor::visit): Add visit for VariadicParam, FunctionParam and
|
||
SelfParam.
|
||
(ExpandVisitor::expand_function_params): Visit parameters instead.
|
||
* expand/rust-expand-visitor.h: Update function prototypes.
|
||
* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Update visit
|
||
with new parameters.
|
||
(ResolveTraitItems::visit): Likewise.
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
|
||
Update visit functions with the new visitor functions for VariadicParam
|
||
SelfParam and FunctionParam.
|
||
* resolve/rust-early-name-resolver.h: Update function prototypes.
|
||
* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Update visitor
|
||
according to the new function parameter structures.
|
||
* ast/rust-ast-visitor.h: Update prototypes and add visitor virtual
|
||
functions for SelfParam, FunctionParam and VariadicParam.
|
||
* ast/rust-ast.cc (Function::Function): Move constructor in
|
||
implementation instead of header.
|
||
(Function::operator=): Likewise.
|
||
(Function::as_string): Update function with pointer dereference.
|
||
(VariadicParam::as_string): Likewise.
|
||
(TraitFunctionDecl::as_string): Likewise.
|
||
(TraitMethodDecl::as_string): Likewise.
|
||
(FunctionParam::accept_vis): Add function for visitor.
|
||
(SelfParam::accept_vis): Likewise.
|
||
(VariadicParam::accept_vis): Likewise.
|
||
(TraitItemFunc::TraitItemFunc): Move constructor to implementation
|
||
file.
|
||
(TraitItemFunc::operator=): Likewise.
|
||
(TraitItemMethod::TraitItemMethod): Likewise.
|
||
(TraitItemMethod::operator=): Likewise.
|
||
* ast/rust-item.h (class Function): Remove self optional member.
|
||
(class TraitMethodDecl): Likewise.
|
||
(class TraitFunctionDecl): Likewise.
|
||
(class Param): Add abstract parameter class.
|
||
(class SelfParam): Inherit from Param and remove parameter common
|
||
members.
|
||
(class FunctionParam): Likewise.
|
||
(class VariadicParam): Likewise.
|
||
(struct Visibility): Move structure declaration.
|
||
(class VisItem): Likewise.
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
|
||
a self parameter check during AST validation.
|
||
* checks/errors/rust-ast-validation.h: Add function prototype.
|
||
* expand/rust-derive-clone.cc (DeriveClone::clone_fn): Update function
|
||
constructor.
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_self): Rework
|
||
function for the new parameters.
|
||
(ASTLoweringBase::visit): Add visit functions for VariadicParam,
|
||
FunctionParam and SelfParam.
|
||
* hir/rust-ast-lower-base.h: Update function prototypes.
|
||
* parse/rust-parse-impl.h (Parser::parse_function): Update function
|
||
according to new function representation.
|
||
(Parser::parse_function_param): Return vector of abstract param instead
|
||
of FunctionParam.
|
||
(Parser::parse_method): Update according to new representation.
|
||
(Parser::parse_trait_item): Likewise.
|
||
(Parser::parse_self_param): Error out with
|
||
self pointers and prevent the lexer from eating regular function
|
||
parameters. Update return type.
|
||
* parse/rust-parse.h: Update function return types.
|
||
* ast/rust-ast-collector.h: Add VariadicParam visit prototype.
|
||
* ast/rust-ast.h (struct Visibility): Move struct declaration.
|
||
(class VisItem): Likewise.
|
||
* ast/rust-expr.h: Update included files.
|
||
* checks/errors/rust-feature-gate.h: Add visitor functions for
|
||
SelfParam, FunctionParam and VariadicParam.
|
||
* expand/rust-cfg-strip.h: Update function prototypes.
|
||
* expand/rust-derive.h: Likewise.
|
||
* hir/rust-ast-lower-implitem.h: Handle special arguments.
|
||
* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
|
||
* metadata/rust-export-metadata.cc (ExportContext::emit_function):
|
||
Likewise.
|
||
* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Add visitor
|
||
functions.
|
||
* resolve/rust-ast-resolve-base.h: Update prototypes.
|
||
* resolve/rust-ast-resolve-stmt.h: Handle new parameter kind.
|
||
* resolve/rust-default-resolver.cc (DefaultResolver::visit): Likewise.
|
||
* resolve/rust-default-resolver.h: Update prototype.
|
||
* util/rust-attributes.cc (AttributeChecker::visit): Add visitor
|
||
functions for SelfParam and VariadicParam.
|
||
* util/rust-attributes.h: Add visit prototypes.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
|
||
check for additional named argument as well as variadic argument's
|
||
position.
|
||
* checks/errors/rust-ast-validation.h: Add visit function prototype for
|
||
external functions.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-visitor.cc (ContextualASTVisitor::visit): Push the new
|
||
trait context when visiting a trait.
|
||
* ast/rust-ast-visitor.h: Add visit function prototype and TRAIT
|
||
context.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Change
|
||
reported error location to the lifetime location.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Check if there is
|
||
a label before visit.
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Emit an
|
||
error when a label has a forbidden name.
|
||
* checks/errors/rust-ast-validation.h: Add function prototype.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-expr.h (class BreakExpr): Change Lifetime to LoopLabel.
|
||
* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Lower lifetime
|
||
inside the label instead.
|
||
* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Resolve the
|
||
inner lifetime.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-lex.cc (Lexer::parse_raw_identifier): Use const value.
|
||
* parse/rust-parse-impl.h (Parser::parse_simple_path_segment):
|
||
Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-lex.cc (RS_TOKEN): Remove local map.
|
||
(RS_TOKEN_KEYWORD): Likewise.
|
||
(Lexer::classify_keyword): Change call to utils.
|
||
* util/rust-keyword-values.cc (get_keywords): Add init function.
|
||
(RS_TOKEN_KEYWORD): Call to X macro.
|
||
* util/rust-keyword-values.h: Change from set to a map.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (RS_TOKEN): Remove locale set.
|
||
(RS_TOKEN_KEYWORD): Likewise.
|
||
(ASTValidation::visit): Change keyword set call to the one from utils.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* Make-lang.in: Add rust-keyword-values.cc to the list.
|
||
* util/rust-keyword-values.cc: New file.
|
||
* util/rust-keyword-values.h: New file.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-attribute-values.h (RUST_ATTRIBUTES_VALUE_H): Remove old
|
||
header guard.
|
||
(RUST_ATTRIBUTE_VALUES_H): Add new one.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (RS_TOKEN): Add keyword set.
|
||
(RS_TOKEN_KEYWORD): Likewise.
|
||
(ASTValidation::visit): Add validation on lifetime visit.
|
||
* checks/errors/rust-ast-validation.h: Add function prototype.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-item.h
|
||
(class Method): Remove.
|
||
(Function::self_param): New.
|
||
(Function::has_self_param): New.
|
||
(Function::Function): Initialize self_param.
|
||
(Function::operator=): Likewise.
|
||
(Function::get_self_param): New.
|
||
* ast/rust-ast.cc
|
||
(Method::as_string): Remove.
|
||
(Method::accept_vis): Remove.
|
||
* ast/rust-ast-collector.cc
|
||
(TokenCollector::visit):
|
||
Remove AST::Method visitor, handle self_param in AST::Function visitor.
|
||
* ast/rust-ast-collector.h
|
||
(TokenCollector::visit): Remove AST::Method visitor.
|
||
* ast/rust-ast-full-decls.h (class Method): Remove.
|
||
* ast/rust-ast-visitor.h
|
||
(ASTVisitor::visit): Remove AST::Method visitor.
|
||
(DefaultASTVisitor::visit): Likewise.
|
||
* ast/rust-ast-visitor.cc
|
||
(DefaultASTVisitor::visit):
|
||
Remove AST::Method visitor, handle self_param in AST::Function visitor.
|
||
* checks/errors/rust-feature-gate.cc
|
||
(FeatureGate::visit): Remove AST::Method visitor.
|
||
* checks/errors/rust-feature-gate.h
|
||
(FeatureGate::visit): Likewise..
|
||
* expand/rust-cfg-strip.cc
|
||
(CfgStrip::visit):
|
||
Remove AST::Method visitor, handle self_param in AST::Function visitor.
|
||
* expand/rust-cfg-strip.h
|
||
(CfgStrip::visit): Remove AST::Method visitor.
|
||
* expand/rust-derive-clone.cc
|
||
(DeriveClone::clone_fn): Return AST::Function instead of AST::Method.
|
||
* expand/rust-derive.h (DeriveVisitor::visit): Remove AST::Method visitor.
|
||
* expand/rust-expand-visitor.cc
|
||
(ExpandVisitor::visit):
|
||
Remove AST::Method visitor, handle self_param in AST::Function visitor.
|
||
* expand/rust-expand-visitor.h:
|
||
(ExpandVisitor::visit): Remove AST::Method visitor.
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
|
||
* hir/rust-ast-lower-base.h (ASTLoweringBase::visit): Likewise.
|
||
* hir/rust-ast-lower-implitem.h
|
||
(ASTLowerImplItem::visit):
|
||
Remove AST::Method visitor, handle self_param in AST::Function visitor.
|
||
* parse/rust-parse-impl.h: Include optional.h.
|
||
(Parser::parse_function): Adjust AST::Function construction.
|
||
(Parser::parse_inherent_impl_function_or_method):
|
||
Construct AST::Function instead of AST::Method,
|
||
adjust AST::Function construction.
|
||
(Parser::parse_trait_impl_function_or_method): Likewise.
|
||
(Parser::parse_method):
|
||
Return std::unique_ptr<AST::Function> instead of AST::Method.
|
||
* parse/rust-parse.h
|
||
(Parser::parse_method): Likewise.
|
||
* resolve/rust-ast-resolve-base.cc
|
||
(ResolverBase::visit): Remove AST::Method visitor.
|
||
* resolve/rust-ast-resolve-base.h
|
||
(ResolverBase::visit): Likewise.
|
||
* resolve/rust-ast-resolve-implitem.h
|
||
(ResolveToplevelImplItem::visit): Likewise.
|
||
* resolve/rust-ast-resolve-item.cc
|
||
(ResolveItem::visit): Remove AST::Method visitor,
|
||
handle self_param in AST::Function visitor.
|
||
* resolve/rust-ast-resolve-item.h
|
||
(ResolveItem::visit): Remove AST::Method visitor.
|
||
* resolve/rust-default-resolver.cc
|
||
(DefaultResolver::visit): Remove AST::Method visitor.
|
||
* resolve/rust-default-resolver.h
|
||
(DefaultResolver::visit): Likewise.
|
||
* resolve/rust-early-name-resolver.cc
|
||
(EarlyNameResolver::visit): Remove AST::Method visitor,
|
||
handle self_param in AST::Function visitor.
|
||
* resolve/rust-early-name-resolver.h
|
||
(EarlyNameResolver::visit): Remove AST::Method visitor.
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc
|
||
(TopLevel::visit): Likewise.
|
||
* resolve/rust-toplevel-name-resolver-2.0.h
|
||
(TopLevel::visit): Likewise.
|
||
* util/rust-attributes.cc
|
||
(AttributeChecker::visit): Likewise.
|
||
* util/rust-attributes.h
|
||
(AttributeChecker::visit): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_named_function_param): Add
|
||
new parsing ability.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.cc (ExternalFunctionItem::as_string): Adapt as_string
|
||
function to the new ast representation.
|
||
(NamedFunctionParam::as_string): Likewise.
|
||
* ast/rust-item.h: Add a function to test whether a FunctionParam has
|
||
a name pattern.
|
||
* expand/rust-cfg-strip.cc (CfgStrip::visit): Adapt cfg strip visitor
|
||
for the new variadic arguments.
|
||
* hir/rust-ast-lower-extern.h: Adapt lowering to the new variadic
|
||
function representation.
|
||
* metadata/rust-export-metadata.cc (ExportContext::emit_function):
|
||
Change call to constructor.
|
||
* parse/rust-parse-impl.h (Parser::parse_named_function_param): Change
|
||
NamedFunctionParam parsing to accomodate new variadic representation.
|
||
(Parser::parse_external_item): Change external item parsing to use the
|
||
new NamedFunctionParam variadics.
|
||
* parse/rust-parse.h: Add new parsing function prototypes.
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Rework token
|
||
collection to take into account variadic parameters.
|
||
* ast/rust-ast-visitor.cc: Likewise.
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Change function
|
||
bound to avoid getting the type of a variadic parameter.
|
||
* resolve/rust-ast-resolve-item.cc (ResolveExternItem::visit):
|
||
Likewise.
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
|
||
Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-item.h (class NamedFunctionParam): Add variadic boolean and
|
||
another constructor.
|
||
* hir/rust-ast-lower-extern.h: Avoid last parameter when variadic.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-item.h: Add a getter to check if a given function is
|
||
variadic.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_function_param): Parse
|
||
variadic functions.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-item.h (class FunctionParam): Add some informations to
|
||
function parameters in order to be able to store variadic argument as
|
||
a function parameter.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Adapt
|
||
the call to the new visit functions.
|
||
(ASTValidation::check): Launch the parent class visitor root function.
|
||
* checks/errors/rust-ast-validation.h (class ASTValidation): Inherit
|
||
from the contextual visitor.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-visitor.cc (ContextualASTVisitor::visit): Add multiple
|
||
context saving calls.
|
||
* ast/rust-ast-visitor.h (class DefaultASTVisitor): Make visit
|
||
functions virtual.
|
||
(class ContextualASTVisitor): Add a stack like container for the
|
||
current context chain.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* Make-lang.in: Add the new visitor object file.
|
||
* ast/rust-ast-visitor.h (class DefaultASTVisitor): Create the default
|
||
visitor class.
|
||
* ast/rust-ast.h: Add a new reference getter for visitor pattern.
|
||
* ast/rust-ast-visitor.cc: New file.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Add some missing mutable reference getters.
|
||
* ast/rust-expr.h: Likewise.
|
||
* ast/rust-item.h: Likewise.
|
||
* ast/rust-path.h: Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Check for presence
|
||
of a type and use the default value instead of the type.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/rust-ast-validation.cc (ASTValidation::check): Launch
|
||
check over the whole given crate.
|
||
(ASTValidation::visit): Implement visitor for some members of the ast.
|
||
* checks/errors/rust-ast-validation.h: Update some prototype according
|
||
to implemented visitor functions. Also add a context tracker.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* rust-session-manager.cc (Session::compile_crate): Add call to ast
|
||
validation.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lang.opt: Add the new compile options and update the enum values.
|
||
* rust-session-manager.h (struct CompileOptions): Add the new steps to
|
||
the enumeration.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* Make-lang.in: Add the new object file the list.
|
||
* checks/errors/rust-ast-validation.cc: New file.
|
||
* checks/errors/rust-ast-validation.h: New file.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-cfg-strip.cc (CfgStrip::visit): Add expr value check.
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Likewise.
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
|
||
Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Move implementation from here...
|
||
* ast/rust-ast.cc (SingleASTNode::SingleASTNode): ...to here.
|
||
(SingleASTNode::operator=): ...and here...
|
||
(SingleASTNode::accept_vis): ...and here...
|
||
(SingleASTNode::is_error): ...and here...
|
||
(SingleASTNode::as_string): ...also here.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Add override specifier.
|
||
* ast/rust-item.h: Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-macro-invoc-lexer.cc (MacroInvocLexer::split_current_token):
|
||
Add implementation for multiple token split.
|
||
* expand/rust-macro-invoc-lexer.h: Add function prototype.
|
||
* expand/rust-proc-macro-invoc-lexer.cc (ProcMacroInvocLexer::split_current_token):
|
||
Add implementation for 2+ token split for procedural macros.
|
||
* expand/rust-proc-macro-invoc-lexer.h: Add function prototype.
|
||
* lex/rust-lex.cc (Lexer::split_current_token): Add function to split a
|
||
token in multiple other tokens.
|
||
* lex/rust-lex.h: Add function prototype for split_current_token.
|
||
* parse/rust-parse-impl.h (Parser::left_denotation): Handle float tuple
|
||
index identified as a float literal.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* hir/rust-hir-dump.cc (Dump::visit): Remove obsolete member.
|
||
* hir/tree/rust-hir-expr.h (class BorrowExpr): Remove obsolete member.
|
||
* hir/tree/rust-hir.cc (BorrowExpr::as_string): Remove obsolete member.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Fix typo.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-expr.cc
|
||
(patterns_mergeable): Remove.
|
||
(struct PatternMerge): Remove.
|
||
(sort_tuple_patterns): Remove.
|
||
(simplify_tuple_match): Remove.
|
||
(CompileExpr::visit): Modify compilation of MatchExpr.
|
||
* backend/rust-compile-pattern.cc
|
||
(CompilePatternCaseLabelExpr::visit): Replace with...
|
||
(CompilePatternCheckExpr::visit): ...this.
|
||
* backend/rust-compile-pattern.h
|
||
(class CompilePatternCaseLabelExpr): Replace with...
|
||
(class CompilePatternCheckExpr): ...this.
|
||
* backend/rust-compile-type.cc
|
||
(TyTyResolveCompile::get_implicit_enumeral_node_type):
|
||
Make enumeral type equivalent to isize.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* backend/rust-compile-base.cc (get_attributes): Add documentation for
|
||
indices 3 and 4.
|
||
(get_trait_name): Add documentation for index 1.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* Make-lang.in: Add gcc/rust/backend/rust-compile-proc-macro.cc to the
|
||
list of file to compile.
|
||
* backend/rust-compile.cc (attribute_array): Move to
|
||
rust-compile-proc-macro.cc
|
||
(derive_proc_macro): Likewise.
|
||
(bang_proc_macro): Likewise.
|
||
(attribute_proc_macro): Likewise.
|
||
(proc_macro_payload): Likewise.
|
||
(proc_macro): Likewise.
|
||
(proc_macro_buffer): Likewise.
|
||
(entrypoint): Likewise.
|
||
(proc_macro_array): Likewise.
|
||
(CompileCrate::add_proc_macro_symbols): Likewise.
|
||
* backend/rust-compile-proc-macro.cc: New file.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* backend/rust-compile.cc (proc_macro_buffer): Update type builder with
|
||
array length information.
|
||
(proc_macro_array): Update type initializer with array length
|
||
information.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* backend/rust-compile.cc (build_attribute_array): Renamed from...
|
||
(attribute_array): ...to attribute array.
|
||
(build_derive_proc_macro): Likewise from...
|
||
(derive_proc_macro): ... to derive_proc_macro.
|
||
(build_bang_proc_macro): Likewise from...
|
||
(bang_proc_macro): ...to bang_proc_macro.
|
||
(build_attribute_proc_macro): Likewise from...
|
||
(attribute_proc_macro): ... to attribute_proc_macro.
|
||
(build_proc_macro_payload): Likewise from...
|
||
(proc_macro_payload): to proc_macro_payload.
|
||
(build_proc_macro): Likewise from...
|
||
(proc_macro): ...to proc_macro.
|
||
(build_proc_macro_buffer): Likewise from...
|
||
(proc_macro_buffer): ... to proc_macro_buffer.
|
||
(build_entrypoint): Likewise from...
|
||
(entrypoint): ...to entrypoint.
|
||
(init_derive_proc_macro): Renamed to it's shorter counterpart.
|
||
(init_attribute_proc_macro): Likewise.
|
||
(init_bang_proc_macro): Likewise.
|
||
(init_proc_macro): Likewise.
|
||
(initialize_proc_macro_array): Likewise.
|
||
(proc_macro_array): Likewise.
|
||
(CompileCrate::add_proc_macro_symbols): Update function calls.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* backend/rust-compile-base.h: Make static function address_expression
|
||
public.
|
||
* backend/rust-compile.cc (CompileCrate::add_proc_macro_symbols): Add
|
||
new global variable in export function.
|
||
(build_bang_proc_macro): Add a function to build the bang proc macro
|
||
structure type.
|
||
(build_proc_macro): Add a function to build the proc macro structure
|
||
type.
|
||
(build_proc_macro_payload): Add a function to build the proc macro
|
||
union used in proc macro structures.
|
||
(init_derive_proc_macro): Add a function to initialize custom derive
|
||
proc macros.
|
||
(init_attribute_proc_macro): Add a function to initialize attribute
|
||
proc macros.
|
||
(init_bang_proc_macro): Add a function to initialize bang proc macros.
|
||
(init_proc_macro): Add a function to initialize proc macro structures.
|
||
(initialize_proc_macro_array): Add a function to initialize the proc
|
||
macro buffer array.
|
||
(CompileCrate::add_proc_macro_symbols): Add call to the new functions
|
||
to correctly initialize proc macros as well as their entrypoint.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-proc-macro.cc (CustomDeriveProcMacro::CustomDeriveProcMacro):
|
||
Remove constant string declaration.
|
||
(load_macros_array): Add call to the new generation function.
|
||
(generate_proc_macro_decls_symbol): Add a new function to generate the
|
||
entrypoint symbol name from the stable crate id.
|
||
(PROC_MACRO_DECLS_FMT_ARGS):
|
||
New macro to keep formats arguments in sync between each call.
|
||
* expand/rust-proc-macro.h (generate_proc_macro_decls_symbol): Add
|
||
function prototype.
|
||
* rust-system.h: Include <iomanip>.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* backend/rust-compile.cc (build_attribute_array): Add a function to
|
||
build the attribute array type.
|
||
(build_derive_proc_macro): Add a function to build the derive proc
|
||
macro type.
|
||
(build_bang_proc_macro): Add a function to build the bang proc macro
|
||
type.
|
||
(build_attribute_proc_macro): Add a function to build the attribute
|
||
proc macro type.
|
||
(build_proc_macro): Add a function to build the proc macro tagged union
|
||
type.
|
||
(build_proc_macro_buffer): Add a function to build the proc macro
|
||
buffer type.
|
||
(build_entrypoint): Add a function to build the proc macro entrypoint
|
||
type.
|
||
* backend/rust-compile.h: Add function prototype.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* backend/rust-compile-context.h: Add getters.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::setup_fndecl):
|
||
Make the function non static in order to be able to access the
|
||
compile context. Also add the whole proc macro infomrmation
|
||
collection.
|
||
(get_attributes): Add a function to retrieve the different
|
||
attributes from a derive procedural macro definition attribute.
|
||
(get_trait_name): Add a function to retrieve the trait name from
|
||
a derive procedural macro definition attribute.
|
||
* backend/rust-compile-base.h: Add function prototypes.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::setup_abi_options):
|
||
Reformat uncorrectly formatted comments.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* backend/rust-compile-context.h (struct CustomDeriveInfo): Add
|
||
new derive procedural macro metadata information holder for
|
||
mappings.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Add const getter.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* backend/rust-compile-base.cc (handle_proc_macro_common): Add
|
||
new attribute "gccrs_proc_macro" to all procedural macro
|
||
functions.
|
||
(get_abi): Add a function to retrieve the correct ABI depending
|
||
on wether the function is a proc macro or not.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::setup_fndecl):
|
||
Add proc macro handlers dispatch.
|
||
(handle_proc_macro_common): Add a function for common behavior
|
||
between all kinds of proc macros.
|
||
* backend/rust-compile-base.h: Add function prototypes.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::setup_loop): Move.
|
||
(ExprStmtBuilder::get_label_ctx): Move.
|
||
(ExprStmtBuilder::get_unnamed_loop_ctx): Moved.
|
||
(ExprStmtBuilder::visit): BIR improvements.
|
||
* checks/errors/borrowck/rust-bir-builder-expr-stmt.h: Refactor.
|
||
* checks/errors/borrowck/rust-bir-builder-internal.h (class LifetimeResolver):
|
||
Refactor.
|
||
(struct BuilderContext): Move.Refactor.
|
||
(optional_from_ptr): Map on null ptr.
|
||
* checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h (class LazyBooleanExprBuilder):
|
||
Refactor.
|
||
* checks/errors/borrowck/rust-bir-builder-pattern.h: Refactor.
|
||
* checks/errors/borrowck/rust-bir-builder-struct.h (class StructBuilder): Refactor.
|
||
* checks/errors/borrowck/rust-bir-builder.h: Refactor.
|
||
* checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Refactor.
|
||
(Dump::visit): Refactor.
|
||
(Dump::visit_place): Refactor.
|
||
(Dump::visit_move_place): Refactor.
|
||
(Dump::visit_lifetime): Refactor.
|
||
* checks/errors/borrowck/rust-bir-dump.h: Refactor.
|
||
* checks/errors/borrowck/rust-bir-place.h: Refactor.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* checks/errors/borrowck/dev-notes.md: New file.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* checks/errors/borrowck/bir-design-notes.md: New file.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit): Use goto.
|
||
* checks/errors/borrowck/rust-bir-builder-internal.h: Explicit goto.
|
||
* checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h: Explicit goto.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit): Continue.
|
||
(ExprStmtBuilder::setup_loop): Continue.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* checks/errors/borrowck/rust-bir-dump.cc (simplify_cfg): Detech infinite loops.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit): Push ctx.
|
||
(ExprStmtBuilder::setup_loop): Common loop infractructure setup.
|
||
* checks/errors/borrowck/rust-bir-builder-expr-stmt.h: Loop ctx.
|
||
* checks/errors/borrowck/rust-bir-builder-internal.h (struct BuilderContext): Loop ctx.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Improve jumps dump.
|
||
(Dump::visit): Improve jumps dump.
|
||
* checks/errors/borrowck/rust-bir-dump.h (class Dump): Improve jumps dump.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* checks/errors/borrowck/rust-bir-dump.cc (simplify_cfg): Simplify cfg logic.
|
||
(Dump::go): Run simplify cfg.
|
||
* checks/errors/borrowck/rust-bir-dump.h: Option to simplify cfg.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* checks/errors/borrowck/rust-bir-dump.cc (Dump::go): Use new print.
|
||
(print_comma_separated): Comma separation print.
|
||
(Dump::visit): Use new print.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* Make-lang.in: Build BIR dump.
|
||
* checks/errors/borrowck/rust-borrow-checker.cc (mkdir_wrapped): Cross-platform mkdir.
|
||
(dump_function_bir): Save dump to file.
|
||
(BorrowChecker::go): Run dump during borrowck.
|
||
* checks/errors/borrowck/rust-bir-dump.cc: New file.
|
||
* checks/errors/borrowck/rust-bir-dump.h: New file.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* Make-lang.in: Compile BIR expr visitor.
|
||
* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::go): Use BIR builder.
|
||
* rust-session-manager.cc (Session::compile_crate): Run borrow checker.
|
||
* checks/errors/borrowck/rust-bir-builder-expr-stmt.cc: New file.
|
||
* checks/errors/borrowck/rust-bir-builder-expr-stmt.h: New file.
|
||
* checks/errors/borrowck/rust-bir-builder-internal.h: New file.
|
||
* checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h: New file.
|
||
* checks/errors/borrowck/rust-bir-builder-pattern.h: New file.
|
||
* checks/errors/borrowck/rust-bir-builder-struct.h: New file.
|
||
* checks/errors/borrowck/rust-bir-builder.h: New file.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* checks/errors/borrowck/rust-borrow-checker.cc: Include to compile new code.
|
||
* checks/errors/borrowck/rust-bir-place.h: New file.
|
||
* checks/errors/borrowck/rust-bir-visitor.h: New file.
|
||
* checks/errors/borrowck/rust-bir.h: New file.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* lang.opt: CLI flag.
|
||
* rust-session-manager.cc (Session::compile_crate): Guard execution.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* checks/errors/borrowck/rust-borrow-checker.cc (BorrowChecker::BorrowChecker): Opt dump.
|
||
(BorrowChecker::go): Opt dump.
|
||
* checks/errors/borrowck/rust-borrow-checker.h (class BorrowChecker): Opt dump.
|
||
* lang.opt: Add compile until borrowcheck.
|
||
* rust-session-manager.cc (Session::enable_dump): Add BIR.
|
||
(Session::compile_crate): Handle new options.
|
||
* rust-session-manager.h (struct CompileOptions): Add BIR.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* Make-lang.in: Build borrowck.
|
||
* checks/errors/borrowck/rust-borrow-checker.cc: New file.
|
||
* checks/errors/borrowck/rust-borrow-checker.h: New file.
|
||
* checks/errors/borrowck/rust-function-collector.h: New file.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-pattern.h: Add override modifier to overriding methods.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-item.h: Add a new constructor for const with no value
|
||
expression.
|
||
* parse/rust-parse-impl.h (Parser::parse_const_item): Allow const with
|
||
no expression value.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* hir/tree/rust-hir-path.h: Avoid copy in getter.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Rename method.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Rename method.
|
||
* checks/errors/rust-const-checker.cc (ConstChecker::visit): Rename method.
|
||
* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Rename method.
|
||
* hir/rust-hir-dump.cc (Dump::visit): Rename method.
|
||
* hir/tree/rust-hir-expr.h: Rename method.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Rename method.
|
||
* typecheck/rust-tyty.h: Rename method.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* backend/rust-compile-base.cc: Rename method.
|
||
* backend/rust-compile-expr.cc (sort_tuple_patterns): Rename method.
|
||
* backend/rust-compile-pattern.cc (CompilePatternCaseLabelExpr::visit): Rename method.
|
||
(CompilePatternBindings::visit): Rename method.
|
||
(CompilePatternLet::visit): Rename method.
|
||
* backend/rust-compile-stmt.cc (CompileStmt::visit): Rename method.
|
||
* backend/rust-compile-var-decl.h: Rename method.
|
||
* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::translate): Rename method.
|
||
* hir/rust-hir-dump.cc (Dump::visit): Rename method.
|
||
* hir/tree/rust-hir-path.h: Rename method.
|
||
* hir/tree/rust-hir-pattern.h: Rename method.
|
||
* hir/tree/rust-hir.h: Rename method.
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::Resolve): Rename method.
|
||
(TypeCheckPattern::visit): Rename method.
|
||
(ClosureParamInfer::visit): Rename method.
|
||
* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Rename method.
|
||
* util/rust-hir-map.cc (Mappings::insert_hir_pattern): Rename method.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* hir/tree/rust-hir-expr.h: Add getter for name.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Implement for tuple pat.
|
||
* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit): Implement for tupple pat.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* hir/tree/rust-hir-path.h: Avoid copy in getter.
|
||
* hir/tree/rust-hir-pattern.h: Avoid copy in getter.
|
||
* hir/tree/rust-hir.h: Avoid copy in getter.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* resolve/rust-ast-resolve-implitem.h
|
||
(ResolveToplevelImplItem::go): Take AssociatedItem as parameter.
|
||
(ResolveTopLevelTraitItems::go): Likewise.
|
||
* resolve/rust-ast-resolve-item.cc
|
||
(ResolveTraitItems::go): Likewise.
|
||
(ResolveItem::resolve_impl_item): Likewise.
|
||
(ResolveImplItems::go): Likewise.
|
||
* resolve/rust-ast-resolve-item.h
|
||
(ResolveTraitItems::go): Likewise.
|
||
(ResolveItem::resolve_impl_item): Likewise.
|
||
(ResolveImplItems::go): Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/rust-ast-lower-implitem.h
|
||
(ASTLoweringImplItem::translate): Take AssociatedItem as parameter.
|
||
(ASTLoweringTraitItem::translate): Likewise.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Bail on labelled block.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Add loop ctx.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Resolve using loop logic.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* hir/rust-ast-lower.cc (ASTLoweringBlock::visit): Call loop lowering and add it to constr.
|
||
* hir/tree/rust-hir-expr.h (class LoopLabel): Move before BlockExpr and add to BlockExpr.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-builder.cc (AstBuilder::block): Add label arg to constructor call.
|
||
* ast/rust-expr.h (class LoopLabel): Move before BlockExpr.
|
||
(class BlockExpr): Add LoopLabel member.
|
||
* expand/rust-derive-clone.cc (DeriveClone::clone_fn): Add label arg to constructor call.
|
||
* parse/rust-parse-impl.h (Parser::parse_block_expr): Add label parameter.
|
||
(Parser::parse_labelled_loop_expr): Add label arg to constructor call.
|
||
* parse/rust-parse.h: Add label arg to constructor call.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-ast.h
|
||
(class AssociatedItem):
|
||
New, based on TraitItem, InherentImplItem, and TraitImplItem classes.
|
||
(class TraitItem): Inherit from AssociatedItem.
|
||
(class InherentImplItem): Likewise.
|
||
(class TraitImplItem): Likewise.
|
||
* ast/rust-item.h
|
||
(class Method): Update cloning functions.
|
||
(class Function): Likewise.
|
||
(class TypeAlias): Likewise.
|
||
(class ConstantItem): Likewise.
|
||
(class TraitItemFunc): Likewise.
|
||
(class TraitItemMethod): Likewise.
|
||
(class TraitItemConst): Likewise.
|
||
(class TraitItemType): Likewise.
|
||
* ast/rust-macro.h
|
||
(class MacroInvocation): Likewise.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* backend/rust-mangle.cc (v0_identifier): Fix broken encoding.
|
||
(v0_scope_path): Modify paramter.
|
||
(v0_path): Fix namespace for modules.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_closure_expr_pratt): Fix
|
||
closure parsing function to handle consecutive parameter lists.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-macro.h: Add PATH fragment to follow set restrictions.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::is_macro_rules_def): Add a function
|
||
that checks tokens given by the lexer represents an accurate macro
|
||
definition. This will reduce code duplication.
|
||
(Parser::parse_item): Replace condition with call to new checking
|
||
function.
|
||
(Parser::parse_stmt): Likewise.
|
||
* parse/rust-parse.h: Add function prototype for is_macro_rules_def.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_expr): Fix range from expr.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_item): Relax constraints
|
||
around default identifier at item scope to accept "default" macros.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_path_expr_segment): Accept
|
||
left shift tokens in order to let generic parsing function split the
|
||
token.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-ast.h
|
||
(Pattern::get_pattern_node_id): Rename to...
|
||
(Pattern::get_node_id): ...here.
|
||
* ast/rust-macro.h
|
||
(MacroInvocation::get_pattern_node_id): Rename to...
|
||
(MacroInvocation::get_node_id): ...here.
|
||
* ast/rust-path.h
|
||
(PathInExpression::get_pattern_node_id): Remove.
|
||
(QualifiedPathInExpression::get_pattern_node_id): Remove.
|
||
* ast/rust-pattern.h
|
||
(LiteralPattern::get_pattern_node_id): Remove.
|
||
(IdentifierPattern::get_pattern_node_id): Remove.
|
||
(WildcardPattern::get_pattern_node_id): Remove.
|
||
(RestPattern::get_pattern_node_id): Rename to...
|
||
(RestPattern::get_node_id): ...here.
|
||
(RangePattern::get_pattern_node_id): Remove.
|
||
(ReferencePattern::get_pattern_node_id): Remove.
|
||
(StructPattern::get_pattern_node_id): Remove.
|
||
(TupleStructPattern::get_pattern_node_id): Remove.
|
||
(TuplePattern::get_pattern_node_id): Remove.
|
||
(GroupedPattern::get_pattern_node_id): Remove.
|
||
(SlicePattern::get_pattern_node_id): Remove.
|
||
(AltPattern::get_pattern_node_id): Remove.
|
||
* resolve/rust-early-name-resolver.cc
|
||
(EarlyNameResolver::visit):
|
||
Use get_node_id instead of get_pattern_node_id.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_expr): Add comma delimiter.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_visibility): Relax constraints
|
||
over public visibility return condition in order to accept pub unit
|
||
types.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* typecheck/rust-tyty.cc (BaseType::is_unit): Refactor.
|
||
(BaseType::satisfies_bound): Refactor.
|
||
(BaseType::get_root): Refactor.
|
||
(BaseType::destructure): Refactor.
|
||
(BaseType::monomorphized_clone): Refactor.
|
||
(BaseType::is_concrete): Refactor.
|
||
(InferType::InferType): Refactor.
|
||
(InferType::clone): Refactor.
|
||
(InferType::apply_primitive_type_hint): Refactor.
|
||
(StructFieldType::is_equal): Refactor.
|
||
(ADTType::is_equal): Refactor.
|
||
(handle_substitions): Refactor.
|
||
(ADTType::handle_substitions): Refactor.
|
||
(TupleType::TupleType): Refactor.
|
||
(TupleType::is_equal): Refactor.
|
||
(TupleType::handle_substitions): Refactor.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* typecheck/rust-tyty.cc (InferType::InferType): Use static constant for kind information.
|
||
(ErrorType::ErrorType): Use static constant for kind information.
|
||
(TupleType::TupleType): Use static constant for kind information.
|
||
(BoolType::BoolType): Use static constant for kind information.
|
||
(IntType::IntType): Use static constant for kind information.
|
||
(UintType::UintType): Use static constant for kind information.
|
||
(FloatType::FloatType): Use static constant for kind information.
|
||
(USizeType::USizeType): Use static constant for kind information.
|
||
(ISizeType::ISizeType): Use static constant for kind information.
|
||
(CharType::CharType): Use static constant for kind information.
|
||
(ReferenceType::ReferenceType): Use static constant for kind information.
|
||
(PointerType::PointerType): Use static constant for kind information.
|
||
(ParamType::ParamType): Use static constant for kind information.
|
||
(StrType::StrType): Use static constant for kind information.
|
||
(NeverType::NeverType): Use static constant for kind information.
|
||
(PlaceholderType::PlaceholderType): Use static constant for kind information.
|
||
* typecheck/rust-tyty.h: Add static kind information to all TyTy classes.
|
||
Create safe cast and check methods.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_type_param_bound): Add missing
|
||
case for lifetime switch.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-token.cc (Token::as_string): Update function to output scope
|
||
resolution tokens correctly.
|
||
* parse/rust-parse-impl.h (Parser::parse_generic_param): Change call to
|
||
as_string.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* backend/rust-compile-context.h: Modify declaration.
|
||
* backend/rust-mangle.cc (struct V0Path): New struct.
|
||
(v0_path): New function.
|
||
(legacy_mangle_name): Take Context as argument.
|
||
(v0_numeric_prefix): Fix type strings.
|
||
(v0_complex_type_prefix): New function.
|
||
(v0_add_integer_62): Deleted
|
||
(v0_integer_62): New function.
|
||
(v0_add_opt_integer_62): Deleted.
|
||
(v0_opt_integer_62): New function.
|
||
(v0_add_disambiguator): Deleted.
|
||
(v0_disambiguator): New function.
|
||
(v0_type_prefix): Support more types.
|
||
(v0_generic_args): New function.
|
||
(v0_add_identifier): Deleted.
|
||
(v0_identifier): New function.
|
||
(v0_type_path): New function.
|
||
(v0_function_path): New function.
|
||
(v0_scope_path): New function.
|
||
(v0_crate_path): New function.
|
||
(v0_inherent_or_trait_impl_path): New function.
|
||
(v0_mangle_item): Use v0_path.
|
||
(Mangler::mangle_item): Take Context as argument.
|
||
* backend/rust-mangle.h (class Context): Add forward declaration.
|
||
* hir/tree/rust-hir-item.h: Fix include.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/tree/rust-hir-pattern.h
|
||
(TupleStructItems::clone_tuple_struct_items_impl): Rename to...
|
||
(TupleStructItems::clone_tuple_items_impl): ...here.
|
||
(TupleStructItemsNoRange::clone_tuple_struct_items_impl): Rename to...
|
||
(TupleStructItemsNoRange::clone_tuple_items_impl): ...here.
|
||
(TupleStructItemsRange::clone_tuple_struct_items_impl): Rename to...
|
||
(TupleStructItemsRange::clone_tuple_items_impl): ...here.
|
||
(TuplePatternItems::clone_tuple_pattern_items_impl): Rename to...
|
||
(TuplePatternItems::clone_tuple_items_impl): ...here.
|
||
(TuplePatternItemsMultiple::clone_tuple_pattern_items_impl): Rename to...
|
||
(TuplePatternItemsMultiple::clone_tuple_items_impl): ...here.
|
||
(TuplePatternItemsRanged::clone_tuple_pattern_items_impl): Rename to...
|
||
(TuplePatternItemsRanged::clone_tuple_items_impl): ...here.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/tree/rust-hir-pattern.h
|
||
(TuplePatternItems::get_pattern_type): Rename to...
|
||
(TuplePatternItems::get_item_type): ...here.
|
||
(TuplePatternItemsMultiple::get_pattern_type): Rename to...
|
||
(TuplePatternItemsMultiple::get_item_type): ...here.
|
||
(TuplePatternItemsRanged::get_pattern_type): Rename to...
|
||
(TuplePatternItemsRanged::get_item_type): ...here.
|
||
* backend/rust-compile-expr.cc: Adjust calls to renamed methods.
|
||
* backend/rust-compile-pattern.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-pattern.cc: Likewise.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Merge 2 if clauses.
|
||
* backend/rust-compile-extern.h: Fix typo in comment.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* parse/rust-parse-impl.h: Add missing token consumption
|
||
|
||
2024-01-16 Mohammed Rizan Farooqui <rizanfarooqui@gmail.com>
|
||
|
||
* expand/rust-macro-builtins.cc (MacroBuiltin::include_str_handler): Comment removed
|
||
(MacroBuiltin::env_handler): Comment removed
|
||
(MacroBuiltin::cfg_handler): Comment removed
|
||
(MacroBuiltin::line_handler): Comment removed
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* backend/rust-compile.cc (HIRCompileBase::coercion_site1): Fix wrong cast
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* rust-session-manager.cc (Session::expansion): Add early break on
|
||
error.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* util/rust-canonical-path.h: Add new segment kind for inherent impl.
|
||
* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Use it.
|
||
* resolve/rust-ast-resolve-toplevel.h: Use it.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-expr.h: Fix spelling of "doesn't".
|
||
* backend/rust-compile-expr.cc: Fix spelling of "accessors".
|
||
* backend/rust-compile-implitem.h: Fix spelling of "normal".
|
||
* backend/rust-constexpr.cc: Fix spelling of "actual".
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* hir/rust-hir-dump.cc (Dump::debug): New.
|
||
(debug): New.
|
||
* hir/rust-hir-dump.h (debug): New.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* Make-lang.in: fixup formatting
|
||
* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): remove old check
|
||
* rust-session-manager.cc (Session::compile_crate): call new lint
|
||
* resolve/rust-ast-verify-assignee.h: Removed.
|
||
* checks/errors/rust-readonly-check.cc: New file.
|
||
* checks/errors/rust-readonly-check.h: New file.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
|
||
Added ErrorCode & more fixit hints.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-block.h: remove HIR::ForLoopExpr
|
||
* backend/rust-compile-expr.h: likewise
|
||
* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): likewise
|
||
* checks/errors/privacy/rust-privacy-reporter.h: likewise
|
||
* checks/errors/rust-const-checker.cc (ConstChecker::visit): likewise
|
||
* checks/errors/rust-const-checker.h: likewise
|
||
* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): likewise
|
||
* checks/errors/rust-unsafe-checker.h: likewise
|
||
* checks/lints/rust-lint-marklive.h: likewise
|
||
* hir/rust-ast-lower.cc (ASTLoweringExprWithBlock::visit): likewise
|
||
* hir/rust-hir-dump.cc (Dump::visit): likewise
|
||
* hir/rust-hir-dump.h: likewise
|
||
* hir/tree/rust-hir-expr.h (class ForLoopExpr): likewise
|
||
* hir/tree/rust-hir-full-decls.h (class ForLoopExpr): likewise
|
||
* hir/tree/rust-hir-visitor.h: likewise
|
||
* hir/tree/rust-hir.cc (ForLoopExpr::as_string): likewise
|
||
(ForLoopExpr::accept_vis): likewise
|
||
* typecheck/rust-hir-type-check-expr.h: likewise
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Fix typo in varIadic.
|
||
* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Likewise.
|
||
* rust-backend.h (function_type_varadic): Rename into ...
|
||
(function_type_variadic): ... this.
|
||
* rust-gcc.cc (function_type_varadic): Rename into ...
|
||
(function_type_variadic): ... this.
|
||
* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Likewise.
|
||
* typecheck/rust-tyty.h (is_varadic): Renamed into ...
|
||
(is_variadic): ... this.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::compile_function):
|
||
Fix typo in substitutions.
|
||
(HIRCompileBase::resolve_method_address): Likewise.
|
||
* backend/rust-compile-extern.h (CompileExternItem::visit):
|
||
Likewise.
|
||
* backend/rust-compile-implitem.cc (CompileTraitItem::visit):
|
||
Likewise.
|
||
* backend/rust-compile-intrinsic.cc (maybe_override_ctx):
|
||
Likewise.
|
||
* backend/rust-compile-item.cc (CompileItem::visit): Likewise.
|
||
* backend/rust-compile-resolve-path.cc
|
||
(HIRCompileBase::query_compile): Likewise.
|
||
* typecheck/rust-coercion.cc (TypeCoercionRules::do_coercion):
|
||
Likewise.
|
||
* typecheck/rust-hir-type-check-item.cc
|
||
(TypeCheckItem::ResolveImplBlockSelfWithInference): Likewise.
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit):
|
||
Likewise.
|
||
* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
|
||
Likewise.
|
||
* typecheck/rust-tyty.cc (BaseType::has_subsititions_defined):
|
||
Renamed into ...
|
||
(BaseType::has_substitutions_defined): ... this.
|
||
(ADTType::is_equal): Fix typo in substitutions.
|
||
(handle_substitions): Likewise.
|
||
(FnType::is_equal): Likewise.
|
||
(FnType::handle_substitions): Likewise.
|
||
* typecheck/rust-tyty.h (has_subsititions_defined): Renamed into
|
||
...
|
||
(has_substitutions_defined): ... this.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc
|
||
(get_identifier): Add declaration.
|
||
(assume_handler): New.
|
||
(generic_intrinsics): Add assume_handler entry.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-gcc.cc
|
||
(Backend::wchar_type): Store static wchar tree.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h
|
||
(complex_type): Remove.
|
||
(complex_constant_expression): Remove.
|
||
(real_part_expression): Remove.
|
||
(imag_part_expression): Remove.
|
||
(complex_expression): Remove.
|
||
* rust-gcc.cc
|
||
(complex_type): Remove.
|
||
(complex_constant_expression): Remove.
|
||
(real_part_expression): Remove.
|
||
(imag_part_expression): Remove.
|
||
(complex_expression): Remove.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-gcc.cc
|
||
(namespace Backend):
|
||
Use namespace definition instead of qualified names.
|
||
|
||
2024-01-16 liushuyu <liushuyu011@gmail.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc: add `copy`
|
||
intrinsics and make `copy_nonoverlapping` handler more generic
|
||
|
||
2024-01-16 liushuyu <liushuyu011@gmail.com>
|
||
|
||
* backend/rust-builtins.cc: add `expect` builtin definition.
|
||
* backend/rust-compile-intrinsic.cc: add `likely` and `unlikely`
|
||
intrinsics handler.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust_error_codes.def: Moved to...
|
||
* rust-error-codes.def: ...here...
|
||
* rust-diagnostics.h: ...and update references.
|
||
|
||
2024-01-16 Guillaume Gomez <guillaume1.gomez@gmail.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc: Simplify `make_unsigned_long_tree`
|
||
* rust-backend.h: Remove `integer_constant_expression`
|
||
* rust-gcc.cc: Remove `integer_constant_expression`
|
||
|
||
2024-01-16 Dave Evans <dave@dmetwo.org>
|
||
|
||
* backend/rust-compile-pattern.cc (CompilePatternCaseLabelExpr::visit):
|
||
Add AltPattern visitor function
|
||
* backend/rust-compile-pattern.h:
|
||
Update CompilePatternCaseLabelExpr::visit(AltPattern&).
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
|
||
Update AltPattern visitor
|
||
|
||
2024-01-16 Guillaume Gomez <guillaume1.gomez@gmail.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc: Remove unused argument
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
|
||
Added new error message, rich location and error code.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h
|
||
(class Backend): Convert to ...
|
||
(namespace Backend): ... namespace.
|
||
* rust-gcc.cc
|
||
(Backend::Backend): Rename to ...
|
||
(Backend::init): ... here.
|
||
(rust_get_backend): Remove.
|
||
* rust-session-manager.cc
|
||
(rust_get_backend): Remove.
|
||
(Session::init): Use Backend::init instead of rust_get_backend.
|
||
(Session::compile_crate):
|
||
Initialize Context without pointer to Backend.
|
||
* rust-session-manager.h
|
||
(Session::backend): Remove.
|
||
* backend/rust-compile-context.cc
|
||
(Context::Context): Remove pointer to Backend.
|
||
* backend/rust-compile-context.h
|
||
(class Context): Remove pointer to Backend, update function calls.
|
||
* backend/rust-compile-base.cc: Update function calls.
|
||
* backend/rust-compile-block.cc: Likewise.
|
||
* backend/rust-compile-expr.cc: Likewise.
|
||
* backend/rust-compile-extern.h: Likewise.
|
||
* backend/rust-compile-fnparam.cc: Likewise.
|
||
* backend/rust-compile-intrinsic.cc: Likewise.
|
||
* backend/rust-compile-item.cc: Likewise.
|
||
* backend/rust-compile-pattern.cc: Likewise.
|
||
* backend/rust-compile-resolve-path.cc: Likewise.
|
||
* backend/rust-compile-type.cc: Likewise.
|
||
* backend/rust-compile-var-decl.h: Likewise.
|
||
* backend/rust-compile.cc: Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.cc (Attribute::check_cfg_predicate): Change raw
|
||
string to constexpr call.
|
||
(Attribute::separate_cfg_attrs): Likewise.
|
||
* backend/rust-compile-base.cc (should_mangle_item): Likewise.
|
||
(HIRCompileBase::setup_fndecl): Likewise.
|
||
(HIRCompileBase::handle_cold_attribute_on_fndecl): Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc (find_proc_macro_attribute):
|
||
Likewise.
|
||
* checks/errors/rust-unsafe-checker.cc (check_target_attr):
|
||
Likewise.
|
||
* expand/rust-cfg-strip.cc (fails_cfg): Likewise.
|
||
(fails_cfg_with_expand): Likewise.
|
||
(expand_cfg_attrs): Likewise.
|
||
* expand/rust-macro-builtins.cc: Likewise.
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_outer_attributes): Likewise.
|
||
(ASTLoweringBase::lower_macro_definition): Likewise.
|
||
* hir/rust-hir-dump.cc (Dump::visit): Likewise.
|
||
* parse/rust-parse-impl.h (Parser::parse_doc_comment): Likewise.
|
||
* parse/rust-parse.cc (extract_module_path): Likewise.
|
||
* resolve/rust-early-name-resolver.cc (is_macro_use_module):
|
||
Likewise.
|
||
(EarlyNameResolver::visit): Likewise.
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc (is_macro_export):
|
||
Likwise.
|
||
* rust-session-manager.cc (Session::injection): Likewise.
|
||
* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::parse_repr_options): Likewise.
|
||
* util/rust-attributes.cc (is_proc_macro_type): Likewise.
|
||
(AttributeChecker::check_attribute): Likewise.
|
||
(AttributeChecker::visit): Likewise.
|
||
* util/rust-hir-map.cc (Mappings::insert_macro_def): Likewise.
|
||
* util/rust-attribute-values.h: New file.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h
|
||
(Backend::Backend): New.
|
||
(Backend::~Backend): Remove.
|
||
(class Gcc_backend): Remove.
|
||
* rust-gcc.cc
|
||
(Gcc_backend::Gcc_backend): Rename to ...
|
||
(Backend::Backend): ... here.
|
||
(rust_get_backend): Construct Backend instead of Gcc_backend.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-proc-macro.cc (tokenstream_from_string): Change
|
||
linemap null pointer to the current linemap.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
|
||
Add proc macro definition insertion.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-hir-map.cc (Mappings::insert_derive_proc_macro_def):
|
||
Change the function body to fetch the node id from the macro
|
||
parameter.
|
||
(Mappings::insert_bang_proc_macro_def): Likewise.
|
||
(Mappings::insert_attribute_proc_macro_def): Likewise.
|
||
* util/rust-hir-map.h: Update the function's prototype by
|
||
removing the node id from the list of arguments.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
|
||
Add proc macro handle retrieval for attribute and derive proc macros.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-hir-map.cc (Mappings::lookup_derive_proc_macro_def):
|
||
Update function to accomodate new signature.
|
||
(Mappings::lookup_bang_proc_macro_def): Likewise.
|
||
(Mappings::lookup_attribute_proc_macro_def): Likewise.
|
||
* util/rust-hir-map.h: Update function signatures.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Update
|
||
lookup function prototypes.
|
||
* util/rust-hir-map.cc (Mappings::lookup_derive_proc_macro_invocation):
|
||
Update lookup function according to new signature.
|
||
(Mappings::lookup_bang_proc_macro_invocation): Likewise.
|
||
(Mappings::lookup_attribute_proc_macro_invocation): Likewise.
|
||
* util/rust-hir-map.h: Update function prototypes.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h
|
||
(Backend::write_export_data): Remove.
|
||
* rust-gcc.cc
|
||
(Backend::write_export_data): Remove.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h
|
||
(Backend::real_part_expression): Make non-virtual.
|
||
(Backend::imag_part_expression): Likewise.
|
||
(Backend::complex_expression): Likewise.
|
||
(Backend::convert_expression): Likewise.
|
||
(Backend::struct_field_expression): Likewise.
|
||
(Backend::compound_expression): Likewise.
|
||
(Backend::conditional_expression): Likewise.
|
||
(Backend::negation_expression): Likewise.
|
||
(Backend::arithmetic_or_logical_expression): Likewise.
|
||
(Backend::arithmetic_or_logical_expression_checked): Likewise.
|
||
(Backend::comparison_expression): Likewise.
|
||
(Backend::lazy_boolean_expression): Likewise.
|
||
(Backend::constructor_expression): Likewise.
|
||
(Backend::array_constructor_expression): Likewise.
|
||
(Backend::array_initializer): Likewise.
|
||
(Backend::array_index_expression): Likewise.
|
||
(Backend::call_expression): Likewise.
|
||
(Gcc_backend::real_part_expression): Remove.
|
||
(Gcc_backend::imag_part_expression): Remove.
|
||
(Gcc_backend::complex_expression): Remove.
|
||
(Gcc_backend::convert_expression): Remove.
|
||
(Gcc_backend::struct_field_expression): Remove.
|
||
(Gcc_backend::compound_expression): Remove.
|
||
(Gcc_backend::conditional_expression): Remove.
|
||
(Gcc_backend::negation_expression): Remove.
|
||
(Gcc_backend::arithmetic_or_logical_expression): Remove.
|
||
(Gcc_backend::arithmetic_or_logical_expression_checked): Remove.
|
||
(Gcc_backend::comparison_expression): Remove.
|
||
(Gcc_backend::lazy_boolean_expression): Remove.
|
||
(Gcc_backend::constructor_expression): Remove.
|
||
(Gcc_backend::array_constructor_expression): Remove.
|
||
(Gcc_backend::array_initializer): Remove.
|
||
(Gcc_backend::array_index_expression): Remove.
|
||
(Gcc_backend::call_expression): Remove.
|
||
* rust-gcc.cc
|
||
(Gcc_backend::real_part_expression): Rename to ...
|
||
(Backend::real_part_expression): ... here.
|
||
(Gcc_backend::imag_part_expression): Rename to ...
|
||
(Backend::imag_part_expression): ... here.
|
||
(Gcc_backend::complex_expression): Rename to ...
|
||
(Backend::complex_expression): ... here.
|
||
(Gcc_backend::convert_expression): Rename to ...
|
||
(Backend::convert_expression): ... here.
|
||
(Gcc_backend::struct_field_expression): Rename to ...
|
||
(Backend::struct_field_expression): ... here.
|
||
(Gcc_backend::compound_expression): Rename to ...
|
||
(Backend::compound_expression): ... here.
|
||
(Gcc_backend::conditional_expression): Rename to ...
|
||
(Backend::conditional_expression): ... here.
|
||
(Gcc_backend::negation_expression): Rename to ...
|
||
(Backend::negation_expression): ... here.
|
||
(Gcc_backend::arithmetic_or_logical_expression): Rename to ...
|
||
(Backend::arithmetic_or_logical_expression): ... here.
|
||
(Gcc_backend::arithmetic_or_logical_expression_checked): Rename to ...
|
||
(Backend::arithmetic_or_logical_expression_checked): ... here.
|
||
(Gcc_backend::comparison_expression): Rename to ...
|
||
(Backend::comparison_expression): ... here.
|
||
(Gcc_backend::lazy_boolean_expression): Rename to ...
|
||
(Backend::lazy_boolean_expression): ... here.
|
||
(Gcc_backend::constructor_expression): Rename to ...
|
||
(Backend::constructor_expression): ... here.
|
||
(Gcc_backend::array_constructor_expression): Rename to ...
|
||
(Backend::array_constructor_expression): ... here.
|
||
(Gcc_backend::array_initializer): Rename to ...
|
||
(Backend::array_initializer): ... here.
|
||
(Gcc_backend::array_index_expression): Rename to ...
|
||
(Backend::array_index_expression): ... here.
|
||
(Gcc_backend::call_expression): Rename to ...
|
||
(Backend::call_expression): ... here.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* rust-session-manager.cc (Session::load_extern_crate): Change
|
||
variable name, add temporaries and comments.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-proc-macro.h: Change get_trait_name to get_name in
|
||
order to be coherent with the others proc macro type name
|
||
convention.
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc (insert_macros):
|
||
Add a templated funtion that inserts a proc macro into the
|
||
context and emit an error on failure.
|
||
(TopLevel::visit): Change from manual insertion to a function
|
||
call.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
|
||
Change to assertion.
|
||
* util/rust-hir-map.cc (Mappings::lookup_derive_proc_macros):
|
||
Add empty line.
|
||
(Mappings::lookup_bang_proc_macros): Likewise.
|
||
(Mappings::lookup_attribute_proc_macros): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* metadata/rust-extern-crate.cc (ExternCrate::ExternCrate):
|
||
Update definition to allow Extern crate with no content (pure
|
||
proc macros).
|
||
(ExternCrate::ok): Panic on no content.
|
||
(ExternCrate::load): Likewise.
|
||
* metadata/rust-extern-crate.h: Update prototypes.
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go):
|
||
Remove macro resolution.
|
||
(TopLevel::visit): Likewise.
|
||
* resolve/rust-toplevel-name-resolver-2.0.h: Add visit prototype
|
||
for extern crate.
|
||
* rust-session-manager.cc (Session::load_extern_crate): Adapt
|
||
content depending on the loaded crate's content.
|
||
* util/rust-hir-map.cc (Mappings::lookup_derive_proc_macros):
|
||
Change return type to optional because it is way more
|
||
convenient.
|
||
(Mappings::lookup_bang_proc_macros): Likewise.
|
||
(Mappings::lookup_attribute_proc_macros): Likewise.
|
||
* util/rust-hir-map.h: Update function prototypes.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* metadata/rust-imports.cc (Import::try_package_in_directory):
|
||
Remove error when some macro are found even if no import data is
|
||
available.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h (class BangProcMacro): Move class from here to
|
||
rust-proc-macro.h. Also remove related functions.
|
||
(class AttributeProcMacro): Likewise.
|
||
(class CustomDeriveProcMacro): Likewise.
|
||
(struct Crate): Remove proc macro vector members.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Change the
|
||
type to the newly created classes.
|
||
* expand/rust-proc-macro.cc (BangProcMacro::BangProcMacro): Add
|
||
constructor implementation.
|
||
(AttributeProcMacro::AttributeProcMacro): Likewise.
|
||
(CustomDeriveProcMacro::CustomDeriveProcMacro): Likewise.
|
||
* expand/rust-proc-macro.h (class BangProcMacro): Move class to
|
||
here.
|
||
(class AttributeProcMacro): Likewise.
|
||
(class CustomDeriveProcMacro): Likewise.
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go):
|
||
Change top level visitor to check mappings instead
|
||
* rust-session-manager.cc (Session::load_extern_crate):
|
||
Add back macro collection to mappings.
|
||
* util/rust-hir-map.cc (Mappings::insert_derive_proc_macros):
|
||
Update getter signature with new types.
|
||
(Mappings::insert_bang_proc_macros): Likewise.
|
||
(Mappings::insert_attribute_proc_macros): Likewise.
|
||
(Mappings::lookup_derive_proc_macros): Likewise.
|
||
(Mappings::lookup_bang_proc_macros): Likewise.
|
||
(Mappings::lookup_attribute_proc_macros): Likewise.
|
||
(Mappings::insert_derive_proc_macro_def): Likewise.
|
||
(Mappings::insert_bang_proc_macro_def): Likewise.
|
||
(Mappings::insert_attribute_proc_macro_def): Likewise.
|
||
(Mappings::lookup_derive_proc_macro_def): Likewise.
|
||
(Mappings::lookup_bang_proc_macro_def): Likewise.
|
||
(Mappings::lookup_attribute_proc_macro_def): Likewise.
|
||
(Mappings::insert_derive_proc_macro_invocation): Likewise.
|
||
(Mappings::lookup_derive_proc_macro_invocation): Likewise.
|
||
(Mappings::insert_bang_proc_macro_invocation): Likewise.
|
||
(Mappings::lookup_bang_proc_macro_invocation): Likewise.
|
||
(Mappings::insert_attribute_proc_macro_invocation): Likewise.
|
||
(Mappings::lookup_attribute_proc_macro_invocation): Likewise.
|
||
* util/rust-hir-map.h: Update function prototypes as well as map
|
||
types.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::go):
|
||
Visit crate's newly stored proc macros.
|
||
* rust-session-manager.cc (Session::load_extern_crate):
|
||
Store proc macros in the parsed crate instead of a local
|
||
variable to achieve mappings.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
|
||
Change argument to reference.
|
||
* resolve/rust-early-name-resolver-2.0.h: Update function
|
||
prototype.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Add getters.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h (struct Crate): Add proc macro members.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h (class BangProcMacro): Add new proc macro
|
||
abstraction.
|
||
(class AttributeProcMacro): Likewise.
|
||
(class CustomDeriveProcMacro): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* resolve/rust-early-name-resolver-2.0.cc (Early::visit_attributes):
|
||
Add function to handle attributes.
|
||
(Early::visit): Override visitor functions.
|
||
* resolve/rust-early-name-resolver-2.0.h: Add prototype.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.cc (Attribute::get_traits_to_derive): Convert
|
||
tokenstream to path list.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.cc (Attribute::is_derive): Remove tokenstream
|
||
condition.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.cc (Attribute::get_traits_to_derive): Change
|
||
return type to a vector of references.
|
||
* ast/rust-ast.h: Update constructor.
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::expand_inner_stmts):
|
||
Update function call.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.cc (Attribute::get_traits_to_derive): Add
|
||
function as member function.
|
||
* ast/rust-ast.h: Add prototype.
|
||
* expand/rust-expand-visitor.cc (get_traits_to_derive): Remove
|
||
function.
|
||
(ExpandVisitor::expand_inner_stmts): Update function call.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.cc (Attribute::is_derive): Add member function.
|
||
* ast/rust-ast.h: Likewise.
|
||
* expand/rust-expand-visitor.cc (is_derive): Remove old
|
||
function.
|
||
(ExpandVisitor::expand_inner_stmts): Update function call.
|
||
(ExpandVisitor::visit_inner_using_attrs): Likewise.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): use a temp for the value
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h
|
||
(Backend::block): Make non-virtual.
|
||
(Backend::block_add_statements): Likewise.
|
||
(Gcc_backend::block): Remove.
|
||
(Gcc_backend::block_add_statements): Remove.
|
||
* rust-gcc.cc
|
||
(Gcc_backend::block): Rename to ...
|
||
(Backend::block): ... here.
|
||
(Gcc_backend::block_add_statements): Rename to ...
|
||
(Backend::block_add_statements): ... here.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-macro-expand.h: Change include directive with the
|
||
new name.
|
||
* expand/rust-proc-macro.h (RUST_PROC_MACRO_H): Likewise.
|
||
* util/rust-hir-map.h: Likewise.
|
||
* util/rust-token-converter.h: Likewise.
|
||
* util/rust-token-converter.cc: Remove useless include
|
||
directive.
|
||
* Make-lang.in: Rename library.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h
|
||
(Backend::init_statement): Make non-virtual.
|
||
(Backend::assignment_statement): Likewise.
|
||
(Backend::return_statement): Likewise.
|
||
(Backend::if_statement): Likewise.
|
||
(Backend::loop_expression): Likewise.
|
||
(Backend::exit_expression): Likewise.
|
||
(Backend::compound_statement): Likewise.
|
||
(Backend::statement_list): Likewise.
|
||
(Backend::exception_handler_statement): Likewise.
|
||
(Gcc_backend::init_statement): Remove.
|
||
(Gcc_backend::assignment_statement): Remove.
|
||
(Gcc_backend::return_statement): Remove.
|
||
(Gcc_backend::if_statement): Remove.
|
||
(Gcc_backend::compound_statement): Remove.
|
||
(Gcc_backend::statement_list): Remove.
|
||
(Gcc_backend::exception_handler_statement): Remove.
|
||
(Gcc_backend::loop_expression): Remove.
|
||
(Gcc_backend::exit_expression): Remove.
|
||
* rust-gcc.cc
|
||
(Gcc_backend::init_statement): Rename to ...
|
||
(Backend::init_statement): ... here.
|
||
(Gcc_backend::assignment_statement): Rename to ...
|
||
(Backend::assignment_statement): ... here.
|
||
(Gcc_backend::return_statement): Rename to ...
|
||
(Backend::return_statement): ... here.
|
||
(Gcc_backend::exception_handler_statement): Rename to ...
|
||
(Backend::exception_handler_statement): ... here.
|
||
(Gcc_backend::if_statement): Rename to ...
|
||
(Backend::if_statement): ... here.
|
||
(Gcc_backend::loop_expression): Rename to ...
|
||
(Backend::loop_expression): ... here.
|
||
(Gcc_backend::exit_expression): Rename to ...
|
||
(Backend::exit_expression): ... here.
|
||
(Gcc_backend::compound_statement): Rename to ...
|
||
(Backend::compound_statement): ... here.
|
||
(Gcc_backend::statement_list): Rename to ...
|
||
(Backend::statement_list): ... here.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h
|
||
(Backend::function): Make non-virtual.
|
||
(Backend::function_defer_statement): Likewise.
|
||
(Backend::function_set_parameters): Likewise.
|
||
(Backend::write_global_definitions): Likewise.
|
||
(Backend::write_export_data): Likewise.
|
||
(Gcc_backend::function): Remove.
|
||
(Gcc_backend::function_defer_statement): Remove.
|
||
(Gcc_backend::function_set_parameters): Remove.
|
||
(Gcc_backend::write_global_definitions): Remove.
|
||
(Gcc_backend::write_export_data): Remove.
|
||
* rust-gcc.cc
|
||
(Gcc_backend::function): Rename to ...
|
||
(Backend::function): ... here.
|
||
(Gcc_backend::function_defer_statement):
|
||
Fix a qualified lookup of Backend::label and rename to ...
|
||
(Backend::function_defer_statement): ... here.
|
||
(Gcc_backend::function_set_parameters) Rename to ...
|
||
(Backend::function_set_parameters): ... here.
|
||
(Gcc_backend::write_global_definitions): Rename to ...
|
||
(Backend::write_global_definitions): ... here.
|
||
(Gcc_backend::write_export_data): Rename to ...
|
||
(Backend::write_export_data): ... here.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-inherent-impl-overlap.h:
|
||
Added rich location and errorcode.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
|
||
likewise.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
|
||
Added error code.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h
|
||
(Backend::zero_expression): Make non-virtual.
|
||
(Backend::var_expression): Likewise.
|
||
(Backend::integer_constant_expression): Likewise.
|
||
(Backend::float_constant_expression): Likewise.
|
||
(Backend::complex_constant_expression): Likewise.
|
||
(Backend::string_constant_expression): Likewise.
|
||
(Backend::char_constant_literal): Likewise.
|
||
(Backend::wchar_constant_literal): Likewise.
|
||
(Backend::boolean_constant_expression): Likewise.
|
||
(Gcc_backend::zero_expression): Remove.
|
||
(Gcc_backend::var_expression): Remove.
|
||
(Gcc_backend::integer_constant_expression): Remove.
|
||
(Gcc_backend::float_constant_expression): Remove.
|
||
(Gcc_backend::complex_constant_expression): Remove.
|
||
(Gcc_backend::string_constant_expression): Remove.
|
||
(Gcc_backend::wchar_constant_expression): Remove.
|
||
(Gcc_backend::char_constant_expression): Remove.
|
||
(Gcc_backend::boolean_constant_expression): Remove.
|
||
* rust-gcc.cc
|
||
(Gcc_backend::zero_expression): Rename to ...
|
||
(Backend::zero_expression): ... here.
|
||
(Gcc_backend::var_expression): Rename to ...
|
||
(Backend::var_expression): ... here.
|
||
(Gcc_backend::integer_constant_expression): Rename to ...
|
||
(Backend::integer_constant_expression): ... here.
|
||
(Gcc_backend::float_constant_expression): Rename to ...
|
||
(Backend::float_constant_expression): ... here.
|
||
(Gcc_backend::complex_constant_expression): Rename to ...
|
||
(Backend::complex_constant_expression): ... here.
|
||
(Gcc_backend::string_constant_expression): Rename to ...
|
||
(Backend::string_constant_expression): ... here.
|
||
(Gcc_backend::wchar_constant_expression): Rename to ...
|
||
(Backend::wchar_constant_expression): ... here.
|
||
(Gcc_backend::char_constant_expression): Rename to ...
|
||
(Backend::char_constant_expression): ... here.
|
||
(Gcc_backend::boolean_constant_expression): Rename to ...
|
||
(Backend::boolean_constant_expression): ... here.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h
|
||
(Backend::global_variable): Make non-virtual.
|
||
(Backend::global_variable_set_init): Likewise.
|
||
(Backend::local_variable): Likewise.
|
||
(Backend::parameter_variable): Likewise.
|
||
(Backend::static_chain_variable): Likewise.
|
||
(Backend::temporary_variable): Likewise.
|
||
(Gcc_backend::global_variable): Remove.
|
||
(Gcc_backend::global_variable_set_init): Remove.
|
||
(Gcc_backend::local_variable): Remove.
|
||
(Gcc_backend::parameter_variable): Remove.
|
||
(Gcc_backend::static_chain_variable): Remove.
|
||
(Gcc_backend::temporary_variable): Remove.
|
||
(Gcc_backend::non_zero_size_type): Move to ...
|
||
(Backend::non_zero_size_type): ... here.
|
||
(Gcc_backend::convert_tree): Move to ...
|
||
(Backend::convert_tree): ... here.
|
||
* rust-gcc.cc
|
||
(Gcc_backend::non_zero_size_type): Rename to ...
|
||
(Backend::non_zero_size_type): ... here.
|
||
(Gcc_backend::convert_tree): Rename to ...
|
||
(Backend::convert_tree): ... here.
|
||
(Gcc_backend::global_variable): Rename to ...
|
||
(Backend::global_variable): ... here.
|
||
(Gcc_backend::global_variable_set_init): Rename to ...
|
||
(Backend::global_variable_set_init): ... here.
|
||
(Gcc_backend::local_variable): Rename to ...
|
||
(Backend::local_variable): ... here.
|
||
(Gcc_backend::parameter_variable): Rename to ...
|
||
(Backend::parameter_variable): ... here.
|
||
(Gcc_backend::static_chain_variable): Rename to ...
|
||
(Backend::static_chain_variable): ... here.
|
||
(Gcc_backend::temporary_variable): Rename to ...
|
||
(Backend::temporary_variable): ... here.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* checks/errors/privacy/rust-privacy-reporter.cc
|
||
(PrivacyReporter::check_for_privacy_violation):
|
||
Added errorcode & richlocation.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h
|
||
(Backend::debug): Make non-virtual.
|
||
(Backend::get_identifier_node): Likewise.
|
||
(Gcc_backend::debug): Remove.
|
||
(Gcc_backend::get_identifier_node): Remove.
|
||
* rust-gcc.cc
|
||
(Gcc_backend::debug): Rename to ...
|
||
(Backend::debug): ... here.
|
||
(Gcc_backend::get_identifier_node): Rename to ...
|
||
(Backend::get_identifier_node): ... here.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc
|
||
(TypeCheckExpr::visit): Expect if conditions to have type bool.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h
|
||
(Backend::label): Make non-virtual.
|
||
(Backend::label_definition_statement): Likewise.
|
||
(Backend::goto_statement): Likewise.
|
||
(Backend::label_address): Likewise.
|
||
(Gcc_backend::label): Remove.
|
||
(Gcc_backend::label_definition_statement): Remove.
|
||
(Gcc_backend::goto_statement): Remove.
|
||
(Gcc_backend::label_address): Remove.
|
||
* rust-gcc.cc
|
||
(Gcc_backend::label): Rename to ...
|
||
(Backend::label): ... here.
|
||
(Gcc_backend::label_definition_statement): Rename to ...
|
||
(Backend::label_definition_statement): ... here.
|
||
(Gcc_backend::goto_statement): Rename to ...
|
||
(Backend::goto_statement): ... here.
|
||
(Gcc_backend::label_address): Rename to ...
|
||
(Backend::label_address): ... here.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-constexpr.cc
|
||
(struct constexpr_fundef): Rename to ...
|
||
(struct rust_constexpr_fundef): ... here.
|
||
(struct constexpr_call): Rename to ...
|
||
(struct rust_constexpr_call): ... here.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* lex/rust-input-source.h: Move constants from here...
|
||
* util/rust-codepoint.h (struct Codepoint): ... to here
|
||
* util/rust-attributes.cc (check_no_mangle_function): New function.
|
||
(AttributeChecker::visit): Use it.
|
||
* util/rust-unicode.cc (is_ascii_only): New function.
|
||
* util/rust-unicode.h (is_ascii_only): Likewise.
|
||
* backend/rust-mangle.cc (legacy_mangle_name): Use it.
|
||
* util/rust-punycode.cc (extract_basic_string): Likewise.
|
||
* lex/rust-lex.cc (Lexer::parse_byte_char): Likewise.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit):
|
||
Added richlocation & error code.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc
|
||
(TypeCheckExpr::resolve_fn_trait_call): Add TODO comment.
|
||
* typecheck/rust-tyty-bounds.cc
|
||
(TypeBoundPredicate::TypeBoundPredicate):
|
||
Add assertions, new error constructor.
|
||
(TypeBoundPredicate::error): Use new error constructor.
|
||
* typecheck/rust-tyty.h
|
||
(struct TypeBoundPredicate::mark_is_error): New.
|
||
(TypeBoundPredicate::TypeBoundPredicate):
|
||
Add new error constructor.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h:
|
||
(Backend::wchar_type): Make non-virtual.
|
||
(Backend::get_pointer_size): Likewise.
|
||
(Backend::raw_str_type): Likewise.
|
||
(Backend::integer_type): Likewise.
|
||
(Backend::float_type): Likewise.
|
||
(Backend::complex_type): Likewise.
|
||
(Backend::pointer_type): Likewise.
|
||
(Backend::reference_type): Likewise.
|
||
(Backend::immutable_type): Likewise.
|
||
(Backend::function_type): Likewise.
|
||
(Backend::function_type_varadic): Likewise.
|
||
(Backend::function_ptr_type): Likewise.
|
||
(Backend::struct_type): Likewise.
|
||
(Backend::union_type): Likewise.
|
||
(Backend::array_type): Likewise.
|
||
(Backend::named_type): Likewise.
|
||
(Backend::type_size): Likewise.
|
||
(Backend::type_alignment): Likewise.
|
||
(Backend::type_field_alignment): Likewise.
|
||
(Backend::type_field_offset): Likewise.
|
||
(Gcc_backend::wchar_type): Remove.
|
||
(Gcc_backend::get_pointer_size): Remove.
|
||
(Gcc_backend::raw_str_type): Remove.
|
||
(Gcc_backend::integer_type): Remove.
|
||
(Gcc_backend::float_type): Remove.
|
||
(Gcc_backend::complex_type): Remove.
|
||
(Gcc_backend::pointer_type): Remove.
|
||
(Gcc_backend::reference_type): Remove.
|
||
(Gcc_backend::immutable_type): Remove.
|
||
(Gcc_backend::function_type): Remove.
|
||
(Gcc_backend::function_type_varadic): Remove.
|
||
(Gcc_backend::function_ptr_type): Remove.
|
||
(Gcc_backend::struct_type): Remove.
|
||
(Gcc_backend::union_type): Remove.
|
||
(Gcc_backend::array_type): Remove.
|
||
(Gcc_backend::named_type): Remove.
|
||
(Gcc_backend::type_size): Remove.
|
||
(Gcc_backend::type_alignment): Remove.
|
||
(Gcc_backend::type_field_alignment): Remove.
|
||
(Gcc_backend::type_field_offset): Remove.
|
||
(Gcc_backend::fill_in_fields): Move to ...
|
||
(Backend::fill_in_fields): ... here.
|
||
(Gcc_backend::fill_in_array): Move to ...
|
||
(Backend::fill_in_array): ... here.
|
||
* rust-gcc.cc
|
||
(Gcc_backend::wchar_type): Rename to ...
|
||
(Backend::wchar_type): ... here.
|
||
(Gcc_backend::get_pointer_size): Rename to ...
|
||
(Backend::get_pointer_size): ... here.
|
||
(Gcc_backend::raw_str_type): Rename to ...
|
||
(Backend::raw_str_type): ... here.
|
||
(Gcc_backend::integer_type): Rename to ...
|
||
(Backend::integer_type): ... here.
|
||
(Gcc_backend::float_type): Rename to ...
|
||
(Backend::float_type): ... here.
|
||
(Gcc_backend::complex_type): Rename to ...
|
||
(Backend::complex_type): ... here.
|
||
(Gcc_backend::pointer_type): Rename to ...
|
||
(Backend::pointer_type): ... here.
|
||
(Gcc_backend::reference_type): Rename to ...
|
||
(Backend::reference_type): ... here.
|
||
(Gcc_backend::immutable_type): Rename to ...
|
||
(Backend::immutable_type): ... here.
|
||
(Gcc_backend::function_type): Rename to ...
|
||
(Backend::function_type): ... here.
|
||
(Gcc_backend::function_type_varadic): Rename to ...
|
||
(Backend::function_type_varadic): ... here.
|
||
(Gcc_backend::function_ptr_type): Rename to ...
|
||
(Backend::function_ptr_type): ... here.
|
||
(Gcc_backend::struct_type): Rename to ...
|
||
(Backend::struct_type): ... here.
|
||
(Gcc_backend::union_type): Rename to ...
|
||
(Backend::union_type): ... here.
|
||
(Gcc_backend::fill_in_fields): Rename to ...
|
||
(Backend::fill_in_fields): ... here.
|
||
(Gcc_backend::array_type): Rename to ...
|
||
(Backend::array_type): ... here.
|
||
(Gcc_backend::fill_in_array): Rename to ...
|
||
(Backend::fill_in_array): ... here.
|
||
(Gcc_backend::named_type): Rename to ...
|
||
(Backend::named_type): ... here.
|
||
(Gcc_backend::type_size): Rename to ...
|
||
(Backend::type_size): ... here.
|
||
(Gcc_backend::type_alignment): Rename to ...
|
||
(Backend::type_alignment): ... here.
|
||
(Gcc_backend::type_field_alignment): Rename to ...
|
||
(Backend::type_field_alignment): ... here.
|
||
(Gcc_backend::type_field_offset): Rename to ...
|
||
(Backend::type_field_offset): ... here.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc (move_val_init_handler): mark as side-effects
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc (uninit_handler): Update fndecl attributes
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc (op_with_overflow_inner): fix use before init
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc (enter_intrinsic_block): take the locals vector
|
||
(uninit_handler): make a temp variable and use the address of it
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* resolve/rust-early-name-resolver-2.0.cc (Early::visit):
|
||
Collect error instead of lambda.
|
||
* resolve/rust-early-name-resolver-2.0.h (std::function<void):
|
||
Remove type alias.
|
||
* rust-diagnostics.h: Change collection type.
|
||
* rust-session-manager.cc (Session::expansion): Change
|
||
collection container.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* resolve/rust-early-name-resolver-2.0.cc (Early::visit):
|
||
Collect error instead of emitting it. Also add invocation
|
||
registration.
|
||
* resolve/rust-early-name-resolver-2.0.h (std::function<void):
|
||
Add type definition for collection.
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit):
|
||
Register macro rule definition in mappings.
|
||
* rust-session-manager.cc (Session::expansion): Add macro
|
||
resolve error collection.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* config-lang.in:
|
||
Add "backend/rust-tree.h" and "backend/rust-tree.h" to gtfiles.
|
||
* backend/rust-tree.cc: Include new header generated by gengtype.
|
||
* backend/rust-tree.h
|
||
(struct language_function): Add TODO.
|
||
* rust-lang.cc:
|
||
Include "rust-tree.h".
|
||
(struct lang_type): Remove duplicate definition.
|
||
(struct lang_decl): Likewise.
|
||
(struct lang_identifier): Likewise.
|
||
(struct language_function): Likewise.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
|
||
Added error code and rich location.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-tree.h
|
||
(struct rust_cp_class_binding): Fork from gcc/cp/name_lookup.h.
|
||
(struct rust_cp_binding_level): Likewise.
|
||
(struct named_label_entry): Remove declaration...
|
||
(struct rust_named_label_entry): ... and fork definition from gcc/cp/decl.cc.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* rust-diagnostics.cc (rust_be_error_at): Added overload function.
|
||
(rust_error_at): non-const `rich_location *` function.
|
||
* rust-diagnostics.h (rust_error_at): Implementation of overloaded
|
||
function.
|
||
(rust_be_error_at): likewise.
|
||
* rust_error_codes.def: Added GNU license.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-tyty.cc (BaseType::satisfies_bound):
|
||
Added errorcode and user-friendly error message.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-tree.cc
|
||
(resort_data): Fork from c++ frontend.
|
||
(resort_member_name_cmp): Likewise.
|
||
(resort_type_member_vec): Likewise.
|
||
* backend/rust-tree.h
|
||
(resort_type_member_vec): Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-tree.cc
|
||
(struct conv_type_hasher): Rename to ...
|
||
(struct rust_conv_type_hasher): ... here.
|
||
(struct cplus_array_hasher): Rename to ...
|
||
(struct rust_cplus_array_hasher): ... here.
|
||
(struct source_location_table_entry_hash): Rename to ...
|
||
(struct rust_source_location_table_entry_hash): ... here.
|
||
* backend/rust-tree.h
|
||
(struct named_decl_hash): Rename to ...
|
||
(struct rust_named_decl_hash): ... here.
|
||
(struct cxx_saved_binding): Rename to ...
|
||
(struct rust_cxx_saved_binding): ... here.
|
||
(struct named_label_hash): Rename to ...
|
||
(struct rust_named_label_hash): ... here.
|
||
(struct tree_pair_s): Rename to ...
|
||
(struct rust_tree_pair_s): ... here.
|
||
(struct tree_pair_p): Rename to ...
|
||
(struct rust_tree_pair_p): ... here.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-tree.cc
|
||
(Rust::gt_pch_nx): Move external function declaration ...
|
||
(gt_pch_nx): ... out of Rust namespace.
|
||
* backend/rust-tree.h
|
||
(OVL_FIRST): Qualify function name.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-type.cc (TyTyResolveCompile::visit): do a final lookup
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_generic_params):
|
||
Added more user friendly message.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-builtins.cc
|
||
(MacroBuiltin::include_str_handler): Use vector::data.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-type.cc:
|
||
Added last variant name, errorcode & rich location. for enum candidates.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-tree.h
|
||
(struct stmt_tree_s): Remove.
|
||
(typedef stmt_tree): Remove.
|
||
(c_language_function::x_stmt_tree): Remove.
|
||
(saved_scope::x_stmt_tree): Remove.
|
||
(lang_decl_fn::pending_inline_p): Remove.
|
||
(lang_decl_fn::spare): Adjust size.
|
||
(lang_decl_fn::pending_inline_info): Remove.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-constexpr.cc:
|
||
Include gt-rust-rust-constexpr.h.
|
||
(struct constexpr_call_hasher): Rename to ...
|
||
(struct rust_constexpr_call_hasher): ... here.
|
||
(struct constexpr_fundef_hasher): Rename to ...
|
||
(struct rust_constexpr_fundef_hasher): ... here.
|
||
* config-lang.in: Add rust-constexpr.cc to gtfiles.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* backend/rust-mangle.cc (v0_add_identifier): Added punycode encoding
|
||
(v0_mangle_item): Likewise.
|
||
* lex/rust-lex.cc (assert_source_content): Change type
|
||
(test_buffer_input_source): Change type
|
||
(test_file_input_source): Change type
|
||
* resolve/rust-ast-resolve-toplevel.h: fix typo
|
||
* rust-session-manager.cc (Session::load_extern_crate): fix typo
|
||
* util/rust-canonical-path.h: fix typo
|
||
* util/rust-hir-map.cc (NodeMapping::get_error): fix typo
|
||
(Mappings::Mappings): fix typo
|
||
* util/rust-mapping-common.h (UNKNOWN_CREATENUM): fix typo
|
||
(UNKNOWN_CRATENUM): Change 0 to UINT32_MAX
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait):
|
||
Updated errorcode & more userfriendly message.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit):
|
||
Added more helpful error message.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-path-probe.h:
|
||
Fixes issue & added rich location message.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
|
||
Added rich location and error code.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-lex.cc (Lexer::parse_decimal_int_or_float): Only
|
||
accept digits after a dot instead of accepting any float
|
||
member.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* ast/rust-pattern.h: No need of assertion, we are handling it.
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
|
||
Added check which emits error instead of using assertion.
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
|
||
Added rich location and error code.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::handle_inline_attribute_on_fndecl):
|
||
Added rich_location & error code.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_trait):
|
||
added errorcode & updated error message.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_outer_attribute):
|
||
Added errorcode & updated error function.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* rust-diagnostics.cc (va_constructor):
|
||
Added constructor for all possible cases.
|
||
(Error::Error): Updated error struct
|
||
for all possible cases.
|
||
* rust-diagnostics.h (struct Error):
|
||
Updated error struct to support error
|
||
code & rich location support.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::handle_inline_attribute_on_fndecl):
|
||
Added rich_location & error code.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* rust-diagnostics.cc: Switch from new[] to xcalloc
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* util/make-rust-unicode.py: Add type annotation
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc (check_for_cached_intrinsic):
|
||
simplify this cached intrinsic check
|
||
* backend/rust-mangle.cc (legacy_mangle_item): use new interface
|
||
* typecheck/rust-tyty.h: new managle helper
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address):
|
||
use the single candidate
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* hir/rust-hir-dump.cc (Dump::visit): Remove useless if/else
|
||
already handled by visit_field.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* util/rust-punycode.cc: Add CHECKING_P guard.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* backend/rust-mangle.cc (legacy_mangle_name): Use Unicode escape
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): remove hack
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-proc-macro-invoc-lexer.cc
|
||
(ProcMacroInvocLexer::skip_token): Remove.
|
||
* expand/rust-proc-macro-invoc-lexer.h:
|
||
Include "rust-macro-invoc-lexer.h".
|
||
(class ProcMacroInvocLexer):
|
||
Extend MacroInvocLexerBase.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* lex/rust-codepoint.h: Moved to...
|
||
* util/rust-codepoint.h: ...here.
|
||
* lex/rust-input-source.h: Add missing license
|
||
* util/rust-unicode.cc: Add missing license
|
||
* util/rust-punycode.cc (extract_basic_string): Remove constant
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* expand/rust-macro-expand.h: Keep optional references for last_def
|
||
and last_invoc.
|
||
* expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Store
|
||
optional references.
|
||
* rust-session-manager.cc (Session::expansion): Use tl::optional's APIs
|
||
for better checking.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* hir/rust-hir-dump.h (do_ifexpr): New.
|
||
* hir/rust-hir-dump.cc (Dump::do_ifexpr): New.
|
||
(Dump::visit): Use do_ifexpr and visit_field
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-casts.cc (TypeCastRules::emit_cast_error):
|
||
Refactored ErrorCodes & error messages.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* backend/rust-compile-base.cc:
|
||
Added ErrorCode.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_qualifiers):
|
||
called error function.
|
||
(ASTLoweringBase::lower_extern_block): likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-ast-collector.cc: Adjust formatting.
|
||
* checks/errors/rust-feature-gate.cc: Add trailing newline.
|
||
* rust-diagnostics.h: Remove old comment.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-gcc.cc
|
||
(Gcc_backend::struct_type): Remove references to "this".
|
||
(Gcc_backend::union_type): Likewise.
|
||
(Gcc_backend::array_type): Likewise.
|
||
(Gcc_backend::wchar_constant_expression): Likewise.
|
||
(Gcc_backend::convert_expression): Likewise.
|
||
(Gcc_backend::constructor_expression): Likewise.
|
||
(Gcc_backend::array_initializer): Likewise.
|
||
(Gcc_backend::assignment_statement): Likewise.
|
||
(Gcc_backend::global_variable): Likewise.
|
||
(Gcc_backend::temporary_variable): Likewise.
|
||
(Gcc_backend::function_defer_statement): Likewise.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* Make-lang.in: Add rust-punycode.o.
|
||
* rust-lang.cc (run_rust_tests): Add selftest.
|
||
* util/rust-punycode.cc: New file.
|
||
* util/rust-punycode.h: New file.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* backend/rust-compile.cc (HIRCompileBase::verify_array_capacities):
|
||
Added ErrorCode.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve):
|
||
added errorcode.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h
|
||
(Backend::error_variable): Remove.
|
||
(Gcc_backend::error_variable): Move to ...
|
||
* rust-gcc.cc
|
||
(Bvariable::error_variable): ... here ...
|
||
* rust-gcc.h
|
||
(Bvariable::error_variable): ... and declare here.
|
||
(Gcc_backend::global_variable): Update error_variable call.
|
||
(Gcc_backend::local_variable): Likewise.
|
||
(Gcc_backend::parameter_variable): Likewise.
|
||
(Gcc_backend::static_chain_variable): Likewise.
|
||
(Gcc_backend::temporary_variable): Likewise.
|
||
* backend/rust-compile-extern.h
|
||
(CompileExternItem::visit): Likewise.
|
||
* backend/rust-compile-fnparam.cc
|
||
(CompileFnParam::CompileFnParam): Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-type.cc
|
||
(TyTyResolveCompile::visit): Inline Backend::bool_type call.
|
||
* rust-backend.h
|
||
(Backend::bool_type): Remove.
|
||
(Backend::char_type): Remove.
|
||
(Gcc_backend::bool_type): Remove.
|
||
(Gcc_backend::char_type): Remove.
|
||
* rust-gcc.cc
|
||
(Gcc_backend::char_constant_expression): Inline Backend::char_type call.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* lex/rust-lex.cc (assert_source_content): Fix namespace specifier
|
||
(test_buffer_input_source): Likewise.
|
||
(test_file_input_source): Likewise.
|
||
* lex/rust-lex.h: Move InputSource ...
|
||
* lex/rust-input-source.h: ... to here. (New file)
|
||
* lex/rust-token.cc (nfc_normalize_token_string): New function
|
||
* lex/rust-token.h (nfc_normalize_token_string): New function
|
||
* rust-lang.cc (run_rust_tests): Modify order of selftests.
|
||
* rust-session-manager.cc (validate_crate_name): Modify interface of Utf8String.
|
||
* util/rust-unicode.cc (lookup_cc): Modify codepoint_t typedef.
|
||
(lookup_recomp): Likewise.
|
||
(recursive_decomp_cano): Likewise.
|
||
(decomp_cano): Likewise.
|
||
(sort_cano): Likewise.
|
||
(compose_hangul): Likewise.
|
||
(assert_normalize): Likewise.
|
||
(Utf8String::nfc_normalize): New function.
|
||
* util/rust-unicode.h: Modify interface of Utf8String.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go):
|
||
Added ErrorCode.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-common.h (enum_to_str): Remove extra semicolon after
|
||
the function.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* checks/errors/rust-const-checker.cc (ConstChecker::visit):
|
||
Use of mutable reference in constant functions.
|
||
* checks/errors/rust-feature-gate.cc (FeatureGate::gate):
|
||
ErrorCode for intrinsics are subject to change.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* checks/errors/rust-const-checker.cc (ConstChecker::check_function_call):
|
||
Added errorcode.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args):
|
||
Added errorcode.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Declare
|
||
macros in the current rib if they are macros 2.0.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-macro.h: Add new method to `MacroRulesDefinition` to allow
|
||
getting the `MacroKind` contained.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* rust-session-manager.cc
|
||
(Session::expansion): Use new `Early` name resolution 2.0 pass
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in: Add new object file.
|
||
* resolve/rust-early-name-resolver-2.0.cc: New file.
|
||
* resolve/rust-early-name-resolver-2.0.h: New file.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-default-resolver.cc
|
||
(DefaultResolver::visit): Visit CallExpr and MethodCallExpr properly.
|
||
* resolve/rust-default-resolver.h: Switch "node" to plural in documentation.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc
|
||
(TopLevel::insert_or_error_out): Fix format string.
|
||
(is_macro_export): New method.
|
||
(TopLevel::visit): Handle macro definitions.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-name-resolution-context.cc
|
||
(Resolver::insert): Do not call into `rust_unreachable` when resolving
|
||
macros anymore.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-forever-stack.h
|
||
(insert_at_root): New method.
|
||
(resolve_path): New method.
|
||
(reverse_iter): Iterate on `Node`s instead of `Rib`s
|
||
* resolve/rust-forever-stack.hxx: Add path resolution.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-rib.h: Add shadowing parameter. Make kind field public.
|
||
* resolve/rust-rib.cc (Rib::insert): Likewise.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
|
||
refactored message and called error function.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* checks/errors/rust-feature-gate.cc (FeatureGate::check):
|
||
errorcode support for unknown feature.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-unify.cc (UnifyRules::emit_type_mismatch):
|
||
refactored & called error function.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* expand/rust-macro-builtins.cc
|
||
(load_file_bytes): Return a tl::optional.
|
||
(MacroBuiltin::include_byte_handler): Adjust and check file was
|
||
correctly opened.
|
||
(MacroBuiltin::include_str_handler): Likewise.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-toplevel-name-resolver-2.0.h
|
||
(class TopLevel): Inherit from DefaultResolver
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc
|
||
(TopLevel::TopLevel): Remove unecessary methods
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in: Add new object file.
|
||
* resolve/rust-default-resolver.cc: New file.
|
||
* resolve/rust-default-resolver.h: New file.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* util/rust-unicode.cc (decomp_cano): Decompose Hangul.
|
||
(sort_cano): Fix bounds check.
|
||
(recomp): use `compose_hangul`.
|
||
(compose_hangul): Compose Hangul.
|
||
(rust_utf8_normalize_test): Add tests.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-forever-stack.hxx: assert() -> rust_assert()
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in: Add new object file.
|
||
* resolve/rust-toplevel-name-resolver-2.0.cc: New file.
|
||
* resolve/rust-toplevel-name-resolver-2.0.h: New file.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in: Add new object file.
|
||
* resolve/rust-name-resolution-context.cc: New file.
|
||
* resolve/rust-name-resolution-context.h: New file.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
|
||
called error function.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-invoc-lexer.cc
|
||
(MacroInvocLexer::skip_token): Remove.
|
||
* expand/rust-macro-invoc-lexer.h
|
||
(class MacroInvocLexer): Extend MacroInvocLexerBase.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* ast/rust-ast-fragment.cc (Fragment::create_empty): New.
|
||
* ast/rust-ast-fragment.h (MacroTranscriberFunc): New.
|
||
* ast/rust-macro.h (MacroRulesDefinition): Use MacroTranscriberFunc.
|
||
* expand/rust-macro-builtins.cc
|
||
(MacroBuiltin::builtin_transcribers): likewise.
|
||
(MacroBuiltin::assert_handler): Return optional.
|
||
(MacroBuiltin::file_handler): Likewise.
|
||
(MacroBuiltin::column_handler): Likewise.
|
||
(MacroBuiltin::include_bytes_handler): Likewise.
|
||
(MacroBuiltin::include_str_handler): Likewise.
|
||
(MacroBuiltin::compile_error_handler): Likewise.
|
||
(MacroBuiltin::concat_handler): Likewise.
|
||
(MacroBuiltin::env_handler): Likewise.
|
||
(MacroBuiltin::cfg_handler): Likewise.
|
||
(MacroBuiltin::include_handler): Likewise.
|
||
(MacroBuiltin::line_handler): Likewise.
|
||
(MacroBuiltin::stringify_handler): Likewise.
|
||
(MacroBuiltin::sorry): Likewise.
|
||
* expand/rust-macro-builtins.h (builtin_transcribers): Use
|
||
MacroTranscriberFunc.
|
||
(assert_handler): Return optional.
|
||
(file_handler): Likewise.
|
||
(column_handler): Likewise.
|
||
(include_bytes_handler): Likewise.
|
||
(include_str_handler): Likewise.
|
||
(compile_error_handler): Likewise.
|
||
(concat_handler): Likewise.
|
||
(env_handler): Likewise.
|
||
(cfg_handler): Likewise.
|
||
(include_handler): Likewise.
|
||
(line_handler): Likewise.
|
||
(stringify_handler): Likewise.
|
||
(sorry): Likewise.
|
||
* expand/rust-macro-expand.cc (MacroExpander::expand_invoc):
|
||
Adjust to transcribers returning optional.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item):
|
||
always resolve the type even when its an a mandatory trait item
|
||
* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path):
|
||
Add check for enum candidates otherwise you get undefined behaviour
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* lex/rust-codepoint.h: Add comment
|
||
* lex/rust-lex.h: New method to get decoded characters
|
||
* rust-session-manager.cc (validate_crate_name): Modify unicode check
|
||
(rust_crate_name_validation_test): Add testcases
|
||
* util/rust-unicode.h (RUST_UNICODE_H): New class Utf8String.
|
||
(class Utf8String): New class.
|
||
* util/rust-unicode.cc (binary_search_sorted_array): Add comment.
|
||
(recursive_decomp_cano): Add comment.
|
||
(recomp): Remove dead code.
|
||
(dump_string): Removed.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* util/rust-unicode.cc: Add CHECKING_P guard.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
|
||
We need to check if a function context exists
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* expand/rust-proc-macro.cc (literal_from_string): update Lexer constructor
|
||
(tokenstream_from_string): likewise
|
||
* lex/rust-lex.cc (Lexer::Lexer): likewise
|
||
* lex/rust-lex.h: pass through Linemap
|
||
* parse/rust-cfg-parser.cc (parse_cfg_option): likewise
|
||
* rust-session-manager.cc (Session::load_extern_crate): likewise
|
||
* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait):
|
||
dont apply Sized on self
|
||
* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::get_marker_predicate): new
|
||
* typecheck/rust-hir-type-check-base.h: add prototype
|
||
* typecheck/rust-hir-type-check-type.cc (TypeResolveGenericParam::Resolve): apply Sized
|
||
(TypeResolveGenericParam::visit): likewise
|
||
* typecheck/rust-hir-type-check-type.h: update prototypes
|
||
* typecheck/rust-typecheck-context.cc: remove bad assertions
|
||
* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::assemble_sized_builtin): cleanup
|
||
(TypeCheckBase::get_predicate_from_bound): apply sized rules properly
|
||
* util/rust-hir-map.cc (Mappings::lookup_trait_item_lang_item): helpers
|
||
(Mappings::get_lang_item): likewise
|
||
* util/rust-hir-map.h: likewise
|
||
* util/rust-token-converter.cc (from_ident): update lexer ctor
|
||
(from_punct): likewise
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-path-probe.cc: track regular polarity
|
||
* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): likewise
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise
|
||
* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): likewise
|
||
* typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound): likewise
|
||
(TypeBoundPredicate::TypeBoundPredicate): update ctor
|
||
(TypeBoundPredicate::operator=): update copy assignment ctor
|
||
(TypeBoundPredicate::error): update error node
|
||
* typecheck/rust-tyty.h: add polarity field to predicate
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): use new BoundPolarity enum
|
||
* hir/rust-ast-lower-type.cc (ASTLoweringTypeBounds::visit): likewise
|
||
* hir/rust-hir-dump.cc (BoundPolarityString): new helper
|
||
(Dump::visit): update hir dump
|
||
* hir/tree/rust-hir-item.h (class ImplBlock): likewise
|
||
* hir/tree/rust-hir-type.h (class TraitBound): likewise
|
||
* hir/tree/rust-hir.cc (TraitBound::as_string): fix as string
|
||
* util/rust-common.h (enum Polarity): add new anti bound
|
||
(enum BoundPolarity): likewise
|
||
* util/rust-hir-map.cc (Mappings::Mappings): update naming
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-backend.h: Include "rust-gcc.h".
|
||
(class Gcc_backend): Move to ...
|
||
* rust-gcc.cc (class Gcc_backend): ... here.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-item.cc: add is_error check
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* Make-lang.in: Add rust-unicode.o
|
||
* rust-lang.cc (run_rust_tests): Add test.
|
||
* rust-system.h: Include <array>
|
||
* util/make-rust-unicode.py: Generater of rust-unicode-data.h.
|
||
* util/rust-unicode-data.h: Auto-generated file.
|
||
* util/rust-unicode.cc: New file.
|
||
* util/rust-unicode.h: New file.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* rust-diagnostics.cc: Rework `make_description` and `make_url` functions.
|
||
* rust-diagnostics.h: Specify ErrorCode's underlying type,
|
||
remove error_codes_strings table.
|
||
* rust_error_codes.def: New file.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-location.h (typedef Location): Remove.
|
||
* expand/rust-proc-macro.cc
|
||
(register_callback): Replace Location constructor with UNDEF_LOCATION.
|
||
* ast/rust-ast-collector.h: Replace Location with location_t.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc: Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
|
||
* checks/errors/privacy/rust-pub-restricted-visitor.cc: Likewise.
|
||
* checks/errors/privacy/rust-pub-restricted-visitor.h: Likewise.
|
||
* checks/errors/rust-feature-gate.cc: Likewise.
|
||
* checks/errors/rust-feature-gate.h: Likewise.
|
||
* metadata/rust-imports.h: Likewise.
|
||
* resolve/rust-ast-resolve-path.h: Likewise.
|
||
* resolve/rust-name-resolver.h: Likewise.
|
||
* rust-backend.h: Likewise.
|
||
* rust-diagnostics.h: Likewise.
|
||
* rust-gcc.cc: Likewise.
|
||
* rust-linemap.h: Likewise.
|
||
* util/rust-attributes.cc: Likewise.
|
||
* util/rust-hir-map.cc: Likewise.
|
||
* util/rust-hir-map.h: Likewise.
|
||
* util/rust-token-converter.cc: Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* typecheck/rust-autoderef.cc: Replace Location with location_t.
|
||
* typecheck/rust-coercion.cc: Likewise.
|
||
* typecheck/rust-coercion.h: Likewise.
|
||
* typecheck/rust-hir-path-probe.h: Likewise.
|
||
* typecheck/rust-hir-trait-reference.cc: Likewise.
|
||
* typecheck/rust-hir-trait-resolve.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-base.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-expr.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-expr.h: Likewise.
|
||
* typecheck/rust-hir-type-check-implitem.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-item.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-path.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-pattern.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-stmt.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-struct.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-type.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-type.h: Likewise.
|
||
* typecheck/rust-type-util.cc: Likewise.
|
||
* typecheck/rust-type-util.h: Likewise.
|
||
* typecheck/rust-tyty-bounds.cc: Likewise.
|
||
* typecheck/rust-tyty-call.cc: Likewise.
|
||
* typecheck/rust-tyty-call.h: Likewise.
|
||
* typecheck/rust-tyty-cmp.h: Likewise.
|
||
* typecheck/rust-tyty-subst.cc: Likewise.
|
||
* typecheck/rust-tyty-subst.h: Likewise.
|
||
* typecheck/rust-tyty.cc: Likewise.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
|
||
refactored error message & called error function.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-proc-macro.cc (literal_from_string): Add callback
|
||
function.
|
||
(load_macros_array): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (handle_suffix): Rework function
|
||
to make it work with the new literal conversion function.
|
||
(convert_literal): Add a new function to convert to a proc macro
|
||
literal from a literal tokenptr. The function will abort if the
|
||
pointer does not point to a literal.
|
||
(convert): Add call to convert literal for every literal case.
|
||
* util/rust-token-converter.h (convert_literal): Add public
|
||
prototype.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-proc-macro.cc: Remove static modifier and move to
|
||
an anonymous namespace.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc (Intrinsics::compile):
|
||
Formatted according to enum class.
|
||
* checks/errors/rust-feature-gate.cc (FeatureGate::gate): likewise.
|
||
* checks/errors/rust-unsafe-checker.cc (check_unsafe_call): likewise.
|
||
* hir/rust-ast-lower-base.cc (struct_field_name_exists): likewise.
|
||
* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): likewise.
|
||
* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path):
|
||
likewise.
|
||
* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go): likewise.
|
||
(PatternDeclaration::add_new_binding): likewise.
|
||
* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): likewise.
|
||
* resolve/rust-ast-verify-assignee.h: likewise.
|
||
* rust-diagnostics.cc: updated make_desc & url function for enum class.
|
||
* rust-diagnostics.h (struct ErrorCode): removed struct to switch to enum.
|
||
(enum class): Switched from errorcode struct to enum class.
|
||
(XSTR): Macro for converting enum to string.
|
||
(STR): macro Used by XSTR for converting to string.
|
||
(ERROR_CODE): macro used by map for check.
|
||
(TABLE_TO_MAP): macro used by map for check
|
||
* typecheck/rust-casts.cc (TypeCastRules::emit_cast_error):
|
||
Formatted according to enum class.
|
||
* typecheck/rust-hir-path-probe.h: likewise.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise.
|
||
* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
|
||
likewise.
|
||
(TypeCheckImplItemWithTrait::visit): likewise.
|
||
* typecheck/rust-hir-type-check-item.cc: likewise.
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): likewise.
|
||
(emit_invalid_field_error): likewise.
|
||
* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve): likewise.
|
||
* typecheck/rust-tyty-call.cc (emit_unexpected_argument_error): likewise.
|
||
(TypeCheckCallExpr::visit): likewise.
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args):
|
||
likewise.
|
||
* typecheck/rust-tyty.cc (BaseType::bounds_compatible): likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-attributes.cc (check_proc_macro_non_root): Add
|
||
function to emit this specific error.
|
||
(AttributeChecker::visit): Modify visitor to propagate to some
|
||
containers that were not handled correctly.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-base.h: Replace Location with location_t.
|
||
* metadata/rust-imports.h: Likewise.
|
||
* resolve/rust-name-resolver.cc: Likewise.
|
||
* resolve/rust-name-resolver.h: Likewise.
|
||
* rust-backend.h: Likewise.
|
||
* rust-gcc.cc: Likewise.
|
||
* rust-gcc.h: Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-proc-macro.cc (available): Remove function.
|
||
(load_macros_array): There was no need for an indirection here.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-proc-macro.cc (available): Add symbol
|
||
registration.
|
||
(load_macros_array): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-proc-macro.cc (load_macros_array): Symbol rename.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/privacy/rust-privacy-reporter.cc (find_proc_macro_attribute):
|
||
Refactor the function to be safer and more efficient.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/privacy/rust-privacy-reporter.cc (find_proc_macro_attribute):
|
||
Add a new function to find a potential proc macro type
|
||
attribute on a given item.
|
||
(proc_macro_privacy_check): Move all proc macro privacy check in
|
||
their own function to avoid cluttering the usual privacy check.
|
||
(PrivacyReporter::go): Add call to newly created proc macro
|
||
privacy check function.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::go):
|
||
Add visibility verification.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-attributes.cc (is_proc_macro_type): Add function to
|
||
identify matching proc macro attribute type.
|
||
(check_proc_macro_non_function): Add function to check and emit
|
||
error.
|
||
(AttributeChecker::visit): Add cal to new check function.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Remove NodeId from identifiers.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit):
|
||
Added check for error code support.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit):
|
||
called error function.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-base.cc: Replace Location with location_t.
|
||
* backend/rust-compile-base.h: Likewise.
|
||
* backend/rust-compile-expr.cc: Likewise.
|
||
* lex/rust-token.h: Likewise.
|
||
* metadata/rust-import-archive.cc: Likewise.
|
||
* metadata/rust-imports.cc: Likewise.
|
||
* metadata/rust-imports.h: Likewise.
|
||
* rust-backend.h: Likewise.
|
||
* rust-diagnostics.cc: Likewise.
|
||
* rust-diagnostics.h: Likewise.
|
||
* rust-gcc.cc: Likewise.
|
||
* rust-linemap.cc: Likewise.
|
||
* util/rust-token-converter.cc: Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-ast-builder.h: Replace Location with location_t.
|
||
* ast/rust-ast.h: Likewise.
|
||
* ast/rust-expr.h: Likewise.
|
||
* ast/rust-item.h: Likewise.
|
||
* ast/rust-macro.h: Likewise.
|
||
* ast/rust-path.h: Likewise.
|
||
* hir/tree/rust-hir-expr.h: Likewise.
|
||
* hir/tree/rust-hir-item.h: Likewise.
|
||
* hir/tree/rust-hir-path.h: Likewise.
|
||
* hir/tree/rust-hir.h: Likewise.
|
||
* lex/rust-lex.cc: Likewise.
|
||
* lex/rust-lex.h: Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-derive-clone.cc: Replace Location with location_t.
|
||
* expand/rust-derive-clone.h: Likewise.
|
||
* expand/rust-derive-copy.cc: Likewise.
|
||
* expand/rust-derive-copy.h: Likewise.
|
||
* expand/rust-derive.cc: Likewise.
|
||
* expand/rust-derive.h: Likewise.
|
||
* expand/rust-macro-builtins.cc: Likewise.
|
||
* expand/rust-macro-builtins.h: Likewise.
|
||
* expand/rust-macro-expand.cc: Likewise.
|
||
* parse/rust-parse-impl.h: Likewise.
|
||
* parse/rust-parse.cc: Likewise.
|
||
* parse/rust-parse.h: Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_macro_match): Use token_id_is_keyword.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h (class Identifier): Remove interface
|
||
inheritance.
|
||
(class SimplePath): Likewise.
|
||
* expand/rust-expand-visitor.cc (get_traits_to_derive): Change
|
||
return type.
|
||
(derive_item): Update according to get_traits_to_derive return
|
||
type.
|
||
(expand_item_attribute): Likewise.
|
||
(ExpandVisitor::expand_inner_stmts): Likewise.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Likewise.
|
||
* util/rust-hir-map.cc (Mappings::insert_derive_proc_macro_invocation):
|
||
Change input type to SimplePath.
|
||
(Mappings::lookup_derive_proc_macro_invocation): Likewise.
|
||
(Mappings::insert_attribute_proc_macro_invocation): Likewise.
|
||
(Mappings::lookup_attribute_proc_macro_invocation): Likewise.
|
||
* util/rust-hir-map.h: Likewise with function prototypes.
|
||
* util/rust-proc-macro-invocation.h: Removed.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Add new constructor for SimplePath from an
|
||
identifier.
|
||
* expand/rust-expand-visitor.cc (get_traits_to_derive): Add
|
||
conversion.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-macro-expand.cc (MacroExpander::import_proc_macros):
|
||
Remove function.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Remove
|
||
import_proc_macro function.
|
||
* util/rust-hir-map.cc (Mappings::insert_derive_proc_macro_def):
|
||
Add a function to insert a derive proc macro definition.
|
||
(Mappings::insert_bang_proc_macro): Remove function.
|
||
(Mappings::insert_bang_proc_macro_def): Add function to insert a
|
||
bang proc macro definition.
|
||
(Mappings::insert_attribute_proc_macro_def): Likewise with
|
||
attribute proc macros.
|
||
(Mappings::lookup_derive_proc_macro_def): Add a function to
|
||
lookup a defined derive proc macro definition.
|
||
(Mappings::lookup_bang_proc_macro): Remove function.
|
||
(Mappings::lookup_bang_proc_macro_def): Add a function to lookup
|
||
a bang proc macro definition.
|
||
(Mappings::lookup_attribute_proc_macro_def): Add a function to
|
||
lookup an attribute prod macro definition.
|
||
(Mappings::insert_derive_proc_macro_invocation): Add a function
|
||
to insert a derive proc macro invocation.
|
||
(Mappings::lookup_derive_proc_macro_invocation): Add a function
|
||
to lookup a derive proc macro invocation.
|
||
(Mappings::insert_bang_proc_macro_invocation): Add a function to
|
||
insert a bang proc macro invocation.
|
||
(Mappings::lookup_bang_proc_macro_invocation): Add a function to
|
||
lookup a bang proc macro invocation.
|
||
(Mappings::insert_attribute_proc_macro_invocation): Add a
|
||
function to insert an attribute proc macro invocation.
|
||
(Mappings::lookup_attribute_proc_macro_invocation): Add a
|
||
function to lookup an attribute proc macro invocation.
|
||
* util/rust-hir-map.h: Add different proc macro mappings
|
||
and change function prototypes.
|
||
* expand/rust-expand-visitor.cc (get_traits_to_derive): Return a
|
||
vector of SimplePath instead.
|
||
(derive_item): Accept SimplePath instead of a string.
|
||
* ast/rust-ast.h: Add common ProcMacroInvocable interface to
|
||
Identifiers and SimplePath nodes.
|
||
* ast/rust-ast.cc: Add const modifier.
|
||
* ast/rust-macro.h: Change path and identifier getters.
|
||
* ast/rust-path.h: Change return type to reference.
|
||
* util/rust-proc-macro-invocation.h: New file.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-attributes.h (RUST_ATTRIBUTES_H): Add missing header
|
||
guard.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h (class MetaItem): Add MetaItem dispatch values.
|
||
* ast/rust-expr.h: Add LitExpr and PathLit dispatch.
|
||
* ast/rust-macro.h: Add remaining dispatch getters.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* metadata/rust-extern-crate.h: Add proc macro getter.
|
||
* rust-session-manager.cc (Session::load_extern_crate): Collect
|
||
mappings and create mappings.
|
||
* util/rust-hir-map.cc: Add insertion and lookup functions for
|
||
every mapping.
|
||
* util/rust-hir-map.h: Add function prototypes.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* metadata/rust-imports.cc (Import::try_package_in_directory):
|
||
Add call to load macros before loading metadatas.
|
||
* expand/rust-proc-macro.cc: Return empty vector instead of
|
||
panicking on error.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* metadata/rust-import-archive.cc (Stream_concatenate::do_peek):
|
||
Remove deletion.
|
||
(Stream_concatenate::do_advance): Likewise.
|
||
(Import::find_archive_export_data): Replace with a smart
|
||
pointer.
|
||
* metadata/rust-imports.cc (add_search_path): Change return type
|
||
to smart pointer.
|
||
(Import::open_package): Likewise.
|
||
(Import::try_package_in_directory): Likewise.
|
||
(Import::find_export_data): Likewise.
|
||
(Import::find_object_export_data): Likewise.
|
||
(Import::Import): Change constructor to accept unique_ptr.
|
||
* metadata/rust-imports.h: Change constructor prototype.
|
||
* rust-session-manager.cc (Session::load_extern_crate): Change
|
||
pointer to smart pointer.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* metadata/rust-extern-crate.cc (ExternCrate::ExternCrate):
|
||
Change constructor to accept procedural macro vector.
|
||
* metadata/rust-extern-crate.h: Add vector of procecural macro
|
||
in extern crate.
|
||
* rust-session-manager.cc (Session::load_extern_crate): Add
|
||
argument to new constructor call.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* metadata/rust-imports.cc (add_search_path): Change prototype,
|
||
now return a pair of Stream and procedural macro vector.
|
||
(Import::open_package): Likewise.
|
||
(Import::try_package_in_directory): Likewise.
|
||
* metadata/rust-imports.h: Likewise.
|
||
* rust-session-manager.cc (Session::load_extern_crate):
|
||
Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* metadata/rust-imports.h: Make the function to load a given
|
||
file public.
|
||
* rust-session-manager.cc (Session::load_extern_crate): Change
|
||
path resolution depending on extern crate declaration in cli
|
||
arguments.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-ast-collector.h
|
||
(TokenCollector::visit):
|
||
Replace default argument with UNDEF_LOCATION.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-base.cc: Replace Location with location_t.
|
||
* backend/rust-compile-base.h: Likewise.
|
||
* backend/rust-compile-block.cc: Likewise.
|
||
* backend/rust-compile-expr.cc: Likewise.
|
||
* backend/rust-compile-expr.h: Likewise.
|
||
* backend/rust-compile-extern.h: Likewise.
|
||
* backend/rust-compile-implitem.h: Likewise.
|
||
* backend/rust-compile-intrinsic.cc: Likewise.
|
||
* backend/rust-compile-item.h: Likewise.
|
||
* backend/rust-compile-pattern.h: Likewise.
|
||
* backend/rust-compile-resolve-path.cc: Likewise.
|
||
* backend/rust-compile-stmt.cc: Likewise.
|
||
* backend/rust-compile-type.cc: Likewise.
|
||
* backend/rust-compile.cc: Likewise.
|
||
* backend/rust-constexpr.cc: Likewise.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
|
||
refactored and call error function.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-attributes.cc (AttributeChecker::visit): Add help
|
||
message.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-attributes.cc (AttributeChecker::visit): Add
|
||
attribute input check.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-attributes.cc (AttributeChecker::visit): Add
|
||
attribute check on functions.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (from_ident): Adapt code to new
|
||
constructor.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-proc-macro.cc (tokenstream_from_string): Add a
|
||
function that creates a tokenstream from a given string.
|
||
(load_macros_array): Add call to registration function.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lang.opt: Add option
|
||
* rust-session-manager.cc: Add option registration in session
|
||
target options.
|
||
* rust-session-manager.h (struct CompileOptions): Add new getter
|
||
for proc macros instead of a boolean.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-forever-stack.h: New file.
|
||
* resolve/rust-forever-stack.hxx: New file.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* hir/rust-hir-dump.cc (convert_param_kind_to_str): New.
|
||
(convert_new_bind_type_to_str): New.
|
||
(convert_mut_to_str): New.
|
||
(Dump::go): New.
|
||
(Dump::put): New.
|
||
(Dump::begin): New.
|
||
(Dump::end): New.
|
||
(Dump::begin_field): New.
|
||
(Dump::end_field): New.
|
||
(Dump::put_field): New.
|
||
(Dump::visit_field): New.
|
||
(Dump::visit): Refactor.
|
||
(Dump::visit_collection): New.
|
||
(Dump::do_traititem): New.
|
||
(Dump::do_vis_item): New.
|
||
(Dump::do_functionparam): New.
|
||
(Dump::do_pathpattern): New.
|
||
(Dump::do_structexprstruct): New.
|
||
(Dump::do_expr): New.
|
||
(Dump::do_pathexpr): New.
|
||
(Dump::do_typepathsegment): New.
|
||
(Dump::do_typepathfunction): New.
|
||
(Dump::do_qualifiedpathtype): New.
|
||
(Dump::do_operatorexpr): New.
|
||
(Dump::do_mappings): New.
|
||
(Dump::do_inner_attrs): New.
|
||
(Dump::do_outer_attrs): New.
|
||
(Dump::do_baseloopexpr): New.
|
||
(Dump::do_ifletexpr): New.
|
||
(Dump::do_struct): New.
|
||
(Dump::do_enumitem): New.
|
||
(Dump::do_traitfunctiondecl): New.
|
||
(Dump::do_externalitem): New.
|
||
(Dump::do_namefunctionparam): New.
|
||
(Dump::do_stmt): New.
|
||
(Dump::do_type): New.
|
||
(Dump::do_item): New.
|
||
(Dump::do_tuplefield): New.
|
||
(Dump::do_structfield): New.
|
||
(Dump::do_genericargs): New.
|
||
(Dump::do_maybenamedparam): New.
|
||
* hir/rust-hir-dump.h: Refactor.
|
||
* hir/tree/rust-hir-item.h (enum_to_str): New.
|
||
* hir/tree/rust-hir-type.h (enum_to_str): New.
|
||
* hir/tree/rust-hir.cc (enum_to_str): New.
|
||
* util/rust-common.h (enum_to_str): New.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
Matthew Jasper <mjjasper1@gmail.com>
|
||
|
||
* Make-lang.in: Add `rust-rib.cc` object.
|
||
* resolve/rust-rib.cc: New file.
|
||
* resolve/rust-rib.h: New file.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-ast.h: Replace Location with location_t.
|
||
* ast/rust-expr.h: Likewise.
|
||
* ast/rust-item.h: Likewise.
|
||
* ast/rust-macro.h: Likewise.
|
||
* ast/rust-path.h: Likewise.
|
||
* ast/rust-pattern.h: Likewise.
|
||
* ast/rust-stmt.h: Likewise.
|
||
* ast/rust-type.h: Likewise.
|
||
* hir/rust-ast-lower-base.h: Likewise.
|
||
* hir/tree/rust-hir-expr.h: Likewise.
|
||
* hir/tree/rust-hir-item.h: Likewise.
|
||
* hir/tree/rust-hir-path.h: Likewise.
|
||
* hir/tree/rust-hir-pattern.h: Likewise.
|
||
* hir/tree/rust-hir-stmt.h: Likewise.
|
||
* hir/tree/rust-hir-type.h: Likewise.
|
||
* hir/tree/rust-hir.h: Likewise.
|
||
* lex/rust-token.h: Likewise.
|
||
* resolve/rust-ast-resolve-pattern.h: Likewise.
|
||
* typecheck/rust-hir-trait-reference.h: Likewise.
|
||
* typecheck/rust-tyty-bounds.h: Likewise.
|
||
* typecheck/rust-tyty-call.h: Likewise.
|
||
* typecheck/rust-tyty-subst.h: Likewise.
|
||
* typecheck/rust-tyty-util.h: Likewise.
|
||
* typecheck/rust-tyty.h: Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-ast-collector.cc: Replace Location with location_t.
|
||
* ast/rust-ast.cc: Likewise.
|
||
* ast/rust-ast.h: Likewise.
|
||
* ast/rust-expr.h: Likewise.
|
||
* ast/rust-item.h: Likewise.
|
||
* ast/rust-macro.h: Likewise.
|
||
* ast/rust-path.cc: Likewise.
|
||
* ast/rust-path.h: Likewise.
|
||
* ast/rust-pattern.h: Likewise.
|
||
* ast/rust-stmt.h: Likewise.
|
||
* ast/rust-type.h: Likewise.
|
||
* backend/rust-compile-base.cc: Likewise.
|
||
* backend/rust-compile-base.h: Likewise.
|
||
* backend/rust-compile-block.cc: Likewise.
|
||
* backend/rust-compile-expr.cc: Likewise.
|
||
* backend/rust-compile-expr.h: Likewise.
|
||
* backend/rust-compile-fnparam.cc: Likewise.
|
||
* backend/rust-compile-fnparam.h: Likewise.
|
||
* backend/rust-compile-intrinsic.cc: Likewise.
|
||
* backend/rust-compile-pattern.cc: Likewise.
|
||
* backend/rust-compile-resolve-path.h: Likewise.
|
||
* backend/rust-compile.cc: Likewise.
|
||
* checks/errors/rust-const-checker.cc: Likewise.
|
||
* checks/errors/rust-const-checker.h: Likewise.
|
||
* checks/errors/rust-unsafe-checker.cc: Likewise.
|
||
* checks/errors/rust-unsafe-checker.h: Likewise.
|
||
* expand/rust-macro-builtins.cc: Likewise.
|
||
* expand/rust-macro-expand.h: Likewise.
|
||
* hir/rust-ast-lower-base.h: Likewise.
|
||
* hir/rust-ast-lower-implitem.h: Likewise.
|
||
* hir/rust-ast-lower-item.cc: Likewise.
|
||
* hir/tree/rust-hir-expr.h: Likewise.
|
||
* hir/tree/rust-hir-item.h: Likewise.
|
||
* hir/tree/rust-hir-path.h: Likewise.
|
||
* hir/tree/rust-hir-pattern.h: Likewise.
|
||
* hir/tree/rust-hir-stmt.h: Likewise.
|
||
* hir/tree/rust-hir-type.h: Likewise.
|
||
* hir/tree/rust-hir.cc: Likewise.
|
||
* hir/tree/rust-hir.h: Likewise.
|
||
* lex/rust-token.h: Likewise.
|
||
* metadata/rust-extern-crate.cc: Likewise.
|
||
* metadata/rust-extern-crate.h: Likewise.
|
||
* parse/rust-parse-impl.h: Likewise.
|
||
* parse/rust-parse.h: Likewise.
|
||
* resolve/rust-ast-resolve-expr.cc: Likewise.
|
||
* resolve/rust-ast-resolve-implitem.h: Likewise.
|
||
* resolve/rust-ast-resolve-pattern.h: Likewise.
|
||
* resolve/rust-ast-resolve-stmt.h: Likewise.
|
||
* resolve/rust-ast-resolve-toplevel.h: Likewise.
|
||
* resolve/rust-ast-resolve-type.h: Likewise.
|
||
* resolve/rust-name-resolver.cc: Likewise.
|
||
* resolve/rust-name-resolver.h: Likewise.
|
||
* rust-diagnostics.cc: Likewise.
|
||
* rust-diagnostics.h: Likewise.
|
||
* rust-gcc.cc: Likewise.
|
||
* rust-session-manager.cc: Likewise.
|
||
* rust-session-manager.h: Likewise.
|
||
* typecheck/rust-casts.cc: Likewise.
|
||
* typecheck/rust-casts.h: Likewise.
|
||
* typecheck/rust-coercion.cc: Likewise.
|
||
* typecheck/rust-coercion.h: Likewise.
|
||
* typecheck/rust-hir-path-probe.cc: Likewise.
|
||
* typecheck/rust-hir-path-probe.h: Likewise.
|
||
* typecheck/rust-hir-trait-reference.cc: Likewise.
|
||
* typecheck/rust-hir-trait-reference.h: Likewise.
|
||
* typecheck/rust-hir-trait-resolve.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-base.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-base.h: Likewise.
|
||
* typecheck/rust-hir-type-check-item.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-item.h: Likewise.
|
||
* typecheck/rust-hir-type-check-path.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-pattern.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-pattern.h: Likewise.
|
||
* typecheck/rust-hir-type-check-type.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-type.h: Likewise.
|
||
* typecheck/rust-hir-type-check.cc: Likewise.
|
||
* typecheck/rust-hir-type-check.h: Likewise.
|
||
* typecheck/rust-substitution-mapper.cc: Likewise.
|
||
* typecheck/rust-substitution-mapper.h: Likewise.
|
||
* typecheck/rust-type-util.cc: Likewise.
|
||
* typecheck/rust-typecheck-context.cc: Likewise.
|
||
* typecheck/rust-tyty-bounds.cc: Likewise.
|
||
* typecheck/rust-tyty-call.h: Likewise.
|
||
* typecheck/rust-tyty-subst.cc: Likewise.
|
||
* typecheck/rust-tyty-subst.h: Likewise.
|
||
* typecheck/rust-tyty-util.cc: Likewise.
|
||
* typecheck/rust-tyty-util.h: Likewise.
|
||
* typecheck/rust-tyty.cc: Likewise.
|
||
* typecheck/rust-tyty.h: Likewise.
|
||
* typecheck/rust-unify.cc: Likewise.
|
||
* typecheck/rust-unify.h: Likewise.
|
||
* util/rust-hir-map.cc: Likewise.
|
||
* util/rust-hir-map.h: Likewise.
|
||
* util/rust-identifier.h: Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-gcc.cc
|
||
(Gcc_backend::debug): Move out of class declaration.
|
||
(Gcc_backend::get_identifier_node): Likewise.
|
||
(Gcc_backend::wchar_type): Likewise.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
|
||
called error function.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-linemap.h (Linemap::predeclared_location): Remove.
|
||
* backend/rust-compile-type.cc:
|
||
Replace Linemap::predeclared_location with BUILTINS_LOCATION.
|
||
* resolve/rust-name-resolver.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-type.cc: Likewise.
|
||
* typecheck/rust-tyty.cc: Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-gcc.h: Add include guard.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* rust-system.h (rust_unreachable): Change definition to fancy_abort
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Use rust_unreachable
|
||
instead of gcc_unreachable.
|
||
(get_delimiters): Likewise.
|
||
* ast/rust-ast-dump.h: Likewise.
|
||
* ast/rust-ast-formatting.cc (get_string_in_delims): Likewise.
|
||
(get_mode_dump_desc): Likewise.
|
||
* ast/rust-ast.cc (Visibility::as_string): Likewise.
|
||
(UseTreeGlob::as_string): Likewise.
|
||
* ast/rust-ast.h: Likewise.
|
||
* ast/rust-macro.h: Likewise.
|
||
* ast/rust-path.h: Likewise.
|
||
* backend/rust-compile-expr.cc (sort_tuple_patterns): Likewise.
|
||
(CompileExpr::visit): Likewise.
|
||
(CompileExpr::generate_closure_fntype): Likewise.
|
||
* backend/rust-compile-intrinsic.cc (op_with_overflow_inner): Likewise.
|
||
* backend/rust-compile-pattern.cc (CompilePatternBindings::visit): Likewise.
|
||
(CompilePatternLet::visit): Likewise.
|
||
* backend/rust-constexpr.cc (base_field_constructor_elt): Likewise.
|
||
(eval_array_reference): Likewise.
|
||
(label_matches): Likewise.
|
||
(eval_store_expression): Likewise.
|
||
(eval_call_expression): Likewise.
|
||
(build_data_member_initialization): Likewise.
|
||
(array_index_cmp): Likewise.
|
||
(get_array_or_vector_nelts): Likewise.
|
||
(eval_bit_field_ref): Likewise.
|
||
(eval_loop_expr): Likewise.
|
||
(potential_constant_expression_1): Likewise.
|
||
* backend/rust-mangle.cc (v0_simple_type_prefix): Likewise.
|
||
(v0_type_prefix): Likewise.
|
||
(v0_mangle_item): Likewise.
|
||
(Mangler::mangle_item): Likewise.
|
||
* backend/rust-tree.cc (convert_to_void): Likewise.
|
||
(type_memfn_quals): Likewise.
|
||
(rs_tree_equal): Likewise.
|
||
(fold_offsetof): Likewise.
|
||
(fold_builtin_source_location): Likewise.
|
||
(lvalue_error): Likewise.
|
||
* backend/rust-tree.h (struct named_decl_hash): Likewise.
|
||
(struct named_label_hash): Likewise.
|
||
* checks/errors/privacy/rust-visibility-resolver.cc
|
||
(VisibilityResolver::resolve_visibility): Likewise.
|
||
(VisibilityResolver::visit): Likewise.
|
||
* checks/errors/rust-const-checker.cc (ConstChecker::ctx_to_str): Likewise.
|
||
* checks/errors/rust-feature.cc (Feature::create): Likewise.
|
||
* expand/rust-expand-visitor.cc (get_traits_to_derive): Likewise.
|
||
(derive_item): Likewise.
|
||
(expand_item_attribute): Likewise.
|
||
(expand_stmt_attribute): Likewise.
|
||
* expand/rust-macro-expand.cc (MacroExpander::match_matcher): Likewise.
|
||
(MacroExpander::match_repetition): Likewise.
|
||
(transcribe_context): Likewise.
|
||
(MacroExpander::import_proc_macros): Likewise.
|
||
(MacroExpander::parse_proc_macro_output): Likewise.
|
||
* expand/rust-macro-expand.h: Likewise.
|
||
* expand/rust-macro-invoc-lexer.h: Likewise.
|
||
* expand/rust-macro-substitute-ctx.cc (SubstituteCtx::substitute_token): Likewise.
|
||
* expand/rust-proc-macro-invoc-lexer.h: Likewise.
|
||
* expand/rust-proc-macro.cc (load_macros): Likewise.
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_generic_args): Likewise.
|
||
(ASTLoweringBase::lower_literal): Likewise.
|
||
* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
|
||
* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Likewise.
|
||
* hir/rust-ast-lower-type.cc (ASTLoweringType::visit): Likewise.
|
||
* hir/rust-hir-dump.cc (Dump::visit): Likewise.
|
||
* hir/tree/rust-hir.cc (get_string_in_delims): Likewise.
|
||
(Visibility::as_string): Likewise.
|
||
(UseTreeGlob::as_string): Likewise.
|
||
(CompoundAssignmentExpr::as_string): Likewise.
|
||
(ArithmeticOrLogicalExpr::as_string): Likewise.
|
||
* lex/rust-lex.cc (Lexer::parse_byte_string): Likewise.
|
||
(Lexer::parse_string): Likewise.
|
||
* lex/rust-token.cc (RS_TOKEN): Likewise.
|
||
* parse/rust-parse-impl.h (Parser::parse_simple_path_segment): Likewise.
|
||
(Parser::parse_path_ident_segment): Likewise.
|
||
(Parser::parse_attr_input): Likewise.
|
||
(Parser::parse_inherent_impl_item): Likewise.
|
||
(Parser::parse_trait_impl_item): Likewise.
|
||
(Parser::parse_type_path_segment): Likewise.
|
||
(Parser::parse_reference_type): Likewise.
|
||
(get_lbp_for_comparison_expr): Likewise.
|
||
* parse/rust-parse.cc (peculiar_fragment_match_compatible): Likewise.
|
||
* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Likewise.
|
||
* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit): Likewise.
|
||
* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): Likewise.
|
||
(ResolveTypeToCanonicalPath::visit): Likewise.
|
||
(ResolveGenericArgs::resolve_disambiguated_generic): Likewise.
|
||
* rust-gcc.cc (operator_to_tree_code): Likewise.
|
||
(fetch_overflow_builtins): Likewise.
|
||
(Gcc_backend::non_zero_size_type): Likewise.
|
||
(Gcc_backend::convert_tree): Likewise.
|
||
* rust-lang.cc (grs_langhook_type_for_mode): Likewise.
|
||
(grs_langhook_global_bindings_p): Likewise.
|
||
(grs_langhook_pushdecl): Likewise.
|
||
(grs_langhook_getdecls): Likewise.
|
||
(convert): Likewise.
|
||
* typecheck/rust-autoderef.h: Likewise.
|
||
* typecheck/rust-hir-path-probe.cc: Likewise.
|
||
* typecheck/rust-hir-trait-reference.cc (TraitItemReference::get_tyty): Likewise.
|
||
* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal): Likewise.
|
||
* typecheck/rust-hir-type-check-expr.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-expr.h: Likewise.
|
||
* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItem::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-stmt.h: Likewise.
|
||
* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): Likewise.
|
||
* typecheck/rust-substitution-mapper.h: Likewise.
|
||
* typecheck/rust-typecheck-context.cc (TypeCheckContextItem::get_context_type): Likewise.
|
||
* typecheck/rust-tyty-call.h: Likewise.
|
||
* typecheck/rust-tyty.cc (TypeKindFormat::to_string): Likewise.
|
||
(BaseType::monomorphized_clone): Likewise.
|
||
(VariantDef::variant_type_string): Likewise.
|
||
(ClosureType::handle_substitions): Likewise.
|
||
(IntType::as_string): Likewise.
|
||
(UintType::as_string): Likewise.
|
||
(FloatType::as_string): Likewise.
|
||
* typecheck/rust-unify.cc (UnifyRules::expect_projection): Likewise.
|
||
* util/rust-token-converter.cc (convert): Likewise.
|
||
(from_literal): Likewise.
|
||
(from_group): Likewise.
|
||
(from_tokentree): Likewise.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* checks/errors/rust-feature-gate.cc (FeatureGate::gate):
|
||
called error function.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc (Intrinsics::compile):
|
||
called error function.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* checks/errors/rust-unsafe-checker.cc (check_unsafe_call):
|
||
called error function.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-location.h
|
||
(typedef RichLocation): Remove.
|
||
* expand/rust-macro-expand.cc: Replace RichLocation with rich_location.
|
||
* hir/rust-ast-lower-base.cc: Likewise.
|
||
* resolve/rust-ast-resolve-implitem.h: Likewise.
|
||
* resolve/rust-ast-resolve-stmt.h: Likewise.
|
||
* resolve/rust-ast-resolve-toplevel.h: Likewise.
|
||
* rust-diagnostics.cc: Likewise.
|
||
* rust-diagnostics.h: Likewise.
|
||
* rust-session-manager.cc: Likewise.
|
||
* typecheck/rust-casts.cc: Likewise.
|
||
* typecheck/rust-coercion.cc: Likewise.
|
||
* typecheck/rust-hir-inherent-impl-overlap.h: Likewise.
|
||
* typecheck/rust-hir-path-probe.h: Likewise.
|
||
* typecheck/rust-hir-trait-reference.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-expr.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-implitem.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-item.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-pattern.cc: Likewise.
|
||
* typecheck/rust-tyty-cmp.h: Likewise.
|
||
* typecheck/rust-tyty-subst.cc: Likewise.
|
||
* typecheck/rust-tyty.cc: Likewise.
|
||
* typecheck/rust-unify.cc: Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* lex/rust-lex.cc
|
||
(Lexer::start_line): Use linemap_line_start.
|
||
* rust-linemap.cc
|
||
(Linemap::start_line): Remove.
|
||
* rust-linemap.h
|
||
(Linemap::start_line): Remove.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-linemap.cc
|
||
(RichLocation::RichLocation): Remove.
|
||
(RichLocation::~RichLocation): Remove.
|
||
(RichLocation::add_range): Remove.
|
||
(RichLocation::add_fixit_insert_before): Remove.
|
||
(RichLocation::add_fixit_insert_after): Remove.
|
||
* rust-location.h
|
||
(class RichLocation): Remove.
|
||
* rust-diagnostics.cc
|
||
(rust_be_error_at): Remove RichLocation::get invocation.
|
||
* expand/rust-macro-expand.cc: Fix RichLocation constructor.
|
||
* hir/rust-ast-lower-base.cc: Likewise.
|
||
* resolve/rust-ast-resolve-implitem.h: Likewise.
|
||
* resolve/rust-ast-resolve-stmt.h: Likewise.
|
||
* resolve/rust-ast-resolve-toplevel.h: Likewise.
|
||
* rust-session-manager.cc: Likewise.
|
||
* typecheck/rust-casts.cc: Likewise.
|
||
* typecheck/rust-coercion.cc: Likewise.
|
||
* typecheck/rust-hir-inherent-impl-overlap.h: Likewise.
|
||
* typecheck/rust-hir-path-probe.h: Likewise.
|
||
* typecheck/rust-hir-trait-reference.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-expr.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-implitem.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-item.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-pattern.cc: Likewise.
|
||
* typecheck/rust-tyty-cmp.h: Likewise.
|
||
* typecheck/rust-tyty-subst.cc: Likewise.
|
||
* typecheck/rust-tyty.cc: Likewise.
|
||
* typecheck/rust-unify.cc: Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* lex/rust-lex.cc
|
||
(Lexer::get_current_location): Use linemap_position_for_column.
|
||
* rust-session-manager.cc
|
||
(Session::handle_crate_name): Likewise.
|
||
* rust-linemap.cc
|
||
(Linemap::get_location): Remove.
|
||
* rust-linemap.h
|
||
(Linemap::get_location): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-token.cc (escape_special_chars): Add a function that
|
||
escape a given string.
|
||
(Token::as_string): Add call to escape function for string/char
|
||
representations.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* hir/tree/rust-hir-type.h (MaybeNamedParam::get_type): Remove
|
||
rust_assert.
|
||
(BareFunctionType::get_return_type): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc (offset_handler): Remove
|
||
braces.
|
||
(sizeof_handler): Likewise.
|
||
(transmute_handler): Likewise.
|
||
(rotate_handler): Likewise.
|
||
(wrapping_op_handler_inner): Likewise.
|
||
(op_with_overflow_inner): Likewise.
|
||
(atomic_load_handler_inner): Likewise.
|
||
(unchecked_op_inner): Likewise.
|
||
(uninit_handler): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Add virtual destructor.
|
||
* expand/rust-macro-expand.h: Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* hir/tree/rust-hir-full-decls.h (struct Crate): Change to
|
||
class.
|
||
(class Crate): Likewise.
|
||
(struct StructField): Likewise.
|
||
(class StructField): Likewise.
|
||
(struct TupleField): Likewise.
|
||
(class TupleField): Likewise.
|
||
(struct TraitFunctionDecl): Likewise.
|
||
(class TraitFunctionDecl): Likewise.
|
||
* rust-session-manager.h (struct Crate): Likewise.
|
||
(class Crate): Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-expr.h
|
||
(MetaItemPathLit::get_locus): Remove copy construction.
|
||
* backend/rust-constexpr.cc
|
||
(eval_constant_expression): Likewise.
|
||
(is_valid_constexpr_fn): Likewise.
|
||
* util/rust-token-converter.cc
|
||
(convert): Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* lex/rust-lex.cc
|
||
(Lexer::dump_and_skip): Use location_to_string.
|
||
* rust-linemap.cc
|
||
(Linemap::to_string): Move to...
|
||
(Linemap::location_to_string): ... here.
|
||
* rust-linemap.h
|
||
(Linemap::to_string): Remove.
|
||
(Linemap::location_to_string): Remove definition.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* hir/tree/rust-hir-expr.h (TypeCastExpr::get_casted_expr): Remove
|
||
assert in accessor.
|
||
(TypeCastExpr::get_type_to_convert_to): Likewise.
|
||
(CompoundAssignmentExpr::get_left_expr): Likewise.
|
||
(CompoundAssignmentExpr::get_right_expr): Likewise.
|
||
(GroupedExpr::get_expr_in_parens): Likewise.
|
||
(TupleIndexExpr::get_tuple_expr): Likewise.
|
||
(FieldAccessExpr::get_receiver_expr): Likewise.
|
||
(ClosureParam::get_pattern): Likewise.
|
||
(ClosureParam::get_type): Likewise.
|
||
(ExprType::get_return_type): Likewise.
|
||
(IfLetExpr::get_scrutinee_expr): Likewise.
|
||
(MatchArm::get_guard_expr): Likewise.
|
||
(MatchExpr::get_scrutinee_expr): Likewise.
|
||
* hir/tree/rust-hir-item.h (TypeParam::get_type): Likewise.
|
||
(SelfParam::get_type): Likewise.
|
||
(Function::get_return_type): Likewise.
|
||
(TypeAlias::get_type_aliased): Likewise.
|
||
(StructField::get_field_type): Likewise.
|
||
(TraitFunctionDecl::get_block_expr): Likewise.
|
||
(ImplBlock::get_trait_ref): Likewise.
|
||
* hir/tree/rust-hir-path.h (ConstGenericArg::get_expression): New.
|
||
(TypePathFunction::get_return_type): Remove assert in accessor.
|
||
(QualifiedPathType::get_trait): Likewise.
|
||
* hir/tree/rust-hir-pattern.h (PatternType::get_lower_bound): Likewise.
|
||
(PatternType::get_upper_bound): Likewise.
|
||
(ReferencePattern::get_referenced_pattern): Likewise.
|
||
* hir/tree/rust-hir.h (ConstGenericParam::get_default_expression): Likewise.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* hir/rust-ast-lower-base.cc (struct_field_name_exists):
|
||
called error function.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-diagnostics.cc
|
||
(rust_be_error_at): Add function accepting location_t and ErrorCode.
|
||
(rust_error_at): Likewise.
|
||
* rust-diagnostics.h
|
||
(rust_error_at): Likewise.
|
||
(rust_be_error_at): Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-linemap.cc
|
||
(class Gcc_linemap): Remove.
|
||
(Gcc_linemap::start_file): Move to...
|
||
(Linemap::start_file): ... here.
|
||
(Gcc_linemap::to_string): Move to...
|
||
(Linemap::to_string): ... here.
|
||
(Gcc_linemap::stop): Move to...
|
||
(Linemap::stop): ... here.
|
||
(Gcc_linemap::start_line): Move to...
|
||
(Linemap::start_line): ... here.
|
||
(Gcc_linemap::get_location): Move to...
|
||
(Linemap::get_location): ... here.
|
||
(rust_get_linemap): Use Linemap.
|
||
* rust-linemap.h
|
||
(Linemap::in_file_): New field from Gcc_linemap.
|
||
(Linemap::Linemap): Initialize in_file_.
|
||
(Linemap::~Linemap): Make non-virtual.
|
||
(Linemap::start_file): Likewise.
|
||
(Linemap::start_line): Likewise.
|
||
(Linemap::get_location): Likewise.
|
||
(Linemap::stop): Likewise.
|
||
(Linemap::to_string): Likewise.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in: Remove rust-optional-test.cc's object file
|
||
* ast/rust-macro.h: Remove use of Rust::Optional
|
||
* backend/rust-compile-base.cc
|
||
(HIRCompileBase::resolve_method_address): Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc
|
||
(PrivacyReporter::check_for_privacy_violation): Likewise.
|
||
(PrivacyReporter::visit): Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
|
||
* checks/errors/rust-feature-gate.cc (FeatureGate::check): Likewise.
|
||
* checks/errors/rust-feature.cc (Feature::create): Likewise.
|
||
(Feature::as_name): Likewise.
|
||
* checks/errors/rust-feature.h: Likewise.
|
||
* expand/rust-macro-builtins.cc: Likewise.
|
||
* lex/rust-lex.cc (Lexer::Lexer): Likewise.
|
||
(Lexer::skip_token): Likewise.
|
||
(Lexer::dump_and_skip): Likewise.
|
||
* lex/rust-lex.h: Likewise.
|
||
* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Likewise.
|
||
* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): Likewise.
|
||
* rust-lang.cc (run_rust_tests): Likewise.
|
||
* rust-session-manager.cc (Session::compile_crate): Likewise.
|
||
(TargetOptions::dump_target_options): Likewise.
|
||
* rust-session-manager.h (struct TargetOptions): Likewise.
|
||
* util/rust-hir-map.cc (Mappings::lookup_module_children): Likewise.
|
||
(Mappings::lookup_module_chidren_items): Likewise.
|
||
(Mappings::lookup_module_child): Likewise.
|
||
(Mappings::lookup_parent_module): Likewise.
|
||
* util/rust-hir-map.h (RUST_HIR_MAP_H): Likewise.
|
||
* util/rust-optional-test.cc: Removed.
|
||
* util/rust-optional.h: Removed.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-linemap.h (Linemap::unknown_location): Remove.
|
||
* ast/rust-ast.cc:
|
||
Replace Linemap::unknown_location with UNKNOWN_LOCATION.
|
||
* ast/rust-path.cc: Likewise.
|
||
* hir/tree/rust-hir.cc: Likewise.
|
||
* metadata/rust-imports.cc: Likewise.
|
||
* parse/rust-parse-impl.h: Likewise.
|
||
* parse/rust-parse.h: Likewise.
|
||
* rust-backend.h: Likewise.
|
||
* rust-diagnostics.cc: Likewise.
|
||
* rust-session-manager.cc: Likewise.
|
||
* typecheck/rust-tyty.cc: Likewise.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* resolve/rust-ast-verify-assignee.h: called error function.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-tyty-call.cc (emit_unexpected_argument_error):
|
||
Refactored invalid number of argument into one function.
|
||
(TypeCheckCallExpr::visit): called refactored function.
|
||
(TypeCheckMethodCallExpr::check): likewise.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* util/expected.h: Adapt class to GCC requirements.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* util/expected.h: New file.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* util/optional.h: Adapt for GCC.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* util/optional.h: New file.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-location.h (UNDEF_LOCATION): New.
|
||
* ast/rust-ast-collector.cc: Replace Location () with UNDEF_LOCATION.
|
||
* ast/rust-ast-fragment.cc: Likewise.
|
||
* ast/rust-ast.h: Likewise.
|
||
* ast/rust-expr.h: Likewise.
|
||
* ast/rust-item.h: Likewise.
|
||
* ast/rust-macro.h: Likewise.
|
||
* ast/rust-path.h: Likewise.
|
||
* ast/rust-type.h: Likewise.
|
||
* backend/rust-compile-expr.cc: Likewise.
|
||
* backend/rust-compile-extern.h: Likewise.
|
||
* backend/rust-compile-implitem.h: Likewise.
|
||
* backend/rust-compile-intrinsic.cc: Likewise.
|
||
* backend/rust-compile-item.h: Likewise.
|
||
* backend/rust-compile.cc: Likewise.
|
||
* backend/rust-constexpr.cc: Likewise.
|
||
* expand/rust-expand-visitor.cc: Likewise.
|
||
* expand/rust-macro-expand.cc: Likewise.
|
||
* expand/rust-macro-expand.h: Likewise.
|
||
* expand/rust-macro-invoc-lexer.cc: Likewise.
|
||
* expand/rust-proc-macro-invoc-lexer.cc: Likewise.
|
||
* expand/rust-proc-macro.cc: Likewise.
|
||
* hir/tree/rust-hir-expr.h: Likewise.
|
||
* hir/tree/rust-hir-item.h: Likewise.
|
||
* hir/tree/rust-hir-path.h: Likewise.
|
||
* hir/tree/rust-hir-type.h: Likewise.
|
||
* hir/tree/rust-hir.h: Likewise.
|
||
* lex/rust-lex.cc: Likewise.
|
||
* metadata/rust-export-metadata.cc: Likewise.
|
||
* parse/rust-parse-impl.h: Likewise.
|
||
* resolve/rust-ast-resolve-item.cc: Likewise.
|
||
* resolve/rust-ast-resolve.cc: Likewise.
|
||
* rust-diagnostics.h: Likewise.
|
||
* rust-session-manager.cc: Likewise.
|
||
* typecheck/rust-autoderef.cc: Likewise.
|
||
* typecheck/rust-coercion.cc: Likewise.
|
||
* typecheck/rust-hir-dot-operator.cc: Likewise.
|
||
* typecheck/rust-hir-path-probe.cc: Likewise.
|
||
* typecheck/rust-hir-trait-reference.cc: Likewise.
|
||
* typecheck/rust-hir-trait-reference.h: Likewise.
|
||
* typecheck/rust-hir-type-check-expr.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-implitem.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-type.cc: Likewise.
|
||
* typecheck/rust-hir-type-check.cc: Likewise.
|
||
* typecheck/rust-tyty-bounds.cc: Likewise.
|
||
* typecheck/rust-tyty-subst.cc: Likewise.
|
||
* typecheck/rust-tyty.cc: Likewise.
|
||
* util/rust-hir-map.cc: Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Fix abit
|
||
output format.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Fix
|
||
external item trailing semicolon and outer attributes.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Output
|
||
outer attributes on external functions.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Fix method
|
||
qualifier output.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Add where
|
||
clause.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Add outer
|
||
attributes to collector output.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Add
|
||
variadics in collector output.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Add
|
||
generics.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Fix generic
|
||
output.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Reformat
|
||
trait impl block.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Output
|
||
generic in inherent impl.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::require_spacing): Change dollar
|
||
spacing rule.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Change
|
||
formatting.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Fix trait
|
||
impl block output.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Fix binding
|
||
args.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Output
|
||
function qualifiers after visibility.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Fix self
|
||
param output.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::require_spacing): Add a rule to
|
||
remove spaces around dots and after references.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Fix several
|
||
token collection rules.
|
||
* ast/rust-ast-dump.cc (Dump::require_spacing): Add spacing rule
|
||
for comma.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-invoc-lexer.h
|
||
(class MacroInvocLexerBase): New.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-builtins.cc
|
||
(source_relative_path): Use LOCATION_FILE.
|
||
(MacroBuiltin::file_handler): Likewise.
|
||
(MacroBuiltin::column_handler): Use LOCATION_COLUMN.
|
||
(MacroBuiltin::line_handler): Use LOCATION_LINE.
|
||
* rust-linemap.cc
|
||
(Gcc_linemap::location_file): Remove.
|
||
(Gcc_linemap::location_line): Remove.
|
||
(Gcc_linemap::location_column): Remove.
|
||
* rust-linemap.h
|
||
(Linemap::location_file): Remove.
|
||
(Linemap::location_line): Remove.
|
||
(Linemap::location_column): Remove.
|
||
(Linemap::location_to_file): Remove.
|
||
(Linemap::location_to_line): Remove.
|
||
(Linemap::location_to_column): Remove.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
|
||
called error function and changed error message
|
||
similiar to rustc.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-linemap.cc
|
||
(Gcc_linemap::get_unknown_location): Remove.
|
||
(Gcc_linemap::get_predeclared_location): Remove.
|
||
(Gcc_linemap::is_predeclared): Remove.
|
||
(Gcc_linemap::is_unknown): Remove.
|
||
* rust-linemap.h
|
||
(Linemap::get_predeclared_location): Remove.
|
||
(Linemap::get_unknown_location): Remove.
|
||
(Linemap::is_predeclared): Remove.
|
||
(Linemap::is_unknown): Remove.
|
||
(Linemap::predeclared_location): Use BUILTINS_LOCATION.
|
||
(Linemap::unknown_location): Use UNKNOWN_LOCATION.
|
||
(Linemap::is_predeclared_location): Remove.
|
||
(Linemap::is_unknown_location): Remove.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit):
|
||
called error function
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve):
|
||
called error function.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* lex/rust-lex.cc (Lexer::input_source_is_valid_utf8): New method of `Lexer`.
|
||
* lex/rust-lex.h: Likewise.
|
||
* rust-session-manager.cc (Session::compile_crate): Add error.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-expand.cc
|
||
(transcribe_expression): Skip trailing semicolon.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-item.cc: called error function.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* ast/rust-ast.h: Modify constructors of `Rust::Identifier`
|
||
* ast/rust-pattern.h: Likewise.
|
||
* hir/tree/rust-hir-item.h: Likewise.
|
||
* parse/rust-parse-impl.h (Parser::parse_macro_rules_def): Likewise.
|
||
(Parser::parse_decl_macro_def): Likewise.
|
||
(Parser::parse_macro_match_fragment): Likewise.
|
||
(Parser::parse_module): Likewise.
|
||
(Parser::parse_use_tree): Likewise.
|
||
(Parser::parse_function): Likewise.
|
||
(Parser::parse_type_param): Likewise.
|
||
(Parser::parse_type_alias): Likewise.
|
||
(Parser::parse_struct): Likewise.
|
||
(Parser::parse_struct_field): Likewise.
|
||
(Parser::parse_enum): Likewise.
|
||
(Parser::parse_enum_item): Likewise.
|
||
(Parser::parse_union): Likewise.
|
||
(Parser::parse_static_item): Likewise.
|
||
(Parser::parse_trait): Likewise.
|
||
(Parser::parse_trait_item): Likewise.
|
||
(Parser::parse_trait_type): Likewise.
|
||
(Parser::parse_trait_const): Likewise.
|
||
(Parser::parse_external_item): Likewise.
|
||
(Parser::parse_generic_args_binding): Likewise.
|
||
(Parser::parse_method): Likewise.
|
||
(Parser::parse_maybe_named_param): Likewise.
|
||
(Parser::parse_identifier_pattern): Likewise.
|
||
(Parser::parse_struct_expr_field): Likewise.
|
||
(ResolveItem::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItem::visit):Add comments
|
||
* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit): Likewise.
|
||
* checks/lints/rust-lint-scan-deadcode.h: Fix error location
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-base.cc
|
||
(HIRCompileBase::address_expression): Remove gcc_location method call.
|
||
(HIRCompileBase::indirect_expression): Likewise.
|
||
(HIRCompileBase::compile_constant_item): Likewise.
|
||
(HIRCompileBase::named_constant_expression): Likewise.
|
||
* backend/rust-compile-expr.cc
|
||
(CompileExpr::visit): Remove gcc_location method call, use UNKNOWN_LOCATION to initialize.
|
||
(CompileExpr::get_fn_addr_from_dyn): Remove gcc_location method call.
|
||
(CompileExpr::type_cast_expression): Likewise.
|
||
* backend/rust-compile-intrinsic.cc
|
||
(transmute_handler): Replace "Location ().gcc_location ()" with UNKNOWN_LOCATION.
|
||
(copy_nonoverlapping_handler): Likewise.
|
||
(prefetch_data_handler): Likewise.
|
||
(atomic_store_handler_inner): Likewise.
|
||
(atomic_load_handler_inner): Likewise.
|
||
* resolve/rust-ast-resolve-expr.cc
|
||
(ResolveExpr::visit): Remove gcc_location method call.
|
||
* rust-diagnostics.cc
|
||
(rust_be_error_at): Likewise.
|
||
(rust_be_warning_at): Likewise.
|
||
(rust_be_fatal_error): Likewise.
|
||
(rust_be_inform): Likewise.
|
||
* rust-diagnostics.h
|
||
(rust_sorry_at): Likewise.
|
||
* rust-gcc.cc
|
||
(Bvariable::get_tree): Likewise.
|
||
(Gcc_backend::fill_in_fields): Likewise.
|
||
(Gcc_backend::named_type): Likewise.
|
||
(Gcc_backend::real_part_expression): Likewise.
|
||
(Gcc_backend::imag_part_expression): Likewise.
|
||
(Gcc_backend::complex_expression): Likewise.
|
||
(Gcc_backend::convert_expression): Likewise.
|
||
(Gcc_backend::struct_field_expression): Likewise.
|
||
(Gcc_backend::compound_expression): Likewise.
|
||
(Gcc_backend::conditional_expression): Likewise.
|
||
(Gcc_backend::negation_expression): Likewise.
|
||
(Gcc_backend::arithmetic_or_logical_expression): Likewise.
|
||
(Gcc_backend::arithmetic_or_logical_expression_checked): Likewise.
|
||
(Gcc_backend::comparison_expression): Likewise.
|
||
(Gcc_backend::lazy_boolean_expression): Likewise.
|
||
(Gcc_backend::constructor_expression): Likewise.
|
||
(Gcc_backend::array_constructor_expression): Likewise.
|
||
(Gcc_backend::array_initializer): Likewise.
|
||
(Gcc_backend::array_index_expression): Likewise.
|
||
(Gcc_backend::call_expression): Likewise.
|
||
(Gcc_backend::assignment_statement): Likewise.
|
||
(Gcc_backend::return_statement): Likewise.
|
||
(Gcc_backend::exception_handler_statement): Likewise.
|
||
(Gcc_backend::if_statement): Likewise.
|
||
(Gcc_backend::loop_expression): Likewise.
|
||
(Gcc_backend::exit_expression): Likewise.
|
||
(Gcc_backend::block): Likewise.
|
||
(Gcc_backend::convert_tree): Likewise.
|
||
(Gcc_backend::global_variable): Likewise.
|
||
(Gcc_backend::local_variable): Likewise.
|
||
(Gcc_backend::parameter_variable): Likewise.
|
||
(Gcc_backend::static_chain_variable): Likewise.
|
||
(Gcc_backend::temporary_variable): Likewise.
|
||
(Gcc_backend::label): Likewise.
|
||
(Gcc_backend::goto_statement): Likewise.
|
||
(Gcc_backend::label_address): Likewise.
|
||
(Gcc_backend::function): Likewise.
|
||
* rust-linemap.cc
|
||
(Gcc_linemap::to_string): Likewise.
|
||
(Gcc_linemap::location_file): Likewise.
|
||
(Gcc_linemap::location_line): Likewise.
|
||
(Gcc_linemap::location_column): Likewise.
|
||
(Gcc_linemap::is_predeclared): Likewise.
|
||
(Gcc_linemap::is_unknown): Likewise.
|
||
(RichLocation::RichLocation): Likewise.
|
||
(RichLocation::add_range): Likewise.
|
||
(RichLocation::add_fixit_insert_before): Likewise.
|
||
(RichLocation::add_fixit_insert_after): Likewise.
|
||
* rust-location.h
|
||
(class Location): Replace with typedef.
|
||
(operator<): Remove.
|
||
(operator==): Remove.
|
||
(operator+): Remove.
|
||
(operator-): Remove.
|
||
* typecheck/rust-hir-trait-resolve.cc
|
||
(AssociatedImplTrait::setup_associated_types): Initialize Location with UNKNOWN_LOCATION.
|
||
* typecheck/rust-hir-type-check-stmt.cc
|
||
(TypeCheckStmt::visit): Likewise.
|
||
* util/rust-token-converter.cc
|
||
(convert): Remove gcc_location method call.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* hir/tree/rust-hir-expr.h (BorrowExpr::is_double_borrow): New.
|
||
(ArrayElemsCopied::get_elem_to_copy)
|
||
(ArrayElemsCopied::get_num_copies_expr): Return unique_ptr.
|
||
(CallExpr::get_fnexpr): Likewise.
|
||
(ReturnExpr::get_expr): Likewise.
|
||
(StructExprStructFields::get_struct_base): New.
|
||
(MethodCallExpr::has_params): New.
|
||
(ClosureExpr::has_params): New.
|
||
(BlockExpr::get_inner_attrs): New.
|
||
(WhileLoopExpr::get_patterns): New.
|
||
(ForLoopExpr::get_pattern): New.
|
||
(IfLetExpr::get_if_block): Return ref to unique_ptr.
|
||
(IfLetExprConseqElse::get_else_block): Likewise.
|
||
(MatchExpr::get_inner_attrs): New.
|
||
* hir/tree/rust-hir-item.h (Module::get_module_name): New.
|
||
(ExternCrate::get_referenced_crate)
|
||
(ExternCrate::get_as_clause_name): New.
|
||
(UseTreeGlob::get_glob_type, UseTreeGlob::get_path): New.
|
||
(UseTreeList::get_path_type, UseTreeList::get_path)
|
||
(UseTreeList::get_trees): New.
|
||
(TraitItemKind::get_expr): Remove assert. unique_ptr can
|
||
be "empty". Must be checked in caller.
|
||
* hir/tree/rust-hir-pattern.h (IdentifierPattern::get_is_ref)
|
||
(IdentifierPattern::get_to_bind): New.
|
||
(RangePatternBoundType::get_has_minus): New.
|
||
(RangePattern::get_has_ellipsis_syntax): New.
|
||
(StructPatternField::get_outer_attrs): New.
|
||
(StructPatternFieldTuplePat::get_index)
|
||
(StructPatternFieldTuplePat::get_tuple_pattern): New.
|
||
(StructPatternFieldIdent::get_has_ref): New.
|
||
* hir/tree/rust-hir-stmt.h (LetStmt::get_outer_attrs): New.
|
||
(LetStmt::get_type)
|
||
(LetStmt::get_init_expr, LetStmt::get_pattern): Return unique_ptr.
|
||
(ExprStmt::get_expr): Likewise.
|
||
* hir/tree/rust-hir-type.h (TraitBound::get_for_lifetimes): New.
|
||
(TraitBound::get_in_params): New.
|
||
(TraitBound::get_opening_question_mark): New.
|
||
(ImplTraitType::get_type_param_bounds): New.
|
||
(TraitObjectType::get_has_dyn): New.
|
||
(TraitBound::get_type_in_parens): New.
|
||
(ImplTraitTypeOneBound::get_trait_bound): New.
|
||
(BareFunctionType::get_for_lifetimes)
|
||
(BareFunctionType::get_is_variadic)
|
||
(BareFunctionType::get_function_qualifiers): New.
|
||
* hir/tree/rust-hir.h (class Expr): Virtual inherit from FullVisitable.
|
||
(class Pattern): Likewise.
|
||
(ConstGenericParam::get_name): New.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Adjust call.
|
||
(TypeCheckExpr::resolve_fn_trait_call): Likewise.
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Adjust call.
|
||
(CompileExpr::array_copied_expr): Likewise.
|
||
(CompileExpr::generate_possible_fn_trait_call): Likewise.
|
||
* backend/rust-compile-stmt.cc (CompileStmt::visit): Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise.
|
||
* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
|
||
* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
|
||
* hir/rust-hir-dump.cc (Dump::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-path-probe.h: called error function
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args):
|
||
called error function
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* hir/tree/rust-hir-expr.h (class ArrayElems): Inherit from FullVisitable.
|
||
(class StructExprField): Likewise.
|
||
* hir/tree/rust-hir-item.h (class WhereClauseItem): Likewise.
|
||
(class UseTree): Likewise.
|
||
(UseTreeRebind::get_path, UseTreeRebind::get_identifier)
|
||
(UseTreeRebind::get_bind_type): New.
|
||
(UseDeclaration::get_use_tree): New.
|
||
(struct TraitFunctionDecl): Change struct to ...
|
||
(class TraitFunctionDecl): ... class.
|
||
(TraitFunctionDecl::get_where_clause): New.
|
||
(StructField::get_outer_attrs): New.
|
||
(struct TupleField): Change struct to ...
|
||
(class TupleField): ... class.
|
||
(TupleField::get_visibility, TupleField::get_outer_attrs): New.
|
||
* hir/tree/rust-hir-pattern.h (class TupleStructItems): Inherit
|
||
from FullVisitable.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* lex/rust-lex.cc (Lexer::build_token): Replace function call.
|
||
(Lexer::parse_string): Likewise.
|
||
(Lexer::parse_identifier_or_keyword): Likewise.
|
||
(Lexer::parse_raw_string): Likewise.
|
||
(Lexer::parse_char_or_lifetime): Likewise.
|
||
(Lexer::get_input_codepoint_length): Deleted.
|
||
(Lexer::peek_codepoint_input): Deleted.
|
||
(Lexer::skip_codepoint_input): Deleted.
|
||
* lex/rust-lex.h: Remove some methods and fields
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound): track output
|
||
* util/rust-hir-map.cc (Mappings::lookup_trait_item_lang_item): new helper
|
||
* util/rust-hir-map.h: add prototype for helper
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::generate_possible_fn_trait_call): use fnexpr
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::resolve_fn_trait_call): likewise
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): called rust_error_at
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* hir/tree/rust-hir.h (struct Crate): Rename struct into ...
|
||
(class Crate): ... class, and add get_items.
|
||
* backend/rust-compile.cc (CompileCrate::go): Adapt to visibility change of items.
|
||
* checks/errors/privacy/rust-privacy-check.cc (Resolver::resolve): Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::go): Likewise.
|
||
* checks/errors/privacy/rust-pub-restricted-visitor.cc (PubRestrictedVisitor::go): Likewise.
|
||
* checks/errors/privacy/rust-visibility-resolver.cc (VisibilityResolver::go): Likewise.
|
||
* checks/errors/rust-const-checker.cc (ConstChecker::go): Likewise.
|
||
* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::go): Likewise.
|
||
* checks/lints/rust-lint-marklive.cc (FindEntryPoint::find): Likewise.
|
||
* checks/lints/rust-lint-scan-deadcode.h (ScanDeadCode::Scan): Likewise.
|
||
* metadata/rust-export-metadata.cc (PublicInterface::gather_export_data): Likewise.
|
||
* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): Likewise.
|
||
* hir/rust-hir-dump.cc (CompileCrate::go): Likewise.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* hir/tree/rust-hir-expr.h (AwaitExpr::get_awaited_expr): New.
|
||
(AsyncBlockExpr::get_has_move, AsyncBlockExpr::get_block_expr): New.
|
||
* hir/tree/rust-hir-item.h (Enum::get_where_clause): New.
|
||
(Trait::get_where_clause, Trait::is_unsafe): New.
|
||
(ExternalItem::get_visibility): New.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* hir/tree/rust-hir.h (class FullVisitable): New.
|
||
(class Stmt): Adjust with new class.
|
||
(class Expr): Likewise.
|
||
(class Pattern): Likewise.
|
||
(class Type): Likewise.
|
||
(class TypeParamBound): Likewise.
|
||
(class GenericParam): Likewise.
|
||
(class TraitItem): Likewise.
|
||
(class ImplItem): Likewise.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* hir/tree/rust-hir.h (class WithInnerAttrs): New.
|
||
(class Item): Adjust to new WithInnerAttrs class.
|
||
(struct Crate): Likewise.
|
||
* hir/rust-hir-dump.cc (Dump::go): Likewise.
|
||
(Dump::visit): Likewise.
|
||
* hir/tree/rust-hir-expr.h (class GroupedExpr): Likewise.
|
||
(class ArrayExpr): Likewise.
|
||
(class TupleExpr): Likewise.
|
||
(class StructExprStruct): Likewise.
|
||
(class BlockExpr): Likewise.
|
||
(class MatchExpr): Likewise.
|
||
* hir/tree/rust-hir-item.h (TypeParam::get_outer_attribute): New.
|
||
(class Module): Adjust to new WithInnerAttrs class.
|
||
(struct StructField): change struct to...
|
||
(class StructField): ... a class.
|
||
(class ImplBlock): Adjust to new WithInnerAttrs class.
|
||
(class ExternBlock): Likewise.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* hir/tree/rust-hir-type.h (ArrayType::get_element_type): Returns
|
||
unique_ptr.
|
||
* hir/tree/rust-hir-expr.h (ArithmeticOrLogicalExpr::get_lhs)
|
||
(ArithmeticOrLogicalExpr::get_rhs): Likewise.
|
||
(ComparisonExpr::get_lhs, ComparisonExpr::get_rhs): Likewise.
|
||
(LazyBooleanExpr::get_lhs, LazyBooleanExpr::get_rhs): Likewise.
|
||
(AssignmentExpr::get_lhs, AssignmentExpr::get_rhs): Likewise.
|
||
(ArrayExpr::get_internal_elements): Likewise.
|
||
(ArrayIndexExpr::get_index_expr, ArrayIndexExpr::get_array_expr):
|
||
Likewise.
|
||
(StructExprFieldWithVal::get_value): Likewise.
|
||
(IfExpr::get_if_condition, IfExpr::get_if_block): Likewise.
|
||
(ExprWithBlock::get_else_block): Likewise.
|
||
* hir/tree/rust-hir-item.h (FunctionParam::get_param_name)
|
||
(FunctionParam::get_type): Likewise.
|
||
(ConstantItem::get_type, ConstantItem::get_expr): Likewise.
|
||
(StaticItem::get_expr, StaticItem::get_type): Likewise.
|
||
* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
|
||
Adjust for previous change.
|
||
* backend/rust-compile-block.cc (CompileConditionalBlocks::visit):
|
||
Likewise.
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
|
||
* backend/rust-compile-item.cc (CompileItem::visit): Likewise.
|
||
* backend/rust-compile-struct-field-expr.cc
|
||
(CompileStructExprField::visit): Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc
|
||
(PrivacyReporter::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
|
||
Likewise.
|
||
* typecheck/rust-hir-type-check-implitem.cc
|
||
(TypeCheckImplItem::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
|
||
Likewise.
|
||
* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit):
|
||
Likewise.
|
||
* typecheck/rust-hir-type-check-struct.cc
|
||
(TypeCheckStructExpr::visit): Likewise.
|
||
* typecheck/rust-hir-type-check.cc
|
||
(TraitItemReference::get_type_from_fn): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-pattern.h: Change constructor to accept new parameter
|
||
instead of defaulting on string type.
|
||
* parse/rust-parse-impl.h (Parser::parse_literal_or_range_pattern):
|
||
Propagate type hint.
|
||
(Parser::parse_pattern_no_alt): Likewise.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* lex/rust-lex.cc (Lexer::parse_byte_char):add check for range of codepoint
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.cc (emit_invalid_field_error): Refactored Field
|
||
Error Function
|
||
(TypeCheckPattern::visit): called emit_invalid_field_error function
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-expand.cc
|
||
(MacroExpander::match_matcher): Remove append_fragment inside repetitions.
|
||
(MacroExpander::match_n_matches): Use sub_stack push/pop to handle repetitions.
|
||
(MatchedFragmentContainer::add_fragment): Add MatchedFragmentContainer accepting version.
|
||
* expand/rust-macro-expand.h
|
||
(MatchedFragmentContainer::add_fragment): Likewise.
|
||
(MatchedFragmentContainerRepetition::add_fragment): Likewise.
|
||
(SubstititionScope::append_fragment): Likewise.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-casts.cc (TypeCastRules::check): apply new argument
|
||
* typecheck/rust-coercion.cc (TypeCoercionRules::Coerce): track if this is a cast site
|
||
(TypeCoercionRules::TryCoerce): update ctor
|
||
(TypeCoercionRules::TypeCoercionRules): cleanup error handling
|
||
(TypeCoercionRules::do_coercion): likewise
|
||
(TypeCoercionRules::coerce_unsafe_ptr): only infer in try mode
|
||
(TypeCoercionRules::coerce_borrowed_pointer): cleanup
|
||
* typecheck/rust-coercion.h: update header
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-trait-reference.h: update prototype
|
||
* typecheck/rust-hir-trait-resolve.cc: add generic args as an out param
|
||
* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): use the generics
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Add comment
|
||
after tail expressions.
|
||
* ast/rust-ast-dump.cc (Dump::require_spacing): Check for
|
||
missing previous token.
|
||
* ast/rust-ast-dump.h: Output formatting characters.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::collect): Collect
|
||
CollectItems once done.
|
||
(TokenCollector::newline): Add newline formatting
|
||
implementation.
|
||
(TokenCollector::indentation): Add indentation implementation.
|
||
(TokenCollector::increment_indentation): Add indentation
|
||
increment.
|
||
(TokenCollector::comment): Add new comment formatting option.
|
||
* ast/rust-ast-collector.h: Update prototypes.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::collect_tokens):
|
||
Filter tokens.
|
||
(TokenCollector::visit_items_joined_by_separator): Change store
|
||
call.
|
||
(TokenCollector::visit_as_line): Likewise.
|
||
(TokenCollector::visit_items_as_block): Likewise.
|
||
(TokenCollector::trailing_comma): Likewise.
|
||
(TokenCollector::visit): Likewise.
|
||
(TokenCollector::visit_closure_common): Likewise.
|
||
(TokenCollector::visit_function_common): Likewise.
|
||
* ast/rust-ast-collector.h (class CollectItem): Add class to
|
||
differentiate between formatting and raw data (tokens).
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::TokenCollector):
|
||
Remove constructor, changing it to an implicit default
|
||
constructor.
|
||
* ast/rust-ast-collector.h: Change from container reference to
|
||
direct container.
|
||
* ast/rust-ast-dump.h: Change call to constructor.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::require_spacing): Add a function
|
||
to determine wether a space shall output.
|
||
* ast/rust-ast-dump.h: Add function prototype as well as
|
||
condition.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Add a visit
|
||
function for visitable abstract class so we can call a dump on
|
||
any visitable item.
|
||
* ast/rust-ast-collector.h: Add new visit function prototype.
|
||
* ast/rust-ast-dump.cc (Dump::go): Add call to process function.
|
||
(Dump::visit): Remove functions.
|
||
(Dump::visit_items_joined_by_separator): Likewise.
|
||
(Dump::visit_as_line): Likewise.
|
||
(Dump::visit_items_as_lines): Likewise.
|
||
(Dump::visit_items_as_block): Likewise.
|
||
(Dump::visit_function_common): Likewise.
|
||
(get_delimiters): Likewise.
|
||
(Dump::debug): Update with call to tokencollector.
|
||
* ast/rust-ast-dump.h (RUST_AST_DUMP_H): Move include
|
||
directives.
|
||
(class Dump): Remove multiple prototypes and add generic process
|
||
function.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Add
|
||
semicolon in extern blocks.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* rust-session-manager.cc (Session::enable_dump): Remove
|
||
tokenstream dump.
|
||
(Session::compile_crate): Likewise.
|
||
(Session::dump_tokenstream): Likewise.
|
||
* rust-session-manager.h (struct CompileOptions): Likewise.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* lex/rust-lex.cc (Lexer::build_token):add check for all kinds of whitespaces
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Add default constructors.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Change with
|
||
call to getter.
|
||
* ast/rust-ast.cc (Module::as_string): Likewise.
|
||
(StaticItem::as_string): Likewise.
|
||
(TupleStruct::as_string): Likewise.
|
||
(Method::as_string): Likewise.
|
||
(StructStruct::as_string): Likewise.
|
||
(UseTreeRebind::as_string): Likewise.
|
||
(Enum::as_string): Likewise.
|
||
(Trait::as_string): Likewise.
|
||
(Union::as_string): Likewise.
|
||
(Function::as_string): Likewise.
|
||
(TypeAlias::as_string): Likewise.
|
||
(MacroRulesDefinition::as_string): Likewise.
|
||
(FieldAccessExpr::as_string): Likewise.
|
||
(MacroMatchFragment::as_string): Likewise.
|
||
(TypeParam::as_string): Likewise.
|
||
(StructExprFieldIdentifierValue::as_string): Likewise.
|
||
(EnumItem::as_string): Likewise.
|
||
(StructField::as_string): Likewise.
|
||
(ExternalTypeItem::as_string): Likewise.
|
||
(ExternalStaticItem::as_string): Likewise.
|
||
(ExternalFunctionItem::as_string): Likewise.
|
||
(TraitFunctionDecl::as_string): Likewise.
|
||
(TraitMethodDecl::as_string): Likewise.
|
||
(TraitItemConst::as_string): Likewise.
|
||
(TraitItemType::as_string): Likewise.
|
||
(MaybeNamedParam::as_string): Likewise.
|
||
(MetaListPaths::as_string): Likewise.
|
||
(MetaListNameValueStr::as_string): Likewise.
|
||
(Module::process_file_path): Likewise.
|
||
(MetaListNameValueStr::check_cfg_predicate): Likewise.
|
||
(MetaListPaths::check_cfg_predicate): Likewise.
|
||
(MetaWord::check_cfg_predicate): Likewise.
|
||
(MetaNameValueStr::check_cfg_predicate): Likewise.
|
||
(MetaNameValueStr::to_attribute): Likewise.
|
||
(MetaWord::to_attribute): Likewise.
|
||
(MetaListPaths::to_attribute): Likewise.
|
||
(MetaListNameValueStr::to_attribute): Likewise.
|
||
(operator<<): Change Identifier class <<
|
||
operator overload for standard output stream.
|
||
* ast/rust-ast.h (class Identifier): Change typedef to proper
|
||
class definition.
|
||
(operator<<): Add prototype for operator overload.
|
||
(class Token): Change getter identifier.
|
||
(class MetaListNameValueStr): Likewise.
|
||
(class PathExpr): Likewise.
|
||
* ast/rust-expr.h: Likewise.
|
||
* ast/rust-item.h: Likewise.
|
||
* ast/rust-macro.h: Likewise.
|
||
* ast/rust-path.cc (GenericArg::disambiguate_to_type): Likewise.
|
||
(GenericArgsBinding::as_string): Likewise.
|
||
(ConstGenericParam::as_string): Likewise.
|
||
* ast/rust-path.h: Likewise.
|
||
* ast/rust-pattern.cc (IdentifierPattern::as_string): Likewise.
|
||
(StructPatternFieldIdentPat::as_string): Likewise.
|
||
(StructPatternFieldIdent::as_string): Likewise.
|
||
* ast/rust-type.h: Likewise.
|
||
* backend/rust-compile-base.cc: Likewise.
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
|
||
* backend/rust-compile-extern.h: Likewise.
|
||
* backend/rust-compile-fnparam.cc (CompileFnParam::visit):
|
||
Likewise.
|
||
* backend/rust-compile-implitem.cc (CompileTraitItem::visit):
|
||
Likewise.
|
||
* backend/rust-compile-item.cc (CompileItem::visit): Likewise.
|
||
* backend/rust-compile-pattern.cc (CompilePatternBindings::visit): Likewise.
|
||
* backend/rust-compile-struct-field-expr.cc (CompileStructExprField::visit):
|
||
Likewise.
|
||
* backend/rust-compile-var-decl.h: Likewise.
|
||
* backend/rust-compile.cc: Likewise.
|
||
* checks/errors/rust-unsafe-checker.cc (check_extern_call):
|
||
Likewise.
|
||
* checks/lints/rust-lint-marklive.cc (MarkLive::visit):
|
||
Likewise.
|
||
* checks/lints/rust-lint-scan-deadcode.h: Likewise.
|
||
* expand/rust-derive-clone.cc (DeriveClone::clone_fn): Likewise.
|
||
(DeriveClone::visit_tuple): Likewise.
|
||
(DeriveClone::visit_struct): Likewise.
|
||
(DeriveClone::visit_union): Likewise.
|
||
* expand/rust-derive-copy.cc (DeriveCopy::visit_struct):
|
||
Likewise.
|
||
(DeriveCopy::visit_tuple): Likewise.
|
||
(DeriveCopy::visit_enum): Likewise.
|
||
(DeriveCopy::visit_union): Likewise.
|
||
* expand/rust-macro-expand.cc (MacroExpander::match_matcher):
|
||
Likewise.
|
||
(MacroExpander::match_n_matches): Likewise.
|
||
(MacroExpander::match_repetition): Likewise.
|
||
(MacroExpander::match_repetition_skipped_metavars): Likewise.
|
||
* hir/rust-ast-lower-base.cc (struct_field_name_exists):
|
||
Likewise.
|
||
* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
|
||
* hir/rust-ast-lower-type.cc (ASTLowerGenericParam::visit):
|
||
Likewise.
|
||
* hir/rust-hir-dump.cc (Dump::visit): Likewise.
|
||
* hir/tree/rust-hir-expr.h: Likewise.
|
||
* hir/tree/rust-hir-item.h: Likewise.
|
||
* hir/tree/rust-hir-path.h: Likewise.
|
||
* hir/tree/rust-hir-type.h: Likewise.
|
||
* hir/tree/rust-hir.cc (Module::as_string): Likewise.
|
||
(StaticItem::as_string): Likewise.
|
||
(TupleStruct::as_string): Likewise.
|
||
(ConstantItem::as_string): Likewise.
|
||
(StructStruct::as_string): Likewise.
|
||
(UseTreeRebind::as_string): Likewise.
|
||
(Enum::as_string): Likewise.
|
||
(Trait::as_string): Likewise.
|
||
(Union::as_string): Likewise.
|
||
(Function::as_string): Likewise.
|
||
(TypeAlias::as_string): Likewise.
|
||
(FieldAccessExpr::as_string): Likewise.
|
||
(TypeParam::as_string): Likewise.
|
||
(GenericArgsBinding::as_string): Likewise.
|
||
(StructPatternFieldIdent::as_string): Likewise.
|
||
(StructPatternFieldIdentPat::as_string): Likewise.
|
||
(IdentifierPattern::as_string): Likewise.
|
||
(StructExprFieldIdentifierValue::as_string): Likewise.
|
||
(EnumItem::as_string): Likewise.
|
||
(StructField::as_string): Likewise.
|
||
(ExternalStaticItem::as_string): Likewise.
|
||
(ExternalFunctionItem::as_string): Likewise.
|
||
(NamedFunctionParam::as_string): Likewise.
|
||
(TraitFunctionDecl::as_string): Likewise.
|
||
(TraitItemConst::as_string): Likewise.
|
||
(TraitItemType::as_string): Likewise.
|
||
(MaybeNamedParam::as_string): Likewise.
|
||
* hir/tree/rust-hir.h: Likewise.
|
||
* parse/rust-parse-impl.h (Parser::parse_macro_match_fragment):
|
||
Likewise.
|
||
(Parser::parse_module): Likewise.
|
||
(Parser::parse_use_tree): Likewise.
|
||
(Parser::parse_maybe_named_param): Likewise.
|
||
* resolve/rust-ast-resolve-implitem.h: Likewise.
|
||
* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
|
||
Likewise.
|
||
(ResolveItem::visit): Likewise.
|
||
(flatten_rebind): Likewise.
|
||
(ResolveExternItem::visit): Likewise.
|
||
(rust_flatten_rebind): Likewise.
|
||
(rust_flatten_rebind_nested): Likewise.
|
||
* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go):
|
||
Likewise.
|
||
(PatternDeclaration::visit): Likewise.
|
||
(PatternDeclaration::add_new_binding): Likewise.
|
||
* resolve/rust-ast-resolve-stmt.h: Likewise.
|
||
* resolve/rust-ast-resolve-toplevel.h: Likewise.
|
||
* resolve/rust-ast-resolve-type.h: Likewise.
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Likewise.
|
||
* typecheck/rust-autoderef.cc: Likewise.
|
||
* typecheck/rust-hir-dot-operator.cc (MethodResolver::select):
|
||
Likewise.
|
||
* typecheck/rust-hir-path-probe.cc (PathProbeType::visit):
|
||
Likewise.
|
||
* typecheck/rust-hir-trait-reference.cc (TraitReference::get_name): Likewise.
|
||
* typecheck/rust-hir-trait-resolve.cc (ResolveTraitItemToRef::visit): Likewise.
|
||
(TraitResolver::resolve_trait): Likewise.
|
||
(TraitItemReference::resolve_item): Likewise.
|
||
(AssociatedImplTrait::setup_raw_associated_types): Likewise.
|
||
* typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
|
||
Likewise.
|
||
* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit): Likewise.
|
||
(TypeCheckImplItem::visit): Likewise.
|
||
(TypeCheckImplItemWithTrait::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
|
||
Likewise.
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-type.cc (TypeResolveGenericParam::visit): Likewise.
|
||
* typecheck/rust-hir-type-check.cc (TraitItemReference::get_type_from_fn): Likewise.
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args): Likewise.
|
||
* util/rust-attributes.cc (check_doc_attribute): Likewise.
|
||
* util/rust-hir-map.cc (Mappings::insert_macro_def): Likewise.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* lex/rust-lex.cc (is_float_digit):Change types of param to `uint32_t`
|
||
(is_x_digit):Likewise
|
||
(is_octal_digit):Likewise
|
||
(is_bin_digit):Likewise
|
||
(check_valid_float_dot_end):Likewise
|
||
(is_whitespace):Likewise
|
||
(is_non_decimal_int_literal_separator):Likewise
|
||
(is_identifier_start):Likewise
|
||
(is_identifier_continue):Likewise
|
||
(Lexer::skip_broken_string_input):Likewise
|
||
(Lexer::build_token):Remove handling BOM
|
||
(Lexer::parse_in_type_suffix):Modify use of `current_char`
|
||
(Lexer::parse_in_decimal):Likewise
|
||
(Lexer::parse_escape):Likewise
|
||
(Lexer::parse_utf8_escape):Likewise
|
||
(Lexer::parse_partial_string_continue):Likewise
|
||
(Lexer::parse_partial_hex_escape):Likewise
|
||
(Lexer::parse_partial_unicode_escape):Likewise
|
||
(Lexer::parse_byte_char):Likewise
|
||
(Lexer::parse_byte_string):Likewise
|
||
(Lexer::parse_raw_byte_string):Likewise
|
||
(Lexer::parse_raw_identifier):Likewise
|
||
(Lexer::parse_non_decimal_int_literal):Likewise
|
||
(Lexer::parse_decimal_int_or_float):Likewise
|
||
(Lexer::peek_input):Change return type to `Codepoint`
|
||
(Lexer::get_input_codepoint_length):Change to return 1
|
||
(Lexer::peek_codepoint_input):Change to be wrapper of `peek_input`
|
||
(Lexer::skip_codepoint_input):Change to be wrapper of `skip_input`
|
||
(Lexer::test_get_input_codepoint_n_length):Deleted
|
||
(Lexer::split_current_token):Deleted
|
||
(Lexer::test_peek_codepoint_input):Deleted
|
||
(Lexer::start_line):Move backwards
|
||
(assert_source_content):New helper function for selftest
|
||
(test_buffer_input_source):New helper function for selftest
|
||
(test_file_input_source):Likewise
|
||
(rust_input_source_test):New test
|
||
* lex/rust-lex.h (rust_input_source_test):New test
|
||
* rust-lang.cc (run_rust_tests):Add selftest
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-expand.cc
|
||
(MacroExpander::match_repetition_skipped_metavars): New.
|
||
(MacroExpander::match_repetition): Use new method.
|
||
* expand/rust-macro-expand.h
|
||
(MacroExpander::match_repetition_skipped_metavars): New.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): called rust_error_at
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): called rust_error_at
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-expand.cc
|
||
(MacroExpander::match_token): Match token instead of token id.
|
||
* parse/rust-parse-impl.h
|
||
(Parser::skip_token): Add token-skipping variant.
|
||
(Parser::expect_token): Likewise.
|
||
* parse/rust-parse.h
|
||
(Parser::skip_token): Likewise.
|
||
(Parser::expect_token): Likewise.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* lang.opt: Add -frust-name-resolution-2.0 option
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-autoderef.cc (AutoderefCycle::cycle): add check for pointers
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-autoderef.cc: use new selection filter
|
||
* typecheck/rust-hir-dot-operator.cc (MethodResolver::Select): new slection Filter
|
||
* typecheck/rust-hir-dot-operator.h: New select prototype
|
||
* typecheck/rust-hir-type-check-expr.cc: call select
|
||
* typecheck/rust-type-util.cc (try_coercion): new helper
|
||
* typecheck/rust-type-util.h (try_coercion): helper prototype
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): passed "E0277"
|
||
* typecheck/rust-tyty.cc (BaseType::bounds_compatible): passed "E0277"
|
||
|
||
2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
|
||
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::visit):
|
||
Expand expressions in more contexts.
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
|
||
Visit enum variants.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.cc (BlockExpr::normalize_tail_expr): Refactor
|
||
code and warn about dangling reference.
|
||
* expand/rust-expand-visitor.cc (expand_stmt_attribute):
|
||
Document function and change argument names to make those
|
||
clearer.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::expand_inner_stmts):
|
||
Remove second argument.
|
||
(ExpandVisitor::visit): Remove argument from function call.
|
||
* expand/rust-expand-visitor.h: Update function prototype.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Change
|
||
call to expand_inner_stmts.
|
||
(expand_tail_expr): Change argument name and try to expand the
|
||
last statement as a tail expression once all statements have
|
||
been expanded.
|
||
* expand/rust-expand-visitor.h: Change prototype to accept
|
||
parent class.
|
||
* ast/rust-expr.h: Add try_convert_last_stmt function prototype.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-expr.h: Add a function to take tail expr as well
|
||
as a function to set a tail expression.
|
||
* expand/rust-expand-visitor.cc (expand_tail_expr): Add tail
|
||
expression expansion function.
|
||
(ExpandVisitor::visit): Add call to tail expr expansion in for
|
||
BlockExpr.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.cc : Change type from pointer to
|
||
reference and expand statements from statements.
|
||
* ast/rust-macro.h: Return macro kind.
|
||
* ast/rust-ast.h: Add Statement kind.
|
||
* ast/rust-item.h: Change module.
|
||
* ast/rust-stmt.h: Return kind.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-expand.cc
|
||
(MacroExpander::expand_decl_macro):
|
||
Use pointers/smart pointers to refer to MatchedFragmentContainer instances.
|
||
(MacroExpander::transcribe_rule): Likewise.
|
||
(MatchedFragmentContainer::get_single_fragment): New implementation.
|
||
(MatchedFragmentContainer::get_fragments): Likewise.
|
||
(MatchedFragmentContainer::add_fragment): Likewise.
|
||
(MatchedFragmentContainer::zero): Likewise.
|
||
(MatchedFragmentContainer::metavar): Likewise.
|
||
* expand/rust-macro-expand.h
|
||
(class MatchedFragmentContainer): Make abstract.
|
||
(class MatchedFragmentContainerMetaVar): New.
|
||
(class MatchedFragmentContainerRepetition): New.
|
||
(class SubstitutionScope):
|
||
Use pointers/smart pointers to refer to MatchedFragmentContainer instances.
|
||
(MacroExpander::transcribe_rule): Likewise.
|
||
* expand/rust-macro-substitute-ctx.cc
|
||
(SubstituteCtx::substitute_metavar): Likewise.
|
||
(SubstituteCtx::check_repetition_amount): Likewise.
|
||
(SubstituteCtx::substitute_repetition): Likewise.
|
||
* expand/rust-macro-substitute-ctx.h
|
||
(class SubstituteCtx): Likewise.
|
||
|
||
2024-01-16 Muhammad Mahad <mahadtxt@gmail.com>
|
||
|
||
* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): called rust_error_at
|
||
* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): called rust_error_at
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::ResolveImplBlockSelfWithInference):
|
||
arguments mappings as an out parameter and apply them to the bounds
|
||
* typecheck/rust-hir-type-check-item.h: update the prototype
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
|
||
apply the arguments to the segment type
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
|
||
simplify lookup of the respective predicate
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionArg::SubstitutionArg): track original parameter
|
||
(SubstitutionArg::operator=): update copy ctor
|
||
(SubstitutionArg::get_param_ty): use original param
|
||
(SubstitutionArg::as_string): update as_string
|
||
* typecheck/rust-tyty-subst.h: add new private field
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::ResolveImplBlockSelfWithInference):
|
||
New helper utility to infer non concrete types and handle the case where its not a
|
||
binding generic type (which inherits SubstitutionRef)
|
||
* typecheck/rust-hir-type-check-item.h: new helper prototype
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): use this helper
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-trait-resolve.cc: use lookup_predicate (DefID)
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): fix formatting
|
||
|
||
2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
|
||
|
||
* ast/rust-ast.h (MacroInvocation::add_semicolon): New method.
|
||
(Expr::to_stmt): Remove method.
|
||
* ast/rust-macro.h (MacroInvocation::add_semicolon): Add override.
|
||
(MacroInvocation::to_stmt): Remove override.
|
||
* ast/rust-stmt.h: Remove use of Expr::to_stmt.
|
||
(ExprStmt::add_semicolon): Add override.
|
||
* expand/rust-macro-expand.h (struct MacroExpander):
|
||
Add EXPR/STMT and remove BLOCK from ContextType.
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::maybe_expand_expr): Use EXPR context.
|
||
(ExpandVisitor::expand_inner_stmts): Use STMT context.
|
||
(ExpandVisitor::visitor): Remove use of BLOCK context.
|
||
* expand/rust-macro-expand.cc (parse_many): Pass enum by value.
|
||
(transcribe_on_delimiter): Remove function.
|
||
(transcribe_context): Use EXPR/STMT contexts.
|
||
(MacroExpander::parse_proc_macro_output): Use EXPR/STMT contexts.
|
||
(transcribe_many_stmts): Parse statements with semicolons.
|
||
* parse/rust-parse-impl.h (Parser::parse_stmt):
|
||
Delegate macro parsing to parse_expr_stmt, check for ! after macro_rules.
|
||
(Parser::parse_let_stmt): Work around lack of NT tokens.
|
||
(Parser::parse_expr_stmt): Handle statements at end of macro expansions.
|
||
(Parser::parse_expr_stmt): Parse macro statements/expression statements
|
||
starting with a macro.
|
||
(Parser::parse_match_expr): Don't modify flag unnecessarily.
|
||
(Parser::parse_stmt_or_expr):
|
||
Parse macro statements/expression statements starting with a macro.
|
||
(Parser::parse_path_based_stmt_or_expr): Remove method.
|
||
(Parser::parse_macro_invocation_maybe_semi): Remove method.
|
||
(Parser::parse_expr): Move code into left_denotations.
|
||
(Parser::left_denotations): New method.
|
||
(Parser::null_denotation): Split out methods for cases with and without paths.
|
||
(Parser::null_denotation_path): New method.
|
||
(Parser::null_denotation_not_path): New method.
|
||
(Parser::parse_macro_invocation_partial): Don't check for semicolon here.
|
||
* parse/rust-parse.h: Update declarations.
|
||
(struct ParseRestrictions): Additional flag.
|
||
|
||
2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
|
||
|
||
* ast/rust-ast.cc (BlockExpr::strip_tail_expr):
|
||
Don't normalize tail expression in this method.
|
||
(BlockExpr::normalize_tail_expr): New method that only does the normalization.
|
||
* ast/rust-expr.h: Declare new method.
|
||
* hir/rust-ast-lower-block.h: Normalize tail expressions on blocks before lowering.
|
||
|
||
2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Print macro invocations.
|
||
|
||
2024-01-16 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* lex/rust-lex.cc (is_whitespace):add all lacked codepoints valid as whitespaces
|
||
(is_identifier_start):new function to check XID_Start and underscore
|
||
(is_identifier_continue):new function to check XID_Continue
|
||
(Lexer::build_token):tokenize Unicode identifiers
|
||
(Lexer::parse_partial_string_continue):add comments
|
||
(Lexer::parse_partial_unicode_escape):add comments
|
||
(Lexer::parse_raw_identifier):change to use `is_identifier_scontinue`
|
||
(Lexer::parse_identifier_or_keyword):change to use `is_identifier_continue`
|
||
(Lexer::parse_char_or_lifetime):change to use `is_identifier_start/continue`
|
||
(Lexer::skip_codepoint_input):do not attempt to skip input when bumping EOF
|
||
* lex/rust-lex.h:add `current_char32` field
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* lex/rust-lex.cc
|
||
(Lexer::classify_keyword): Check if iterator is valid before dereferencing.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-expand.cc
|
||
(MacroExpander::match_repetition): Remove redundant rust_error_at call.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-unify.cc (UnifyRules::go): dont check bounds on placeholders
|
||
|
||
2024-01-16 tieway59 <tieway59@foxmail.com>
|
||
|
||
* typecheck/rust-tycheck-dump.h: Delete this file
|
||
* rust-session-manager.cc: Remove `Session::dump_type_resolution`
|
||
and `TYPE_RESOLUTION_DUMP`
|
||
* rust-session-manager.h: Likewise
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address):
|
||
match the fntype to the candidate
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* expand/rust-derive.h: Store AstBuilder and location.
|
||
* expand/rust-derive.cc (DeriveVisitor::DeriveVisitor): Update constructor.
|
||
* expand/rust-derive-clone.h: Remove members now stored in `DeriveVisitor`.
|
||
* expand/rust-derive-copy.h: Likewise.
|
||
* expand/rust-derive-clone.cc (DeriveClone::DeriveClone): Update constructor.
|
||
* expand/rust-derive-copy.cc (DeriveCopy::DeriveCopy): Likewise.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-item.cc (CompileItem::visit): ensure assoicated types are setup
|
||
* typecheck/rust-hir-trait-reference.h: new interface for concrete impl block
|
||
* typecheck/rust-hir-trait-resolve.cc (AssociatedImplTrait::setup_raw_associated_types):
|
||
ensure we setup assoicated types for this impl block
|
||
|
||
2024-01-16 Dave Evans <dave@dmetwo.org>
|
||
|
||
* backend/rust-compile-expr.cc (check_match_scrutinee): Add REF type to rust_assert.
|
||
(CompileExpr::visit): Add REF type for scrutinee_kind in MatchExpr visitor.
|
||
|
||
2024-01-16 TieWay59 <tieway59@foxmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc: Remove obsolete error diagnostic
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-implitem.cc (TypeCheckImplItemWithTrait::visit):
|
||
use new interface
|
||
* typecheck/rust-type-util.cc (types_compatable): implementation of new interface
|
||
* typecheck/rust-type-util.h (types_compatable): prototype
|
||
* typecheck/rust-unify.cc (UnifyRules::expect_placeholder):
|
||
It is allow for unification against placeholders
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.cc (derive_item): Add const
|
||
attribute to the trait name argument.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.cc (get_traits_to_derive): Change
|
||
assertion to allow empty derive directives.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.cc (expand_attribute): Add function
|
||
to expand a given attribute on a given item.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Change
|
||
return type to ast fragment.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.cc (get_traits_to_derive): Change
|
||
the function to get traits in a given attribute instead of an
|
||
attribute vector.
|
||
(ExpandVisitor::expand_struct_fields): Remove call in visitor.
|
||
(ExpandVisitor::expand_function_params): Likewise.
|
||
(ExpandVisitor::expand_closure_params): Likewise.
|
||
(ExpandVisitor::visit): Likewise.
|
||
(ExpandVisitor::expand_outer_attribute): Remove function.
|
||
(ExpandVisitor::visit_outer_attrs): Remove function.
|
||
* expand/rust-expand-visitor.h: Remove function prototypes.
|
||
(ExpandVisitor::visit_outer_attrs): Remove function.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.h: Remove fragment collection fro
|
||
procedural macros.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Remove
|
||
procedural macro fragment from expander.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-fragment.cc (Fragment::Fragment): Remove
|
||
overwrite member in constructor.
|
||
(Fragment::operator=): Removal of overwrite member in copy.
|
||
(Fragment::should_overwrite): Remove overwrite getter.
|
||
* ast/rust-ast-fragment.h: Remove overwrite boolean member.
|
||
* expand/rust-expand-visitor.cc (derive_item): Add a function to
|
||
derive items using the expander for now.
|
||
(builtin_derive_item): Rename from derive_item to
|
||
builtin_derive_item.
|
||
(ExpandVisitor::visit): Remove visit to derive attributes.
|
||
(ExpandVisitor::expand_derive): Remove derive attribute visitor.
|
||
(ExpandVisitor::visit_attrs_with_derive): Likewise.
|
||
* expand/rust-expand-visitor.h: Update insertion of other kind
|
||
of proc macros. We no longer have an overwrite attribute in the
|
||
fragment.
|
||
* expand/rust-macro-expand.cc (MacroExpander::parse_procmacro_output):
|
||
Return the fragment instead of inserting it.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Return
|
||
fragment.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.h: Update enum name to match
|
||
definition.
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::expand_derive):
|
||
Add call to expander.
|
||
(ExpandVisitor::expand_outer_attribute):
|
||
Change call to macro expander.
|
||
(ExpandVisitor::expand_inner_attribute): Likewise.
|
||
* expand/rust-expand-visitor.h: Remove const attribute to match
|
||
visitor declaration. Attach result to the AST. Add condition for
|
||
item erasure.
|
||
* expand/rust-proc-macro.h: Add token collector and expansion
|
||
call. Add lexers and parsers for each proc macro type and uses
|
||
them to parse macro output.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Add
|
||
functions.
|
||
* expand/rust-proc-macro.cc (ProcMacroExpander::import_proc_macros):
|
||
Moved from here...
|
||
* expand/rust-macro-expand.cc (MacroExpander::import_proc_macros):
|
||
... to here. Unify procedural macro parsing under one function.
|
||
Add a flag to determine whether it originate from a derive
|
||
macro.
|
||
(MacroExpander::parse_procmacro_output):
|
||
Parse macro output to statements. Store an error on parsing
|
||
failure.
|
||
* Make-lang.in: Add const_TokenPtr specific lexer.
|
||
* expand/rust-proc-macro-invoc-lexer.cc: New file.
|
||
* expand/rust-proc-macro-invoc-lexer.h: New file.
|
||
* rust-session-manager.cc (Session::expansion): Remove
|
||
ProcMacroExpander declaration.
|
||
* ast/rust-ast-fragment.cc (Fragment::Fragment): Add overwrite
|
||
flag.
|
||
(Fragment::should_overwrite): Add a getter to determine whether
|
||
the fragment shall overwrite it's parent or be appended after.
|
||
* ast/rust-ast-fragment.h: Add flag to declaration.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-hir-map.cc (Mappings::insert_bang_proc_macro):
|
||
Add a function to insert a new bang proc macro.
|
||
(Mappings::lookup_bang_proc_macro): Add a function to lookup a
|
||
bang procedural macro.
|
||
(Mappings::insert_derive_proc_macro): Add a function to insert a
|
||
derive procedural macro.
|
||
(Mappings::lookup_derive_proc_macro): Add a function to lookup a
|
||
derive procedural macro.
|
||
(Mappings::insert_attribute_proc_macro): Add a function to
|
||
insert an attribute procedural macro.
|
||
(Mappings::lookup_attribute_proc_macro): Add a function to
|
||
lookup an attribute procedural macro.
|
||
* util/rust-hir-map.h: Add function prototypes.
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::expand_outer_attribute):
|
||
Implement expansion of outer attributes.
|
||
(ExpandVisitor::expand_inner_attribute):
|
||
Add call for inner attribute expansion.
|
||
* expand/rust-expand-visitor.h:
|
||
Add new procedural macro expander attribute.
|
||
* expand/rust-proc-macro.cc (load_macros_array): Add a function
|
||
to load the proc macro array from a given shared object.
|
||
(load_macros): Add a function to retrieve procedural macro
|
||
vector from a given shared object.
|
||
(ProcMacroExpander::import_proc_macros): Add a function to load
|
||
procedural macros from a given extern crate name.
|
||
* expand/rust-proc-macro.h (RUST_PROC_MACRO_H): Add new
|
||
proc-macro file.
|
||
(class ProcMacroExpander): Add new ProcMacroExpander class.
|
||
* rust-session-manager.cc (Session::expansion): Create new macro
|
||
expander and feed it to the expand visitor.
|
||
* util/rust-attributes.cc: Add macro_export builtin attribute.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Fix
|
||
attribute collection.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.h: Make trivial visitors public.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* Make-lang.in: Add rust-proc-macro object to list.
|
||
* expand/rust-proc-macro.cc: New file.
|
||
* expand/rust-proc-macro.h: New file.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-attributes.cc: Add attribute to the table.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Move
|
||
implementation from here...
|
||
* ast/rust-ast-collector.h: ... to here.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* Make-lang.in: Add "rust-dir-owner.o".
|
||
* ast/rust-ast.cc: Include "rust-dir-owner.h".
|
||
(Module::process_file_path):
|
||
Handle non-mod-rs external file modules properly.
|
||
* parse/rust-parse-impl.h: Include "rust-dir-owner.h".
|
||
(Parser::parse_module):
|
||
Handle non-mod-rs external file modules properly.
|
||
* util/rust-dir-owner.cc: New file.
|
||
* util/rust-dir-owner.h: New file.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-builtins.cc: Fix comments.
|
||
(MacroBuiltin::proc_macro_builtin): Add error message.
|
||
* expand/rust-macro-builtins.h: Fix comments.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-trait-resolve.cc: when the bound is concrete keep the mapping
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): add missing call
|
||
* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): make this the same as paths
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* util/rust-optional.h
|
||
(class Optional): Add volatile field to union.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-substitute-ctx.cc
|
||
(SubstituteCtx::substitute_metavar): Substitute crate metavar.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h
|
||
(Parser::null_denotation): Allow struct expression referencing.
|
||
|
||
2024-01-16 Charalampos Mitrodimas <charmitro@gmail.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit):
|
||
print literals based on their type.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* expand/rust-macro-builtins.cc (MacroBuiltin::dummy): New function.
|
||
* expand/rust-macro-builtins.h: Declare it.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast-builder.cc (AstBuilder::struct_expr_struct): New function.
|
||
(AstBuilder::let): Likewise.
|
||
(AstBuilder::struct_expr): Likewise.
|
||
(AstBuilder::struct_expr_field): Likewise.
|
||
(AstBuilder::field_access): Likewise.
|
||
(AstBuilder::wildcard): Likewise.
|
||
* ast/rust-ast-builder.h: Likewise.
|
||
* expand/rust-derive-clone.cc (DeriveClone::visit_union): Implement
|
||
properly.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in: Add new files.
|
||
* expand/rust-derive.cc (DeriveVisitor::derive): Call into DeriveCopy.
|
||
* expand/rust-derive-copy.cc: New file.
|
||
* expand/rust-derive-copy.h: New file.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* expand/rust-derive-clone.cc (DeriveClone::visit_struct): Implement proper
|
||
cloning for structs with fields.
|
||
* ast/rust-ast-builder.cc (AstBuilder::struct_expr): New function.
|
||
(AstBuilder::struct_expr_field): Likewise.
|
||
(AstBuilder::field_access): Likewise.
|
||
(AstBuilder::let): Likewise.
|
||
* ast/rust-ast-builder.h: Declare new functions.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (convert): Use a variable instead
|
||
of multiple nested calls.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-lex.h: Make build_token method public.
|
||
* lex/rust-token.h: Add a setter for a token location.
|
||
* util/rust-token-converter.cc (convert): Add the function to
|
||
convert from a Span to a Location.
|
||
(from_ident): Convert Ident span to a Location.
|
||
(from_literal): Convert Literal span to a Location.
|
||
(from_punct): Convert Punct span to a Location.
|
||
(from_group): Convert Group span to a Location.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (convert): Add implementation.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (convert): Update call to
|
||
constructors with location information.
|
||
(handle_suffix): Convert token locus to a Span and use it in the
|
||
literal.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-expand.cc
|
||
(MacroExpander::try_match_rule): Don't match delimiters for root matcher.
|
||
(MacroExpander::match_matcher): Add option to match delimiters.
|
||
* expand/rust-macro-expand.h
|
||
(MacroExpander::match_matcher): Likewise.
|
||
* parse/rust-parse-impl.h
|
||
(Parser::skip_token): Add zero argument method.
|
||
* parse/rust-parse.h:
|
||
(Parser::skip_token): Likewise.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* Make-lang.in: remove files
|
||
* backend/rust-compile-block.h: fix headers
|
||
* backend/rust-compile-expr.h: likewise
|
||
* backend/rust-compile-fnparam.h: likewise
|
||
* backend/rust-compile-item.h: likewise
|
||
* backend/rust-compile-pattern.h: likewise
|
||
* backend/rust-compile-resolve-path.h: likewise
|
||
* backend/rust-compile-stmt.h: likewise
|
||
* typecheck/rust-autoderef.cc: likewise
|
||
* typecheck/rust-hir-path-probe.cc: likewise
|
||
* typecheck/rust-hir-path-probe.h: likewise
|
||
* typecheck/rust-hir-trait-reference.h: likewise
|
||
* typecheck/rust-hir-trait-resolve.cc: use a for loop instead
|
||
* typecheck/rust-hir-trait-resolve.h: fix headers
|
||
* typecheck/rust-hir-type-check-expr.h: likewise
|
||
* typecheck/rust-hir-type-check-implitem.h: likewise
|
||
* typecheck/rust-hir-type-check-item.h: likewise
|
||
* typecheck/rust-hir-type-check-path.cc: likewise
|
||
* typecheck/rust-hir-type-check-pattern.h: likewise
|
||
* typecheck/rust-hir-type-check-stmt.h: likewise
|
||
* typecheck/rust-hir-type-check-type.h: likewise
|
||
* typecheck/rust-hir-type-check-util.cc: Removed.
|
||
* typecheck/rust-hir-type-check-util.h: Removed.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in: Add new object files to Makefile.
|
||
* expand/rust-expand-visitor.cc (is_derive): Move function.
|
||
(is_builtin): Likewise.
|
||
(get_traits_to_derive): New function.
|
||
(derive_item): Likewise.
|
||
(ExpandVisitor::visit): Visit item/statements containers.
|
||
(ExpandVisitor::visit_outer_attrs): Take a reference on the attribute
|
||
instead of a copy.
|
||
(ExpandVisitor::is_derive): Deleted function.
|
||
(ExpandVisitor::is_builtin): Likewise.
|
||
* expand/rust-expand-visitor.h (RUST_EXPAND_VISITOR_H): Add missing #ifdef
|
||
guards.
|
||
(is_derive): Declare function.
|
||
(is_builtin): Likewise.
|
||
* expand/rust-macro-builtins.cc (builtin_macro_from_string): Use new
|
||
MacroBuiltin::builtins map.
|
||
(make_macro_path_str): Likewise.
|
||
* expand/rust-macro-builtins.h (enum class): Add builtin derive macros.
|
||
* expand/rust-derive-clone.cc: New file.
|
||
* expand/rust-derive-clone.h: New file.
|
||
* expand/rust-derive.cc: New file.
|
||
* expand/rust-derive.h: New file.
|
||
* util/rust-hir-map.cc (Mappings::insert_macro_def): Fix logic for
|
||
setting builtin macro transcribers.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast-builder.cc: New file.
|
||
* ast/rust-ast-builder.h: New file.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* expand/rust-macro-invoc-lexer.cc: Add missing copyright header.
|
||
* expand/rust-macro-substitute-ctx.cc: Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-session-manager.h:
|
||
Include "rust-optional.h".
|
||
(struct TargetOptions):
|
||
Store values in config key/value pairs as Optional<std::string> rather than std::string.
|
||
* rust-session-manager.cc
|
||
(TargetOptions::dump_target_options):
|
||
Handle Optional<std::string> values.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-casts.cc (TypeCastRules::check): do coercion
|
||
(TypeCastRules::emit_cast_error): clang-format
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* resolve/rust-ast-resolve-stmt.cc (ResolveStmt::visit): add name resolution
|
||
* resolve/rust-ast-resolve-stmt.h: likewise
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): insert resolved node
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* resolve/rust-ast-resolve-pattern.cc: remove unused
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): fix missing pop
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): remove unused
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::translate): hir lowering
|
||
(ASTLoweringStmt::visit): likewise
|
||
* hir/rust-ast-lower-stmt.h: likewise
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-substitute-ctx.cc
|
||
(SubstituteCtx::substitute_metavar): Allow substitution failure.
|
||
(SubstituteCtx::substitute_token):
|
||
Handle substitution failure, include dollar sign in count of tokens to substitute.
|
||
(SubstituteCtx::substitute_tokens):
|
||
Include dollar sign in count of tokens to substitute.
|
||
* expand/rust-macro-substitute-ctx.h
|
||
(SubstituteCtx::substitute_metavar):
|
||
Adjust signature and document new substitution failure handling.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-substitute-ctx.cc
|
||
(SubstituteCtx::check_repetition_amount):
|
||
Ignore single fragments while checking repetition amount.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): stop if error
|
||
* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::assemble_sized_builtin): fix sized options
|
||
* typecheck/rust-tyty.cc (BaseType::satisfies_bound): its ok if its an ?T
|
||
(BaseType::bounds_compatible): likewise
|
||
* typecheck/rust-tyty.h: update prototype
|
||
* typecheck/rust-unify.cc (UnifyRules::go): check both sides bounds
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-expr.cc (HIRCompileBase::resolve_deref_adjustment):
|
||
reuse op overload code
|
||
* typecheck/rust-autoderef.cc (Adjuster::try_deref_type): update
|
||
(Adjuster::try_raw_deref_type): likewise
|
||
* typecheck/rust-autoderef.h: likewise
|
||
* typecheck/rust-hir-dot-operator.cc (MethodResolver::select):
|
||
improve debug loging
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address): refactor
|
||
* backend/rust-compile-base.h: likewise
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): likewise
|
||
* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): likewise
|
||
|
||
2024-01-16 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* typecheck/rust-hir-trait-reference.cc (TraitItemReference::is_optional): Remove
|
||
stray semicolon.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::go): Cleanup
|
||
order of calls when accumulating #[macro_use] macros.
|
||
(EarlyNameResolver::visit): Likewise.
|
||
|
||
2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
|
||
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::accumulate_escaped_macros):
|
||
Remove unnecessary visit.
|
||
|
||
2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
|
||
|
||
* ast/rust-ast.cc (Attribute::check_cfg_predicate):
|
||
Only check first item as a predicate.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* util/rust-optional.h
|
||
(operator==): New for Optional<T> == Optional<U>.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_attr_input): Parse AttrInputMacro.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.cc (TokenCollector::visit): Propagate
|
||
coretype hint.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* util/rust-optional.h
|
||
(class Optional<T>): Improve inner state.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-substitute-ctx.cc
|
||
(SubstituteCtx::check_repetition_amount): Handle keywords.
|
||
(SubstituteCtx::substitute_token): Likewise.
|
||
* lex/rust-token.cc
|
||
(Token::get_str): Likewise.
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_macro_match_fragment): Likewise.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Add `outer_attrs` to Item.
|
||
* ast/rust-expr.h: Make use of new inheritance methods.
|
||
* ast/rust-item.h: Likewise.
|
||
* ast/rust-macro.h: Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (dispatch_float_literals): Remove
|
||
function.
|
||
(handle_suffix): Rename old dispatch and add one LitKind
|
||
argument.
|
||
(dispatch_integer_literals): Remove function.
|
||
(convert): Change call from dispatch to suffix handler.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-token.h: Implement hash for token id enumeration.
|
||
* util/rust-token-converter.cc (dispatch_float_literals): Update
|
||
to new internals.
|
||
(dispatch_integer_literals): Likewise.
|
||
(convert): Likewise.
|
||
(string_literal): Remove function.
|
||
(byte_string_literal): Likewise.
|
||
(unsigned_literal): Likewise.
|
||
(signed_literal): Likewise.
|
||
(from_literal): Update with new internals.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-ast-dump.cc
|
||
(Dump::visit): Add AttrInputMacro visitor.
|
||
* ast/rust-ast-dump.h:
|
||
(Dump::visit): Likewise.
|
||
* ast/rust-ast-full-decls.h
|
||
(class AttrInputMacro): New.
|
||
* ast/rust-ast-collector.cc
|
||
(TokenCollector::visit):
|
||
Add and call out to AttrInputMacro visitor.
|
||
* ast/rust-ast-collector.h:
|
||
(TokenCollector::visit): Add AttrInputMacro visitor.
|
||
* ast/rust-ast-visitor.h:
|
||
(ASTVisitor::visit): Likewise.
|
||
* ast/rust-ast.cc
|
||
(AttrInputMacro::accept_vis): New.
|
||
(AttrInputMacro::as_string): New.
|
||
(AttrInputMacro::AttrInputMacro): New.
|
||
(AttrInputMacro::operator=): New.
|
||
* ast/rust-ast.h:
|
||
(AttrInput::AttrInputType::MACRO): New.
|
||
* ast/rust-expr.h
|
||
(class AttrInputMacro): New.
|
||
* checks/errors/rust-feature-gate.h:
|
||
(FeatureGate::visit): Add AttrInputMacro visitor.
|
||
* expand/rust-cfg-strip.cc
|
||
(CfgStrip::visit): Likewise.
|
||
* expand/rust-cfg-strip.h:
|
||
(CfgStrip::visit): Likewise.
|
||
* expand/rust-expand-visitor.cc
|
||
(ExpandVisitor::visit): Likewise.
|
||
* expand/rust-expand-visitor.h:
|
||
(ExpandVisitor::visit): Likewise.
|
||
* hir/rust-ast-lower-base.cc
|
||
(ASTLoweringBase::visit): Likewise.
|
||
* hir/rust-ast-lower-base.h:
|
||
(ASTLoweringBase::visit): Likewise.
|
||
* resolve/rust-ast-resolve-base.cc
|
||
(ResolverBase::visit): Likewise.
|
||
* resolve/rust-ast-resolve-base.h:
|
||
(ResolverBase::visit): Likewise.
|
||
* resolve/rust-early-name-resolver.cc
|
||
(EarlyNameResolver::visit): Likewise.
|
||
* resolve/rust-early-name-resolver.h:
|
||
(EarlyNameResolver::visit): Likewise.
|
||
* util/rust-attributes.cc
|
||
(AttributeChecker::visit): Likewise.
|
||
(check_doc_attribute): Handle AttrInputType::MACRO.
|
||
* util/rust-attributes.h:
|
||
(AttributeChecker::visit): Add AttrInputMacro visitor.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-macro.h
|
||
(MacroInvocation::clone_macro_invocation_impl): Make public.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* util/rust-optional.h
|
||
(struct std::hash<Optional<T>>): New.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* util/rust-optional.h
|
||
(class Optional<T&>): Use pointers internally.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Implement dump for
|
||
`TupleIndexExpr`.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* lex/rust-token.cc
|
||
(token_id_keyword_string): Return std::string reference.
|
||
* lex/rust-token.h
|
||
(token_id_keyword_string): Return std::string reference.
|
||
|
||
2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
|
||
|
||
* ast/rust-ast.h (Expr::as_expr_without_block): Remove.
|
||
(Expr::set_outer_attrs): Make public in base class.
|
||
* expand/rust-macro-expand.cc:
|
||
Add fixme comment for pre-existing bug.
|
||
* hir/tree/rust-hir.h: Remove Expr::as_expr_without_block.
|
||
* parse/rust-parse-impl.h (Parser::parse_lifetime): Use lifetime_from_token.
|
||
(Parser::lifetime_from_token): New method.
|
||
(Parser::null_denotation): Handle labelled loop expressions and for loop expressions.
|
||
(Parser::parse_loop_label): Make initial token a parameter.
|
||
(Parser::parse_labelled_loop_expr): Likewise.
|
||
(Parser::parse_for_loop_expr): Allow FOR token to already be skipped.
|
||
(Parser::parse_expr): Handle expr_can_be_stmt.
|
||
(Parser::parse_expr_with_block): Remove.
|
||
(Parser::parse_expr_stmt_with_block): Remove.
|
||
(Parser::parse_expr_stmt_without_block): Remove.
|
||
(Parser::parse_expr_without_block): Remove.
|
||
(Parser::parse_stmt_or_expr_with_block): Remove.
|
||
(Parser::parse_expr_stmt): Use parse_expr directly.
|
||
(Parser::parse_match_expr): Likewise.
|
||
(Parser::parse_stmt): Use parse_expr_stmt in more cases.
|
||
(Parser::parse_stmt_or_expr):
|
||
Rename from parse_stmt_or_expr_without_block, use parse_expr directly.
|
||
(Parser::parse_block_expr): Update error message.
|
||
* parse/rust-parse.h: Update declarations.
|
||
|
||
2024-01-16 Matthew Jasper <mjjasper1@gmail.com>
|
||
|
||
* ast/rust-ast-full-decls.h (class ExprStmtWithoutBlock): Remove.
|
||
(class ExprStmtWithBlock): Remove.
|
||
* ast/rust-stmt.h (class ExprStmtWithoutBlock): Remove.
|
||
(class ExprStmtWithBlock): Remove.
|
||
(class ExprStmt):
|
||
Make non-abstract, add common functionality from removed base classes.
|
||
* ast/rust-ast.h: Move to_stmt to base class.
|
||
* ast/rust-ast.cc (ExprStmtWithBlock::as_string): Remove.
|
||
* ast/rust-macro.h: Use new signature for to_stmt.
|
||
(ExprStmt::as_string): New method.
|
||
(ExprStmtWithoutBlock::as_string): Remove.
|
||
(BlockExpr::strip_tail_expr): Update for removed classes.
|
||
(ExprStmtWithoutBlock::accept_vis): Remove.
|
||
(ExprStmtWithBlock::accept_vis): Remove.
|
||
(ExprStmt::accept_vis): New method.
|
||
* ast/rust-ast-dump.cc (Dump::visit): Update for removed classes.
|
||
* ast/rust-ast-dump.h: Likewise.
|
||
* ast/rust-ast-collector.h: Likewise.
|
||
* ast/rust-ast-collector.cc (TokenStream::visit): Likewise.
|
||
* ast/rust-ast-visitor.h: Likewise.
|
||
* checks/errors/rust-feature-gate.h: Likewise.
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Likewise.
|
||
* expand/rust-expand-visitor.h: Likewise.
|
||
* expand/rust-cfg-strip.cc (CfgStrip::visit): Likewise.
|
||
* expand/rust-cfg-strip.h: Likewise.
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
|
||
* hir/rust-ast-lower-base.h: Likewise.
|
||
* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Likewise.
|
||
* hir/rust-ast-lower-stmt.h: Likewise.
|
||
* util/rust-attributes.cc (AttributeChecker::visit): Likewise.
|
||
* util/rust-attributes.h: Likewise.
|
||
* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
|
||
* resolve/rust-ast-resolve-base.h: Likewise.
|
||
* resolve/rust-ast-resolve-stmt.h: Likewise.
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
|
||
Likewise.
|
||
* resolve/rust-early-name-resolver.h: Likewise.
|
||
* parse/rust-parse-impl.h (Parser::parse_match_expr): Likewise.
|
||
(Parser::parse_stmt_or_expr_without_block): Likewise.
|
||
* parse/rust-parse.h: Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* lex/rust-token.cc
|
||
(token_id_is_keyword): New.
|
||
(token_id_keyword_string): New.
|
||
* lex/rust-token.h
|
||
(token_id_is_keyword): New.
|
||
(token_id_keyword_string): New.
|
||
* expand/rust-macro-expand.cc
|
||
(MacroExpander::match_fragment): Match keywords for ident fragment.
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_identifier_or_keyword_token): Add.
|
||
* parse/rust-parse.h
|
||
(Parser::parse_identifier_or_keyword_token): Add.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (dispatch_float_literals): Invert
|
||
suffix condition.
|
||
(dispatch_integer_literals): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (convert): Fix style.
|
||
(from_ident): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (dispatch_float_literals): Make
|
||
input immutable.
|
||
(dispatch_integer_literals): Likewise.
|
||
(convert): Likewise.
|
||
* util/rust-token-converter.h (convert): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (from_tokenstream): Add
|
||
conversion of Ident structures.
|
||
(from_ident): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (from_literal): Add function
|
||
implementation.
|
||
(string_literal): String literal specific handler.
|
||
(byte_string_literal): Byte string specific handler.
|
||
(unsigned_literal): Unsigned literal specific handler.
|
||
(signed_literal): Signed literal specific handler.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (from_punct): Add conversion
|
||
implementation.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (dispatch_float_literals): Accept
|
||
const_TokenPtr instead of TokenPtr.
|
||
(dispatch_integer_literals): Likewise.
|
||
(convert): Accept vector of const_TokenPtr instead of a vector
|
||
of TokenPtr.
|
||
* util/rust-token-converter.h (convert): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (from_tokenstream): Add vector
|
||
for joined punct accumulation.
|
||
(from_ident): Accept const pointer vector.
|
||
(from_literal): Likewise.
|
||
(from_punct): Likewise.
|
||
(from_group): Likewise.
|
||
(from_tokentree): Likewise.
|
||
(convert): Likewise.
|
||
* util/rust-token-converter.h (convert): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (from_tokenstream): Add call to
|
||
from_tokentree.
|
||
(from_tokentree): Add implementation, from the from_tokenstream
|
||
function.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (from_punct): Add group
|
||
conversion.
|
||
(from_group): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (to_tokenstream): Change function
|
||
name from to_tokenstream to convert.
|
||
(convert): Likewise.
|
||
(from_tokenstream): Add tokenstream handler.
|
||
(from_ident): Add empty function.
|
||
(from_literal): Likewise.
|
||
(from_punct): Likewise.
|
||
(from_group): Likewise.
|
||
* util/rust-token-converter.h (to_tokenstream): Change function
|
||
name from to_tokenstream to convert.
|
||
(convert): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* util/rust-token-converter.cc (dispatch_float_literals): Remove
|
||
suffixed temporary variable.
|
||
(dispatch_integer_literals): Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* Make-lang.in: Add new rust-token-converter file.
|
||
* ast/rust-ast-collector.cc (pop_group): Function moved from
|
||
TokenCollector.
|
||
(dispatch_float_literals): Likewise.
|
||
(dispatch_integer_literals): Likewise.
|
||
(TokenCollector::collect): Removed function.
|
||
* ast/rust-ast-collector.h: Removed function prototype.
|
||
* util/rust-token-converter.cc: New file.
|
||
* util/rust-token-converter.h: New file.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-collector.h (RUST_AST_TOKENSTREAM_H): Rename
|
||
headerguard from RUST_AST_TOKENSTREAM_H ...
|
||
(RUST_AST_COLLECTOR_H): ... to RUST_AST_COLLECTOR_H.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* Make-lang.in: Change file name.
|
||
* ast/rust-ast-tokenstream.cc: Moved to...
|
||
* ast/rust-ast-collector.cc: ...here.
|
||
* ast/rust-ast-tokenstream.h: Moved to...
|
||
* ast/rust-ast-collector.h: ...here.
|
||
* rust-session-manager.cc: Change header name.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::TokenStream): Rename
|
||
TokenStream to TokenCollector.
|
||
(TokenCollector::TokenCollector): Likewise.
|
||
(TokenStream::collect_tokens): Likewise.
|
||
(TokenCollector::collect_tokens): Likewise.
|
||
(TokenStream::collect): Likewise.
|
||
(TokenCollector::collect): Likewise.
|
||
(TokenStream::visit): Likewise.
|
||
(TokenCollector::visit): Likewise.
|
||
(TokenStream::visit_items_joined_by_separator): Likewise.
|
||
(TokenCollector::visit_items_joined_by_separator): Likewise.
|
||
(TokenStream::visit_as_line): Likewise.
|
||
(TokenCollector::visit_as_line): Likewise.
|
||
(TokenStream::visit_items_as_lines): Likewise.
|
||
(TokenCollector::visit_items_as_lines): Likewise.
|
||
(TokenStream::visit_items_as_block): Likewise.
|
||
(TokenCollector::visit_items_as_block): Likewise.
|
||
(TokenStream::trailing_comma): Likewise.
|
||
(TokenCollector::trailing_comma): Likewise.
|
||
(TokenStream::newline): Likewise.
|
||
(TokenCollector::newline): Likewise.
|
||
(TokenStream::indentation): Likewise.
|
||
(TokenCollector::indentation): Likewise.
|
||
(TokenStream::increment_indentation): Likewise.
|
||
(TokenCollector::increment_indentation): Likewise.
|
||
(TokenStream::decrement_indentation): Likewise.
|
||
(TokenCollector::decrement_indentation): Likewise.
|
||
(TokenStream::visit_closure_common): Likewise.
|
||
(TokenCollector::visit_closure_common): Likewise.
|
||
(TokenStream::visit_loop_common): Likewise.
|
||
(TokenCollector::visit_loop_common): Likewise.
|
||
(TokenStream::visit_function_common): Likewise.
|
||
(TokenCollector::visit_function_common): Likewise.
|
||
* ast/rust-ast-tokenstream.h (class TokenStream): Likewise.
|
||
(class TokenCollector): Likewise.
|
||
* rust-session-manager.cc (Session::dump_tokenstream): Rename
|
||
token vector for clearer intent.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (dispatch_float_literals): Add
|
||
dispatch function for floating point literals.
|
||
(TokenStream::collect): Add call to dispatcher.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (dispatch_integer_literals):
|
||
Add a static function to dispatch depending on the core type.
|
||
(TokenStream::collect): Add call to dispatch function.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::collect): Add
|
||
conversion for byte string and string.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::collect): Add Ident
|
||
conversion.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::collect): Add joint
|
||
punct token conversion.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::collect): Add
|
||
conversion for single punctuation tokens.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (pop_group): Add a function to
|
||
easily collect a group from a given stack at the end of it.
|
||
(TokenStream::collect): Collect tokens as a rust compatible
|
||
Tokenstream type.
|
||
* ast/rust-ast-tokenstream.h (RUST_AST_TOKENSTREAM_H): Move
|
||
includes to stay constrained by guards.
|
||
|
||
2024-01-16 M V V S Manoj Kumar <mvvsmanojkumar@gmail.com>
|
||
|
||
* ast/rust-ast-full-decls.h (enum class): Added declaration.
|
||
(struct AnonConst): Added declaration.
|
||
(struct InlineAsmRegOrRegClass): Added declaration.
|
||
(struct InlineAsmOperand): Added declaration.
|
||
(struct InlineAsmPlaceHolder): Added declaration.
|
||
(struct InlineAsmTemplatePiece): Added declaration.
|
||
(struct TupleClobber): Added declaration.
|
||
(struct TupleTemplateStr): Added declaration.
|
||
* ast/rust-expr.h (class InlineAsm): Defined all it's data members outside.
|
||
(enum class InlineAsmOptions): Converted this to a enum class so we could use it in the HIR.
|
||
(struct AnonConst): Defined it independent of the AST::InlineAsm node.
|
||
(struct InlineAsmRegOrRegClass): Defined it independent of the AST::InlineAsm node.
|
||
(struct InlineAsmOperand): Defined it independent of the AST::InlineAsm node.
|
||
(struct InlineAsmPlaceHolder): Defined it independent of the AST::InlineAsm node.
|
||
(struct InlineAsmTemplatePiece): Defined it independent of the AST::InlineAsm node.
|
||
(struct TupleClobber): Defined it independent of the AST::InlineAsm node.
|
||
(struct TupleTemplateStr): Defined it independent of the AST::InlineAsm node.
|
||
* hir/tree/rust-hir-expr.h (class InlineAsmReg): Added defination.
|
||
(class InlineAsmRegClass): Added defination.
|
||
(struct InlineAsmRegOrRegClass): Added defination.
|
||
(class InlineAsm): Added defination.
|
||
* hir/tree/rust-hir-full-decls.h (class InlineAsmReg): Added declaration.
|
||
(class InlineAsmRegClass): Added declaration.
|
||
(struct InlineAsmRegOrRegClass): Added declaration.
|
||
(class InlineAsm): Added declaration.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-base.cc: track return type in fncontext
|
||
* backend/rust-compile-context.h (struct fncontext): likewise
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): apply coercion site
|
||
(CompileExpr::generate_closure_function): update push_context
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::compile_function_body):
|
||
add missing coercion_site codegen
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): refactr
|
||
(CompileExpr::get_fn_addr_from_dyn): likewise
|
||
(CompileExpr::get_receiver_from_dyn): likewise
|
||
(CompileExpr::type_cast_expression): likewise
|
||
* backend/rust-compile-type.cc (TyTyResolveCompile::visit): likewise
|
||
(TyTyResolveCompile::create_dyn_obj_record): likewise
|
||
(TyTyResolveCompile::create_slice_type_record): likewise
|
||
(TyTyResolveCompile::create_str_type_record): likewise
|
||
* backend/rust-compile-type.h: likewise
|
||
* backend/rust-compile.cc (HIRCompileBase::coercion_site1): likewise
|
||
(HIRCompileBase::coerce_to_dyn_object): refactor
|
||
* backend/rust-tree.h (SLICE_FLAG): removed
|
||
(SLICE_TYPE_P): removed
|
||
(RS_DST_FLAG): new flag
|
||
(RS_DST_FLAG_P): new predicate
|
||
* typecheck/rust-tyty.cc (ReferenceType::is_dyn_object): new helper
|
||
(ReferenceType::is_dyn_obj_type): likewise
|
||
(PointerType::is_dyn_object): likewise
|
||
(PointerType::is_dyn_obj_type): likewise
|
||
* typecheck/rust-tyty.h (class DynamicObjectType): moved up
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-type.cc (TyTyResolveCompile::visit): add filter
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::compile_function_body): use unit_expression
|
||
(HIRCompileBase::unit_expression): new helper
|
||
* backend/rust-compile-base.h: update prototype
|
||
* backend/rust-compile-block.cc (CompileBlock::visit): use unit_expression
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): likewise
|
||
(CompileExpr::generate_closure_function): likewise
|
||
* backend/rust-compile-implitem.cc (CompileTraitItem::visit): cleanup
|
||
* backend/rust-compile-item.cc (CompileItem::visit): likewise
|
||
* backend/rust-compile-pattern.cc (CompilePatternLet::visit): likewise
|
||
* backend/rust-compile-resolve-path.cc (ResolvePathRef::resolve): likewise
|
||
* backend/rust-compile-type.cc (TyTyResolveCompile::get_unit_type): new helper
|
||
(TyTyResolveCompile::visit): use new unit_type helper
|
||
* backend/rust-compile-type.h: likewise
|
||
* rust-backend.h: simplify the return_expression
|
||
* rust-gcc.cc (Gcc_backend::function_type): likewise
|
||
(Gcc_backend::return_statement): likewise
|
||
* backend/rust-constexpr.cc (eval_constant_expression): remove bad assertion
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* checks/lints/rust-lint-unused-var.cc (UnusedVariables::Lint): use the decl not the expr
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_trait_impl_function_or_method):
|
||
Parse function/method qualifiers after "default".
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-base.cc: add missing compile_locals call
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast.h (class AttrInputMetaItemContainer): Run clang-format.
|
||
(class DelimTokenTree): Likewise.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-early-name-resolver.cc (is_macro_use_module): New function.
|
||
(EarlyNameResolver::accumulate_escaped_macros): New function.
|
||
(EarlyNameResolver::go): Use `accumulate_escaped_macros`.
|
||
(EarlyNameResolver::visit): Likewise.
|
||
* resolve/rust-early-name-resolver.h: Declare `accumulate_escaped_macros`.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Add take_items() and set_items() method to Crate.
|
||
* ast/rust-item.h: Add take_items() and set_items() method to Module.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast.h (enum Kind): Add MODULE variant.
|
||
* ast/rust-item.h: Return Kind::MODULE in AST::Module::get_kind().
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-macro.cc (builtin_macro_from_string): Move function.
|
||
* ast/rust-macro.h (enum class): Move enum.
|
||
(builtin_macro_from_string): Move function.
|
||
* expand/rust-macro-builtins.cc (builtin_macro_from_string): New function.
|
||
(make_macro_path_str): Use new bi-map.
|
||
(parse_single_string_literal): Use new `BuiltinMacro` enum.
|
||
(MacroBuiltin::include_bytes_handler): Likewise.
|
||
(MacroBuiltin::include_str_handler): Likewise.
|
||
(MacroBuiltin::compile_error_handler): Likewise.
|
||
(MacroBuiltin::concat_handler): Likewise.
|
||
(MacroBuiltin::env_handler): Likewise.
|
||
(MacroBuiltin::include_handler): Likewise.
|
||
(MacroBuiltin::sorry): New function.
|
||
* expand/rust-macro-builtins.h (enum class): Move enum here.
|
||
(builtin_macro_from_string): New function declaration.
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Use
|
||
new function.
|
||
* util/rust-hir-map.cc (Mappings::insert_macro_def): Remove old
|
||
builtin macro map.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* expand/rust-macro-builtins.cc: Include bidirectional map.
|
||
* util/bi-map.h: New file.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-ast.cc
|
||
(BlockExpr::strip_tail_expr):
|
||
Try to take new tail expression from statements list.
|
||
* ast/rust-expr.h
|
||
(BlockExpr::strip_tail_expr):
|
||
Replace definition with only declaration.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-ast.h
|
||
(Stmt::is_expr): New.
|
||
* ast/rust-stmt.h
|
||
(ExprStmt::is_expr): New.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-substitute-ctx.cc
|
||
(SubstituteCtx::substitute_repetition): Fix out-of-bounds.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* Make-lang.in: Link against the static libproc_macro.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lang.opt: Add frust-extern option.
|
||
* rust-session-manager.cc (Session::handle_extern_option): Add
|
||
frust-extern option handler.
|
||
* rust-session-manager.h (struct Session): Add an unordered map
|
||
to store library name and locations.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_generic_params):
|
||
Handle parameter parsing error.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc: update for op overload
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): use the predicate
|
||
(TypeCheckExpr::resolve_segments): cleanup
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-trait-reference.cc (AssociatedImplTrait::AssociatedImplTrait):
|
||
bind the predicate
|
||
(AssociatedImplTrait::get_trait): remove
|
||
(AssociatedImplTrait::get_predicate): new getter
|
||
* typecheck/rust-hir-trait-reference.h: bind predicate
|
||
* typecheck/rust-hir-type-check-item.cc: update ctor
|
||
* typecheck/rust-type-util.cc (lookup_associated_impl_block): new function
|
||
* typecheck/rust-type-util.h (class BaseType): remove unused forward decl
|
||
(lookup_associated_impl_block): new helper
|
||
* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::is_equal): new
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionRef::lookup_associated_impl): use new helper
|
||
(SubstitutionRef::monomorphize): update usage/error handling
|
||
* typecheck/rust-tyty-subst.h: remove old prototype
|
||
* typecheck/rust-tyty.h: add is_equal decl
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.cc
|
||
(TypeCheckPattern::visit): Type check StructPatternFieldIdentPat.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/rust-ast-lower-pattern.cc
|
||
(ASTLoweringPattern::visit): Lower StructPatternFieldIdentPat.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::resolve_fn_trait_call):
|
||
return the assoicated predicate
|
||
* typecheck/rust-hir-type-check-expr.h: update prototype
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* hir/rust-ast-lower-implitem.h: add missing where clause lowering
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* hir/tree/rust-hir-item.h: add get_locus() const
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/tree/rust-hir-pattern.h
|
||
(StructPatternFieldIdentPat::get_identifier): New.
|
||
(StructPatternFieldIdentPat::get_pattern): New.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): print parentheses around
|
||
unique expression operand.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* rust-session-manager.cc
|
||
(Session::enable_dump): Fix error messages.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-unify.cc (UnifyRules::emit_abi_mismatch): new error method
|
||
(UnifyRules::expect_fndef): add ABI check
|
||
* typecheck/rust-unify.h: prototype for new error method
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* util/rust-abi.cc (get_abi_from_string): add ABI mapping
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* hir/tree/rust-hir-pattern.h: add missing get_mutability
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
|
||
use new ClosureParamInfer on untyped parameters
|
||
* typecheck/rust-hir-type-check-pattern.cc (ClosureParamInfer::Resolve): interface
|
||
(ClosureParamInfer::ClosureParamInfer): constructor
|
||
(ClosureParamInfer::visit): visitors for each pattern
|
||
* typecheck/rust-hir-type-check-pattern.h (class ClosureParamInfer): new visitor
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.h: cleanup
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
|
||
return so we dont hit undefined behaviour
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-implitem.h: remove includes
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-item.cc (CompileItem::visit): remove bad checks
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* lang.opt: add lang option flag
|
||
* rust-lang.cc (grs_langhook_init_options_struct): enable by default
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::operator=):
|
||
we are done if other is in an error state
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): verify it is a method
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): use new interface
|
||
* typecheck/rust-hir-type-check-base.h: update prototype to include Self
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): lifewise
|
||
* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::resolve_impl_block_substitutions):
|
||
likewise
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): likewise
|
||
(TypeCheckExpr::resolve_segments): likewise
|
||
* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
|
||
(TypeResolveGenericParam::visit): likewise
|
||
(ResolveWhereClauseItem::visit): likewise
|
||
* typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound): likewise
|
||
(TypeBoundPredicate::apply_generic_arguments): likewise
|
||
(TypeBoundsMappings::lookup_predicate): likewise
|
||
* typecheck/rust-tyty-bounds.h: likewise
|
||
* typecheck/rust-tyty.h:likewise
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check.h: New error state and missing copy implementations
|
||
* typecheck/rust-typecheck-context.cc (TypeCheckContextItem::TypeCheckContextItem):
|
||
missing copy ctor
|
||
(TypeCheckContextItem::operator=): missing copy implementation
|
||
(TypeCheckContextItem::get_error): new static function
|
||
(TypeCheckContextItem::is_error): new method
|
||
(TypeCheckContextItem::get_context_type): handle error state
|
||
(TypeCheckContextItem::get_defid): handle error state
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check.h: new helper
|
||
* typecheck/rust-typecheck-context.cc (TypeCheckContext::have_function_context):
|
||
implementation
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check.h: Add prototype
|
||
* typecheck/rust-typecheck-context.cc (TypeCheckContextItem::get_defid): implementation
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc: refactor
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-autoderef.cc: don't take a reference
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): likewise
|
||
* typecheck/rust-hir-type-check.h: remove reference
|
||
* typecheck/rust-typecheck-context.cc (TypeCheckContext::pop_return_type): likewise
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* resolve/rust-ast-resolve-pattern.cc
|
||
(PatternDeclaration::visit): Handle StructPatternFieldIdentPat.
|
||
|
||
2024-01-16 TieWay59 <tieway59@foxmail.com>
|
||
|
||
PR translation/108890
|
||
* lang.opt: Fix translation mistakes 2023 in
|
||
GCC/Rust [PR108890]
|
||
(line 67): change the inconsistent tab to spaces
|
||
(line 75): wrap bare placeholder `integer`
|
||
(line 79): remove redundant text of `Choose which`
|
||
(line 96): remove redundant text of `Choose which`
|
||
(line 112): remove redundant `Flag to`
|
||
(line 124): correct the exclusive term `When to stop`
|
||
(line 124): correct typo of `copimlation`
|
||
|
||
2024-01-16 M V V S Manoj Kumar <mvvsmanojkumar@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::debug_dump_ast_output): Removed this funtion.
|
||
* rust-session-manager.cc (Session::enable_dump): Removed else if (arg == "parse").
|
||
(Session::compile_crate): Removed calls of dump_ast and dump_ast_expanded.
|
||
(Session::dump_ast): Removed this function.
|
||
(Session::dump_ast_expanded): Removed this function.
|
||
* rust-session-manager.h (struct CompileOptions): Removed the PARSER_AST_DUMP option.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_reference_pattern): Do not
|
||
call into `parse_pattern` anymore.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/rust-ast-lower-pattern.cc
|
||
(ASTLoweringPattern::translate): Add is_let_top_level parameter.
|
||
(ASTLoweringPattern::visit): Handle is_let_top_level.
|
||
* hir/rust-ast-lower-pattern.h
|
||
(class ASTLoweringPattern): Add is_let_top_level.
|
||
* hir/rust-ast-lower-stmt.cc
|
||
(ASTLoweringStmt::visit): Set is_let_top_level.
|
||
|
||
2024-01-16 Zheyuan Chen <sephirotheca17@gmail.com>
|
||
|
||
* ast/rust-ast-dump.cc: fix bad formatting for associated type.
|
||
|
||
2024-01-16 Sergey Bugaev <bugaevc@gmail.com>
|
||
|
||
* hir/rust-ast-lower-expr.h, hir/rust-ast-lower-expr.cc:
|
||
Lower AST::ErrorPropagationExpr to HIR::ErrorPropagationExpr
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix scope
|
||
resolution token output.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Keep
|
||
associated type.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit_function_common):
|
||
Fix function body output.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_outer_attribute): Fix
|
||
attribute status.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-token.cc (Token::as_string): Fix lifetime string
|
||
representation.
|
||
|
||
2024-01-16 Sergey Bugaev <bugaevc@gmail.com>
|
||
|
||
* resolve/rust-ast-resolve-expr.cc: Add "break rust" Easter egg
|
||
|
||
2024-01-16 Sergey Bugaev <bugaevc@gmail.com>
|
||
|
||
* resolve/rust-ast-resolve-expr.h,
|
||
resolve/rust-ast-resolve-expr.cc: Add ResolveExpr::funny_error
|
||
|
||
2024-01-16 Sergey Bugaev <bugaevc@gmail.com>
|
||
|
||
* ast/rust-ast.h: Add AST::Kind::IDENTIFIER
|
||
|
||
2024-01-16 Sergey Bugaev <bugaevc@gmail.com>
|
||
|
||
* ast/rust-ast.h (Kind): Convert into a C++ enum class
|
||
* expand/rust-macro-builtins.cc: Adapt to the change
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc
|
||
(TypeCheckExpr::visit): Add implementation for IfLetExprConseqElse.
|
||
* typecheck/rust-hir-type-check-expr.h:
|
||
(TypeCheckExpr::visit): Remove stub implementation for IfLetExprConseqElse.
|
||
* hir/rust-ast-lower-expr.cc
|
||
(ASTLoweringExpr::visit): Lower IfLetExpr{,ConseqElse}.
|
||
* hir/rust-ast-lower-expr.h:
|
||
(ASTLoweringExpr::visit): Likewise.
|
||
* hir/rust-ast-lower-block.h
|
||
(ASTLoweringIfLetBlock::visit): Lower IfLetExprConseqElse.
|
||
(ASTLoweringExprWithBlock::visit): Likewise.
|
||
* hir/rust-ast-lower.cc
|
||
(ASTLoweringIfLetBlock::visit): Lower IfLetExprConseqElse.
|
||
* hir/tree/rust-hir-expr.h
|
||
(IfLetExprConseqElse::IfLetExprConseqElse): Make constructor more general.
|
||
(IfLetExprConseqElse::vis_else_block): Add.
|
||
(IfLetExprConseqElse::get_else_block): Add.
|
||
* resolve/rust-ast-resolve-expr.cc
|
||
(ResolveExpr::visit): Add IfLetExprConseqElse visitor.
|
||
* resolve/rust-ast-resolve-expr.h
|
||
(ResolveExpr::visit): Add IfLetExprConseqElse visitor.
|
||
|
||
2024-01-16 Sebastian Kirmayer <gnu@kirmayer.eu>
|
||
|
||
* parse/rust-parse-impl.h
|
||
(Parser<ManagedTokenSource>::parse_macro_match_repetition):
|
||
reject separator in `?` repetition
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-expr.h
|
||
(class IfLetExprConseqElse): Make else_block ExprWithBlock.
|
||
(class IfLetExprConseqIf): Remove.
|
||
(class IfLetExprConseqIfLet): Remove.
|
||
* ast/rust-ast-full-decls.h
|
||
(class IfLetExprConseqIf): Remove.
|
||
(class IfLetExprConseqIfLet): Remove.
|
||
* ast/rust-ast.cc
|
||
(IfLetExprConseqElse::as_string): Adjust output.
|
||
(IfLetExprConseqIf::as_string): Remove.
|
||
(IfLetExprConseqIfLet::as_string): Remove.
|
||
(IfLetExprConseqIf::accept_vis): Remove.
|
||
(IfLetExprConseqIfLet::accept_vis): Remove.
|
||
* ast/rust-ast-visitor.h
|
||
(ASTVisitor::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
* ast/rust-ast-dump.cc
|
||
(Dump::visit): Likewise.
|
||
* ast/rust-ast-dump.h:
|
||
(Dump::visit): Likewise.
|
||
* ast/rust-ast-tokenstream.cc
|
||
(TokenStream::visit): Likewise.
|
||
* ast/rust-ast-tokenstream.h
|
||
(TokenStream::visit): Likewise.
|
||
* util/rust-attributes.cc
|
||
(AttributeChecker::visit): Likewise.
|
||
* util/rust-attributes.h:
|
||
(AttributeChecker::visit): Likewise.
|
||
* resolve/rust-early-name-resolver.cc
|
||
(EarlyNameResolver::visit): Likewise.
|
||
* resolve/rust-early-name-resolver.h
|
||
(EarlyNameResolver::visit): Likewise.
|
||
* resolve/rust-ast-resolve-base.h
|
||
(ResolverBase::visit): Likewise.
|
||
* resolve/rust-ast-resolve-base.cc
|
||
(ResolverBase::visit): Likewise.
|
||
* checks/errors/rust-feature-gate.h
|
||
(FeatureGate::visit): Likewise.
|
||
* expand/rust-cfg-strip.cc
|
||
(CfgStrip::visit): Likewise.
|
||
* expand/rust-cfg-strip.h:
|
||
(CfgStrip::visit): Likewise.
|
||
* expand/rust-expand-visitor.cc
|
||
(ExpandVisitor::visit): Likewise.
|
||
* expand/rust-expand-visitor.h
|
||
(ExpandVisitor::visit): Likewise.
|
||
* hir/rust-ast-lower-base.cc
|
||
(ASTLoweringBase::visit): Likewise.
|
||
* hir/rust-ast-lower-base.h:
|
||
(ASTLoweringBase::visit): Likewise.
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_if_let_expr): Replace IfLetExprConseqIf{,Let} with IfLetExprConseqElse.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add struct
|
||
name and curly braces to output tokenstream.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_macro_match): Handle underscore.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/tree/rust-hir-full-decls.h
|
||
(class ExprStmtWithoutBlock): Remove.
|
||
(class ExprStmtWithBlock): Remove.
|
||
* hir/tree/rust-hir-stmt.h
|
||
(class ExprStmt):
|
||
Add remaining ExprStmtWith{,out}Block functionality.
|
||
(class ExprStmtWithoutBlock): Remove.
|
||
(class ExprStmtWithBlock): Remove.
|
||
* hir/rust-ast-lower-stmt.cc
|
||
(ASTLoweringStmt::visit):
|
||
Lower to HIR::ExprStmt instead of deriving class.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-stmt.cc
|
||
(CompileStmt::visit): Unify ExprStmtWith{,out}Block visitors.
|
||
* backend/rust-compile-stmt.h
|
||
(CompileStmt::visit): Likewise.
|
||
* backend/rust-compile-item.h
|
||
(CompileItem::visit): Likewise.
|
||
* hir/rust-hir-dump.cc
|
||
(Dump::visit): Likewise.
|
||
* hir/rust-hir-dump.h
|
||
(Dump::visit): Likewise.
|
||
* hir/tree/rust-hir-stmt.h
|
||
(ExprStmt::accept_vis): Add.
|
||
(ExprStmtWithoutBlock::accept_vis): Remove.
|
||
(ExprStmtWithBlock::accept_vis): Remove.
|
||
* hir/tree/rust-hir.cc
|
||
(ExprStmt::accept_vis): Add.
|
||
(ExprStmtWithoutBlock::accept_vis): Remove.
|
||
(ExprStmtWithBlock::accept_vis): Remove.
|
||
* hir/tree/rust-hir-visitor.h
|
||
(HIRFullVisitor::visit): Likewise.
|
||
(HIRFullVisitorBase::visit): Likewise.
|
||
(HIRStmtVisitor::visit): Likewise.
|
||
* checks/errors/rust-const-checker.cc
|
||
(ConstChecker::visit): Likewise.
|
||
* checks/errors/rust-const-checker.h
|
||
(ConstChecker::visit): Likewise.
|
||
* checks/errors/rust-unsafe-checker.cc
|
||
(UnsafeChecker::visit): Likewise.
|
||
* checks/errors/rust-unsafe-checker.h
|
||
(UnsafeChecker::visit): Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc
|
||
(PrivacyReporter::visit): Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.h
|
||
(PrivacyReporter::visit): Likewise.
|
||
* checks/lints/rust-lint-marklive.h
|
||
(MarkLive::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-stmt.cc
|
||
(TypeCheckStmt::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-stmt.h
|
||
(TypeCheckStmt::visit): Likewise.
|
||
* typecheck/rust-tycheck-dump.h
|
||
(TypeResolverDump::visit): Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/tree/rust-hir-stmt.h
|
||
(ExprStmt::expr): Add field.
|
||
(ExprStmt::get_expr): Add method.
|
||
(ExprStmt::ExprStmt): Add copy/move constructors, modify existing constructor.
|
||
(ExprStmt::operator=): Add assignment operator.
|
||
(ExprStmtWithoutBlock::expr): Remove field.
|
||
(ExprStmtWithoutBlock::get_expr): Remove method.
|
||
(ExprStmtWithoutBlock::ExprStmt):
|
||
Remove copy/move constructors, modify existing constructor.
|
||
(ExprStmtWithoutBlock::operator=): Remove assignment operator.
|
||
(ExprStmtWithBlock::expr): Remove field.
|
||
(ExprStmtWithBlock::get_expr): Remove method.
|
||
(ExprStmtWithBlock::ExprStmt): Remove copy/move constructors, modify existing constructor.
|
||
(ExprStmtWithBlock::operator=): Remove assignment operator.
|
||
(ExprStmt::as_string): Add method.
|
||
(ExprStmtWithBlock::as_string): Remove method.
|
||
(ExprStmtWithoutBlock::as_string): Remove method.
|
||
* hir/tree/rust-hir.cc
|
||
(ExprStmt::as_string): Add method.
|
||
(ExprStmtWithBlock::as_string): Remove method.
|
||
(ExprStmtWithoutBlock::as_string): Remove method.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-expr.h
|
||
(class IfExprConseqElse): Make else_block ExprWithBlock.
|
||
(class IfExprConseqIf): Remove.
|
||
(class IfExprConseqIfLet): Remove.
|
||
* ast/rust-ast-full-decls.h
|
||
(class IfExprConseqIf): Remove.
|
||
(class IfExprConseqIfLet): Remove.
|
||
* ast/rust-ast.cc
|
||
(IfExprConseqElse::as_string): Adjust output.
|
||
(IfExprConseqIf::as_string): Remove.
|
||
(IfExprConseqIfLet::as_string): Remove.
|
||
(IfExprConseqIf::accept_vis): Remove.
|
||
(IfExprConseqIfLet::accept_vis): Remove.
|
||
* ast/rust-ast-visitor.h
|
||
(ASTVisitor::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
* ast/rust-ast-tokenstream.cc
|
||
(TokenStream::visit): Likewise.
|
||
* ast/rust-ast-tokenstream.h
|
||
(TokenStream::visit): Likewise.
|
||
* ast/rust-ast-dump.cc
|
||
(Dump::visit): Likewise.
|
||
* ast/rust-ast-dump.h
|
||
(Dump::visit): Likewise.
|
||
* checks/errors/rust-feature-gate.h
|
||
(FeatureGate::visit): Likewise.
|
||
* util/rust-attributes.cc
|
||
(AttributeChecker::visit): Likewise.
|
||
* util/rust-attributes.h
|
||
(AttributeChecker::visit): Likewise.
|
||
* resolve/rust-early-name-resolver.cc
|
||
(EarlyNameResolver::visit): Likewise.
|
||
* resolve/rust-early-name-resolver.h
|
||
(EarlyNameResolver::visit): Likewise.
|
||
* resolve/rust-ast-resolve-base.h
|
||
(ResolverBase::visit): Likewise.
|
||
* resolve/rust-ast-resolve-base.cc
|
||
(ResolverBase::visit): Likewise.
|
||
* resolve/rust-ast-resolve-expr.h
|
||
(ResolveExpr::visit): Remove IfExprConseqIf visitor.
|
||
* resolve/rust-ast-resolve-expr.cc
|
||
(ResolveExpr::visit): Likewise.
|
||
* expand/rust-cfg-strip.cc
|
||
(CfgStrip::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
* expand/rust-cfg-strip.h
|
||
(CfgStrip::visit): Likewise.
|
||
* expand/rust-expand-visitor.cc
|
||
(ExpandVisitor::visit): Likewise.
|
||
* expand/rust-expand-visitor.h
|
||
(ExpandVisitor::visit): Likewise.
|
||
* hir/rust-ast-lower-base.cc
|
||
(ASTLoweringBase::visit): Likewise.
|
||
* hir/rust-ast-lower-base.h
|
||
(ASTLoweringBase::visit): Likewise.
|
||
* hir/rust-ast-lower-block.h
|
||
(ASTLoweringIfBlock::visit): Remove IfExprConseqIf visitor.
|
||
(ASTLoweringExprWithBlock::visit): Likewise.
|
||
* hir/rust-ast-lower.cc
|
||
(ASTLoweringIfBlock::visit):
|
||
Remove IfExprConseqIf visitor, adjust IfExprConseqElse lowering.
|
||
* hir/rust-ast-lower-expr.h
|
||
(ASTLoweringExpr::visit): Remove IfExprConseqIf visitor.
|
||
* hir/rust-ast-lower-expr.cc
|
||
(ASTLoweringExpr::visit): Likewise.
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_if_expr): Replace IfExprConseqIf{,Let} with IfExprConseqElse.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix inner
|
||
attribute tokenstream output.
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::debug): New.
|
||
* ast/rust-ast-dump.h (Dump::debug): Untemplate it.
|
||
(debug): New.
|
||
* ast/rust-ast.h (class Visitable): New.
|
||
(class TokenTree): Inherit from Visitable.
|
||
(class MacroMatch): Likewise.
|
||
(class AttrInput): Likewise.
|
||
(class MetaItemInner): Likewise.
|
||
(class Pattern): Likewise.
|
||
(classTypeParamBound): Likewise.
|
||
(class GenericParam): Likewise.
|
||
(class TraitItem): Likewise.
|
||
(classInherentImplItem): Likewise.
|
||
(class TraitImplItem): Likewise.
|
||
(class ExternalItem): Likewise.
|
||
(class SingleASTNode): Likewise.
|
||
|
||
2024-01-16 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* rust-lang.cc (grs_langhook_type_for_mode): Placate clang-format.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Add boolean for differenciation.
|
||
* parse/rust-parse-impl.h (Parser::parse_doc_comment): Change
|
||
function interface to make code cleaner. It should return a body
|
||
instead of the whole attribute.
|
||
(Parser::parse_inner_attribute): Specify the inner status of the
|
||
node.
|
||
(Parser::parse_attribute_body): Change function interface to
|
||
make the code cleaner much like parse_doc_comment.
|
||
(Parser::parse_outer_attribute): Specify outer status of the
|
||
node.
|
||
* parse/rust-parse.h: Update functions prototypes.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile):
|
||
reuse resolve_method_address to monomorphize the call if required
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
|
||
allow matching against unimplemented trait item bounds
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-path-probe.cc: dont subst with a dynamic object
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::resolve_method_address): moved here
|
||
* backend/rust-compile-base.h: refactored prototype
|
||
* backend/rust-compile-expr.cc (CompileExpr::resolve_method_address): refactor
|
||
* backend/rust-compile-expr.h: likewise
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): remove unused
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile): call destructure
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::resolve_method_address):
|
||
call path probe impl trait
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Add call
|
||
to attribute expansion function.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::visit_outer_attrs):
|
||
Change condition order.
|
||
(ExpandVisitor::visit_inner_using_attrs): Likewise.
|
||
(ExpandVisitor::visit_attrs_with_derive): Likewise.
|
||
(ExpandVisitor::is_builtin): Add builtin identification
|
||
function.
|
||
* expand/rust-expand-visitor.h: Add function prototype.
|
||
* util/rust-attributes.cc: Add missing rustc_builtin_macro
|
||
attribute.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::expand_struct_fields):
|
||
Add call to expand structu fields.
|
||
(ExpandVisitor::expand_function_params): Add call to expand
|
||
function parameters.
|
||
(ExpandVisitor::expand_closure_params): Add call to expand
|
||
closure parameters.
|
||
(ExpandVisitor::visit): Add calls for item outer attribute
|
||
expansions.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::expand_outer_attribute):
|
||
Stub for a single attribute expansion.
|
||
(ExpandVisitor::visit_outer_attrs): Visit the attributes to
|
||
expand on a given item.
|
||
* expand/rust-expand-visitor.h: Add function prototypes.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Add getter to Expr class.
|
||
* ast/rust-expr.h: Add override attribute to existing getters.
|
||
Also implement it for RangeExpr, attempting to retrieve outer
|
||
attributes on those types will crash the compiler.
|
||
* ast/rust-macro.h: Add override attribute to existing getters.
|
||
* ast/rust-path.h: Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Add call
|
||
to inner attribute stub.
|
||
(ExpandVisitor::expand_inner_attribute): Expand one single
|
||
attribute.
|
||
(ExpandVisitor::visit_inner_using_attrs): Expand a given item
|
||
using a vector of attributes.
|
||
(ExpandVisitor::visit_inner_attrs): Visit inner attributes of a
|
||
given item.
|
||
* expand/rust-expand-visitor.h: Add function prototypes.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* expand/rust-expand-visitor.cc (ExpandVisitor::visit): Add call
|
||
to derive expander.
|
||
(ExpandVisitor::expand_derive): Expand a single derive.
|
||
(ExpandVisitor::visit_attrs_with_derive): Visit an item with
|
||
derive attributes.
|
||
(ExpandVisitor::is_derive): Identify a derive attribute.
|
||
* expand/rust-expand-visitor.h: Add function prototypes.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix ICE.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Remove
|
||
default separator.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Visit inner
|
||
attributes.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Change token
|
||
type.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix existing
|
||
and implement remaining attribute visitors.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor
|
||
to the union's outer attributes.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add call to
|
||
inner attribute visitor.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Fix ICE.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Make comma
|
||
mandatory.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Remove
|
||
additional semicolon output.
|
||
* ast/rust-ast-tokenstream.h: Change block visitor prototype
|
||
with a default value for trailing tokens.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* Make-lang.in: Add two new files to the list of sources.
|
||
* ast/rust-ast-full.h: Add new ast formatting header.
|
||
* ast/rust-ast.cc (enum indent_mode): Move formatting function
|
||
to it's own file.
|
||
(indent_spaces): Likewise.
|
||
(get_string_in_delims): Likewise.
|
||
(enum AttrMode): Likewise.
|
||
(get_mode_dump_desc): Likewise.
|
||
(append_attributes): Likewise.
|
||
(unquote_string): Likewise.
|
||
(GroupedExpr::as_string): Move pattern implementation to it's
|
||
own file.
|
||
(RangePattern::as_string): Likewise.
|
||
(RangePatternBoundLiteral::as_string): Likewise.
|
||
(SlicePattern::as_string): Likewise.
|
||
(AltPattern::as_string): Likewise.
|
||
(TuplePatternItemsMultiple::as_string): Likewise.
|
||
(TuplePatternItemsRanged::as_string): Likewise.
|
||
(TuplePattern::as_string): Likewise.
|
||
(StructPatternField::as_string): Likewise.
|
||
(StructPatternFieldIdent::as_string): Likewise.
|
||
(StructPatternFieldTuplePat::as_string): Likewise.
|
||
(StructPatternFieldIdentPat::as_string): Likewise.
|
||
(StructPatternElements::as_string): Likewise.
|
||
(StructPattern::as_string): Likewise.
|
||
(LiteralPattern::as_string): Likewise.
|
||
(ReferencePattern::as_string): Likewise.
|
||
(IdentifierPattern::as_string): Likewise.
|
||
(TupleStructItemsNoRange::as_string): Likewise.
|
||
(TupleStructItemsRange::as_string): Likewise.
|
||
(TupleStructPattern::as_string): Likewise.
|
||
(GroupedExpr::accept_vis): Likewise.
|
||
(LiteralPattern::accept_vis): Likewise.
|
||
(IdentifierPattern::accept_vis): Likewise.
|
||
(WildcardPattern::accept_vis): Likewise.
|
||
(RestPattern::accept_vis): Likewise.
|
||
(RangePatternBoundLiteral::accept_vis): Likewise.
|
||
(RangePatternBoundPath::accept_vis): Likewise.
|
||
(RangePatternBoundQualPath::accept_vis): Likewise.
|
||
(RangePattern::accept_vis): Likewise.
|
||
(ReferencePattern::accept_vis): Likewise.
|
||
(StructPatternFieldTuplePat::accept_vis): Likewise.
|
||
(StructPatternFieldIdentPat::accept_vis): Likewise.
|
||
(StructPatternFieldIdent::accept_vis): Likewise.
|
||
(StructPattern::accept_vis): Likewise.
|
||
(TupleStructItemsNoRange::accept_vis): Likewise.
|
||
(TupleStructItemsRange::accept_vis): Likewise.
|
||
(TupleStructPattern::accept_vis): Likewise.
|
||
(TuplePatternItemsMultiple::accept_vis): Likewise.
|
||
(TuplePatternItemsRanged::accept_vis): Likewise.
|
||
(TuplePattern::accept_vis): Likewise.
|
||
(GroupedPattern::accept_vis): Likewise.
|
||
(SlicePattern::accept_vis): Likewise.
|
||
(AltPattern::accept_vis): Likewise.
|
||
* ast/rust-ast-formatting.cc: New file.
|
||
* ast/rust-ast-formatting.h: New file.
|
||
* ast/rust-pattern.cc: New file.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* Make-lang.in: Add new file for rust-path implementation.
|
||
* ast/rust-ast.cc (PathInExpression::as_string): Move function
|
||
to the new file.
|
||
(PathPattern::as_string): Likewise.
|
||
(QualifiedPathInExpression::as_string): Likewise.
|
||
(ConstGenericParam::as_string): Likewise.
|
||
(QualifiedPathInType::as_string): Likewise.
|
||
(TypePath::as_string): Likewise.
|
||
(PathPattern::convert_to_simple_path): Likewise.
|
||
(TypePath::as_simple_path): Likewise.
|
||
(PathExprSegment::as_string): Likewise.
|
||
(GenericArgs::as_string): Likewise.
|
||
(GenericArgsBinding::as_string): Likewise.
|
||
(TypePath::to_trait_bound): Likewise.
|
||
(TypePathSegmentGeneric::as_string): Likewise.
|
||
(TypePathFunction::as_string): Likewise.
|
||
(TypePathSegmentFunction::as_string): Likewise.
|
||
(ConstGenericParam::accept_vis): Likewise.
|
||
(PathInExpression::accept_vis): Likewise.
|
||
(TypePathSegment::accept_vis): Likewise.
|
||
(TypePathSegmentGeneric::accept_vis): Likewise.
|
||
(TypePathSegmentFunction::accept_vis): Likewise.
|
||
(TypePath::accept_vis): Likewise.
|
||
(QualifiedPathInExpression::accept_vis): Likewise.
|
||
(QualifiedPathInType::accept_vis): Likewise.
|
||
(GenericArg::disambiguate_to_const): Likewise.
|
||
(GenericArg::disambiguate_to_type): Likewise.
|
||
* ast/rust-path.cc: New file.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-item.cc (CompileItem::visit): unwrap the constant expression
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* util/rust-lang-item.h
|
||
(RustLangItem::ItemType::FN): Add.
|
||
(RustLangItem::ItemType::FN_MUT): Add.
|
||
(RustLangItem::Parse): Handle FN and FN_MUT.
|
||
(RustLangItem::ToString): Handle FN and FN_MUT.
|
||
|
||
2024-01-16 Emanuele Micheletti <micheletti.emanuele@hotmail.com>
|
||
|
||
* typecheck/rust-casts.cc (TypeCastRules::cast_rules):
|
||
case INTEGRAL handles TypeKind::CHAR
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
|
||
add check for reference marker and type's in self params
|
||
(ResolveItem::visit): likewise
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path):
|
||
remove bad generics check
|
||
(TypeCheckExpr::resolve_segments): likewise
|
||
* typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path): likewise
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* resolve/rust-ast-resolve-item.cc
|
||
(ResolveTraitItems::visit): add name resolution self param
|
||
(ResolveItem::visit): likewise
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::TypeBoundPredicate): this is an empty
|
||
(TypeBoundPredicate::operator=): likewise
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionArgumentMappings::empty): new interface
|
||
(SubstitutionArgumentMappings::is_error): this marks it as an error
|
||
* typecheck/rust-tyty-subst.h: update prototypes
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* checks/errors/privacy/rust-privacy-reporter.cc
|
||
(PrivacyReporter::check_base_type_privacy): allow error types to be permissive
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit_items_as_lines):
|
||
Handle trailing chars.
|
||
(TokenStream::visit_items_as_block): Likewise.
|
||
(TokenStream::visit): Fix visitor.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-token.cc (Token::as_string): Add type hint output.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* rust-session-manager.cc (Session::enable_dump): Enable new
|
||
dump.
|
||
(Session::compile_crate): CLI argument parsing.
|
||
(Session::dump_tokenstream): Dump the tokenstream as a string in
|
||
the specified file.
|
||
* rust-session-manager.h (struct CompileOptions): Add
|
||
tokenstream dump option.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-token.cc (Token::as_string): Add as_string
|
||
implementation.
|
||
* lex/rust-token.h: Add as_string prototype.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::TokenStream): Add
|
||
constructor.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::collect_tokens): Add
|
||
getter.
|
||
(TokenStream::go): Rename function.
|
||
(TokenStream::visit): Likewise.
|
||
* ast/rust-ast-tokenstream.h: Add collect prototype.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Change
|
||
getter name.
|
||
* ast/rust-ast.cc (SimplePath::as_string): Change attribute
|
||
name.
|
||
* ast/rust-ast.h (class SimplePath): Refactor attribute name and
|
||
change getter name.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit_as_line): Add
|
||
formatting calls.
|
||
(TokenStream::visit_items_as_block): Likewise.
|
||
(TokenStream::newline): Add stub.
|
||
(TokenStream::indentation): Add stub.
|
||
(TokenStream::increment_indentation): Add stub.
|
||
(TokenStream::decrement_indentation): Add stub.
|
||
(TokenStream::visit): Add formatting calls.
|
||
(TokenStream::visit_function_common): Likewise.
|
||
* ast/rust-ast-tokenstream.h: Add stub prototypes.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor
|
||
implementation.
|
||
* ast/rust-ast-tokenstream.h: Add additional function prototype.
|
||
* ast/rust-item.h: Add some getters.
|
||
* ast/rust-macro.h: Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor.
|
||
* ast/rust-item.h: Add missing getters.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add visitor.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add
|
||
visitors.
|
||
(TokenStream::visit_closure_common): Merge common code for
|
||
closure visitors.
|
||
* ast/rust-ast-tokenstream.h: Add function prototype.
|
||
* ast/rust-expr.h: Add missing move attribute getter.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add
|
||
visitors.
|
||
(TokenStream::visit_loop_common): Merge common loop code.
|
||
* ast/rust-ast-tokenstream.h: Add function prototypes.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Implement
|
||
visitor.
|
||
* ast/rust-ast-tokenstream.h: Add function prototype for missing
|
||
component.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::trailing_comma):
|
||
Output a trailing comma to the token stream according to the
|
||
configuration.
|
||
* ast/rust-ast-tokenstream.h: Add function prototype.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Implement
|
||
visitors.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Implement
|
||
visitors.
|
||
* ast/rust-ast-tokenstream.h: Add function prototypes.
|
||
* ast/rust-ast.h: Add missing getters.
|
||
* ast/rust-expr.h: Likewise.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* Make-lang.in: Add rust-as-tokenstream to compile list.
|
||
* ast/rust-item.h: Add missing getter for location.
|
||
* ast/rust-ast-tokenstream.cc: Add ast visitor implementation.
|
||
* ast/rust-ast-tokenstream.h: New file.
|
||
* ast/rust-pattern.h: Add getter.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit):
|
||
Add implicit unit type as the return type when not specified
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* util/rust-attributes.cc: Add stable to the table of known attributes
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): return early on bad type
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::TypeCheckPattern):
|
||
remove assertion in favor of check
|
||
(TypeCheckPattern::visit): likewise
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::generate_closure_function):
|
||
when its not a block we dont have any ribs to generate locals from
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h
|
||
(Parser<ManagedTokenSource>::parse_expr_without_block):
|
||
Remove direct array expression handling.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-item.h: Fix `Visibility::has_path()` implementation.
|
||
* checks/errors/privacy/rust-visibility-resolver.cc
|
||
(VisibilityResolver::resolve_module_path): Check if we are dealing with pub(crate) properly.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Set
|
||
resolved_node_id when visiting root segment of SimplePath.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Call SimplePath constructor differently in
|
||
SimplePath::from_str
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* hir/rust-ast-lower-type.h: Move all remaining definitions to source file.
|
||
* hir/rust-ast-lower-type.cc (ASTLoweringType::translate): Moved to source file.
|
||
(ASTLoweringType::visit): Likewise.
|
||
(ASTLowerGenericParam::translate): Likewise.
|
||
(ASTLowerGenericParam::visit): Likewise.
|
||
(ASTLoweringTypeBounds::translate): Likewise.
|
||
(ASTLoweringTypeBounds::visit): Likewise.
|
||
(ASTLowerWhereClauseItem::translate): Likewise.
|
||
(ASTLowerWhereClauseItem::visit): Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-pattern.h: Remove commented out code.
|
||
|
||
2024-01-16 emanuele-em <micheletti.emanuele@hotmail.com>
|
||
|
||
* typecheck/rust-casts.cc (TypeCastRules::cast_rules): BOOL removed from switch cases
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in: Rename rust-asttribute-visitor.o -> rust-cfg-strip.o
|
||
* expand/rust-attribute-visitor.cc: Moved to...
|
||
* expand/rust-cfg-strip.cc: ...here.
|
||
* expand/rust-attribute-visitor.h: Moved to...
|
||
* expand/rust-cfg-strip.h: ...here.
|
||
* expand/rust-macro-expand.cc: Fix include of rust-attribute-visitor.h
|
||
* expand/rust-macro-builtins.cc: Likewise.
|
||
* rust-session-manager.cc (Session::expansion): Call CfgStrip instead of
|
||
AttrVisitor.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in: Add new object file.
|
||
* expand/rust-attribute-visitor.cc (AttrVisitor::go): Visit all items of a
|
||
crate.
|
||
(AttrVisitor::expand_struct_fields): Do not perform macro expansion anymore.
|
||
(AttrVisitor::expand_function_params): Likewise.
|
||
(AttrVisitor::expand_generic_args): Likewise.
|
||
(AttrVisitor::expand_qualified_path_type): Likewise.
|
||
(AttrVisitor::expand_self_param): Likewise.
|
||
(AttrVisitor::expand_trait_function_decl): Likewise.
|
||
(AttrVisitor::expand_trait_method_decl): Likewise.
|
||
(AttrVisitor::visit): Likewise.
|
||
(AttrVisitor::maybe_expand_expr): Remove function.
|
||
(AttrVisitor::maybe_expand_type): Likewise.
|
||
* expand/rust-attribute-visitor.h: Do not keep MacroExpander inside AttrVisitor
|
||
anymore.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Turn ContextType into an
|
||
enum class for more type safety.
|
||
* expand/rust-macro-expand.cc (MacroExpander::expand_crate): Use new ContextType
|
||
API.
|
||
* rust-session-manager.cc (Session::expansion): Call into ExpandVisitor.
|
||
* expand/rust-expand-visitor.cc: New file.
|
||
* expand/rust-expand-visitor.h: New file.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* expand/rust-macro-expand.cc (MacroExpander::expand_crate): Do not cfg-attr
|
||
strip in MacroExpander
|
||
(MacroExpander::fails_cfg): Function moved...
|
||
(MacroExpander::fails_cfg_with_expand): Function moved...
|
||
(MacroExpander::expand_cfg_attrs): Function moved...
|
||
* expand/rust-attribute-visitor.cc (fails_cfg): ...here.
|
||
(fails_cfg_with_expand): ...here.
|
||
(expand_cfg_attrs): ...here.
|
||
(AttrVisitor::expand_struct_fields): Use new functions.
|
||
(AttrVisitor::expand_tuple_fields): Likewise.
|
||
(AttrVisitor::expand_function_params): Likewise.
|
||
(AttrVisitor::visit): Likewise.
|
||
(AttrVisitor::go): New function.
|
||
* expand/rust-attribute-visitor.h: Declare AttrVisitor::go.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Remove cfg-attr related
|
||
functions.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_macro_definition):
|
||
New function.
|
||
* hir/rust-ast-lower-base.h: Declare `lower_macro_definition`.
|
||
* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Lower public
|
||
macro definitions.
|
||
* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Likewise.
|
||
* hir/rust-ast-lower-stmt.h: Add visitor for `AST::MacroRulesDefinition`.
|
||
* hir/rust-ast-lower.cc (ASTLowering::go): Formatting.
|
||
(ASTLoweringBlock::visit): Visit `AST::MacroRulesDefinition`
|
||
(ASTLoweringIfLetBlock::visit): Formatting.
|
||
(ASTLoweringExprWithBlock::visit): Formatting.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Add new visitor
|
||
for AST::MacroRulesDefinition.
|
||
* hir/rust-ast-lower-item.h: Declare above mentioned visitor.
|
||
* metadata/rust-export-metadata.cc (ExportContext::emit_macro): New function.
|
||
* metadata/rust-export-metadata.h: Declare it.
|
||
(PublicInterface::gather_export_data): Go through each exported macro.
|
||
* util/rust-hir-map.cc (Mappings::insert_exported_macro): New function.
|
||
(Mappings::get_exported_macros): New function.
|
||
* util/rust-hir-map.h: Add new mappings for exported macros.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* backend/rust-compile-item.h: Revert 1c946687239b86a92839d57dfbc928ad7ce35eae.
|
||
* backend/rust-compile-stmt.h: Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc
|
||
(PrivacyReporter::visit): Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
|
||
* checks/errors/privacy/rust-pub-restricted-visitor.cc
|
||
(PubRestrictedVisitor::visit): Likewise.
|
||
* checks/errors/privacy/rust-pub-restricted-visitor.h: Likewise.
|
||
* checks/errors/privacy/rust-reachability.cc
|
||
(ReachabilityVisitor::visit): Likewise.
|
||
* checks/errors/privacy/rust-reachability.h: Likewise.
|
||
* checks/errors/privacy/rust-visibility-resolver.cc
|
||
(VisibilityResolver::visit): Likewise.
|
||
* checks/errors/privacy/rust-visibility-resolver.h: Likewise.
|
||
* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
|
||
* checks/errors/rust-const-checker.h: Likewise.
|
||
* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
|
||
* checks/errors/rust-unsafe-checker.h: Likewise.
|
||
* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
|
||
* hir/rust-ast-lower-item.h: Likewise.
|
||
* hir/rust-hir-dump.cc (Dump::visit): Likewise.
|
||
* hir/rust-hir-dump.h: Likewise.
|
||
* hir/tree/rust-hir-full-decls.h (class ExportedMacro): Likewise.
|
||
* hir/tree/rust-hir-item.h (class ExportedMacro): Likewise.
|
||
* hir/tree/rust-hir-visitor.h: Likewise.
|
||
* hir/tree/rust-hir.cc (ExportedMacro::accept_vis): Likewise.
|
||
(ExportedMacro::get_locus): Likewise.
|
||
(ExportedMacro::get_item_kind): Likewise.
|
||
(ExportedMacro::clone_item_impl): Likewise.
|
||
* hir/tree/rust-hir.h: Likewise.
|
||
* metadata/rust-export-metadata.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-item.h: Likewise.
|
||
* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-stmt.h: Likewise.
|
||
* typecheck/rust-tycheck-dump.h: Likewise.
|
||
* util/rust-attributes.cc: Likewise.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): return a TraitObject
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-trait-resolve.cc: don't inject extra inference variables
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Remove extraneous semicolon when
|
||
dumping macro rules.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* metadata/rust-imports.cc (add_search_path): Change `Go` -> `Rust`.
|
||
(Import::try_package_in_directory): Likewise.
|
||
(Import::find_export_data): Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/rust-ast-lower-pattern.cc
|
||
(ASTLoweringPattern::visit): Lower AltPattern.
|
||
* hir/rust-ast-lower-pattern.h:
|
||
(ASTLoweringPattern::visit): Add AltPattern visitor.
|
||
|
||
2024-01-16 Xiao Ma <turingki@yeah.net>
|
||
Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* checks/errors/rust-feature-gate.cc: Adjust 'ld'->'u'.
|
||
* checks/errors/rust-feature.h: Adjust
|
||
the type of `m_issue`: 'uint64_t' -> 'unsigned'.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* ast/rust-ast.h: add const get_final_segment helper
|
||
* hir/rust-ast-lower-enumitem.h: dont add an item mapping for enumitems
|
||
* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): add enum to enum-items mappings
|
||
* hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): likewise
|
||
* hir/tree/rust-hir-item.h: add non const helper to get variants
|
||
* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): resolve the use declaration
|
||
* resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): handle self
|
||
* resolve/rust-ast-resolve-toplevel.h: add enum item mappings to module mappings
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path): ensure variant
|
||
(TypeCheckExpr::resolve_segments): likewise
|
||
* typecheck/rust-type-util.cc (query_type): lookup enum's
|
||
* util/rust-hir-map.cc (Mappings::insert_hir_enumitem): enum item mappings
|
||
(Mappings::lookup_hir_enumitem): likewise
|
||
* util/rust-hir-map.h: likewise
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* resolve/rust-ast-resolve-path.cc (ResolvePath::ResolvePath): return NodeId
|
||
(ResolvePath::go): update signiture
|
||
(ResolvePath::resolve_path): return resolved_node_id
|
||
* resolve/rust-ast-resolve-path.h: update prototypes
|
||
|
||
2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
|
||
|
||
* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit):
|
||
Add lowering for SlicePattern.
|
||
* hir/rust-ast-lower-pattern.h: Likewise.
|
||
* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit):
|
||
Add name resolution visit for SlicePattern.
|
||
* resolve/rust-ast-resolve-pattern.h: Likewise.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* hir/rust-ast-lower-implitem.h (RUST_AST_LOWER_IMPLITEM_H): cleanup header usage
|
||
* hir/rust-ast-lower-item.cc: likewise
|
||
* hir/rust-ast-lower-item.h (RUST_AST_LOWER_ITEM): likewise
|
||
* hir/rust-ast-lower-stmt.cc: likewise
|
||
* hir/rust-ast-lower-stmt.h (RUST_AST_LOWER_STMT): likewise
|
||
* hir/rust-ast-lower-type.h: likewise
|
||
* hir/rust-ast-lower.cc: likewise
|
||
* hir/rust-ast-lower.h: likewise
|
||
* resolve/rust-ast-resolve-expr.h: likewise
|
||
* resolve/rust-ast-resolve-item.cc: likewise
|
||
* resolve/rust-ast-resolve-item.h: likewise
|
||
* resolve/rust-ast-resolve-stmt.cc: likewise
|
||
* resolve/rust-ast-resolve-stmt.h: likewise
|
||
* resolve/rust-ast-resolve-struct-expr-field.h: likewise
|
||
* resolve/rust-ast-resolve-toplevel.h: likewise
|
||
* resolve/rust-ast-resolve-type.h: likewise
|
||
* resolve/rust-ast-resolve.h: likewise
|
||
|
||
2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
|
||
|
||
* resolve/rust-ast-resolve-pattern.h (class ResolvePattern): Removed.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc (move_val_init_handler): new intrinsice
|
||
(uninit_handler): use a builtin memcpy
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-coercion.cc (TypeCoercionRules::select): use the result
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal): fix ctor
|
||
* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): likewise
|
||
* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
|
||
* typecheck/rust-typecheck-context.cc (TypeCheckContext::push_new_loop_context): likewise
|
||
* typecheck/rust-tyty-util.cc (TyVar::get_implicit_infer_var): likewise
|
||
* typecheck/rust-tyty.cc (InferType::InferType): new ctor with type hint
|
||
(InferType::clone): fix ctor
|
||
(InferType::apply_primitive_type_hint): new function to apply possible hint
|
||
* typecheck/rust-tyty.h: update prototypes
|
||
* typecheck/rust-unify.cc (UnifyRules::expect_inference_variable): apply type hints
|
||
(UnifyRules::expect_bool): likewise
|
||
(UnifyRules::expect_char): likewise
|
||
(UnifyRules::expect_int): likewise
|
||
(UnifyRules::expect_uint): likewise
|
||
(UnifyRules::expect_float): likewise
|
||
(UnifyRules::expect_isize): likewise
|
||
(UnifyRules::expect_usize): likewise
|
||
|
||
2024-01-16 Jiakun Fan <120090316@link.cuhk.edu.cn>
|
||
|
||
* hir/rust-hir-dump.cc (Dump::go): fix format
|
||
(Dump::visit): impl `visit (AST::Attribute &)`, dump inner attrs and
|
||
`visit (Lifetime &)`
|
||
* hir/rust-hir-dump.h:add `visit (AST::Attribute &)`
|
||
|
||
2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
|
||
|
||
* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go):
|
||
Print out consistency errors.
|
||
(PatternDeclaration::visit): Implement visit for AltPattern.
|
||
(PatternDeclaration::add_new_binding): New helper function for
|
||
adding a binding to identifier.
|
||
* resolve/rust-ast-resolve-pattern.h (struct BindingInfo):
|
||
New struct to facilitate checking for inconsistencies between bindings.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-block.h
|
||
(CompileConditionalBlocks::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
(CompileExprWithBlock::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
* backend/rust-compile-expr.h
|
||
(CompileExpr::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
* checks/errors/rust-unsafe-checker.cc
|
||
(UnsafeChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
* checks/errors/rust-unsafe-checker.h
|
||
(UnsafeChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
* checks/errors/rust-const-checker.cc
|
||
(ConstChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
* checks/errors/rust-const-checker.h
|
||
(ConstChecker::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc
|
||
(PrivacyReporter::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
* checks/errors/privacy/rust-privacy-reporter.h
|
||
(PrivacyReporter::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
* hir/tree/rust-hir-expr.h
|
||
(class IfLetExprConseqElse): Make else_block ExprWithBlock.
|
||
(class IfLetExprConseqIf): Remove.
|
||
(class IfLetExprConseqIfLet): Remove.
|
||
* hir/tree/rust-hir-full-decls.h
|
||
(class IfLetExprConseqIf): Remove.
|
||
(class IfLetExprConseqIfLet): Remove.
|
||
* hir/tree/rust-hir.cc
|
||
(IfLetExprConseqElse::as_string): Adjust output.
|
||
(IfLetExprConseqIf::as_string): Remove.
|
||
(IfLetExprConseqIfLet::as_string): Remove.
|
||
(IfLetExprConseqIf::accept_vis): Remove.
|
||
(IfLetExprConseqIfLet::accept_vis): Remove.
|
||
* hir/tree/rust-hir-visitor.h
|
||
(HIRFullVisitor::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
(HIRFullVisitorBase::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
(HIRExpressionVisitor::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
* hir/rust-hir-dump.cc
|
||
(Dump::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
* hir/rust-hir-dump.h
|
||
(Dump::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
* typecheck/rust-hir-type-check-expr.h
|
||
(TypeCheckExpr::visit): Remove IfLetExprConseqIf{,Let} visitors.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc
|
||
(TypeCheckExpr::visit): Remove IfExprConseqIf visitor.
|
||
* typecheck/rust-hir-type-check-expr.h
|
||
(TypeCheckExpr::visit): Remove IfExprConseqIf{,Let} visitor.
|
||
* backend/rust-compile-block.cc
|
||
(CompileConditionalBlocks::visit): Remove IfExprConseqIf visitor.
|
||
* backend/rust-compile-block.h
|
||
(CompileConditionalBlocks::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
(CompileExprWithBlock::visit):
|
||
Remove IfExprConseqIf{,Let} visitors, implement BlockExpr visitor.
|
||
* backend/rust-compile-expr.cc
|
||
(CompileExpr::visit): Remove IfExprConseqIf visitor.
|
||
* backend/rust-compile-expr.h
|
||
(CompileExpr::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
* checks/lints/rust-lint-marklive.h
|
||
(MarkLive::visit): Remove IfExprConseqIf visitor.
|
||
* checks/errors/rust-const-checker.cc
|
||
(ConstChecker::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
* checks/errors/rust-const-checker.h
|
||
(ConstChecker::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
* checks/errors/rust-unsafe-checker.cc
|
||
(UnsafeChecker::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
* checks/errors/rust-unsafe-checker.h
|
||
(UnsafeChecker::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc
|
||
(PrivacyReporter::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
* checks/errors/privacy/rust-privacy-reporter.h
|
||
(PrivacyReporter::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
* hir/tree/rust-hir-expr.h
|
||
(class IfExprConseqElse): Make else_block ExprWithBlock.
|
||
(class IfExprConseqIf): Remove.
|
||
(class IfExprConseqIfLet): Remove.
|
||
* hir/tree/rust-hir-full-decls.h
|
||
(class IfExprConseqIf): Remove.
|
||
(class IfExprConseqIfLet): Remove.
|
||
* hir/tree/rust-hir.cc
|
||
(IfExprConseqElse::as_string): Adjust output.
|
||
(IfExprConseqIf::as_string): Remove.
|
||
(IfExprConseqIfLet::as_string): Remove.
|
||
(IfExprConseqIf::accept_vis): Remove.
|
||
(IfExprConseqIfLet::accept_vis): Remove.
|
||
* hir/tree/rust-hir-visitor.h
|
||
(HIRFullVisitor::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
(HIRFullVisitorBase::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
(HIRExpressionVisitor::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
* hir/rust-hir-dump.cc
|
||
(Dump::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
* hir/rust-hir-dump.h
|
||
(Dump::visit): Remove IfExprConseqIf{,Let} visitors.
|
||
* hir/rust-ast-lower.cc
|
||
(ASTLoweringIfBlock::visit): Replace HIR::IfExprConseqIf with HIR::IfExprConseqElse.
|
||
|
||
2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
|
||
|
||
* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
|
||
Push a Product context instead of an Or context.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-inherent-impl-overlap.h (class ImplItemToName): remove
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::resolve_method_address): remove unused code
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): remove infer call
|
||
(TypeCheckExpr::resolve_root_path): only infer when we need to
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): add debug
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile.cc: use unify_and instead
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionRef::solve_missing_mappings_from_this): remove
|
||
* typecheck/rust-tyty-subst.h: update header
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-coercion.cc (TypeCoercionRules::select): use new unify_and interface
|
||
* typecheck/rust-hir-dot-operator.cc (MethodResolver::try_hook): grab bounds behind refs
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-base.cc: fix headers
|
||
* backend/rust-compile-base.h: likewise
|
||
* backend/rust-compile-expr.cc: likewise
|
||
* backend/rust-compile-extern.h: likewise
|
||
* backend/rust-compile-pattern.cc: likewise
|
||
* backend/rust-compile.cc: likewise
|
||
* typecheck/rust-autoderef.cc: likewise
|
||
* typecheck/rust-hir-dot-operator.cc: likewise
|
||
* typecheck/rust-hir-inherent-impl-overlap.h: likewise
|
||
* typecheck/rust-hir-path-probe.cc: likewise
|
||
* typecheck/rust-hir-trait-resolve.cc: likewise
|
||
* typecheck/rust-hir-type-check-base.cc: likewise
|
||
* typecheck/rust-hir-type-check-base.h (RUST_HIR_TYPE_CHECK_BASE): likewise
|
||
* typecheck/rust-hir-type-check-enumitem.cc: likewise
|
||
* typecheck/rust-hir-type-check-expr.cc: likewise
|
||
* typecheck/rust-hir-type-check-implitem.cc: likewise
|
||
* typecheck/rust-hir-type-check-item.cc: likewise
|
||
* typecheck/rust-hir-type-check-path.cc: likewise
|
||
* typecheck/rust-hir-type-check-pattern.cc: likewise
|
||
* typecheck/rust-hir-type-check-stmt.cc: likewise
|
||
* typecheck/rust-hir-type-check-struct.cc: likewise
|
||
* typecheck/rust-hir-type-check-type.cc: likewise
|
||
* typecheck/rust-hir-type-check-type.h: likewise
|
||
* typecheck/rust-hir-type-check.h (RUST_HIR_TYPE_CHECK): likewise
|
||
* typecheck/rust-tyty-bounds.cc: likewise
|
||
* typecheck/rust-tyty-call.cc: likewise
|
||
* typecheck/rust-tyty-subst.cc: likewise
|
||
* typecheck/rust-tyty.cc: likewise
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty.cc (BaseType::has_subsititions_defined): new implementation
|
||
(BaseType::needs_generic_substitutions): likewise
|
||
(ProjectionType::needs_generic_substitutions): remove
|
||
(ProjectionType::has_subsititions_defined): remove
|
||
* typecheck/rust-tyty.h: update header
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): update to use new interface
|
||
(TypeCheckExpr::resolve_root_path): likewise
|
||
(TypeCheckExpr::resolve_segments): likewise
|
||
* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): likewise
|
||
(TypeCheckType::resolve_root_path): likewise
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args): likewise
|
||
* typecheck/rust-tyty.cc (BaseType::supports_substitutions): likewise
|
||
(BaseType::can_substitute): remove
|
||
(BaseType::contains_type_parameters): remove
|
||
(handle_substitions): cleanup
|
||
(TupleType::handle_substitions): update
|
||
(FnType::handle_substitions): update
|
||
(ProjectionType::supports_substitutions): update
|
||
* typecheck/rust-tyty.h: update header
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty.h: cleanup ordering of header
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty.cc (BaseType::monomorphized_clone): new impl
|
||
(InferType::monomorphized_clone): remove
|
||
(ErrorType::monomorphized_clone): likewise
|
||
(ADTType::monomorphized_clone): likewise
|
||
(TupleType::monomorphized_clone): likewise
|
||
(FnType::monomorphized_clone): likewise
|
||
(FnPtr::monomorphized_clone): likewise
|
||
(ClosureType::monomorphized_clone): likewise
|
||
(ArrayType::clone): likewise
|
||
(ArrayType::get_var_element_type): likewise
|
||
(ArrayType::monomorphized_clone): likewise
|
||
(SliceType::clone): likewise
|
||
(SliceType::get_var_element_type): likewise
|
||
(SliceType::monomorphized_clone): likewise
|
||
(BoolType::monomorphized_clone): likewise
|
||
(IntType::monomorphized_clone): likewise
|
||
(UintType::monomorphized_clone): likewise
|
||
(FloatType::monomorphized_clone): likewise
|
||
(USizeType::monomorphized_clone): likewise
|
||
(ISizeType::monomorphized_clone): likewise
|
||
(CharType::monomorphized_clone): likewise
|
||
(ReferenceType::clone): likewise
|
||
(ReferenceType::get_var_element_type): likewise
|
||
(ReferenceType::monomorphized_clone): likewise
|
||
(PointerType::clone): likewise
|
||
(PointerType::get_var_element_type): likewise
|
||
(PointerType::monomorphized_clone): likewise
|
||
(ParamType::monomorphized_clone): likewise
|
||
(StrType::monomorphized_clone): likewise
|
||
(NeverType::monomorphized_clone): likewise
|
||
(PlaceholderType::monomorphized_clone): likewise
|
||
(ProjectionType::monomorphized_clone): likewise
|
||
(DynamicObjectType::monomorphized_clone): likewise
|
||
* typecheck/rust-tyty.h: update header
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty.cc (BaseType::is_unit): new implementation
|
||
(ErrorType::is_unit): remove
|
||
(TupleType::is_unit): likewise
|
||
(NeverType::is_unit): likewise
|
||
(PlaceholderType::is_unit): likewise
|
||
(ProjectionType::is_unit): likewise
|
||
* typecheck/rust-tyty.h: update header
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty.cc (BaseType::is_concrete): new implementation
|
||
(InferType::is_concrete): remove
|
||
(ErrorType::is_concrete): likewise
|
||
(StructFieldType::is_concrete): likewise
|
||
(ADTType::is_concrete): likewise
|
||
(TupleType::is_concrete): likewise
|
||
(BoolType::is_concrete): likewise
|
||
(IntType::is_concrete): likewise
|
||
(UintType::is_concrete): likewise
|
||
(FloatType::is_concrete): likewise
|
||
(USizeType::is_concrete): likewise
|
||
(ISizeType::is_concrete): likewise
|
||
(CharType::is_concrete): likewise
|
||
(ReferenceType::is_concrete): likewise
|
||
(PointerType::is_concrete): likewise
|
||
(ParamType::is_concrete): likewise
|
||
(StrType::is_concrete): likewise
|
||
(NeverType::is_concrete): likewise
|
||
(PlaceholderType::is_concrete): likewise
|
||
(ProjectionType::is_concrete): likewise
|
||
(DynamicObjectType::is_concrete): likewise
|
||
* typecheck/rust-tyty.h: update header
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-type.cc (TyTyResolveCompile::TyTyResolveCompile): call destructure
|
||
(TyTyResolveCompile::compile): use error_mark_node
|
||
(TyTyResolveCompile::visit): use error_mark_node
|
||
* backend/rust-compile-type.h: remove recursive ops
|
||
|
||
2024-01-16 Tage Johansson <frans.tage@gmail.com>
|
||
|
||
* parse/rust-parse.cc: fix follow-sets
|
||
|
||
2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
|
||
|
||
* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit) :declare and
|
||
pass bindings to PatternDeclaration::go.
|
||
(ResolveExpr::resolve_closure_param): Likewise.
|
||
* resolve/rust-ast-resolve-expr.h: Likewise.
|
||
* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit): Likewise.
|
||
(ResolveItem::visit): Likewise.
|
||
* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go): Likewise.
|
||
(PatternDeclaration::visit): check for previous identifier bindings
|
||
before inserting the new one.
|
||
* resolve/rust-ast-resolve-pattern.h (enum PatternBoundCtx): New enum.
|
||
* resolve/rust-ast-resolve-stmt.h: pass bindings to PatterDeclaration::go.
|
||
|
||
2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::generate_closure_function):
|
||
handle closure parameters pattern bindings using CompilePatternBindings visitor
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* README.md (process): Rename `rust1` to `crab1` in examples.
|
||
* Make-lang.in: Rename `rust1` to `crab1`.
|
||
* config-lang.in: Likewise.
|
||
* lang-specs.h: Likewise.
|
||
* rustspec.cc (lang_specific_driver): Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/tree/rust-hir-pattern.h
|
||
(SlicePattern::get_items): Add.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/tree/rust-hir-full-decls.h
|
||
(struct GenericArgsBinding): Convert to class.
|
||
(class GenericArgsBinding): Convert from struct.
|
||
(struct TypePathFunction): See above.
|
||
(class TypePathFunction): See above.
|
||
(struct QualifiedPathType): See above.
|
||
(class QualifiedPathType): See above.
|
||
* ast/rust-ast-full-decls.h
|
||
(struct WhereClause): See above.
|
||
(class WhereClause): See above.
|
||
(struct SelfParam): See above.
|
||
(class SelfParam): See above.
|
||
(struct FunctionQualifiers): See above.
|
||
(class FunctionQualifiers): See above.
|
||
(struct FunctionParam): See above.
|
||
(class FunctionParam): See above.
|
||
(struct StructField): See above.
|
||
(class StructField): See above.
|
||
(struct TupleField): See above.
|
||
(class TupleField): See above.
|
||
(struct TraitFunctionDecl): See above.
|
||
(class TraitFunctionDecl): See above.
|
||
(struct TraitMethodDecl): See above.
|
||
(class TraitMethodDecl): See above.
|
||
(struct NamedFunctionParam): See above.
|
||
(class NamedFunctionParam): See above.
|
||
* hir/tree/rust-hir-path.h
|
||
(struct GenericArgsBinding): See above.
|
||
(class GenericArgsBinding): See above.
|
||
(struct TypePathFunction): See above.
|
||
(class TypePathFunction): See above.
|
||
(struct QualifiedPathType): See above.
|
||
(class QualifiedPathType): See above.
|
||
* ast/rust-item.h
|
||
(struct WhereClause): See above.
|
||
(class WhereClause): See above.
|
||
(struct SelfParam): See above.
|
||
(class SelfParam): See above.
|
||
(struct FunctionQualifiers): See above.
|
||
(class FunctionQualifiers): See above.
|
||
(struct FunctionParam): See above.
|
||
(class FunctionParam): See above.
|
||
(struct StructField): See above.
|
||
(class StructField): See above.
|
||
(struct TupleField): See above.
|
||
(class TupleField): See above.
|
||
(struct TraitFunctionDecl): See above.
|
||
(class TraitFunctionDecl): See above.
|
||
(struct TraitMethodDecl): See above.
|
||
(class TraitMethodDecl): See above.
|
||
(struct NamedFunctionParam): See above.
|
||
(class NamedFunctionParam): See above.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/tree/rust-hir-pattern.h
|
||
(class AltPattern): Remove duplicate access specifier.
|
||
(AltPattern::get_alts): Add.
|
||
* hir/tree/rust-hir.cc
|
||
(AltPattern::as_string): Add.
|
||
(AltPattern::accept_vis): Add.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* hir/tree/rust-hir-item.h (class ExportedMacro): Add new ExportedMacro class.
|
||
* hir/tree/rust-hir.cc (ExportedMacro::accept_vis): New function.
|
||
(ExportedMacro::get_locus): Likewise.
|
||
(ExportedMacro::get_item_kind): Likewise.
|
||
(ExportedMacro::clone_item_impl): Likewise.
|
||
* hir/tree/rust-hir-full-decls.h (class ExportedMacro): Forward declare class.
|
||
* backend/rust-compile-item.h: Add visitor for ExportedMacro.
|
||
* backend/rust-compile-stmt.h: Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
|
||
* checks/errors/privacy/rust-pub-restricted-visitor.cc (PubRestrictedVisitor::visit):
|
||
Likewise.
|
||
* checks/errors/privacy/rust-pub-restricted-visitor.h: Likewise.
|
||
* checks/errors/privacy/rust-reachability.cc (ReachabilityVisitor::visit): Likewise.
|
||
* checks/errors/privacy/rust-reachability.h: Likewise.
|
||
* checks/errors/privacy/rust-visibility-resolver.cc (VisibilityResolver::visit): Likewise.
|
||
* checks/errors/privacy/rust-visibility-resolver.h: Likewise.
|
||
* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
|
||
* checks/errors/rust-const-checker.h: Likewise.
|
||
* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
|
||
* checks/errors/rust-unsafe-checker.h: Likewise.
|
||
* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
|
||
* hir/rust-ast-lower-item.h: Likewise.
|
||
* hir/rust-hir-dump.cc (Dump::visit): Likewise.
|
||
* hir/rust-hir-dump.h: Likewise.
|
||
* hir/tree/rust-hir-visitor.h: Likewise.
|
||
* metadata/rust-export-metadata.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-item.h: Likewise.
|
||
* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-stmt.h: Likewise.
|
||
* typecheck/rust-tycheck-dump.h: Likewise.
|
||
* hir/tree/rust-hir.h: Add new ItemKind::MacroExport variant.
|
||
* util/rust-attributes.cc: Add #[macro_export] attribute.
|
||
|
||
2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
|
||
|
||
* backend/rust-compile-fnparam.cc (CompileFnParam::visit):
|
||
Added visit implementation for ReferencePattern.
|
||
(CompileFnParam::create_tmp_param_var):
|
||
Refactored duplicated code into a helper function.
|
||
* backend/rust-compile-fnparam.h: Added visit implementation for
|
||
ReferencePattern.
|
||
* backend/rust-compile-pattern.cc (CompilePatternBindings::visit):
|
||
Added visit implementation for ReferencePattern and
|
||
IdentifierPattern.
|
||
* backend/rust-compile-pattern.h: Added visit implementation for
|
||
ReferencePattern and IdentifierPattern.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Move
|
||
unloaded module item loading to...
|
||
* expand/rust-attribute-visitor.cc (AttrVisitor::visit): ...here.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* hir/rust-hir-dump.cc (Dump::visit): Simplify indentation dump to single line.
|
||
|
||
2024-01-16 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Indent::Indent): Move to separate file.
|
||
(operator<<): Move to separate file.
|
||
(Indent::increment): Move to separate file.
|
||
(Indent::decrement): Move to separate file.
|
||
* ast/rust-ast-dump.h (class Indent): Move to separate file.
|
||
* hir/rust-hir-dump.cc (Dump::Dump): Use new indentation object.
|
||
(Dump::go): Use new indentation object.
|
||
(Dump::visit): Use new indention object.
|
||
* hir/rust-hir-dump.h: Use new indentation object.
|
||
* util/rust-dump.h: New file. Moved Indentation from rust-ast-dump.cc
|
||
|
||
2024-01-16 Mahmoud Mohamed <mahadelr19@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
|
||
Add the missing infered type assignment
|
||
|
||
2024-01-16 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
PR rust/108111
|
||
* ast/rust-ast-full-decls.h (StructPatternElements): Declare as a
|
||
class.
|
||
* ast/rust-item.h (EnumItem): Mark several method as being
|
||
overrides.
|
||
* ast/rust-pattern.h (StructPattern::get_locus): Add override.
|
||
* lex/rust-lex.h (BufferInputSource): Use reference_wrapper
|
||
instead of bare reference.
|
||
(TokenSource::get): Add method to implement the reference_wrapper
|
||
interface.
|
||
* typecheck/rust-tyty.h (TypeBoundPredicate): Add empty dtor.
|
||
* util/rust-buffered-queue.h (peek): Source token stream is now
|
||
using a reference_wrapper, use .get()
|
||
|
||
2024-01-16 vincent <jfan30@u.rochester.edu>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.cc
|
||
(TypeCheckPattern::visit): rewrite part code to helper function
|
||
(TypeCheckPattern::typecheck_range_pattern_bound): helper function
|
||
* typecheck/rust-hir-type-check-pattern.h
|
||
(TypeCheckPattern::typecheck_range_pattern_bound):
|
||
change the parameter of the function
|
||
|
||
2024-01-16 goar5670 <mahadelr19@gmail.com>
|
||
|
||
* hir/tree/rust-hir-pattern.h (HIR::ReferencePattern):
|
||
added get_referenced_pattern function.
|
||
* resolve/rust-ast-resolve-pattern.h
|
||
(Resolve::PatternDeclaration): add visit function for
|
||
AST::ReferencePattern
|
||
* typecheck/rust-hir-type-check-pattern.cc
|
||
(Resolver::TypeCheckPattern): add visit function for
|
||
HIR::ReferencePattern
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* util/rust-lang-item.h
|
||
(RustLangItem::ItemType): New enumerators.
|
||
(RustLangItem::Parse): Parse new enumerators.
|
||
(RustLangItem::ToString): Handle new enumerators.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-fnparam.h:
|
||
(CompileFnParam::visit): Add AltPattern visitor.
|
||
* backend/rust-compile-pattern.h:
|
||
(CompilePatternCaseLabelExpr::visit): Add AltPattern visitor.
|
||
(CompilePatternBindings::visit): Add AltPattern visitor.
|
||
(CompilePatternLet::visit): Add AltPattern visitor.
|
||
* backend/rust-compile-resolve-path.h:
|
||
(ResolvePathRef::visit): Add AltPattern visitor.
|
||
* backend/rust-compile-var-decl.h:
|
||
(CompileVarDecl::visit): Add AltPattern visitor.
|
||
* checks/errors/rust-const-checker.cc
|
||
(ConstChecker::visit): Add AltPattern visitor.
|
||
* checks/errors/rust-const-checker.h:
|
||
(ConstChecker::visit): Add AltPattern visitor.
|
||
* checks/errors/rust-unsafe-checker.cc
|
||
(UnsafeChecker::visit): Add AltPattern visitor.
|
||
* checks/errors/rust-unsafe-checker.h:
|
||
(UnsafeChecker::visit): Add AltPattern visitor.
|
||
* hir/rust-hir-dump.cc
|
||
(Dump::visit): Add AltPattern visitor.
|
||
* hir/rust-hir-dump.h:
|
||
(Dump::visit): Add AltPattern visitor.
|
||
* hir/tree/rust-hir-full-decls.h
|
||
(class AltPattern): Add forward declaration.
|
||
* hir/tree/rust-hir-pattern.h
|
||
(class AltPattern): New class.
|
||
* hir/tree/rust-hir-visitor.h:
|
||
(HIRFullVisitor::visit): Add AltPattern visitor.
|
||
(HIRFullVisitorBase::visit): Add AltPattern visitor.
|
||
(HIRPatternVisitor::visit): Add AltPattern visitor.
|
||
* hir/tree/rust-hir.h:
|
||
(Pattern::PatternType::ALT): New enumerator.
|
||
* typecheck/rust-hir-type-check-pattern.cc
|
||
(TypeCheckPattern::visit): Add AltPattern visitor.
|
||
* typecheck/rust-hir-type-check-pattern.h:
|
||
(TypeCheckPattern::visit): Add AltPattern visitor.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-macro.cc (builtin_macro_from_string): Add identifier
|
||
identification.
|
||
* ast/rust-macro.h (enum class): Add Stringify builtin macro
|
||
type.
|
||
* expand/rust-macro-builtins.cc (make_macro_path_str): Add path
|
||
for builtin stringify macro.
|
||
(MacroBuiltin::stringify_handler): Add handler for builtin
|
||
stringify macro.
|
||
* expand/rust-macro-builtins.h: Add stringify handler's
|
||
prototype.
|
||
* util/rust-hir-map.cc (Mappings::insert_macro_def): Add
|
||
stringify handler to builtin hir map.
|
||
|
||
2024-01-16 Nikos Alexandris <nikos-alexandris@protonmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
|
||
Add length checking for tuple patterns.
|
||
(TypeCheckPattern::emit_pattern_size_error): New function.
|
||
* typecheck/rust-hir-type-check-pattern.h: New function
|
||
emit_pattern_size_error.
|
||
|
||
2024-01-16 goar5670 <mahadelr19@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_expr):
|
||
split LEFT_SHIFT before null_denotation.
|
||
|
||
2024-01-16 Parthib <parthibdutta02@gmail.com>
|
||
|
||
* rust-object-export.cc: Modified
|
||
* hir/rust-ast-lower-type.cc (rust_fatal_error): Removed
|
||
(rust_assert): Added
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* resolve/rust-early-name-resolver.cc
|
||
(EarlyNameResolver::visit):
|
||
Check for closure parameter without given type.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-typecheck-context.cc (TypeCheckContext::insert_resolved_predicate): remove
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* resolve/rust-ast-resolve-type.cc (ResolveRelativeQualTypePath::resolve_qual_seg): fix
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* ast/rust-path.h: add missing copy for node_id
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* rust-gcc.h: remove unused headers
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* ast/rust-ast.cc (QualifiedPathInType::as_string): add missing to string
|
||
* ast/rust-path.h: add missing copy+move constructors and assignment overloads
|
||
* hir/tree/rust-hir-path.h: likewise
|
||
* hir/tree/rust-hir.cc (QualifiedPathInType::as_string): add missing to string
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty.cc (ParamType::get_name): call destructure
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-trait-resolve.cc: use unify_and infer
|
||
|
||
2024-01-16 goar5670 <mahadelr19@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_closure_param):
|
||
Replace parse_pattern with parse_pattern_no_alt.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_while_let_loop_expr):
|
||
Prevent hard error on token skip.
|
||
(Parser::null_denotation): Fix parser for while let expressions.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-builtins.cc (BuiltinsContext::setup): add memset builtin to the map
|
||
* backend/rust-compile-intrinsic.cc (uninit_handler): implement uninit intrinsic
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_slice_pattern): Add
|
||
closing square bracket check.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_external_type_item):
|
||
Fix compilation error due to unnecessary move.
|
||
|
||
2024-01-16 Abdul Rafey <abdulrafeyq@gmail.com>
|
||
|
||
* hir/rust-hir-dump.cc (Dump::go): support inner attrs, crate items and node mappings
|
||
(Dump::visit): support functions, arith/logical exprs, let stmts and literals
|
||
|
||
2024-01-16 Nikos Alexandris <nikos-alexandris@protonmail.com>
|
||
|
||
* expand/rust-macro-builtins.cc (load_file_bytes): Add location parameter.
|
||
(MacroBuiltin::include_bytes_handler): Pass location to load_file_bytes.
|
||
(MacroBuiltin::include_str_handler): Pass location to load_file_bytes.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_pattern_no_alt): Handle
|
||
RestPattern correctly.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-pattern.h (class RestPattern): Add NodeId as well as
|
||
the clone_impl function.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::null_denotation): Fix if let
|
||
parsing.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc (op_with_overflow_inner): wraps op_with_overflow
|
||
(std::function<tree): likewise
|
||
(op_with_overflow): generate the intrinsic based on the tree_code op
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in: Add rust-ast-lower-stmt.o
|
||
* hir/rust-ast-lower-stmt.h: Move definitions to...
|
||
* hir/rust-ast-lower-stmt.cc: ...here.
|
||
|
||
2024-01-16 mxlol233 <mxlol233@outlook.com>
|
||
|
||
* checks/errors/rust-feature-gate.cc: Add definition
|
||
for `extern_types`.
|
||
* checks/errors/rust-feature-gate.h: Likewise.
|
||
* checks/errors/rust-feature.cc: Likewise.
|
||
* checks/errors/rust-feature.h: Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-pattern.h
|
||
(StructPatternElements::operator=): Clear vector before inserting.
|
||
(TupleStructItemsNoRange::operator=): Clear vector before inserting.
|
||
(TupleStructItemsRange::operator=): Clear vectors before inserting.
|
||
(TuplePatternItemsMultiple::operator=): Clear vector before inserting.
|
||
(TuplePatternItemsRanged::operator=): Clear vectors before inserting.
|
||
(SlicePattern::operator=): Clear vector before inserting.
|
||
(AltPattern::operator=): Clear vector before inserting.
|
||
* hir/tree/rust-hir-pattern.h
|
||
(StructPatternElements::operator=): Clear vector before inserting.
|
||
(TupleStructItemsNoRange::operator=): Clear vector before inserting.
|
||
(TupleStructItemsRange::operator=): Clear vectors before inserting.
|
||
(TuplePatternItemsMultiple::operator=): Clear vector before inserting.
|
||
(TuplePatternItemsRanged::operator=): Clear vectors before inserting.
|
||
(SlicePattern::operator=): Clear vector before inserting.
|
||
|
||
2024-01-16 bl7awy <mahadelr19@gmail.com>
|
||
|
||
* typecheck/rust-casts.cc (TypeCastRules::cast_rules): Perform destructure on `from` type.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-pattern.h
|
||
(struct StructPatternElements): Change to class.
|
||
(class StructPatternElements): Change from struct.
|
||
* hir/tree/rust-hir-pattern.h
|
||
(struct StructPatternElements): Change to class.
|
||
(class StructPatternElements): Change from struct.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.cc
|
||
(TypeCheckPattern::visit): Improve error messages.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/tree/rust-hir-pattern.h
|
||
(class TupleStructItemsNoRange): Fix formatting.
|
||
(class TupleStructItemsRange): Fix formatting.
|
||
(class TuplePatternItemsMultiple): Fix formatting.
|
||
(class TuplePatternItemsRanged): Fix formatting.
|
||
(class SlicePattern): Fix formatting.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add visitor.
|
||
* ast/rust-ast-dump.h: Add visitor prototype.
|
||
* ast/rust-ast-full-decls.h (class RestPattern): Add forward
|
||
declaration for class RestPattern.
|
||
* ast/rust-ast-visitor.h: Add visitor prototype.
|
||
* ast/rust-ast.cc (RestPattern::accept_vis): Add function to
|
||
accept a foreign visitor.
|
||
* ast/rust-pattern.h (class RestPattern): Add class RestPattern.
|
||
* checks/errors/rust-feature-gate.h: Add visitor prototype.
|
||
* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Add
|
||
visitor implementation.
|
||
* expand/rust-attribute-visitor.h: Add visitor prototype.
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Add
|
||
visitor implementation.
|
||
* hir/rust-ast-lower-base.h: Add visitor prototype.
|
||
* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Add
|
||
visitor implementation.
|
||
* resolve/rust-ast-resolve-base.h: Add visitor prototype.
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit):
|
||
Add visitor implementation.
|
||
* resolve/rust-early-name-resolver.h: Add visitor prototype.
|
||
* util/rust-attributes.cc (AttributeChecker::visit): Add visitor
|
||
implementation.
|
||
* util/rust-attributes.h: Add visitor prototype.
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty-cmp.h: remove
|
||
* typecheck/rust-tyty.cc (set_cmp_autoderef_mode): likewise
|
||
(reset_cmp_autoderef_mode): likewise
|
||
* typecheck/rust-tyty.h (set_cmp_autoderef_mode): likewise
|
||
(reset_cmp_autoderef_mode): likewise
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-coercion.cc (TypeCoercionRules::Coerce): Add new try_flag
|
||
(TypeCoercionRules::TypeCoercionRules): set new try flag
|
||
(TypeCoercionRules::do_coercion): default to a final unify_and in the else case
|
||
(TypeCoercionRules::coerce_unsafe_ptr): cannot coerce to a ptr from ref during autoderef
|
||
(TypeCoercionRules::coerce_borrowed_pointer): respect coerceable mutability
|
||
* typecheck/rust-coercion.h: update header
|
||
* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): use new TryCoerce interface
|
||
(MethodResolver::append_adjustments): ensure we maintain adjustment mappings
|
||
* typecheck/rust-hir-dot-operator.h: add new method append_adjustments
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): extra logging
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-unify.cc (UnifyRules::go): fix inference check
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-base.h: unconsify
|
||
* backend/rust-compile.cc (HIRCompileBase::coercion_site): likewise
|
||
(HIRCompileBase::coercion_site1): likewise
|
||
* typecheck/rust-autoderef.cc (Adjuster::try_deref_type): likewise
|
||
(Adjuster::try_raw_deref_type): likewise
|
||
(Adjuster::try_unsize_type): likewise
|
||
(AutoderefCycle::cycle): likewise
|
||
(AutoderefCycle::try_autoderefed): likewise
|
||
* typecheck/rust-autoderef.h: likewise
|
||
* typecheck/rust-coercion.cc (TypeCoercionRules::select): likewise
|
||
* typecheck/rust-coercion.h: likewise
|
||
* typecheck/rust-hir-dot-operator.cc (MethodResolver::Probe): likewise
|
||
(MethodResolver::select): likewise
|
||
* typecheck/rust-hir-dot-operator.h: likewise
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-unify.cc (UnifyRules::go): respect the emit_errors flag
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-casts.cc (TypeCastRules::check): update to new interface
|
||
* typecheck/rust-coercion.cc (TypeCoercionRules::Coerce): likewise
|
||
(TypeCoercionRules::TryCoerce): likewise
|
||
(TypeCoercionRules::TypeCoercionRules): likewise
|
||
* typecheck/rust-coercion.h: likewise
|
||
* typecheck/rust-type-util.cc (coercion_site): likewise
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-unify.cc (UnifyRules::go): allow lhs infer vars
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::resolve_method_address): update to new inteface
|
||
* typecheck/rust-coercion.cc (TypeCoercionRules::coerce_unsafe_ptr): likewise
|
||
(TypeCoercionRules::coerce_borrowed_pointer): likewise
|
||
* typecheck/rust-hir-type-check.h: likewise
|
||
* typecheck/rust-type-util.cc (unify_site_and): new interface to allow for infer and commit
|
||
* typecheck/rust-type-util.h (unify_site_and): likewise
|
||
* typecheck/rust-typecheck-context.cc (TypeCheckContext::clear_type): new interface
|
||
* typecheck/rust-unify.cc (UnifyRules::UnifyRules): update
|
||
(UnifyRules::Resolve): new optional flags for commit and infer
|
||
(UnifyRules::go): likewise
|
||
(UnifyRules::expect_adt): refactor to use new interface
|
||
(UnifyRules::expect_reference): likewise
|
||
(UnifyRules::expect_pointer): likewise
|
||
(UnifyRules::expect_array): likewise
|
||
(UnifyRules::expect_slice): likewise
|
||
(UnifyRules::expect_fndef): likewise
|
||
(UnifyRules::expect_fnptr): likewise
|
||
(UnifyRules::expect_tuple): likewise
|
||
(UnifyRules::expect_closure): likewise
|
||
* typecheck/rust-unify.h: refactor interface
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-unify.cc (UnifyRules::Resolve): refactor
|
||
(UnifyRules::commit): refactor
|
||
* typecheck/rust-unify.h: likewise
|
||
|
||
2024-01-16 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty.cc (ADTType::is_concrete): need to consider if is a num_variant
|
||
* typecheck/rust-tyty.h: refactor to cc file
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_external_type_item):
|
||
Add function to parser an external type item.
|
||
(Parser::parse_external_item):
|
||
Add identification and parsing for external type items.
|
||
* parse/rust-parse.h:
|
||
Add parser_external_type_item prototype.
|
||
|
||
2024-01-16 omkar-mohanty <franzohouser@gmail.com>
|
||
|
||
* expand/rust-macro-builtins.cc
|
||
(MacroBuiltin::include_str_handler): eager expansion
|
||
(make_macro_path_str): macto to string
|
||
(parse_single_string_literal): check for eager invocation
|
||
(MacroBuiltin::assert_handler): eager expansion
|
||
(MacroBuiltin::include_bytes_handler): eager expansion
|
||
(MacroBuiltin::include_str_handler): eager expansion
|
||
(MacroBuiltin::compile_error_handler): eager expansion
|
||
(MacroBuiltin::include_handler): eager expansion
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-item.h (class Method): Add `is_default` field.
|
||
(class Function): Likewise.
|
||
* parse/rust-parse-impl.h (Parser::parse_item): Add nice error when
|
||
parsing `default` outside of an `impl` block
|
||
(Parser::parse_trait_impl_item): Allow parsing functions
|
||
or methods when seeing `default`.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::cast_site):
|
||
Remove cast_site.
|
||
* typecheck/rust-hir-type-check-base.h: Remove cast_site
|
||
prototype.
|
||
* typecheck/rust-type-util.cc (cast_site): Add cast_site.
|
||
* typecheck/rust-type-util.h (cast_site): Add cast_site
|
||
prototype.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-item.h: Add non-const `get_visibility` to ExternalTypeItem.
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add implementation for ExternalTypeItem.
|
||
* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Likewise.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-item.h (class ExternalTypeItem): New class.
|
||
* ast/rust-ast.cc (ExternalTypeItem::as_string): New function.
|
||
(ExternalTypeItem::accept_vis): Likewise.
|
||
* ast/rust-ast-full-decls.h (class ExternalTypeItem): Declare class.
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add base visitor for ExternalTypeItem.
|
||
* ast/rust-ast-dump.h: Likewise.
|
||
* ast/rust-ast-visitor.h: Likewise.
|
||
* checks/errors/rust-feature-gate.h: Likewise.
|
||
* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Likewise.
|
||
* expand/rust-attribute-visitor.h: Likewise.
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
|
||
* hir/rust-ast-lower-base.h: Likewise.
|
||
* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
|
||
* resolve/rust-ast-resolve-base.h: Likewise.
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Likewise.
|
||
* resolve/rust-early-name-resolver.h: Likewise.
|
||
* util/rust-attributes.cc (AttributeChecker::visit): Likewise.
|
||
* util/rust-attributes.h: Likewise.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* expand/rust-macro-invoc-lexer.cc (MacroInvocLexer::split_current_token):
|
||
Add proper implementation.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-item.h (class Trait): Add `has_auto` field.
|
||
* checks/errors/rust-feature.cc: Add handling for `feature(optin_builtin_traits)`
|
||
* checks/errors/rust-feature.h: Likewise.
|
||
* lex/rust-lex.cc: Fix keyword classification using hashmap.
|
||
* lex/rust-token.h: Add `auto` keyword token.
|
||
* parse/rust-parse-impl.h (Parser::parse_vis_item): Parse auto traits
|
||
on `auto` keyword.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item):
|
||
Remove TypeCheckBase namespace qualifier.
|
||
* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::coercion_site):
|
||
Remove coercion_site function.
|
||
* typecheck/rust-hir-type-check-base.h: Remove coercion_site
|
||
prototype.
|
||
* typecheck/rust-type-util.cc (coercion_site): Add coercion_site
|
||
function.
|
||
* typecheck/rust-type-util.h (coercion_site): Add coercion_site
|
||
prototype.
|
||
* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
|
||
Remove TypeCheckBase namespace qualifier.
|
||
(TypeCheckMethodCallExpr::check): Remove TypeCheckBase namespace
|
||
qualifier.
|
||
|
||
2024-01-16 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* typecheck/rust-autoderef.cc: Remove TypeCheckBase qualifier.
|
||
* typecheck/rust-hir-trait-resolve.cc: Remove TypeCheckBase
|
||
qualifier.
|
||
* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::unify_site):
|
||
Remove unify_site.
|
||
* typecheck/rust-hir-type-check-base.h: Remove unify_site
|
||
header.
|
||
* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve):
|
||
Remove TypeCheckBase qualifier.
|
||
* typecheck/rust-type-util.cc (unify_site): Add unify_site
|
||
function.
|
||
* typecheck/rust-type-util.h (unify_site): Add unify_site
|
||
prototype.
|
||
* typecheck/rust-tyty-call.cc (TypeCheckMethodCallExpr::check):
|
||
Remove TypeCheckBase qualifier.
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_type): Allow LEFT_SHIFT to
|
||
start a type and then split it in `parse_qualified_path_type`
|
||
|
||
2024-01-16 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_path_generic_args): Split leading
|
||
`LEFT_SHIFT` token into two `LEFT_ANGLE` tokens when parsing generic arguments.
|
||
(Parser::parse_type_path_segment): Allow `LEFT_ANGLE` as starting token for
|
||
parsing generic arguments.
|
||
|
||
2024-01-16 mxlol233 <mxlol233@outlook.com>
|
||
|
||
* checks/errors/rust-feature-gate.cc: Add implementations
|
||
for `rustc_attri`.
|
||
* checks/errors/rust-feature-gate.h: Likewise.
|
||
|
||
2024-01-16 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_pattern): Add.
|
||
(Parser::parse_pattern_no_alt): Rename.
|
||
* parse/rust-parse.h:
|
||
(Parser::parse_pattern): Add.
|
||
(Parser::parse_pattern_no_alt): Rename.
|
||
|
||
2024-01-04 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* lang.opt.urls: New file, autogenerated by
|
||
regenerate-opt-urls.py.
|
||
|
||
2023-12-14 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* config-lang.in: Add libgrust as a target module for the rust
|
||
language.
|
||
|
||
2023-11-19 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* rust-location.h: Include "rich-location.h".
|
||
|
||
2023-10-20 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR rust/111899
|
||
* backend/rust-constexpr.cc (potential_constant_expression_1):
|
||
Remove NON_DEPENDENT_EXPR handling.
|
||
* backend/rust-tree.cc (mark_exp_read): Likewise.
|
||
(mark_use): Likewise.
|
||
(lvalue_kind): Likewise.
|
||
|
||
2023-09-28 Richard Sandiford <richard.sandiford@arm.com>
|
||
|
||
* backend/rust-constexpr.cc (rs_fold_indirect_ref): Remove unused
|
||
variables.
|
||
|
||
2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* rust-session-manager.cc (Session::init): Call
|
||
targetrustm.rust_os_info.
|
||
* rust-target.def (rust_os_info): New hook.
|
||
|
||
2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* rust-lang.cc (rust_add_target_info): Remove sorry.
|
||
* rust-session-manager.cc: Replace include of target.h with
|
||
include of tm.h and rust-target.h.
|
||
(Session::init): Call targetrustm.rust_cpu_info.
|
||
* rust-target.def (rust_cpu_info): New hook.
|
||
* rust-target.h (rust_add_target_info): Declare.
|
||
|
||
2023-09-21 Iain Buclaw <ibuclaw@gdcproject.org>
|
||
|
||
* rust-target-def.h: New file.
|
||
* rust-target.def: New file.
|
||
* rust-target.h: New file.
|
||
|
||
2023-09-11 Parthib <94271200+Parthib314@users.noreply.github.com>
|
||
|
||
* Make-lang.in: Removed rust-gcc-diagnostics object file.
|
||
* rust-diagnostics.cc (rust_be_get_quotechars): Added from original file.
|
||
(rust_be_internal_error_at): Likewise.
|
||
(rust_be_error_at): Likewise.
|
||
(class rust_error_code_rule): Likewise.
|
||
(rust_be_warning_at): Likewise.
|
||
(rust_be_fatal_error): Likewise.
|
||
(rust_be_inform): Likewise.
|
||
(rust_be_debug_p): Likewise.
|
||
* rust-gcc-diagnostics.cc: Removed.
|
||
|
||
2023-09-07 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* rust-diagnostics.cc (rust_error_at): New overload.
|
||
* rust-diagnostics.h (struct ErrorCode): New struct.
|
||
(rust_error_at): New.
|
||
(rust_be_error_at): Likewise.
|
||
* rust-gcc-diagnostics.cc (class rust_error_code_rule): New class.
|
||
(rust_be_error_at): New function.
|
||
* typecheck/rust-casts.cc (TypeCastRules::emit_cast_error): Emit E0054
|
||
when reporting invalid cast error.
|
||
|
||
2023-07-05 Robin Dapp <rdapp@ventanamicro.com>
|
||
Juzhe-Zhong <juzhe.zhong@rivai.ai>
|
||
|
||
* backend/rust-tree.cc (c_common_type_for_mode): Ditto.
|
||
|
||
2023-06-22 Paul E. Murphy <murphyp@linux.ibm.com>
|
||
|
||
* rust-object-export.cc [TARGET_AIX]: Rename and update usage to
|
||
TARGET_AIX_OS.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_stmt): Handle unsafe expression statements.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_expr_stmt): Remove hypothetical unsafe + expr_stmt_without_block handling.
|
||
|
||
2023-04-06 M V V S Manoj Kumar <mvvsmanojkumar@gmail.com>
|
||
|
||
* ast/rust-ast-full-decls.h (class InlineAsm):Added class declaration.
|
||
* ast/rust-expr.h (class InlineAsm):Added class definition.
|
||
|
||
2023-04-06 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* rust-diagnostics.h (struct Error): Add new Kind enum and various new
|
||
static constructors to allow for hints as well.
|
||
* rust-diagnostics.cc (Error::Error): Use new `kind` field properly.
|
||
* checks/errors/privacy/rust-visibility-resolver.cc
|
||
(VisibilityResolver::resolve_module_path): Use new Error API.
|
||
* expand/rust-macro-builtins.cc (MacroBuiltin::include_handler): Likewise.
|
||
* expand/rust-macro-expand.cc (parse_many): Likewise.
|
||
(transcribe_type): Likewise.
|
||
* parse/rust-parse-impl.h (Parser::parse_crate): Likewise.
|
||
* rust-session-manager.cc (Session::handle_crate_name): Likewise.
|
||
* ast/rust-ast.cc (Module::load_items): Likewise.
|
||
|
||
2023-04-06 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Keep location in TraitItem base class
|
||
* ast/rust-item.h (class TraitItemFunc): Use base class location instead.
|
||
(class TraitItemMethod): Likewise.
|
||
(class TraitItemConst): Likewise.
|
||
(class TraitItemType): Likewise.
|
||
* ast/rust-macro.h: Likewise.
|
||
|
||
2023-04-06 SainiAditya1 <Adityasaini10012001@outlook.com>
|
||
|
||
* hir/tree/rust-hir-full-test.cc: Moved to...
|
||
* hir/tree/rust-hir.cc: ...here.
|
||
* Make-lang.in: Rename rust-hir-full-test.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-ast-dump.cc
|
||
(Dump::visit): Add AltPattern visitor.
|
||
* ast/rust-ast-dump.h:
|
||
(Dump::visit): Add AltPattern visitor.
|
||
* ast/rust-ast-full-decls.h
|
||
(class AltPattern): Add declaration.
|
||
* ast/rust-ast-visitor.h:
|
||
(ASTVisitor::visit): Add AltPattern visitor.
|
||
* ast/rust-ast.cc
|
||
(AltPattern::as_string): Add definition.
|
||
(AltPattern::accept_vis): Add definition.
|
||
* ast/rust-pattern.h
|
||
(class AltPattern): Add declaration.
|
||
* checks/errors/rust-feature-gate.h:
|
||
(FeatureGate::visit) Add AltPattern visitor
|
||
* expand/rust-attribute-visitor.cc
|
||
(AttrVisitor::visit): Add AltPattern visitor.
|
||
* expand/rust-attribute-visitor.h:
|
||
(AttrVisitor::visit): Add AltPattern visitor.
|
||
* hir/rust-ast-lower-base.cc
|
||
(ASTLoweringBase::visit): Add AltPattern visitor.
|
||
* hir/rust-ast-lower-base.h:
|
||
(ASTLoweringBase::visit): Add AltPattern visitor.
|
||
* resolve/rust-ast-resolve-base.cc
|
||
(ResolverBase::visit): Add AltPattern visitor.
|
||
* resolve/rust-ast-resolve-base.h:
|
||
(ResolverBase::visit): Add AltPattern visitor.
|
||
* resolve/rust-early-name-resolver.cc
|
||
(EarlyNameResolver::visit): Add AltPattern visitor.
|
||
* resolve/rust-early-name-resolver.h:
|
||
(EarlyNameResolver::visit): Add AltPattern visitor.
|
||
* util/rust-attributes.cc
|
||
(AttributeChecker::visit): Add AltPattern visitor.
|
||
* util/rust-attributes.h:
|
||
(AttributeChecker::visit): Add AltPattern visitor.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-pattern.h: Fix formatting.
|
||
|
||
2023-04-06 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* expand/rust-macro-builtins.cc (MacroBuiltin::include_handler): Do not
|
||
return nullptr token in expansion of `include!()`
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* checks/errors/rust-feature-gate.h: Add trailing newline before EOF.
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-trait-reference.cc (TraitReference::clear_associated_types): make const
|
||
(TraitReference::clear_associated_type_projections): new interface
|
||
* typecheck/rust-hir-trait-reference.h:
|
||
* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): refactor
|
||
(TraitItemReference::associated_type_reset): reset projections
|
||
* typecheck/rust-hir-type-bounds.h:
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): fix bounds
|
||
* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::TypeBoundsProbe): refactor into cc file
|
||
(TypeBoundsProbe::Probe): refactor
|
||
(TypeBoundsProbe::is_bound_satisfied_for_type): likewise
|
||
(TypeBoundsProbe::assemble_sized_builtin): add builtin for Sized
|
||
(TypeCheckBase::get_predicate_from_bound): refactor
|
||
(TypeBoundPredicate::lookup_associated_type): refactor
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionRef::lookup_associated_impl)
|
||
(SubstitutionRef::prepare_higher_ranked_bounds): new interface to clear hanging bounds
|
||
(SubstitutionRef::monomorphize): refactor
|
||
* typecheck/rust-tyty-subst.h:
|
||
* typecheck/rust-tyty.cc (BaseType::get_locus): helper
|
||
(BaseType::satisfies_bound): ensure bounds are satisfied and assoicated types
|
||
(ParamType::ParamType): new field in constructor
|
||
(ParamType::clone): update clone
|
||
(ParamType::set_implicit_self_trait): new interface
|
||
(ParamType::is_implicit_self_trait): likewise
|
||
* typecheck/rust-tyty.h: cleanup
|
||
* util/rust-hir-map.cc (Mappings::Mappings): builtin marker
|
||
(Mappings::~Mappings): delete marker
|
||
(Mappings::lookup_builtin_marker): lookup
|
||
* util/rust-hir-map.h: update header
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* hir/tree/rust-hir-item.h: implement virtual function
|
||
* hir/tree/rust-hir.h: add virtual function
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* Make-lang.in: add new dependancy
|
||
* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::query_type): refactor
|
||
* typecheck/rust-hir-type-check-base.h: refactor
|
||
* typecheck/rust-hir-type-check.h (RUST_HIR_TYPE_CHECK): refactor
|
||
* typecheck/rust-type-util.cc: New file.
|
||
* typecheck/rust-type-util.h: New file.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* expand/rust-macro-builtins.cc
|
||
(MacroBuiltin::include_str_handler): Add check for valid UTF-8.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h
|
||
(Parser::parse_grouped_or_tuple_pattern): Add support for empty tuple patterns.
|
||
|
||
2023-04-06 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* lex/rust-lex.h: Add file type check.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-pattern.cc
|
||
(CompilePatternLet::visit): Simplify WildcardPattern compilation for let statements.
|
||
* backend/rust-compile-var-decl.h:
|
||
(CompileVarDecl::visit): Remove variable declaration for WildcardPattern.
|
||
* resolve/rust-ast-resolve-pattern.h:
|
||
(PatternDeclaration::visit): Remove name resolution for WildcardPattern.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* typecheck/rust-tyty-call.cc
|
||
(TypeCheckCallExpr::visit): Add variadic argument type checking.
|
||
(TypeCheckCallExpr::visit): Fix comment spelling ("varadic").
|
||
|
||
2023-04-06 mxlol233 <mxlol233@outlook.com>
|
||
|
||
* checks/errors/rust-feature-gate.cc: Add implementation for
|
||
`void FeatureGate::visit (AST::ExternBlock &block)`. Add `valid_feature`
|
||
construction process in `FeatureGate::check`.
|
||
* checks/errors/rust-feature-gate.h: Add declaration for
|
||
`void FeatureGate::visit (AST::ExternBlock &block)`. Add private
|
||
variable `valid_feature`.
|
||
* checks/errors/rust-feature.h: Change `issue` to `m_issue`.
|
||
|
||
2023-04-06 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* ast/rust-ast-fragment.cc: Update copyright years.
|
||
* ast/rust-ast-fragment.h: Likewise.
|
||
* ast/rust-macro.cc: Likewise.
|
||
* checks/errors/rust-feature-gate.cc: Likewise.
|
||
* checks/errors/rust-feature-gate.h: Likewise.
|
||
* checks/errors/rust-feature.cc: Likewise.
|
||
* checks/errors/rust-feature.h: Likewise.
|
||
* hir/rust-ast-lower-expr.cc: Likewise.
|
||
* hir/rust-ast-lower-type.cc: Likewise.
|
||
* resolve/rust-early-name-resolver.cc: Likewise.
|
||
* resolve/rust-early-name-resolver.h: Likewise.
|
||
* rust-gcc.h: Likewise.
|
||
* typecheck/rust-hir-path-probe.cc: Likewise.
|
||
* typecheck/rust-hir-trait-reference.cc: Likewise.
|
||
* typecheck/rust-tyty-bounds.h: Likewise.
|
||
* typecheck/rust-tyty-subst.cc: Likewise.
|
||
* typecheck/rust-tyty-subst.h: Likewise.
|
||
* typecheck/rust-tyty-util.cc: Likewise.
|
||
* typecheck/rust-tyty-util.h: Likewise.
|
||
* typecheck/rust-unify.cc: Likewise.
|
||
* typecheck/rust-unify.h: Likewise.
|
||
* util/rust-inline-visitor.h: Likewise.
|
||
|
||
2023-04-06 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* rust-session-manager.cc (Session::compile_crate): Update the
|
||
environment variable name.
|
||
|
||
2023-04-06 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
|
||
|
||
* Make-lang.in: Add `rust-hir-trait-reference.o`.
|
||
* typecheck/rust-hir-trait-reference.h: Remove multiple function body.
|
||
* typecheck/rust-hir-trait-reference.cc: Add multiple function body.
|
||
|
||
2023-04-06 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* expand/rust-macro-expand.cc (MacroExpander::expand_eager_invocations):
|
||
Add documentation explaining the algorithm.
|
||
|
||
2023-04-06 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-macro.cc: New file.
|
||
* Make-lang.in: Add `rust-macro.o` object
|
||
* ast/rust-ast-fragment.cc (Fragment::Fragment): Change API around
|
||
the construction of AST fragments.
|
||
(Fragment::operator=): Correct `Fragment::operator=` to take into
|
||
account the fragment tokens.
|
||
(Fragment::create_error): Use new constructor.
|
||
(Fragment::complete): Remove in favor of new constructor.
|
||
(Fragment::unexpanded): Remove as that Fragment type is no longer used
|
||
or possible.
|
||
(Fragment::get_tokens): Add helper to access a fragment's tokens.
|
||
* ast/rust-ast-fragment.h (enum class): Remove `FragmentKind::Unused`
|
||
* ast/rust-ast.cc (MacroInvocation::as_string): Display
|
||
builtin macro invocations properly.
|
||
* ast/rust-ast.h: Fix `DelimTokenTree` class copy constructors and
|
||
handling of its token vector.
|
||
* ast/rust-macro.h (class MacroMatcher): Format.
|
||
(class MetaItemSeq): Likewise.
|
||
(builtin_macro_from_string): Get a `BuiltinMacroKind` from a given
|
||
string, i.e the name of the macro (`assert!`, `cfg!` and so on).
|
||
* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Do not expand
|
||
macros recursively anymore.
|
||
(AttrVisitor::maybe_expand_expr): Likewise.
|
||
(AttrVisitor::maybe_expand_type): Likewise.
|
||
* expand/rust-attribute-visitor.h: Likewise, and remove
|
||
`expand_macro_fragment_recursively` function.
|
||
* expand/rust-macro-builtins.cc (make_token): Add shorthand for
|
||
returning `std::unique_ptr<AST::Token>`s.
|
||
(make_macro_invocation): Add shorthand for returning fragments
|
||
containing builtin macro invocations.
|
||
(try_expand_macro_expression): Do not expand macros recursively.
|
||
(try_expand_single_string_literal): Likewise.
|
||
(try_expand_many_expr): Likewise.
|
||
(parse_single_string_literal): Error out more appropriately.
|
||
(MacroBuiltin::compile_error_handler): Add explanation for eager
|
||
invocation
|
||
(MacroBuiltin::file_handler): Return the proper tokens associated with
|
||
macro invocation, and builtin macros in the case of necessary eager
|
||
expansion.
|
||
(MacroBuiltin::column_handler): Likewise.
|
||
(MacroBuiltin::include_bytes_handler): Likewise.
|
||
(MacroBuiltin::include_str_handler): Likewise.
|
||
(MacroBuiltin::concat_handler): Likewise.
|
||
(MacroBuiltin::env_handler): Likewise.
|
||
(MacroBuiltin::cfg_handler): Likewise.
|
||
(MacroBuiltin::include_handler): Likewise.
|
||
(MacroBuiltin::line_handler): Likewise.
|
||
* expand/rust-macro-expand.cc (MacroExpander::expand_eager_invocations):
|
||
Add function to expand eager invocations *once* in the fixed point
|
||
pipeline.
|
||
(MacroExpander::expand_invoc): Call into `expand_eager_invocations` for
|
||
builtin macro invocations.
|
||
(MacroExpander::expand_crate): Use new `AttrVisitor` API.
|
||
(parse_many): Return tokens in `AST::Fragment`.
|
||
(transcribe_expression): Likewise.
|
||
(transcribe_type): Likewise.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Add `has_changed`
|
||
flag for fixed point checking.
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::EarlyNameResolver):
|
||
Keep track of the current macro scope.
|
||
(EarlyNameResolver::go): Use `scoped` API.
|
||
(EarlyNameResolver::visit): Likewise.
|
||
* resolve/rust-early-name-resolver.h: Add `scoped` API.
|
||
* rust-session-manager.cc (Session::expansion): Perform macro expansion
|
||
in a fixed-point fashion.
|
||
|
||
2023-04-06 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* expand/rust-macro-invoc-lexer.cc (MacroInvocLexer::get_token_slice):
|
||
Add API to retrieve token slices when lexing macro expansions.
|
||
* expand/rust-macro-invoc-lexer.h: Declare `get_token_slice`.
|
||
|
||
2023-04-06 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* parse/rust-parse.h: Move `parse_macro_invocation` to public API.
|
||
|
||
2023-04-06 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-item.h (class BlockExpr): Remove forward declaration of
|
||
class `BlockExpr`.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/tree/rust-hir-pattern.h
|
||
(TuplePatternItemsRanged::get_lower_patterns): Add method.
|
||
(TuplePatternItemsRanged::get_upper_patterns): Add method.
|
||
* backend/rust-compile-pattern.cc
|
||
(CompilePatternLet::visit): Implement TuplePattern visitor.
|
||
* backend/rust-compile-pattern.h
|
||
(CompilePatternLet::visit): Move TuplePattern visitor out of header file.
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-unify.cc (UnifyRules::go): ensure the bounds are checked
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): remove error message
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-trait-reference.h: add const infterface
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionParamMapping::get_generic_param): make const
|
||
(SubstitutionRef::monomorphize): fix issue
|
||
* typecheck/rust-tyty-subst.h: constify interface
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* util/rust-lang-item.h:
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionArg::is_conrete): fix check
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* Make-lang.in: update names
|
||
* backend/rust-compile-expr.cc (CompileExpr::resolve_method_address):
|
||
update to use new interface
|
||
* typecheck/rust-coercion.cc (TypeCoercionRules::coerce_borrowed_pointer): likewise
|
||
* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::unify_site): likewise
|
||
* typecheck/rust-tyty.cc (BaseType::destructure): likewise
|
||
(InferType::unify): removed old unify interface
|
||
(ErrorType::unify): likewise
|
||
(ADTType::unify): likewise
|
||
(TupleType::unify): likewise
|
||
(FnType::unify): likewise
|
||
(FnPtr::unify): likewise
|
||
(ClosureType::unify): likewise
|
||
(ArrayType::unify): likewise
|
||
(SliceType::unify): likewise
|
||
(BoolType::unify): likewise
|
||
(IntType::unify): likewise
|
||
(UintType::unify): likewise
|
||
(FloatType::unify): likewise
|
||
(USizeType::unify): likewise
|
||
(ISizeType::unify): likewise
|
||
(CharType::unify): likewise
|
||
(ReferenceType::unify): likewise
|
||
(PointerType::unify): likewise
|
||
(ParamType::unify): likewise
|
||
(StrType::unify): likewise
|
||
(NeverType::unify): likewise
|
||
(PlaceholderType::unify): likewise
|
||
(ProjectionType::unify): likewise
|
||
(DynamicObjectType::unify): likewise
|
||
* typecheck/rust-tyty.h: update destructure interface
|
||
* typecheck/rust-tyty-rules.h: Removed.
|
||
* typecheck/rust-unify.cc: New file.
|
||
* typecheck/rust-unify.h: New file.
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-trait-reference.h: change interface to return self
|
||
* typecheck/rust-hir-trait-resolve.cc: likewise
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): likewise
|
||
* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): remove monomorphization hack
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty-subst.cc: add missing callback
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty-subst.cc: update copy constructors
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty-bounds.cc: refactor to take a reference
|
||
* typecheck/rust-tyty-subst.cc: likewise
|
||
(SubstitutionRef::get_substitution_arguments): likewise
|
||
(SubstitutionRef::infer_substitions): likewise
|
||
* typecheck/rust-tyty-subst.h: likewise
|
||
* typecheck/rust-tyty.cc (ADTType::handle_substitions): likewise
|
||
(TupleType::handle_substitions): likewise
|
||
(FnType::handle_substitions): likewise
|
||
(ClosureType::handle_substitions): likewise
|
||
(ArrayType::handle_substitions): likewise
|
||
(SliceType::handle_substitions): likewise
|
||
(ReferenceType::handle_substitions): likewise
|
||
(PointerType::handle_substitions): likewise
|
||
(ParamType::handle_substitions): likewise
|
||
(ProjectionType::handle_substitions): likewise
|
||
* typecheck/rust-tyty.h: likewise
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-trait-ref.h: Moved to...
|
||
* typecheck/rust-hir-trait-reference.h: ...here.
|
||
* typecheck/rust-hir-trait-resolve.cc: refactor
|
||
* typecheck/rust-hir-trait-resolve.h (RUST_HIR_TRAIT_RESOLVE_H): likewise
|
||
* typecheck/rust-hir-type-check.h: likewise
|
||
* typecheck/rust-tyty.cc: likewise
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* Make-lang.in: update name
|
||
* typecheck/rust-tyctx.cc: Moved to...
|
||
* typecheck/rust-typecheck-context.cc: ...here.
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-type-check.h: refactor
|
||
* typecheck/rust-tyctx.cc (TypeCheckContext::iterate): refactor
|
||
(TypeCheckContext::have_loop_context): likewise
|
||
(TypeCheckContext::push_new_loop_context): likewise
|
||
(TypeCheckContext::push_new_while_loop_context): likewise
|
||
(TypeCheckContext::peek_loop_context): likewise
|
||
(TypeCheckContext::pop_loop_context): likewise
|
||
(TypeCheckContext::swap_head_loop_context): likewise
|
||
(TypeCheckContext::insert_trait_reference): likewise
|
||
(TypeCheckContext::lookup_trait_reference): likewise
|
||
(TypeCheckContext::insert_receiver): likewise
|
||
(TypeCheckContext::lookup_receiver): likewise
|
||
(TypeCheckContext::insert_associated_type_mapping): likewise
|
||
(TypeCheckContext::clear_associated_type_mapping): likewise
|
||
(TypeCheckContext::lookup_associated_type_mapping): likewise
|
||
(TypeCheckContext::insert_variant_definition): likewise
|
||
(TypeCheckContext::lookup_variant_definition): likewise
|
||
(TypeCheckContext::insert_operator_overload): likewise
|
||
(TypeCheckContext::lookup_operator_overload): likewise
|
||
(TypeCheckContext::insert_unconstrained_check_marker): likewise
|
||
(TypeCheckContext::have_checked_for_unconstrained): likewise
|
||
(TypeCheckContext::insert_resolved_predicate): likewise
|
||
(TypeCheckContext::lookup_predicate): likewise
|
||
(TypeCheckContext::insert_query): likewise
|
||
(TypeCheckContext::query_completed): likewise
|
||
(TypeCheckContext::query_in_progress): likewise
|
||
(TypeCheckContext::insert_trait_query): likewise
|
||
(TypeCheckContext::trait_query_completed): likewise
|
||
(TypeCheckContext::trait_query_in_progress): likewise
|
||
(TypeCheckContextItem::Item::Item): likewise
|
||
(TypeCheckContextItem::TypeCheckContextItem): likewise
|
||
(TypeCheckContextItem::get_item): likewise
|
||
(TypeCheckContextItem::get_impl_item): likewise
|
||
(TypeCheckContextItem::get_trait_item): likewise
|
||
(TypeCheckContextItem::get_type): likewise
|
||
* typecheck/rust-tyty.cc (StructFieldType::StructFieldType): likewise
|
||
(StructFieldType::get_ref): likewise
|
||
(StructFieldType::get_name): likewise
|
||
(StructFieldType::get_field_type): likewise
|
||
(StructFieldType::set_field_type): likewise
|
||
(StructFieldType::is_concrete): likewise
|
||
(StructFieldType::debug): likewise
|
||
(StructFieldType::get_locus): likewise
|
||
(VariantDef::variant_type_string): likewise
|
||
(VariantDef::VariantDef): likewise
|
||
(VariantDef::operator=): likewise
|
||
(VariantDef::get_error_node): likewise
|
||
(VariantDef::is_error): likewise
|
||
(VariantDef::get_id): likewise
|
||
(VariantDef::get_defid): likewise
|
||
(VariantDef::get_variant_type): likewise
|
||
(VariantDef::is_data_variant): likewise
|
||
(VariantDef::is_dataless_variant): likewise
|
||
(VariantDef::get_identifier): likewise
|
||
(VariantDef::num_fields): likewise
|
||
(VariantDef::get_field_at_index): likewise
|
||
(VariantDef::get_fields): likewise
|
||
(VariantDef::lookup_field): likewise
|
||
(VariantDef::get_discriminant): likewise
|
||
(VariantDef::as_string): likewise
|
||
(VariantDef::is_equal): likewise
|
||
(VariantDef::clone): likewise
|
||
(VariantDef::monomorphized_clone): likewise
|
||
(VariantDef::get_ident): likewise
|
||
(TupleType::TupleType): likewise
|
||
(TupleType::get_unit_type): likewise
|
||
(TupleType::is_unit): likewise
|
||
(TupleType::num_fields): likewise
|
||
(TupleType::is_concrete): likewise
|
||
(TupleType::get_fields): likewise
|
||
(BoolType::BoolType): likewise
|
||
(BoolType::get_name): likewise
|
||
(BoolType::is_concrete): likewise
|
||
(IntType::IntType): likewise
|
||
(IntType::get_name): likewise
|
||
(IntType::get_int_kind): likewise
|
||
(IntType::is_concrete): likewise
|
||
(UintType::UintType): likewise
|
||
(UintType::get_name): likewise
|
||
(UintType::get_uint_kind): likewise
|
||
(UintType::is_concrete): likewise
|
||
(FloatType::FloatType): likewise
|
||
(FloatType::get_name): likewise
|
||
(FloatType::get_float_kind): likewise
|
||
(FloatType::is_concrete): likewise
|
||
(USizeType::USizeType): likewise
|
||
(USizeType::get_name): likewise
|
||
(USizeType::is_concrete): likewise
|
||
(ISizeType::ISizeType): likewise
|
||
(ISizeType::get_name): likewise
|
||
(ISizeType::is_concrete): likewise
|
||
(CharType::CharType): likewise
|
||
(CharType::is_concrete): likewise
|
||
(CharType::get_name): likewise
|
||
(ReferenceType::ReferenceType): likewise
|
||
(ReferenceType::is_concrete): likewise
|
||
(ReferenceType::mutability): likewise
|
||
(ReferenceType::is_mutable): likewise
|
||
(ReferenceType::is_dyn_object): likewise
|
||
(ReferenceType::is_dyn_slice_type): likewise
|
||
(ReferenceType::is_dyn_str_type): likewise
|
||
(PointerType::PointerType): likewise
|
||
(PointerType::is_concrete): likewise
|
||
(PointerType::mutability): likewise
|
||
(PointerType::is_mutable): likewise
|
||
(PointerType::is_const): likewise
|
||
(PointerType::is_dyn_object): likewise
|
||
(PointerType::is_dyn_slice_type): likewise
|
||
(PointerType::is_dyn_str_type): likewise
|
||
(ParamType::ParamType): likewise
|
||
(ParamType::get_generic_param): likewise
|
||
(ParamType::can_resolve): likewise
|
||
(ParamType::is_concrete): likewise
|
||
(StrType::StrType): likewise
|
||
(StrType::get_name): likewise
|
||
(StrType::is_concrete): likewise
|
||
(NeverType::NeverType): likewise
|
||
(NeverType::get_name): likewise
|
||
(NeverType::is_unit): likewise
|
||
(NeverType::is_concrete): likewise
|
||
(PlaceholderType::PlaceholderType): likewise
|
||
(PlaceholderType::get_name): likewise
|
||
(PlaceholderType::is_unit): likewise
|
||
(PlaceholderType::get_symbol): likewise
|
||
(PlaceholderType::is_concrete): likewise
|
||
(ProjectionType::is_unit): likewise
|
||
(ProjectionType::get_name): likewise
|
||
(ProjectionType::needs_generic_substitutions): likewise
|
||
(ProjectionType::supports_substitutions): likewise
|
||
(ProjectionType::has_subsititions_defined): likewise
|
||
(ProjectionType::get): likewise
|
||
(ProjectionType::is_concrete): likewise
|
||
(DynamicObjectType::is_concrete): likewise
|
||
* typecheck/rust-tyty.h: likewise
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-path-probe.cc (PathProbeCandidate::Candidate::Candidate): refactor
|
||
(PathProbeCandidate::PathProbeCandidate): likewise
|
||
(PathProbeCandidate::as_string): likewise
|
||
(PathProbeCandidate::is_enum_candidate): likewise
|
||
(PathProbeCandidate::is_impl_candidate): likewise
|
||
(PathProbeCandidate::is_trait_candidate): likewise
|
||
(PathProbeCandidate::is_full_trait_item_candidate): likewise
|
||
(PathProbeCandidate::get_error): likewise
|
||
(PathProbeCandidate::is_error): likewise
|
||
(PathProbeCandidate::get_defid): likewise
|
||
(PathProbeCandidate::operator<): likewise
|
||
* typecheck/rust-hir-path-probe.h (struct PathProbeCandidate): likewise
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-hir-path-probe.cc (PathProbeType::PathProbeType): refactor
|
||
(PathProbeType::Probe): likewise
|
||
(PathProbeType::visit): likewise
|
||
(PathProbeType::process_enum_item_for_candiates): likewise
|
||
(PathProbeType::process_impl_items_for_candidates): likewise
|
||
(PathProbeType::is_reciever_generic): likewise
|
||
(PathProbeImplTrait::PathProbeImplTrait): likewise
|
||
(PathProbeImplTrait::Probe): likewise
|
||
(PathProbeImplTrait::process_trait_impl_items_for_candidates): likewise
|
||
* typecheck/rust-hir-path-probe.h (struct PathProbeCandidate): likewise
|
||
* typecheck/rust-hir-trait-resolve.cc
|
||
(PathProbeImplTrait::process_trait_impl_items_for_candidates): likewise
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty.cc (BaseType::BaseType): refactor
|
||
(BaseType::~BaseType): likewise
|
||
(BaseType::get_ref): likewise
|
||
(BaseType::set_ref): likewise
|
||
(BaseType::get_ty_ref): likewise
|
||
(BaseType::set_ty_ref): likewise
|
||
(BaseType::is_equal): likewise
|
||
(BaseType::is_unit): likewise
|
||
(BaseType::get_kind): likewise
|
||
(BaseType::get_combined_refs): likewise
|
||
(BaseType::append_reference): likewise
|
||
(BaseType::supports_substitutions): likewise
|
||
(BaseType::has_subsititions_defined): likewise
|
||
(BaseType::can_substitute): likewise
|
||
(BaseType::needs_generic_substitutions): likewise
|
||
(BaseType::contains_type_parameters): likewise
|
||
(BaseType::get_ident): likewise
|
||
(BaseType::get_locus): likewise
|
||
(InferType::InferType): likewise
|
||
(InferType::get_infer_kind): likewise
|
||
(InferType::get_name): likewise
|
||
(InferType::is_concrete): likewise
|
||
(ErrorType::ErrorType): likewise
|
||
(ErrorType::is_unit): likewise
|
||
(ErrorType::is_concrete): likewise
|
||
(ErrorType::get_name): likewise
|
||
(ErrorType::monomorphized_clone): likewise
|
||
* typecheck/rust-tyty.h (class SubstitutionArgumentMappings): likewise
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-substitution-mapper.cc (SubstMapper::SubstMapper): refactor
|
||
(SubstMapper::Resolve): likewise
|
||
(SubstMapper::InferSubst): likewise
|
||
(SubstMapper::have_generic_args): likewise
|
||
(SubstMapper::visit): likewise
|
||
(SubstMapperInternal::visit): likewise
|
||
(SubstMapperFromExisting::SubstMapperFromExisting): likewise
|
||
(SubstMapperFromExisting::Resolve): likewise
|
||
(SubstMapperFromExisting::visit): likewise
|
||
(GetUsedSubstArgs::GetUsedSubstArgs): likewise
|
||
(GetUsedSubstArgs::From): likewise
|
||
(GetUsedSubstArgs::visit): likewise
|
||
* typecheck/rust-substitution-mapper.h: refactor
|
||
* typecheck/rust-tyty-subst.cc (SubstitutionParamMapping::get_generic_param): likewise
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* Make-lang.in: update the makefile
|
||
* typecheck/rust-tyty.cc (SubstitutionParamMapping::need_substitution): likewise
|
||
(SubstitutionParamMapping::override_context): likewise
|
||
(SubstitutionRef::get_mappings_from_generic_args): likewise
|
||
(SubstitutionRef::infer_substitions): likewise
|
||
(SubstitutionRef::are_mappings_bound): likewise
|
||
(SubstitutionRef::solve_missing_mappings_from_this): likewise
|
||
(SubstitutionRef::monomorphize): likewise
|
||
* typecheck/rust-tyty.h (class SubstitutionParamMapping): likewise
|
||
(class SubstitutionArg): likewise
|
||
(std::function<void): likewise
|
||
(class SubstitutionArgumentMappings): likewise
|
||
(class SubstitutionRef): likewise
|
||
* typecheck/rust-tyty-subst.cc: New file.
|
||
* typecheck/rust-tyty-subst.h: New file.
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* Make-lang.in: update makefile
|
||
* typecheck/rust-tyty.cc (TyVar::TyVar): move to new file
|
||
(TyVar::get_tyty): likewise
|
||
(TyVar::get_implicit_infer_var): likewise
|
||
(TyVar::subst_covariant_var): likewise
|
||
(TyVar::clone): likewise
|
||
(TyVar::monomorphized_clone): likewise
|
||
(TyWithLocation::TyWithLocation): likewise
|
||
* typecheck/rust-tyty.h (class BaseType): cleanup
|
||
(class TypeBoundPredicate): move to its own file
|
||
(class TypeBoundPredicateItem): likewise
|
||
(class TypeBoundsMappings): likewise
|
||
(class TyVar): likewise
|
||
(class TyWithLocation): likewise
|
||
* typecheck/rust-tyty-bounds.h: New file.
|
||
* typecheck/rust-tyty-util.cc: New file.
|
||
* typecheck/rust-tyty-util.h: New file.
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* typecheck/rust-tyty-bounds.cc (TypeBoundPredicateItem::error): refactor
|
||
(TypeBoundPredicateItem::is_error): likewise
|
||
(TypeBoundPredicateItem::get_parent): likewise
|
||
* typecheck/rust-tyty.h: Move the implementation for the above
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Removed copy-pasted comment.
|
||
|
||
2023-04-06 mxlol233 <mxlol233@outlook.com>
|
||
|
||
* Make-lang.in: Add object files: `rust-feature.o` and `rust-feature-gate.o`
|
||
* checks/errors/rust-feature-gate.cc: New file.
|
||
* checks/errors/rust-feature-gate.h: New file.
|
||
* checks/errors/rust-feature.cc: New file.
|
||
* checks/errors/rust-feature.h: New file.
|
||
* rust-session-manager.cc: Add FeatureGate check.
|
||
|
||
2023-04-06 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_closure_expr): Advance tokens
|
||
properly when parsing closure param list.
|
||
|
||
2023-04-06 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_generic_arg): Handle type
|
||
paths and nested generics properly.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* ast/rust-pattern.h:
|
||
(ReferencePattern::is_double_reference): Add method.
|
||
(ReferencePattern::get_is_mut): Add method.
|
||
* hir/rust-ast-lower-pattern.cc
|
||
(ASTLoweringPattern::visit): Add ReferencePattern visitor.
|
||
* hir/rust-ast-lower-pattern.h:
|
||
(ASTLoweringPattern::visit): Add ReferencePattern visitor.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/tree/rust-hir-pattern.h
|
||
(class ReferencePattern): Remove has_two_amps field.
|
||
* hir/tree/rust-hir-full-test.cc
|
||
(ReferencePattern::as_string): Remove usage of ReferencePattern::has_two_amps.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-fnparam.h
|
||
(CompileFnParam::visit): Remove HIR::GroupedPattern visitor.
|
||
* backend/rust-compile-pattern.cc
|
||
(CompilePatternCaseLabelExpr::visit): Remove HIR::GroupedPattern visitor.
|
||
(CompilePatternBindings::visit): Remove HIR::GroupedPattern visitor.
|
||
* backend/rust-compile-pattern.h
|
||
(CompilePatternCaseLabelExpr::visit): Remove HIR::GroupedPattern visitor.
|
||
(CompilePatternBindings::visit): Remove HIR::GroupedPattern visitor.
|
||
(CompilePatternLet::visit): Remove HIR::GroupedPattern visitor.
|
||
* backend/rust-compile-resolve-path.h
|
||
(ResolvePathRef::visit): Remove HIR::GroupedPattern visitor.
|
||
* backend/rust-compile-var-decl.h
|
||
(CompileVarDecl::visit): Remove HIR::GroupedPattern visitor.
|
||
* checks/errors/rust-const-checker.cc
|
||
(ConstChecker::visit): Remove HIR::GroupedPattern visitor.
|
||
* checks/errors/rust-const-checker.h
|
||
(ConstChecker::visit): Remove HIR::GroupedPattern visitor.
|
||
* checks/errors/rust-unsafe-checker.cc
|
||
(UnsafeChecker::visit): Remove HIR::GroupedPattern visitor.
|
||
* checks/errors/rust-unsafe-checker.h
|
||
(UnsafeChecker::visit): Remove HIR::GroupedPattern visitor.
|
||
* hir/rust-hir-dump.cc (Dump::visit): Remove HIR::GroupedPattern visitor.
|
||
* hir/rust-hir-dump.h (Dump::visit): Remove HIR::GroupedPattern visitor.
|
||
* hir/tree/rust-hir-full-decls.h (class GroupedPattern): Remove class.
|
||
* hir/tree/rust-hir-full-test.cc (GroupedPattern::accept_vis): Remove method.
|
||
* hir/tree/rust-hir-pattern.h (class GroupedPattern): Remove class.
|
||
* hir/tree/rust-hir-visitor.h
|
||
(HIRFullVisitor::visit): Remove HIR::GroupedPattern visitor.
|
||
(HIRFullVisitorBase::visit): Remove HIR::GroupedPattern visitor.
|
||
(HIRPatternVisitor::visit): Remove HIR::GroupedPattern visitor.
|
||
* typecheck/rust-hir-type-check-pattern.cc
|
||
(TypeCheckPattern::visit): Remove HIR::GroupedPattern visitor.
|
||
* typecheck/rust-hir-type-check-pattern.h
|
||
(TypeCheckPattern::visit): Remove HIR::GroupedPattern visitor.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/rust-ast-lower-pattern.cc
|
||
(ASTLoweringPattern::visit): Lower AST::GroupedPattern to its inner pattern.
|
||
|
||
2023-04-06 MAHAD <mahadtxt@gmail.com>
|
||
|
||
* rust-buffered-queue.h: Moved to...
|
||
* util/rust-buffered-queue.h: ...here.
|
||
|
||
2023-04-06 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_type): Handle double ampersan
|
||
properly
|
||
(Parser::parse_reference_type): Call into `parse_reference_type_inner`
|
||
and wrap double reference types in another `AST::ReferenceType` node
|
||
(Parser::parse_reference_type_inner): Add parsing implementation
|
||
which does not care about the leading token (& or &&)
|
||
(Parser::parse_type_no_bounds): Handle double ampersand properly
|
||
* parse/rust-parse.h: Declare `parse_reference_type_inner`
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-pattern.cc (CompilePatternLet::visit): New function.
|
||
* backend/rust-compile-stmt.cc (CompileStmt::visit): Likewise.
|
||
* backend/rust-compile-pattern.h (class CompilePatternLet): New visitor.
|
||
|
||
2023-04-06 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-macro.h (enum class): Add `BuiltinMacro` enum class.
|
||
* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Mention
|
||
switching on `macro.kind` once builtin macro invocations are properly
|
||
handled.
|
||
* parse/rust-parse-impl.h (Parser::parse_macro_invocation): Switch to new MacroInvocation
|
||
API.
|
||
(Parser::parse_type): Likewise.
|
||
(Parser::parse_type_no_bounds): Likewise.
|
||
|
||
2023-04-06 Abdul Rafey <abdulrafeyq@gmail.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): removed extra indentations in trait ast dump
|
||
|
||
2023-04-06 Abdul Rafey <abdulrafeyq@gmail.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::null_denotation): Add proper error
|
||
when seeing wildcard var on right side of assignment.
|
||
|
||
2023-04-06 Abdul Rafey <abdulrafeyq@gmail.com>
|
||
|
||
* ast/rust-ast.cc: Fix include list.
|
||
* ast/rust-expr.h: Likewise.
|
||
* hir/tree/rust-hir-expr.h: Likewise.
|
||
* rust-backend.h: Likewise.
|
||
* util/rust-lang-item.h: Likewise.
|
||
* operator.h: Moved to...
|
||
* util/rust-operators.h: ...here.
|
||
|
||
2023-04-06 Parthib <parthibdutta02@gmail.com>
|
||
|
||
* Make-lang.in: Rename object file.
|
||
* ast/rust-ast-full-test.cc: Moved to...
|
||
* ast/rust-ast.cc: ...here.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-pattern.cc (CompilePatternCaseLabelExpr::visit): Add proper
|
||
visitor.
|
||
(CompilePatternBindings::visit): Likewise.
|
||
* backend/rust-compile-pattern.h: Declare them.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Add proper
|
||
visitor.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/tree/rust-hir-pattern.h: Add get_item method.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Add proper visitor.
|
||
* hir/rust-ast-lower-pattern.h: Declare it.
|
||
|
||
2023-04-06 Lyra <teromene@teromene.fr>
|
||
|
||
* expand/rust-macro-expand.cc (transcribe_expression): Fix ICE when expanding
|
||
empty macros.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* resolve/rust-ast-resolve-pattern.h: Support GroupedPattern properly.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* backend/rust-compile-base.cc (HIRCompileBase::compile_locals_for_block):
|
||
Allow patterns to declare zero or multiple variables.
|
||
* backend/rust-compile-var-decl.h: Change function declaration.
|
||
|
||
2023-04-06 mxlol233 <mxlol233@outlook.com>
|
||
|
||
* lex/rust-lex.cc (Lexer::build_token): Make location enclose entire token.
|
||
(Lexer::parse_byte_char): Likewise.
|
||
(Lexer::parse_byte_string): Likewise.
|
||
(Lexer::parse_raw_byte_string): Likewise.
|
||
(Lexer::parse_raw_identifier): Likewise.
|
||
(Lexer::parse_string): Likewise.
|
||
(Lexer::parse_identifier_or_keyword): Likewise.
|
||
(Lexer::parse_raw_string): Likewise.
|
||
(Lexer::parse_non_decimal_int_literal): Likewise.
|
||
(Lexer::parse_decimal_int_or_float): Likewise.
|
||
(Lexer::parse_char_or_lifetime): Likewise.
|
||
|
||
2023-04-06 mxlol233 <mxlol233@outlook.com>
|
||
|
||
* ast/rust-ast.h: Add get_locus method.
|
||
* ast/rust-expr.h: Likewise.
|
||
* ast/rust-macro.h: Likewise.
|
||
|
||
2023-04-06 Owen Avery <powerboat9.gamer@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Cleanup LetStmt
|
||
type checking.
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* hir/tree/rust-hir-path.h: Add const get_identifier and get_type method.
|
||
* typecheck/rust-hir-path-probe.h: Use new SubstitutionArgumentMappings constructor.
|
||
* typecheck/rust-hir-trait-resolve.cc: Likewise.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
|
||
* typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound):
|
||
Do not assert failure on size mismatch anymore.
|
||
(TypeBoundPredicate::TypeBoundPredicate): Use new SubstitutionArgumentMappings constructor.
|
||
(TypeBoundPredicate::operator=): Likewise.
|
||
(TypeBoundPredicate::apply_generic_arguments): Likewise.
|
||
(TypeBoundPredicateItem::get_tyty_for_receiver): Likewise.
|
||
(TypeBoundPredicate::get_num_associated_bindings): Likewise.
|
||
(TypeBoundPredicate::lookup_associated_type): Fix implementation for new system.
|
||
(TypeBoundPredicate::get_associated_type_items): Likewise.
|
||
* typecheck/rust-tyty.cc (SubstitutionRef::get_mappings_from_generic_args): Add new
|
||
behavior.
|
||
(SubstitutionRef::infer_substitions): Use new constructor and add comment.
|
||
(SubstitutionRef::solve_missing_mappings_from_this): Use new constructor.
|
||
* typecheck/rust-tyty.h: Define new constructors.
|
||
|
||
2023-04-06 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* resolve/rust-ast-resolve-type.cc (ResolveGenericArgs::go): Add name resolution to
|
||
Trait items.
|
||
|
||
2023-04-06 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* ast/rust-ast-full-decls.h (class MacroItem): Remove forward declaration.
|
||
* ast/rust-ast-full-test.cc (MacroRulesDefinition):
|
||
Rework MacroRulesDefinition class
|
||
* ast/rust-ast.h (class MacroItem): Remove abstract class.
|
||
* ast/rust-item.h (class MacroItem): Remove forward declaration.
|
||
* ast/rust-macro.h (class MacroItem): Likewise.
|
||
(class MacroRulesDefinition): Add MacroKind enum.
|
||
(class MacroInvocation): Fix inheritance.
|
||
* lex/rust-token.h: Token "macro" is now used.
|
||
* parse/rust-parse-impl.h (Parser::parse_item): Add handling for MACRO.
|
||
(Parser::parse_vis_item): Call into parse_decl_macro_def.
|
||
(Parser::parse_macro_item): Delete function.
|
||
(Parser::parse_macro_rules_def): Return MBE macros only.
|
||
(Parser::parse_decl_macro_def): New function.
|
||
(Parser::parse_stmt): Handle MACRO token.
|
||
(Parser::parse_stmt_or_expr_without_block): Call into parse_macro_rules_def.
|
||
* parse/rust-parse.h: Declare new function.
|
||
|
||
2023-04-06 mxlol233 <mxlol233@outlook.com>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_generic_arg): Add proper bound parsing.
|
||
|
||
2023-04-06 Dave <dme2223@gmail.com>
|
||
|
||
* checks/errors/rust-const-checker.cc (ConstChecker::visit): Use StackedContext
|
||
class.
|
||
|
||
2023-04-06 Prajwal S N <prajwalnadig21@gmail.com>
|
||
|
||
* checks/errors/rust-unsafe-checker.cc (check_target_attr): New function.
|
||
(UnsafeChecker::check_function_attr): Call into `check_target_attr`.
|
||
(UnsafeChecker::visit): Check for target_feature attributes.
|
||
* checks/errors/rust-unsafe-checker.h: Add declarations.
|
||
* util/rust-attributes.cc: Add attribute.
|
||
|
||
2023-04-06 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* rust-session-manager.cc (Session::compile_crate): Fix typo.
|
||
|
||
2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* rust-lang.cc (grs_langhook_type_for_mode): Also consider all
|
||
'int_n' modes/types.
|
||
|
||
2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* rust-lang.cc (grs_langhook_init): Do not initialize
|
||
void_list_node.
|
||
|
||
2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* config-lang.in (target_libs): Remove.
|
||
|
||
2023-02-21 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* backend/rust-builtins.cc (BuiltinsContext::setup_math_fns): New functions.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* backend/rust-constexpr.cc (get_nth_callarg): Remove function.
|
||
(rs_bind_parameters_in_call): Use CALL_EXPR_ARG instead.
|
||
(potential_constant_expression_1): Likewise.
|
||
|
||
2023-02-21 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* lang.opt: Fix ordering of file.
|
||
|
||
2023-02-21 Philip Herron <herron.philip@googlemail.com>
|
||
|
||
* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Remove unused parameters.
|
||
* backend/rust-constexpr.cc (constant_value_1): Likewise.
|
||
(fold_non_dependent_init): Likewise.
|
||
* backend/rust-tree.cc (publicly_uniquely_derived_p): Likewise.
|
||
(instantiation_dependent_expression_p): Likewise.
|
||
(type_has_nontrivial_copy_init): Likewise.
|
||
(is_normal_capture_proxy): Likewise.
|
||
(resolve_nondeduced_context): Likewise.
|
||
(undeduced_auto_decl): Likewise.
|
||
(require_deduced_type): Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise.
|
||
* checks/errors/privacy/rust-reachability.cc (ReachabilityVisitor::visit): Likewise.
|
||
* checks/errors/privacy/rust-visibility-resolver.cc (VisibilityResolver::visit): Likewise.
|
||
* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
|
||
* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
|
||
* checks/lints/rust-lint-marklive.cc (MarkLive::go): Likewise.
|
||
* checks/lints/rust-lint-unused-var.cc (unused_var_walk_fn): Likewise.
|
||
* expand/rust-macro-builtins.cc (try_expand_single_string_literal): Likewise.
|
||
(try_expand_many_expr): Likewise.
|
||
(parse_single_string_literal): Likewise.
|
||
(MacroBuiltin::assert_handler): Likewise.
|
||
(MacroBuiltin::file_handler): Likewise.
|
||
(MacroBuiltin::column_handler): Likewise.
|
||
(MacroBuiltin::concat_handler): Likewise.
|
||
(MacroBuiltin::env_handler): Likewise.
|
||
(MacroBuiltin::line_handler): Likewise.
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise.
|
||
(ASTLoweringBase::handle_doc_item_attribute): Likewise.
|
||
* hir/rust-hir-dump.cc (Dump::visit): Likewise.
|
||
* hir/tree/rust-hir-full-test.cc (ConstGenericParam::accept_vis): Likewise.
|
||
* lex/rust-lex.cc (Lexer::parse_utf8_escape): Likewise.
|
||
(Lexer::parse_string): Likewise.
|
||
(Lexer::parse_char_or_lifetime): Likewise.
|
||
* lex/rust-lex.h: Likewise.
|
||
* metadata/rust-export-metadata.cc: Likewise.
|
||
* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Likewise.
|
||
* resolve/rust-ast-resolve-type.cc (ResolveType::visit): Likewise.
|
||
(ResolveTypeToCanonicalPath::visit): Likewise.
|
||
* resolve/rust-ast-verify-assignee.h: Likewise.
|
||
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-expr.h: Likewise.
|
||
* typecheck/rust-hir-type-check-item.h: Likewise.
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
|
||
* typecheck/rust-tyty-rules.h: Likewise.
|
||
* util/rust-attributes.cc (AttributeChecker::visit): Likewise.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* hir/tree/rust-hir-expr.h: Add const `get_method_name`.
|
||
* hir/tree/rust-hir-full-decls.h (struct GenericArgs): Move from `struct`...
|
||
(class GenericArgs): ...to `class`.
|
||
* hir/tree/rust-hir-path.h (struct GenericArgs): Likewise.
|
||
(class GenericArgs): Clear `type_args` in copy constructor.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Reorder
|
||
debug print.
|
||
* typecheck/rust-tyty.h: Add default constructors for `SubstitutionArgumentMappings`.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* backend/rust-compile-context.cc (Context::push_closure_context): New function.
|
||
(Context::pop_closure_context): Likewise.
|
||
(Context::insert_closure_binding): Likewise.
|
||
(Context::lookup_closure_binding): Likewise.
|
||
* backend/rust-compile-context.h: Declare new functions and closure mappings.
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Visit captures properly.
|
||
(CompileExpr::generate_closure_function): Compile captures properly.
|
||
* backend/rust-compile-resolve-path.cc (ResolvePathRef::resolve): Check for
|
||
closure bindings.
|
||
* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Compile capture list's
|
||
types as well.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Pass captures
|
||
properly to `TyTy::ClosureType` constructor.
|
||
* typecheck/rust-tyty.cc (ClosureType::as_string): Fix string representation.
|
||
(ClosureType::clone): Pass `captures` argument.
|
||
* typecheck/rust-tyty.h: Add `captures` field.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Use proper closure
|
||
contexts.
|
||
* resolve/rust-name-resolver.cc (Scope::lookup_decl_type): New function.
|
||
(Scope::lookup_rib_for_decl): Likewise.
|
||
(Resolver::insert_resolved_name): Insert captured items.
|
||
(Resolver::push_closure_context): New function.
|
||
(Resolver::pop_closure_context): Likewise.
|
||
(Resolver::insert_captured_item): Likewise.
|
||
(Resolver::decl_needs_capture): Likewise.
|
||
(Resolver::get_captures): Likewise.
|
||
* resolve/rust-name-resolver.h: Declare new functions.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Add Rib argument.
|
||
(ResolveExpr::resolve_closure_param): Likewise.
|
||
* resolve/rust-ast-resolve-implitem.h: Likewise.
|
||
* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit): Likewise.
|
||
(ResolveItem::visit): Likewise.
|
||
* resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::visit): Likewise.
|
||
* resolve/rust-ast-resolve-pattern.h: Likewise.
|
||
* resolve/rust-ast-resolve-stmt.h: Likewise.
|
||
* resolve/rust-ast-resolve-toplevel.h: Likewise.
|
||
* resolve/rust-ast-resolve-type.h: Likewise.
|
||
* resolve/rust-name-resolver.cc (Rib::lookup_decl_type): Likewise.
|
||
(Scope::insert): Likewise.
|
||
(Resolver::insert_builtin_types): Likewise.
|
||
* resolve/rust-name-resolver.h: Likewise.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* resolve/rust-name-resolver.cc (MKBUILTIN_TYPE): Remove macro.
|
||
(Rib::Rib): Remove `mappings` field.
|
||
(Resolver::generate_builtins): Use `setup_builtin` instead of macro.
|
||
(Resolver::setup_builtin): New function.
|
||
* resolve/rust-name-resolver.h: Declare `setup_builtin`, add FIXME
|
||
comment.
|
||
|
||
2023-02-21 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* lex/rust-lex.cc (Lexer::Lexer): Add `dump_lex` boolean flag.
|
||
(Lexer::skip_token): Dump tokens if flag is enabled.
|
||
(Lexer::dump_and_skip): New function.
|
||
* lex/rust-lex.h: Include optional.h and declare functions.
|
||
* parse/rust-parse-impl.h (Parser::debug_dump_lex_output): Remove old
|
||
unused function.
|
||
* parse/rust-parse.h: Likewise.
|
||
* rust-session-manager.cc (Session::compile_crate): Pass lexer dump
|
||
option to lexer.
|
||
(Session::dump_lex): New function.
|
||
* util/rust-optional.h: Add missing constructor.
|
||
|
||
2023-02-21 Dave <dme2223@gmail.com>
|
||
|
||
* ast/rust-item.h: Remoe default location for Visibility class.
|
||
* parse/rust-parse-impl.h (Parser::parse_visibility): Pass proper location
|
||
when instantiating visibilities.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Fix dumping of fn params.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Remove extraneous string when
|
||
dumping statements.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc: Remove unused include.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.
|
||
* ast/rust-ast-dump.h: Likewise.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.
|
||
* ast/rust-ast-dump.h: Add missing getter declaration.
|
||
* ast/rust-ast-full-test.cc (BareFunctionType::as_string): Fix bare function
|
||
string representation.
|
||
* ast/rust-type.h (class BareFunctionType): Declare said getter.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing visitor.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing tuple type visitor.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing never type visitor.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing RawPointer visitor.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing array visitor
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing slice visitor.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing visitors.
|
||
* ast/rust-ast-dump.h: Likewise.
|
||
* ast/rust-ast.h: Add `get_lifetime_bounds` method.
|
||
* ast/rust-item.h: Add missing getter for lifetimes.
|
||
* ast/rust-type.h: Likewise.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add new reference visitor wrapper.
|
||
* ast/rust-ast-dump.h: Declare it.
|
||
* ast/rust-item.h: Add mutable visibility getters.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Fix extra call
|
||
to `delete`.
|
||
|
||
2023-02-21 Dave <dme2223@gmail.com>
|
||
|
||
* ast/rust-item.h: Add location member.
|
||
* hir/rust-ast-lower.cc (translate_visibility): Pass location argument.
|
||
* hir/tree/rust-hir-item.h: Fix constructor to accept Location argument.
|
||
|
||
2023-02-21 Raiki Tamura <tamaron1203@gmail.com>
|
||
|
||
* util/rust-lang-item.h: Add handling for `phantom_data` lang item.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add handling for unit structures.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.h: Fix documentation.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::go): Use new API.
|
||
(Dump::format_function_param): Refactor.
|
||
(Dump::visit_items_joined_by_separator): New function.
|
||
(Dump::emit_attrib): Refactor.
|
||
(Dump::visit_as_line): New function.
|
||
(Dump::visit_items_as_lines): Likewise.
|
||
(Dump::visit_items_as_block): Likewise.
|
||
(Dump::visit): Use new API.
|
||
(Dump::emit_visibility): Likewise.
|
||
(Dump::emit_indented_string): Likewise.
|
||
(Dump::emit_generic_params): Likewise.
|
||
(Dump::format_tuple_field): Likewise.
|
||
(Dump::format_struct_field): Likewise.
|
||
(Dump::format_function_common): Likewise.
|
||
(Dump::visit_function_common): Likewise.
|
||
* ast/rust-ast-dump.h: Declare new functions and add documentation.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add new visit function for overloading.
|
||
* ast/rust-ast-dump.h: Add documentation for layer.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* backend/rust-builtins.cc (BuiltinsContext::setup_atomic_fns): Declare atomic
|
||
load intrinsics.
|
||
* backend/rust-compile-intrinsic.cc (atomic_load_handler_inner): New handler.
|
||
(atomic_load_handler): Likewise.
|
||
(unchecked_op_handler): Remove `static` function qualifier.
|
||
(build_atomic_builtin_name): Handle load intrinsics.
|
||
(atomic_store_handler_inner): New handler.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc (check_for_basic_integer_type): New function.
|
||
(build_atomic_builtin_name): Use HIR Type instead of `tree`.
|
||
(atomic_store_handler_inner): Cleanup error handling.
|
||
(unchecked_op_inner): Likewise.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc (wrapping_op_handler): Refactor to return
|
||
an `std::function`.
|
||
(wrapping_op_handler_inner): Rename.
|
||
(wrapping_add_handler): Remove function.
|
||
(wrapping_sub_handler): Likewise.
|
||
(wrapping_mul_handler): Likewise.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc (is_basic_integer_type): New function.
|
||
(unchecked_op_inner): New handler.
|
||
(unchecked_op_handler): New handler.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* backend/rust-builtins.cc (BuiltinsContext::setup_atomic_fns): New function.
|
||
(BuiltinsContext::setup): Call `setup_atomic_fns`.
|
||
* backend/rust-builtins.h: Declare `setup_atomic_fns`.
|
||
* backend/rust-compile-intrinsic.cc (atomic_store_handler_inner): New function.
|
||
(atomic_store_handler): New handler.
|
||
(make_unsigned_long_tree): Add helper around making unsigned long trees.
|
||
(prefetch_data_handler): Use `make_unsigned_long_tree`.
|
||
(build_atomic_builtin_name): New function.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* backend/rust-constexpr.cc (build_anon_member_initialization): Workaround uninitialized
|
||
values.
|
||
(build_data_member_initialization): Likewise.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* backend/rust-compile-intrinsic.cc (sorry_handler): New intrinsic handler.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* expand/rust-macro-builtins.cc (MacroBuiltin::assert): Rename to...
|
||
(MacroBuiltin::assert_handler): ..this.
|
||
(MacroBuiltin::file): Rename to...
|
||
(MacroBuiltin::file_handler): ..this.
|
||
(MacroBuiltin::column): Rename to...
|
||
(MacroBuiltin::column_handler): ..this.
|
||
(MacroBuiltin::include_bytes): Rename to...
|
||
(MacroBuiltin::include_bytes_handler): ..this.
|
||
(MacroBuiltin::include_str): Rename to...
|
||
(MacroBuiltin::include_str_handler): ..this.
|
||
(MacroBuiltin::compile_error): Rename to...
|
||
(MacroBuiltin::compile_error_handler): ..this.
|
||
(MacroBuiltin::concat): Rename to...
|
||
(MacroBuiltin::concat_handler): ..this.
|
||
(MacroBuiltin::env): Rename to...
|
||
(MacroBuiltin::env_handler): ..this.
|
||
(MacroBuiltin::cfg): Rename to...
|
||
(MacroBuiltin::cfg_handler): ..this.
|
||
(MacroBuiltin::include): Rename to...
|
||
(MacroBuiltin::include_handler): ..this.
|
||
(MacroBuiltin::line): Rename to...
|
||
(MacroBuiltin::line_handler): ..this.
|
||
* expand/rust-macro-builtins.h: Rename all handlers.
|
||
* util/rust-hir-map.cc (Mappings::insert_macro_def): Use new handler
|
||
names.
|
||
|
||
2023-02-21 Simon Cook <simon.cook@embecosm.com>
|
||
|
||
* util/rust-inline-visitor.h: Remove some offending system includes.
|
||
|
||
2023-02-21 YizhePKU <yizhe@pku.edu.cn>
|
||
|
||
* util/rust-inline-visitor.h: New file.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Refactor checking of closures.
|
||
(CompileExpr::generate_possible_fn_trait_call): New function.
|
||
* backend/rust-compile-expr.h: Declare `generate_possible_fn_trait_call`.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-tyty-bounds.cc (TypeCheckBase::get_predicate_from_bound): Add missing
|
||
implementation.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* Make-lang.in: Compile rust-ast-lower-type.cc.
|
||
* ast/rust-path.h: Add `get_locus` method to `TypePathFunction`.
|
||
* hir/rust-ast-lower-base.cc (ASTLowerTypePath::visit): Move implementation to
|
||
rust-ast-lower-type.cc.
|
||
(ASTLowerQualifiedPathInType::visit): Likewise.
|
||
(ASTLoweringType::visit): Likewise.
|
||
* hir/rust-ast-lower-type.h: Move implementations to source file.
|
||
* hir/tree/rust-hir-path.h: Likewise.
|
||
* hir/rust-ast-lower-type.cc: New file.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* resolve/rust-ast-resolve-type.cc (ResolveRelativeTypePath::go): Add missing handling of
|
||
function case.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* backend/rust-compile-context.h: Add new functions: `insert_closure_decl` and
|
||
`lookup_closure_decl`.
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Start compiling Closures properly.
|
||
(CompileExpr::generate_closure_function): New function.
|
||
(CompileExpr::generate_closure_fntype): Likewise.
|
||
* backend/rust-compile-expr.h: Declare `generate_closure_function` and
|
||
`generate_closure_fntype`.
|
||
* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Visit closure types properly.
|
||
* backend/rust-mangle.cc (legacy_mangle_name): Add support for closures.
|
||
* backend/rust-tree.h (RS_CLOSURE_FLAG): Add new tree macro.
|
||
(RS_CLOSURE_TYPE_P): And checking for it on tree nodes.
|
||
* typecheck/rust-tyty.cc (ClosureType::is_equal): Add implementation.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* hir/tree/rust-hir-expr.h: Add `get_params` method.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Typecheck closure nodes.
|
||
(TypeCheckExpr::resolve_fn_trait_call): New function.
|
||
* typecheck/rust-hir-type-check-expr.h: Declare `resolve_fn_trait_call` and
|
||
`resolve_possible_fn_trait_call_method_name`.
|
||
* typecheck/rust-hir-type-check.h: Declare `get_context_type`.
|
||
* typecheck/rust-tyctx.cc (TypeCheckContextItem::get_context_type): New function.
|
||
* typecheck/rust-tyty-cmp.h: Visit closures properly.
|
||
* typecheck/rust-tyty-rules.h: Likewise.
|
||
* typecheck/rust-tyty.cc (BaseType::bounds_compatible): Add commented out assertin.
|
||
(ClosureType::as_string): Implement it.
|
||
(ClosureType::clone): Fix closure cloning.
|
||
(ClosureType::setup_fn_once_output): New function.
|
||
* typecheck/rust-tyty.h: Improve `ClosureType` class and declare `setup_fn_once_output`.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* checks/errors/rust-const-checker.cc (ConstChecker::visit): Visit closures properly.
|
||
* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
|
||
* checks/lints/rust-lint-marklive.h: Likewise.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Simplify method
|
||
call type checking by removing visitor and instead using one static cast. Use the
|
||
new interface.
|
||
* typecheck/rust-tyty-call.cc (TypeCheckMethodCallExpr::visit): Likewise.
|
||
(TypeCheckMethodCallExpr::go): Likewise.
|
||
(TypeCheckMethodCallExpr::check): Likewise.
|
||
* typecheck/rust-tyty-call.h (class TypeCheckMethodCallExpr): Likewise.
|
||
(class Argument): Likewise.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Visit closure properly when
|
||
name resolving.
|
||
(ResolveExpr::resolve_closure_param): Implement closure name resolving.
|
||
* resolve/rust-ast-resolve-expr.h: Declare visitors for closure types.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::ASTLoweringPattern):
|
||
Improve formatting.
|
||
(ASTLoweringPattern::translate): Likewise.
|
||
* hir/rust-ast-lower-pattern.h: Likewise.
|
||
* resolve/rust-ast-resolve-expr.h: Likewise.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* Make-lang.in: Add new object file for expression lowering.
|
||
* ast/rust-expr.h: Move implementation of expr lowering to source file.
|
||
* backend/rust-compile-block.h: Likewise.
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
|
||
* backend/rust-compile-expr.h: Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise.
|
||
* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
|
||
* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
|
||
* checks/errors/rust-const-checker.h: Likewise.
|
||
* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
|
||
* checks/errors/rust-unsafe-checker.h: Likewise.
|
||
* hir/rust-ast-lower-base.h: Likewise.
|
||
* hir/rust-ast-lower-expr.h (RUST_AST_LOWER_EXPR): Likewise.
|
||
* hir/rust-ast-lower.cc (ASTLoweringBase::lower_closure_param): Likewise.
|
||
* hir/rust-hir-dump.cc (Dump::visit): Likewise.
|
||
* hir/rust-hir-dump.h: Likewise.
|
||
* hir/tree/rust-hir-expr.h (class ClosureExpr): Likewise.
|
||
(class ClosureExprInner): Likewise.
|
||
(class ClosureExprInnerTyped): Likewise.
|
||
* hir/tree/rust-hir-full-decls.h (class ClosureExprInner): Likewise.
|
||
(class ClosureExprInnerTyped): Likewise.
|
||
* hir/tree/rust-hir-full-test.cc (ClosureExprInnerTyped::as_string): Likewise.
|
||
(ClosureExprInner::as_string): Likewise.
|
||
(ClosureExprInner::accept_vis): Likewise.
|
||
(ClosureExpr::accept_vis): Likewise.
|
||
(ClosureExprInnerTyped::accept_vis): Likewise.
|
||
* hir/tree/rust-hir-visitor.h: Likewise.
|
||
* hir/tree/rust-hir.h (class Expr): Likewise.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-expr.h: Likewise.
|
||
* hir/rust-ast-lower-expr.cc: New file.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* util/rust-lang-item.h: Add handling for `fn_once_output`.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast-fragment.cc (Fragment::Fragment): Add better APIs.
|
||
(Fragment::complete): New function.
|
||
(Fragment::unexpanded): New function.
|
||
* ast/rust-ast-fragment.h: Declare new APIs and add documentation.
|
||
* expand/rust-attribute-visitor.h: Use new Fragment API.
|
||
* expand/rust-macro-builtins.cc (MacroBuiltin::file): Likewise.
|
||
(MacroBuiltin::column): Likewise.
|
||
(MacroBuiltin::include_bytes): Likewise.
|
||
(MacroBuiltin::include_str): Likewise.
|
||
(MacroBuiltin::concat): Likewise.
|
||
(MacroBuiltin::env): Likewise.
|
||
(MacroBuiltin::cfg): Likewise.
|
||
(MacroBuiltin::include): Likewise.
|
||
(MacroBuiltin::line): Likewise.
|
||
* expand/rust-macro-expand.cc (parse_many): Likewise.
|
||
(transcribe_expression): Likewise.
|
||
(transcribe_type): Likewise.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Likewise.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast.h (class ASTFragment): Remove old ASTFragment class.
|
||
* ast/rust-macro.h (class MacroRulesDefinition): Use new Fragment API.
|
||
* expand/rust-attribute-visitor.h: Likewise.
|
||
* expand/rust-macro-builtins.cc (macro_end_token): Likewise.
|
||
(MacroBuiltin::assert): Likewise.
|
||
(MacroBuiltin::file): Likewise.
|
||
(MacroBuiltin::column): Likewise.
|
||
(MacroBuiltin::include_bytes): Likewise.
|
||
(MacroBuiltin::include_str): Likewise.
|
||
(MacroBuiltin::compile_error): Likewise.
|
||
(MacroBuiltin::concat): Likewise.
|
||
(MacroBuiltin::env): Likewise.
|
||
(MacroBuiltin::cfg): Likewise.
|
||
(MacroBuiltin::include): Likewise.
|
||
(MacroBuiltin::line): Likewise.
|
||
* expand/rust-macro-builtins.h: Likewise.
|
||
* expand/rust-macro-expand.cc (MacroExpander::expand_decl_macro): Likewise.
|
||
(MacroExpander::expand_invoc): Likewise.
|
||
(MacroExpander::match_repetition): Likewise.
|
||
(parse_many): Likewise.
|
||
(transcribe_many_items): Likewise.
|
||
(transcribe_many_ext): Likewise.
|
||
(transcribe_many_trait_items): Likewise.
|
||
(transcribe_many_impl_items): Likewise.
|
||
(transcribe_many_trait_impl_items): Likewise.
|
||
(transcribe_expression): Likewise.
|
||
(transcribe_type): Likewise.
|
||
(transcribe_on_delimiter): Likewise.
|
||
(tokens_to_str): Likewise.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Likewise.
|
||
* util/rust-hir-map.cc (Mappings::insert_macro_def): Likewise.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in: Add `rust-ast-fragment.o` object file.
|
||
* ast/rust-ast-fragment.cc: New file.
|
||
* ast/rust-ast-fragment.h: New file.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_trait): Check if a
|
||
trait query is currently in progress.
|
||
* typecheck/rust-hir-type-check.h (class TraitQueryGuard): Add helpers around
|
||
checking for trait queries and inserting them.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add missing visitors for macro definition dumping.
|
||
(get_delimiters): New function.
|
||
* ast/rust-ast-dump.h: Declare `get_delimiters` and add documentation.
|
||
* ast/rust-macro.h: Add `get_token_tree` method.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Properly handle unloaded modules.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Fix formatting when dumping modules.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Dump items in modules properly.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast-dump.cc: Emit visibility when dumping items.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* hir/rust-ast-lower-base.h (class ItemWrapper): New class.
|
||
* hir/rust-ast-lower-base.cc (ASTLoweringBase::handle_outer_attributes): Use
|
||
`ItemWrapper` class.
|
||
(ASTLoweringBase::handle_doc_item_attribute): Likewise.
|
||
(ASTLoweringBase::handle_lang_item_attribute): Likewise.
|
||
* hir/rust-ast-lower-implitem.h: Check outer attributes on items.
|
||
* hir/tree/rust-hir-item.h: Add `get_trait_locus` methods.
|
||
* hir/tree/rust-hir.h: Likewise.
|
||
* util/rust-hir-map.h: Add defId mappings and associated functions.
|
||
* util/rust-hir-map.cc (Mappings::insert_defid_mapping): Implement insertion to said
|
||
mappings.
|
||
(Mappings::lookup_trait_item_defid): And looking up said mappings.
|
||
|
||
2023-02-21 Jakub Dupak <dev@jakubdupak.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add code for dumping type aliases.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-hir-trait-resolve.cc (TraitResolver::TraitResolver): Do not nullptr init
|
||
`resolved_trait_reference` anymore.
|
||
(TraitResolver::resolve_path): Simplify function and rename to...
|
||
(TraitResolver::resolve_path_to_trait): ...this.
|
||
(TraitResolver::lookup_path): Use new interface.
|
||
* typecheck/rust-hir-trait-resolve.h (class TraitResolver): Do not inherit `HIRFullVisitor`
|
||
class anymore.
|
||
|
||
2023-02-21 David Faust <david.faust@oracle.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add dump for RangeExprs.
|
||
|
||
2023-02-21 David Faust <david.faust@oracle.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add dump for, BorrowExpr, DereferenceExpr,
|
||
ErrorPropagationExpr, NegationExpr, TypeCastExpr and GroupedExpr.
|
||
|
||
2023-02-21 David Faust <david.faust@oracle.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add dump code for ArrayExpr.
|
||
|
||
2023-02-21 David Faust <david.faust@oracle.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Add dumps for ComparisonExpr and
|
||
LazyBooleanExpr.
|
||
|
||
2023-02-21 David Faust <david.faust@oracle.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Fix IfExpr formatting.
|
||
|
||
2023-02-21 David Faust <david.faust@oracle.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Fix block formatting.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-autoderef.cc: Add support for multiple resolution candidates.
|
||
* typecheck/rust-hir-dot-operator.cc (MethodResolver::MethodResolver): Edit
|
||
`try_result` field and change constructor.
|
||
(MethodResolver::Probe): Return set of candidates instead of singular candidate.
|
||
(MethodResolver::select): Add better implementation to account for multiple
|
||
candidates.
|
||
* typecheck/rust-hir-dot-operator.h (struct MethodCandidate): Overload comparison
|
||
operator in order to store them in `std::set`.
|
||
* typecheck/rust-hir-inherent-impl-overlap.h: Do not fail assertion on missing type.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Adapt code to use
|
||
multiple candidates.
|
||
* typecheck/rust-tyty.cc (set_cmp_autoderef_mode): Add code to handle automatic
|
||
derefs properly.
|
||
(reset_cmp_autoderef_mode): Add helper function to reset said mode.
|
||
* typecheck/rust-tyty.h (set_cmp_autoderef_mode): Declare function.
|
||
(reset_cmp_autoderef_mode): Likewise.
|
||
* typecheck/rust-tyty-cmp.h: Add handling of `autoderef_cmp_flag`
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* util/rust-abi.cc (get_abi_from_string): Add missing "rust-call"
|
||
possibility for ABI variant.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* util/rust-lang-item.h: Add `fn_once` lang item.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* backend/rust-compile.cc: Add note about missing support for super
|
||
traits.
|
||
* typecheck/rust-tyty.cc (BaseType::satisfies_bound): New function.
|
||
(BaseType::bounds_compatible): New function.
|
||
(DynamicObjectType::get_object_items): New function.
|
||
* typecheck/rust-hir-trait-ref.h: Use new API to perform type resolution
|
||
on dyn objects.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in: Compile early name resolver.
|
||
* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Move macro
|
||
name resolution.
|
||
* expand/rust-macro-builtins.cc (try_expand_macro_expression): Run ENR
|
||
when recursively expanding macros.
|
||
* expand/rust-macro-expand.cc (MacroExpander::expand_invoc): No longer
|
||
perform name resolution in `expand_invoc`.
|
||
* expand/rust-macro-expand.h (struct MacroExpander): Keep ENR within
|
||
MacroExpander.
|
||
* rust-session-manager.cc (Session::expansion): Run ENR.
|
||
* resolve/rust-early-name-resolver.cc: New file.
|
||
* resolve/rust-early-name-resolver.h: New file.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-path.h: Add `accept_vis` method to `GenericArg` class.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Add note for
|
||
glob import resolving.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* util/rust-hir-map.h: Add new mappings.
|
||
* util/rust-hir-map.cc (Mappings::insert_macro_invocation): Add insertion
|
||
function into mappings.
|
||
(Mappings::lookup_macro_invocation): Add lookup function for mappings.
|
||
|
||
2023-02-21 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
* parse/rust-parse-impl.h (Parser::parse_stmt_or_expr_without_block):
|
||
Check if `expr` is valid after parsing it.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* backend/rust-builtins.cc (BuiltinsContext::setup): Declare prefetch
|
||
intrinsics.
|
||
* backend/rust-compile-intrinsic.cc (enum class Prefetch): Add kinds of
|
||
prefetch intrinsics.
|
||
(prefetch_data_handler): New function.
|
||
(prefetch_read_data): Likewise.
|
||
(prefetch_write_data): Likewise.
|
||
|
||
2023-02-21 David Faust <david.faust@oracle.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Fill empty functions for
|
||
structs, enums and unions.
|
||
|
||
2023-02-21 David Faust <david.faust@oracle.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::format_tuple_field): New.
|
||
(Dump::format_struct_field): New.
|
||
* ast/rust-ast-dump.h (format_tuple_field): New.
|
||
(format_struct_field): New.
|
||
|
||
2023-02-21 David Faust <david.faust@oracle.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): move generic params dump ...
|
||
(Dump::emit_generic_params): ... here.
|
||
* ast/rust-ast-dump.h (emit_generic_params): New.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-hir-trait-ref.h (lookup_trait_item): Add lookup
|
||
in super_trait.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* backend/rust-compile-expr.cc
|
||
(CompileExpr::resolve_method_address): Use auto and minor change
|
||
in candidate init.
|
||
* typecheck/rust-hir-type-check-path.cc
|
||
(TypeCheckExpr::resolve_segments): Likewise.
|
||
* typecheck/rust-hir-type-check-type.cc: Likewise.
|
||
* backend/rust-compile-resolve-path.cc
|
||
(HIRCompileBase::query_compile): Likewise. Removecall to
|
||
set_ty_ref.
|
||
* typecheck/rust-hir-path-probe.h (struct PathProbeCandidate): Add
|
||
locus initializer in ctor, implement get_defid.
|
||
(class PathProbeType::Probe): return a set instead of vector.
|
||
Adjust class impl.
|
||
(class ReportMultipleCandidateError): Do not inherit from
|
||
HIRImplVisitor anymore and remove corresponding impl. Adjust for
|
||
change in Probe. Simplify Report handling.
|
||
(class PathProbeImplTrait::Probe): Adjust return type.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-hir-type-check-enumitem.cc
|
||
(TypeCheckEnumItem::visit): Adjust VariantDef ctor calls with
|
||
DefID.
|
||
* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit):
|
||
Likewise.
|
||
* typecheck/rust-tyty.h (VariantDef): Add defid parameter to ctor.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* Make-lang.in: Add `rust-builtins.o` as target
|
||
* backend/rust-builtins.h: Refactor to new file.
|
||
* backend/rust-builtins.cc: New file.
|
||
|
||
2023-02-21 David Faust <david.faust@oracle.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Implement visitor for If
|
||
expressions.
|
||
|
||
2023-02-21 David Faust <david.faust@oracle.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::visit): Dump assignment and compound
|
||
assignment expressions.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::query_type):
|
||
Check for recursive queries.
|
||
* typecheck/rust-hir-type-check.h: New functions: `query_completed`,
|
||
`query_in_progress`, `insert_query`.
|
||
* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::scan): Use `query_type` API.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast-dump.cc (Dump::emit_visibility): New function.
|
||
(Dump::visit): Call into `emit_visibility`.
|
||
(Dump::format_function_common): Likewise.
|
||
* ast/rust-ast-dump.h: Declare `emit_visibility`.
|
||
|
||
2023-02-21 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-item.h: Rename get_public_vis_type.
|
||
* hir/rust-ast-lower.cc (translate_visibility): Use new name.
|
||
|
||
2023-02-21 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* resolve/rust-name-resolver.h: Add miscellenaous item mappings.
|
||
* resolve/rust-name-resolver.cc (Resolver::insert_resolved_misc): Use
|
||
new mappings.
|
||
(Resolver::lookup_resolved_misc): Likewise.
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments):
|
||
Adapt function to insert into miscelleanous mappings.
|
||
* checks/lints/rust-lint-marklive.cc (MarkLive::find_ref_node_id):
|
||
Allow lookup in miscelleanous mappings in mark-live phase.
|
||
|
||
2023-02-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* backend/rust-tree.cc: Include memmodel.h.
|
||
|
||
2023-02-17 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* backend/rust-tree.cc: '#include "tm_p.h"'.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* Make-lang.in: Remove `rust-hir-typecheck-toplevel` object and add
|
||
`rust-hir-path-probe` one.
|
||
* typecheck/rust-hir-dot-operator.cc (MethodResolver::MethodResolver):
|
||
Remove no longer used `context` and `mapping` fields, and use new
|
||
`query_type` API.
|
||
(MethodResolver::MethodResolver): Likewise.
|
||
(MethodResolver::select): Use new `query_type` API.
|
||
* typecheck/rust-hir-path-probe.h: New header.
|
||
* typecheck/rust-hir-path-probe.cc: New file.
|
||
* typecheck/rust-hir-dot-operator.h (class MethodResolver): Remove no
|
||
longer used `context` and `mapping` fields, and use new `query_type` API.
|
||
* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::query_type): New function.
|
||
* typecheck/rust-hir-type-check-base.h: Declare `query_type` function.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Add debug print.
|
||
* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::Resolve):
|
||
Refactor and make use of new query system.
|
||
(TypeCheckTopLevelExternItem::Resolve): Likewise.
|
||
(TypeCheckTopLevelExternItem::visit): Likewise.
|
||
(TypeCheckTopLevelImplItem::visit): Likewise.
|
||
(TypeCheckImplItem::visit): Likewise.
|
||
(TypeCheckImplItem::TypeCheckImplItem): Likewise.
|
||
(TypeCheckImplItem::Resolve): Likewise.
|
||
(TypeCheckImplItemWithTrait::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-implitem.h (class TypeCheckTopLevelImplItem): Likewise.
|
||
(class TypeCheckImplItemWithTrait): Likewise.
|
||
* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::TypeCheckItem): Likewise.
|
||
(TypeCheckItem::Resolve): Likewise.
|
||
(TypeCheckItem::ResolveImplItem): Likewise.
|
||
(TypeCheckItem::ResolveImplBlockSelf): Likewise.
|
||
(TypeCheckItem::visit): Likewise.
|
||
(TypeCheckItem::resolve_impl_item): Likewise.
|
||
(TypeCheckItem::resolve_impl_block_substitutions): Likewise.
|
||
(TypeCheckItem::resolve_impl_block_self): Likewise.
|
||
* typecheck/rust-hir-type-check-item.h: Likewise.
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path): Likewise.
|
||
(TypeCheckExpr::resolve_segments): Likewise.
|
||
* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-stmt.h: Likewise.
|
||
* typecheck/rust-hir-type-check-type.cc (TypeCheckType::Resolve): Likewise.
|
||
(TypeCheckType::visit): Likewise.
|
||
(TypeCheckType::resolve_root_path): Likewise.
|
||
* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): Likewise.
|
||
* typecheck/rust-hir-type-check.h: Likewise.
|
||
* typecheck/rust-substitution-mapper.h: Likewise.
|
||
* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::scan): Likewise.
|
||
(TypeCheckBase::get_predicate_from_bound): Likewise.
|
||
(TypeBoundsMappings::add_bound): Likewise.
|
||
* typecheck/rust-tyty-cmp.h: Likewise.
|
||
* typecheck/rust-tyty.h: Likewise.
|
||
* typecheck/rust-tyty.cc (SubstitutionRef::infer_substitions): Likewise.
|
||
(ParamType::resolve): Do not infinite loop anymore.
|
||
* util/rust-hir-map.h: Add new `hirImplBlockTypeMappings` and
|
||
declare `lookup_impl_block_type`.
|
||
* util/rust-hir-map.cc (Mappings::insert_hir_impl_block): Use new
|
||
`hirImplBlockTypeMappings`
|
||
(Mappings::lookup_impl_block_type): New function.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* backend/rust-compile-context.h: Add new optional `asm_name` string
|
||
argument to `lookup_function_decl`.
|
||
* backend/rust-compile-item.cc (CompileItem::visit): Compute assembly
|
||
name and pass it to `lookup_function_decl` when calling it.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* backend/rust-constexpr.cc (eval_store_expression): Remove invalid
|
||
assertion on constexpr constructors.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* backend/rust-compile-expr.h: Formatting.
|
||
|
||
2023-01-31 liushuyu <liushuyu011@gmail.com>
|
||
|
||
* ast/rust-ast.h (class MacroInvocData): Store expander as
|
||
member of the class.
|
||
(class Expr): Add `is_literal` virtual method
|
||
* ast/rust-expr.h: Override `is_literal` for `LiteralExpr`s.
|
||
* expand/rust-macro-builtins.cc (try_expand_macro_expression): New function.
|
||
(try_extract_string_literal_from_fragment): Likewise.
|
||
(try_expand_single_string_literal): Likewise.
|
||
(try_expand_many_expr): Likewise.
|
||
(parse_single_string_literal): Add macro expander as argument.
|
||
(MacroBuiltin::include_bytes): Pass expander as argument to
|
||
`parse_single_string_literal`.
|
||
(MacroBuiltin::include_str): Likewise.
|
||
(MacroBuiltin::compile_error): Likewise.
|
||
(MacroBuiltin::include): Likewise.
|
||
(MacroBuiltin::concat): Likewise and add better error handling.
|
||
(MacroBuiltin::env): Likewise.
|
||
* expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Expand
|
||
invocations recursively.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* lang.opt: Add new ``-frust-compile-until` option.
|
||
* rust-session-manager.cc (Session::compile_crate): Add stops around
|
||
various compilation steps in the pipeline.
|
||
* rust-session-manager.h (struct CompileOptions): Add `CompileStep` enum
|
||
and field.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* backend/rust-tree.cc (rs_type_quals): Comment out bad assertion
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-hir-type-check-toplevel.cc (TypeCheckTopLevel::visit):
|
||
Make static items behave more similarly to const items.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* backend/rust-compile-item.cc (CompileItem::visit): Const evaluate
|
||
static item expressions.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Do not lower
|
||
null items within modules.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* util/rust-attributes.cc: Add `macro_use` to list of builtin
|
||
attributes.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* checks/errors/rust-const-checker.cc (ConstChecker::ctx_to_str): Allow
|
||
getting an error string from a specific constant context.
|
||
(ConstChecker::ctx_allows_default): New function, check if a context
|
||
allows default values for Const generics.
|
||
(ConstChecker::visit): Call into `ctx_allows_default`.
|
||
* checks/errors/rust-const-checker.h: Declare `ctx_allows_default`.
|
||
|
||
2023-01-31 liushuyu <liushuyu011@gmail.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Properly formulate
|
||
exit condition when compiling while loops.
|
||
|
||
2023-01-31 Faisal Abbas <90.abbasfaisal@gmail.com>
|
||
|
||
* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Turn
|
||
constant item typechecking into a coercion site instead of a unify
|
||
site.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-tyty.h: Fix `is_concrete` for unit types with
|
||
substitutions.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::contains_associated_types):
|
||
Check if a type bound predicate contains assocated types.
|
||
* typecheck/rust-tyty.h: Declare the above mentioned function.
|
||
* typecheck/rust-hir-trait-resolve.cc: Use `contains_associated_types`
|
||
function.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Add
|
||
more calls to `rust_debug` for development.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* backend/rust-compile-base.cc: Improve compilation pipeline and simplify
|
||
function.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* backend/rust-tree.cc (comptypes): Remove some C++ specific checks in
|
||
Rust const folder for now.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::unify_site): Add
|
||
better unification function with debug calls.
|
||
* typecheck/rust-autoderef.cc (AutoderefCycle::cycle): Add more debug
|
||
calls and use new unify API.
|
||
* typecheck/rust-coercion.cc (TypeCoercionRules::do_coercion): Likewise.
|
||
(TypeCoercionRules::coerce_borrowed_pointer): Likewise.
|
||
(TypeCoercionRules::select): Likewise.
|
||
* typecheck/rust-hir-dot-operator.cc (MethodResolver::select): Likewise.
|
||
* typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item): Likewise.
|
||
(TypeCheckBase::coercion_site): Likewise.
|
||
(TypeCheckBase::cast_site): Likewise.
|
||
* typecheck/rust-hir-type-check-base.h: Likewise.
|
||
* typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelImplItem::visit): Likewise.
|
||
(TypeCheckImplItem::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): Likewise.
|
||
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve): Likewise.
|
||
* typecheck/rust-hir-type-check-toplevel.cc (TypeCheckTopLevel::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): Likewise.
|
||
* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): Likewise.
|
||
* typecheck/rust-tyctx.cc (TypeCheckContext::peek_return_type): Likewise.
|
||
* typecheck/rust-tyty-call.cc (TypeCheckMethodCallExpr::visit): Likewise.
|
||
* typecheck/rust-tyty-cmp.h: Likewise.
|
||
* typecheck/rust-tyty-rules.h: Likewise.
|
||
* typecheck/rust-tyty.cc (BaseType::mappings_str): Likewise.
|
||
(BaseType::debug): Print type name more clearly.
|
||
(BaseType::debug_str): Add new function to print type pointer and name.
|
||
(TupleType::get_name): Improve type name fetching function.
|
||
(ReferenceType::get_name): Likewise.
|
||
(PointerType::get_name): Likewise.
|
||
* typecheck/rust-tyty.h: Refactor definitions outside of the header.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::TypeCheckBase):
|
||
Remove constructor.
|
||
(TypeCheckBase::coercion_site): Add `Location` argument to function.
|
||
* typecheck/rust-hir-type-check-base.h: Use `TypeCheckBase::coercion_site`
|
||
function with location argument.
|
||
* typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-expr.h (class TypeCheckExpr): Likewise.
|
||
* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::visit): Likewise.
|
||
* typecheck/rust-hir-type-check-toplevel.cc (TypeCheckTopLevel::visit): Likewise.
|
||
* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Likewise.
|
||
(TypeCheckMethodCallExpr::visit): Likewise.
|
||
* typecheck/rust-tyty.h: Add missing locus field.
|
||
* typecheck/rust-tyty.cc (StructFieldType::clone): Use locus field.
|
||
(StructFieldType::monomorphized_clone): Likewise.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-tyctx.cc (TypeCheckContext::pop_return_type): Add
|
||
guards around `std::vector<T>.pop_back()`.
|
||
(TypeCheckContext::peek_context): Likewise for `std::vector<T>.back()`.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
philberty <philip.herron@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Improve assertions within ASTFragment API.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast.h: Add assertions and accessors for fragment nodes.
|
||
* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Fix expansion
|
||
context typo when visiting `InherentImpl` items.
|
||
(AttrVisitor::maybe_expand_expr): Use new Fragment accessor to fetch
|
||
properly typed node.
|
||
(AttrVisitor::maybe_expand_type): Likewise.
|
||
* expand/rust-macro-expand.cc (transcribe_type): Emit parse errors
|
||
when trying to parse a type.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast-dump.h: Add shorthand `AST::Dump::debug` function to
|
||
dump an AST node on `stderr`.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
philberty <philip.herron@embecosm.com>
|
||
|
||
* expand/rust-macro-expand.cc (parse_many): Return early from parsing
|
||
loop if we encounter an error, and emit that error in the meantime.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* expand/rust-macro-expand.cc (MacroExpander::match_matcher): Handle
|
||
fragments differently based on whether or not we are currently trying
|
||
to match a matcher in a repetition context.
|
||
(MacroExpander::match_n_matches): Use new `in_repetition` argument
|
||
properly when calling `match_matcher`.
|
||
* expand/rust-macro-expand.h (MacroExpander::match_matcher): Allow
|
||
passing extra `in_repetition` bool argument
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h: Allow parsing full range expressions without
|
||
erroring out.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* checks/lints/rust-lint-scan-deadcode.h: Do not report public items
|
||
as dead code.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* util/rust-attributes.cc: Add `rustc_inherit_overflow_checks` to list
|
||
of builtin attributes.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* backend/rust-compile-expr.cc (CompileExpr::visit): Insert overflow
|
||
checks logic.
|
||
(CompileExpr::array_copied_expr): Insert overflow checks logic.
|
||
* backend/rust-compile-item.cc (CompileItem::visit): Insert overflow
|
||
checks logic.
|
||
* backend/rust-compile-type.cc (TyTyResolveCompile::visit): Insert
|
||
overflow checks logic.
|
||
* rust-gcc.cc (Gcc_backend::arithmetic_or_logical_expression): Differentiate
|
||
existing function from `arithmetic_or_logical_expression_checked`.
|
||
This function does insert perform overflow checks.
|
||
(Gcc_backend::arithmetic_or_logical_expression_checked): New
|
||
function.
|
||
(is_overflowing_expr): New function. Check if an expression is an
|
||
overflowing one (ADD, SUB, MUL).
|
||
(fetch_overflow_builtins): New function.
|
||
* rust-backend.h: Declare `arithmetic_or_logical_expression_checked` in
|
||
abstract `Backend` class.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* backend/rust-builtins.h: Refactor builtin context class and add
|
||
overflow builtins.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* rust-gcc.cc (class Bvariable): Move class to `rust-gcc.h` header.
|
||
* rust-gcc.h: New file.
|
||
|
||
2023-01-31 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* hir/rust-ast-lower-expr.h: Lower double borrow expressions to two
|
||
`HIR::BorrowExpr`s.
|
||
* hir/tree/rust-hir-expr.h: Remove `is_double_borrow` field from
|
||
`HIR::BorrowExpr`.
|
||
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Remove
|
||
call to `gcc_unreachable` on double borrow expressions.
|
||
|
||
2023-01-31 Faisal Abbas <90.abbasfaisal@gmail.com>
|
||
|
||
* backend/rust-tree.cc : Add new includes.
|
||
(scope_chain): New.
|
||
(maybe_add_global): New.
|
||
(init_modules): New (copied from cp)
|
||
(var_in_constexpr_fn): Likewise.
|
||
(member_vec_linear_search): Likewise.
|
||
(member_vec_binary_search): Likewise.
|
||
(is_overloaded_fn): Likewise.
|
||
(ovl_make): Likewise.
|
||
(lookup_add): Likewise.
|
||
(type_memfn_quals): Likewise.
|
||
(struct find_parameter_pack_data): Likewise.
|
||
(struct conv_type_hasher): Likewise.
|
||
(make_conv_op_name): Likewise.
|
||
(builtin_pack_fn_p): Likewise.
|
||
(builtin_pack_call_p): Likewise.
|
||
(has_extra_args_mechanism_p): Likewise.
|
||
(find_parameter_packs_r): Likewise.
|
||
(WALK_SUBTREE): Likewise.
|
||
(type_memfn_rqual): Likewise.
|
||
(maybe_add_lang_type_raw): Likewise.
|
||
(struct c_fileinfo): Likewise.
|
||
(get_fileinfo): Likewise.
|
||
(cxx_make_type): Likewise.
|
||
(build_min_array_type): Likewise.
|
||
(fields_linear_search): Likewise.
|
||
(nothrow_spec_p): Likewise.
|
||
(maybe_get_fns): Likewise.
|
||
(get_fns): Likewise.
|
||
(get_first_fn): Likewise.
|
||
(dependent_name): Likewise.
|
||
(called_fns_equal): Likewise.
|
||
(canonical_eh_spec): Likewise.
|
||
(rs_tree_code_length): Likewise.
|
||
(rs_tree_operand_length): Likewise.
|
||
(rs_tree_equal): Likewise.
|
||
(publicly_uniquely_derived_p): Likewise.
|
||
(comp_except_types): Likewise.
|
||
(comp_except_specs): Likewise.
|
||
(compparms): Likewise.
|
||
(set_array_type_canon): Likewise.
|
||
(struct cplus_array_info): Likewise.
|
||
(struct cplus_array_hasher): Likewise.
|
||
(cplus_array_hasher::hash): Likewise.
|
||
(cplus_array_hasher::equal): Likewise.
|
||
(is_byte_access_type): Likewise.
|
||
(build_cplus_array_type): Likewise.
|
||
(rs_build_qualified_type_real): Likewise.
|
||
(vector_targets_convertible_p): Likewise.
|
||
(comp_array_types): Likewise.
|
||
(same_type_ignoring_top_level_qualifiers_p): Likewise.
|
||
(comp_ptr_ttypes_const): Likewise.
|
||
(similar_type_p): Likewise.
|
||
(structural_comptypes): Likewise.
|
||
(comptypes): Likewise.
|
||
(next_initializable_field): Likewise.
|
||
(sufficient_parms_p): Likewise.
|
||
(default_ctor_p): Likewise.
|
||
(user_provided_p): Likewise.
|
||
(type_has_non_user_provided_default_constructor): Likewise.
|
||
(default_init_uninitialized_part): Likewise.
|
||
(extract_conversion_operator): Likewise.
|
||
(get_class_binding_direct): Likewise.
|
||
(lang_check_failed): Likewise.
|
||
(skip_artificial_parms_for): Likewise.
|
||
(in_class_defaulted_default_constructor): Likewise.
|
||
(is_instantiation_of_constexpr): Likewise.
|
||
(check_for_uninitialized_const_var): Likewise.
|
||
(cv_unqualified): Likewise.
|
||
(make_tree_vector): Likewise.
|
||
(release_tree_vector): Likewise.
|
||
(instantiation_dependent_expression_p): Likewise.
|
||
(cp_get_callee): Likewise.
|
||
(build_nop): Likewise.
|
||
(scalarish_type_p): Likewise.
|
||
(type_has_nontrivial_copy_init): Likewise.
|
||
(build_local_temp): Likewise.
|
||
(is_normal_capture_proxy): Likewise.
|
||
(reject_gcc_builtin): Likewise.
|
||
(is_bitfield_expr_with_lowered_type): Likewise.
|
||
(maybe_undo_parenthesized_ref): Likewise.
|
||
(fold_offsetof): Likewise.
|
||
(char_type_p): Likewise.
|
||
(resolve_nondeduced_context): Likewise.
|
||
(instantiate_non_dependent_or_null): Likewise.
|
||
(resolve_nondeduced_context_or_error): Likewise.
|
||
(really_overloaded_fn): Likewise.
|
||
(invalid_nonstatic_memfn_p): Likewise.
|
||
(strip_top_quals): Likewise.
|
||
(cxx_incomplete_type_inform): Likewise.
|
||
(cxx_incomplete_type_diagnostic): Likewise.
|
||
(decl_constant_var_p): Likewise.
|
||
(undeduced_auto_decl): Likewise.
|
||
(require_deduced_type): Likewise.
|
||
* backend/rust-tree.h (enum c_tree_index): Likewise.
|
||
(GTY): Likewise.
|
||
(enum cp_tree_index): Likewise.
|
||
(wchar_decl_node): Likewise.
|
||
(vtable_entry_type): Likewise.
|
||
(delta_type_node): Likewise.
|
||
(vtable_index_type): Likewise.
|
||
(class_type_node): Likewise.
|
||
(unknown_type_node): Likewise.
|
||
(init_list_type_node): Likewise.
|
||
(explicit_void_list_node): Likewise.
|
||
(vtbl_type_node): Likewise.
|
||
(vtbl_ptr_type_node): Likewise.
|
||
(std_node): Likewise.
|
||
(abi_node): Likewise.
|
||
(global_namespace): Likewise.
|
||
(const_type_info_type_node): Likewise.
|
||
(conv_op_marker): Likewise.
|
||
(abort_fndecl): Likewise.
|
||
(current_aggr): Likewise.
|
||
(nullptr_node): Likewise.
|
||
(nullptr_type_node): Likewise.
|
||
(align_type_node): Likewise.
|
||
(char8_type_node): Likewise.
|
||
(char16_type_node): Likewise.
|
||
(char32_type_node): Likewise.
|
||
(wchar_type_node): Likewise.
|
||
(underlying_wchar_type_node): Likewise.
|
||
(wint_type_node): Likewise.
|
||
(signed_size_type_node): Likewise.
|
||
(unsigned_ptrdiff_type_node): Likewise.
|
||
(intmax_type_node): Likewise.
|
||
(uintmax_type_node): Likewise.
|
||
(widest_integer_literal_type_node): Likewise.
|
||
(widest_unsigned_literal_type_node): Likewise.
|
||
(sig_atomic_type_node): Likewise.
|
||
(int8_type_node): Likewise.
|
||
(int16_type_node): Likewise.
|
||
(int32_type_node): Likewise.
|
||
(int64_type_node): Likewise.
|
||
(uint8_type_node): Likewise.
|
||
(c_uint16_type_node): Likewise.
|
||
(c_uint32_type_node): Likewise.
|
||
(c_uint64_type_node): Likewise.
|
||
(int_least8_type_node): Likewise.
|
||
(int_least16_type_node): Likewise.
|
||
(int_least32_type_node): Likewise.
|
||
(int_least64_type_node): Likewise.
|
||
(uint_least8_type_node): Likewise.
|
||
(uint_least16_type_node): Likewise.
|
||
(uint_least32_type_node): Likewise.
|
||
(uint_least64_type_node): Likewise.
|
||
(int_fast8_type_node): Likewise.
|
||
(int_fast16_type_node): Likewise.
|
||
(int_fast32_type_node): Likewise.
|
||
(int_fast64_type_node): Likewise.
|
||
(uint_fast8_type_node): Likewise.
|
||
(uint_fast16_type_node): Likewise.
|
||
(uint_fast32_type_node): Likewise.
|
||
(uint_fast64_type_node): Likewise.
|
||
(intptr_type_node): Likewise.
|
||
(uintptr_type_node): Likewise.
|
||
(truthvalue_type_node): Likewise.
|
||
(truthvalue_true_node): Likewise.
|
||
(truthvalue_false_node): Likewise.
|
||
(char_array_type_node): Likewise.
|
||
(char8_array_type_node): Likewise.
|
||
(char16_array_type_node): Likewise.
|
||
(char32_array_type_node): Likewise.
|
||
(wchar_array_type_node): Likewise.
|
||
(string_type_node): Likewise.
|
||
(const_string_type_node): Likewise.
|
||
(default_function_type): Likewise.
|
||
(function_name_decl_node): Likewise.
|
||
(pretty_function_name_decl_node): Likewise.
|
||
(c99_function_name_decl_node): Likewise.
|
||
(saved_function_name_decls): Likewise.
|
||
(null_node): Likewise.
|
||
(ctor_identifier): Likewise.
|
||
(complete_ctor_identifier): Likewise.
|
||
(base_ctor_identifier): Likewise.
|
||
(dtor_identifier): Likewise.
|
||
(complete_dtor_identifier): Likewise.
|
||
(base_dtor_identifier): Likewise.
|
||
(deleting_dtor_identifier): Likewise.
|
||
(conv_op_identifier): Likewise.
|
||
(delta_identifier): Likewise.
|
||
(in_charge_identifier): Likewise.
|
||
(vtt_parm_identifier): Likewise.
|
||
(as_base_identifier): Likewise.
|
||
(this_identifier): Likewise.
|
||
(pfn_identifier): Likewise.
|
||
(vptr_identifier): Likewise.
|
||
(global_identifier): Likewise.
|
||
(anon_identifier): Likewise.
|
||
(auto_identifier): Likewise.
|
||
(decltype_auto_identifier): Likewise.
|
||
(init_list_identifier): Likewise.
|
||
(for_range__identifier): Likewise.
|
||
(for_begin__identifier): Likewise.
|
||
(for_end__identifier): Likewise.
|
||
(for_range_identifier): Likewise.
|
||
(for_begin_identifier): Likewise.
|
||
(for_end_identifier): Likewise.
|
||
(abi_tag_identifier): Likewise.
|
||
(aligned_identifier): Likewise.
|
||
(begin_identifier): Likewise.
|
||
(end_identifier): Likewise.
|
||
(get__identifier): Likewise.
|
||
(gnu_identifier): Likewise.
|
||
(tuple_element_identifier): Likewise.
|
||
(tuple_size_identifier): Likewise.
|
||
(type_identifier): Likewise.
|
||
(value_identifier): Likewise.
|
||
(fun_identifier): Likewise.
|
||
(closure_identifier): Likewise.
|
||
(heap_uninit_identifier): Likewise.
|
||
(heap_identifier): Likewise.
|
||
(heap_deleted_identifier): Likewise.
|
||
(heap_vec_uninit_identifier): Likewise.
|
||
(heap_vec_identifier): Likewise.
|
||
(omp_identifier): Likewise.
|
||
(lang_name_c): Likewise.
|
||
(lang_name_cplusplus): Likewise.
|
||
(empty_except_spec): Likewise.
|
||
(noexcept_true_spec): Likewise.
|
||
(noexcept_false_spec): Likewise.
|
||
(noexcept_deferred_spec): Likewise.
|
||
(terminate_fn): Likewise.
|
||
(call_unexpected_fn): Likewise.
|
||
(get_exception_ptr_fn): Likewise.
|
||
(begin_catch_fn): Likewise.
|
||
(end_catch_fn): Likewise.
|
||
(allocate_exception_fn): Likewise.
|
||
(free_exception_fn): Likewise.
|
||
(throw_fn): Likewise.
|
||
(rethrow_fn): Likewise.
|
||
(atexit_fn_ptr_type_node): Likewise.
|
||
(atexit_node): Likewise.
|
||
(dso_handle_node): Likewise.
|
||
(dynamic_cast_node): Likewise.
|
||
(cleanup_type): Likewise.
|
||
(vtt_parm_type): Likewise.
|
||
(any_targ_node): Likewise.
|
||
(source_location_impl): Likewise.
|
||
(OVL_FUNCTION): Likewise.
|
||
(OVL_CHAIN): Likewise.
|
||
(OVL_DEDUP_P): Likewise.
|
||
(OVL_USING_P): Likewise.
|
||
(OVL_HIDDEN_P): Likewise.
|
||
(OVL_NESTED_P): Likewise.
|
||
(OVL_LOOKUP_P): Likewise.
|
||
(OVL_EXPORT_P): Likewise.
|
||
(OVL_FIRST): Likewise.
|
||
(OVL_NAME): Likewise.
|
||
(OVL_P): Likewise.
|
||
(OVL_SINGLE_P): Likewise.
|
||
(TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
|
||
(CLASSTYPE_LAZY_DEFAULT_CTOR): Likewise.
|
||
(CLASSTYPE_CONSTRUCTORS): Likewise.
|
||
(ATTR_IS_DEPENDENT): Likewise.
|
||
(ABI_TAG_IMPLICIT): Likewise.
|
||
(PARENTHESIZED_LIST_P): Likewise.
|
||
(DECL_DEPENDENT_P): Likewise.
|
||
(USING_DECL_SCOPE): Likewise.
|
||
(USING_DECL_DECLS): Likewise.
|
||
(USING_DECL_TYPENAME_P): Likewise.
|
||
(USING_DECL_UNRELATED_P): Likewise.
|
||
(DECL_DECLARES_FUNCTION_P): Likewise.
|
||
(DECL_DECLARES_TYPE_P): Likewise.
|
||
(IDENTIFIER_KIND_BIT_0): Likewise.
|
||
(IDENTIFIER_KIND_BIT_1): Likewise.
|
||
(IDENTIFIER_KIND_BIT_2): Likewise.
|
||
(IDENTIFIER_MARKED): Likewise.
|
||
(IDENTIFIER_VIRTUAL_P): Likewise.
|
||
(IDENTIFIER_KEYWORD_P): Likewise.
|
||
(IDENTIFIER_CDTOR_P): Likewise.
|
||
(IDENTIFIER_CTOR_P): Likewise.
|
||
(IDENTIFIER_DTOR_P): Likewise.
|
||
(IDENTIFIER_ANY_OP_P): Likewise.
|
||
(IDENTIFIER_OVL_OP_P): Likewise.
|
||
(IDENTIFIER_ASSIGN_OP_P): Likewise.
|
||
(IDENTIFIER_CONV_OP_P): Likewise.
|
||
(IDENTIFIER_NEWDEL_OP_P): Likewise.
|
||
(IDENTIFIER_NEW_OP_P): Likewise.
|
||
(CLASSTYPE_DIAMOND_SHAPED_P): Likewise.
|
||
(CLASSTYPE_REPEATED_BASE_P): Likewise.
|
||
(CLASSTYPE_KEY_METHOD): Likewise.
|
||
(CLASSTYPE_MEMBER_VEC): Likewise.
|
||
(CLASSTYPE_DECL_LIST): Likewise.
|
||
(CLASSTYPE_DESTRUCTOR): Likewise.
|
||
(CLASSTYPE_HAS_PRIMARY_BASE_P): Likewise.
|
||
(CLASSTYPE_PRIMARY_BINFO): Likewise.
|
||
(CLASSTYPE_VBASECLASSES): Likewise.
|
||
(CLASSTYPE_AS_BASE): Likewise.
|
||
(DECL_CONV_FN_P): Likewise.
|
||
(DECL_CONV_FN_TYPE): Likewise.
|
||
(same_type_p): Likewise.
|
||
(WILDCARD_TYPE_P): Likewise.
|
||
(MAYBE_CLASS_TYPE_P): Likewise.
|
||
(FUNCTION_REF_QUALIFIED): Likewise.
|
||
(FUNCTION_RVALUE_QUALIFIED): Likewise.
|
||
(TYPE_PTRMEMFUNC_FN_TYPE): Likewise.
|
||
(TYPE_PTRMEMFUNC_FN_TYPE_RAW): Likewise.
|
||
(TYPE_DEPENDENT_P): Likewise.
|
||
(TYPE_DEPENDENT_P_VALID): Likewise.
|
||
(TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
|
||
(TYPE_RAISES_EXCEPTIONS): Likewise.
|
||
(IDENTIFIER_BINDING): Likewise.
|
||
(LANG_IDENTIFIER_CAST): Likewise.
|
||
(IF_COND): Likewise.
|
||
(THEN_CLAUSE): Likewise.
|
||
(ELSE_CLAUSE): Likewise.
|
||
(IF_SCOPE): Likewise.
|
||
(IF_STMT_CONSTEXPR_P): Likewise.
|
||
(IF_STMT_CONSTEVAL_P): Likewise.
|
||
(DECLTYPE_TYPE_EXPR): Likewise.
|
||
(SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
|
||
(CLASSTYPE_INTERFACE_ONLY): Likewise.
|
||
(TYPE_NAME_STRING): Likewise.
|
||
(TYPE_NAME_LENGTH): Likewise.
|
||
(CONSTRAINT_VAR_P): Likewise.
|
||
(KOENIG_LOOKUP_P): Likewise.
|
||
(DECL_PARM_INDEX): Likewise.
|
||
(DECL_PARM_LEVEL): Likewise.
|
||
(CONV_IMPLICIT): Likewise.
|
||
(CONV_STATIC): Likewise.
|
||
(CONV_CONST): Likewise.
|
||
(CONV_REINTERPRET): Likewise.
|
||
(CONV_PRIVATE): Likewise.
|
||
(CONV_FORCE_TEMP): Likewise.
|
||
(CONV_FOLD): Likewise.
|
||
(CONV_OLD_CONVERT): Likewise.
|
||
(CONV_C_CAST): Likewise.
|
||
(CONV_BACKEND_CONVERT): Likewise.
|
||
(WANT_INT): Likewise.
|
||
(WANT_FLOAT): Likewise.
|
||
(WANT_ENUM): Likewise.
|
||
(WANT_POINTER): Likewise.
|
||
(WANT_NULL): Likewise.
|
||
(WANT_VECTOR_OR_COMPLEX): Likewise.
|
||
(WANT_ARITH): Likewise.
|
||
(COMPARE_STRICT): Likewise.
|
||
(COMPARE_BASE): Likewise.
|
||
(COMPARE_DERIVED): Likewise.
|
||
(COMPARE_REDECLARATION): Likewise.
|
||
(COMPARE_STRUCTURAL): Likewise.
|
||
(SF_DEFAULT): Likewise.
|
||
(SF_PRE_PARSED): Likewise.
|
||
(SF_INCLASS_INLINE): Likewise.
|
||
(SD_UNINITIALIZED): Likewise.
|
||
(SD_INITIALIZED): Likewise.
|
||
(SD_DECOMPOSITION): Likewise.
|
||
(SD_DEFAULTED): Likewise.
|
||
(SD_DELETED): Likewise.
|
||
(TYPE_PTRDATAMEM_P): Likewise.
|
||
(RS_TYPE_CONST_P): Likewise.
|
||
(TYPE_MAIN_DECL): Likewise.
|
||
(DECL_NONTRIVIALLY_INITIALIZED_P): Likewise.
|
||
(DECL_DEFAULTED_FN): Likewise.
|
||
(TYPE_HAS_USER_CONSTRUCTOR): Likewise.
|
||
(DECL_INITIALIZED_IN_CLASS_P): Likewise.
|
||
(DECL_DEFAULTED_IN_CLASS_P): Likewise.
|
||
(DECL_NONSTATIC_MEMBER_FUNCTION_P): Likewise.
|
||
(DECL_HAS_IN_CHARGE_PARM_P): Likewise.
|
||
(DECL_HAS_VTT_PARM_P): Likewise.
|
||
(FUNCTION_FIRST_USER_PARMTYPE): Likewise.
|
||
(FUNCTION_FIRST_USER_PARM): Likewise.
|
||
(DECL_CONSTRUCTOR_P): Likewise.
|
||
(DECL_DELETED_FN): Likewise.
|
||
(BRACE_ENCLOSED_INITIALIZER_P): Likewise.
|
||
(DECL_IMMEDIATE_FUNCTION_P): Likewise.
|
||
(SET_DECL_IMMEDIATE_FUNCTION_P): Likewise.
|
||
(CONSTRUCTOR_MUTABLE_POISON): Likewise.
|
||
(PTRMEM_CST_MEMBER): Likewise.
|
||
(REF_PARENTHESIZED_P): Likewise.
|
||
(TYPE_PTRMEM_P): Likewise.
|
||
(TYPE_PTR_OR_PTRMEM_P): Likewise.
|
||
(DECL_DECOMPOSITION_P): Likewise.
|
||
(DECL_DECOMP_BASE): Likewise.
|
||
(DECL_MAYBE_IN_CHARGE_CDTOR_P): Likewise.
|
||
(DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise.
|
||
(DECL_CLONED_FUNCTION_P): Likewise.
|
||
(DECL_CLONED_FUNCTION): Likewise.
|
||
(DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise.
|
||
(cp_function_chain): Likewise.
|
||
(cdtor_label): Likewise.
|
||
(current_class_ptr): Likewise.
|
||
(current_class_ref): Likewise.
|
||
(current_eh_spec_block): Likewise.
|
||
(current_in_charge_parm): Likewise.
|
||
(current_vtt_parm): Likewise.
|
||
(current_retval_sentinel): Likewise.
|
||
(current_function_returns_value): Likewise.
|
||
(current_function_returns_null): Likewise.
|
||
(current_function_returns_abnormally): Likewise.
|
||
(current_function_infinite_loop): Likewise.
|
||
(in_base_initializer): Likewise.
|
||
(in_function_try_handler): Likewise.
|
||
(current_function_return_value): Likewise.
|
||
(current_class_type): Likewise.
|
||
(TYPE_BEING_DEFINED): Likewise.
|
||
(DECL_STATIC_FUNCTION_P): Likewise.
|
||
(DECL_FUNCTION_MEMBER_P): Likewise.
|
||
(LANG_DECL_MIN_CHECK): Likewise.
|
||
(LANG_DECL_FN_CHECK): Likewise.
|
||
(LANG_DECL_NS_CHECK): Likewise.
|
||
(LANG_DECL_PARM_CHECK): Likewise.
|
||
(LANG_DECL_DECOMP_CHECK): Likewise.
|
||
(RS_INTEGRAL_TYPE_P): Likewise.
|
||
(STAT_HACK_P): Likewise.
|
||
(STAT_TYPE_VISIBLE_P): Likewise.
|
||
(STAT_TYPE): Likewise.
|
||
(STAT_DECL): Likewise.
|
||
(STAT_VISIBLE): Likewise.
|
||
(MAYBE_STAT_DECL): Likewise.
|
||
(MAYBE_STAT_TYPE): Likewise.
|
||
(STAT_TYPE_HIDDEN_P): Likewise.
|
||
(STAT_DECL_HIDDEN_P): Likewise.
|
||
(class warning_sentinel): Likewise.
|
||
(struct uid_sensitive_constexpr_evaluation_checker): Likewise.
|
||
(class iloc_sentinel): Likewise.
|
||
(struct GTY): Likewise.
|
||
(struct named_decl_hash): Likewise.
|
||
(enum lang_decl_selector): Likewise.
|
||
(LANG_DECL_HAS_MIN): Likewise.
|
||
(struct named_label_entry): Likewise.
|
||
(struct named_label_hash): Likewise.
|
||
(enum ref_operator): Likewise.
|
||
(struct c_fileinfo): Likewise.
|
||
(class ovl_iterator): Likewise.
|
||
(class lkp_iterator): Likewise.
|
||
(enum rs_ref_qualifier): Likewise.
|
||
(enum tsubst_flags): Likewise.
|
||
(enum cp_identifier_kind): Likewise.
|
||
(enum tag_types): Likewise.
|
||
(enum compare_bounds_t): Likewise.
|
||
(mark_rvalue_use): Likewise.
|
||
(type_unknown_p): Likewise.
|
||
(init_modules): Likewise.
|
||
(var_in_constexpr_fn): Likewise.
|
||
(ovl_first): Likewise.
|
||
(lookup_add): Likewise.
|
||
(ovl_make): Likewise.
|
||
(is_overloaded_fn): Likewise.
|
||
(maybe_add_lang_type_raw): Likewise.
|
||
(type_memfn_rqual): Likewise.
|
||
(builtin_pack_fn_p): Likewise.
|
||
(make_conv_op_name): Likewise.
|
||
(type_memfn_quals): Likewise.
|
||
(get_fileinfo): Likewise.
|
||
(cxx_make_type): Likewise.
|
||
(build_cplus_array_type): Likewise.
|
||
(is_byte_access_type): Likewise.
|
||
(comptypes): Likewise.
|
||
(canonical_eh_spec): Likewise.
|
||
(cp_tree_operand_length): Likewise.
|
||
(rs_tree_equal): Likewise.
|
||
(compparms): Likewise.
|
||
(rs_build_qualified_type_real): Likewise.
|
||
(rs_build_qualified_type): Likewise.
|
||
(cv_qualified_p): Likewise.
|
||
(similar_type_p): Likewise.
|
||
(vector_targets_convertible_p): Likewise.
|
||
(same_type_ignoring_top_level_qualifiers_p): Likewise.
|
||
(comp_ptr_ttypes_const): Likewise.
|
||
(get_class_binding_direct): Likewise.
|
||
(skip_artificial_parms_for): Likewise.
|
||
(lang_check_failed): Likewise.
|
||
(default_init_uninitialized_part): Likewise.
|
||
(type_has_non_user_provided_default_constructor): Likewise.
|
||
(default_ctor_p): Likewise.
|
||
(user_provided_p): Likewise.
|
||
(sufficient_parms_p): Likewise.
|
||
(next_initializable_field): Likewise.
|
||
(in_class_defaulted_default_constructor): Likewise.
|
||
(is_instantiation_of_constexpr): Likewise.
|
||
(check_for_uninitialized_const_var): Likewise.
|
||
(reduced_constant_expression_p): Likewise.
|
||
(cv_unqualified): Likewise.
|
||
(cp_get_callee): Likewise.
|
||
(cp_get_callee_fndecl_nofold): Likewise.
|
||
(is_nondependent_static_init_expression): Likewise.
|
||
(maybe_constant_init): Likewise.
|
||
(build_nop): Likewise.
|
||
(scalarish_type_p): Likewise.
|
||
(is_bitfield_expr_with_lowered_type): Likewise.
|
||
(convert_bitfield_to_declared_type): Likewise.
|
||
(cp_fold_maybe_rvalue): Likewise.
|
||
(maybe_undo_parenthesized_ref): Likewise.
|
||
(fold_offsetof): Likewise.
|
||
(cp_truthvalue_conversion): Likewise.
|
||
(fold_non_dependent_expr): Likewise.
|
||
(char_type_p): Likewise.
|
||
(instantiation_dependent_expression_p): Likewise.
|
||
(type_has_nontrivial_copy_init): Likewise.
|
||
(build_local_temp): Likewise.
|
||
(is_normal_capture_proxy): Likewise.
|
||
(reject_gcc_builtin): Likewise.
|
||
(resolve_nondeduced_context): Likewise.
|
||
(cxx_incomplete_type_diagnostic): Likewise.
|
||
(cxx_incomplete_type_error): Likewise.
|
||
(invalid_nonstatic_memfn_p): Likewise.
|
||
(really_overloaded_fn): Likewise.
|
||
(resolve_nondeduced_context_or_error): Likewise.
|
||
(instantiate_non_dependent_or_null): Likewise.
|
||
(cxx_incomplete_type_inform): Likewise.
|
||
(strip_top_quals): Likewise.
|
||
(undeduced_auto_decl): Likewise.
|
||
(require_deduced_type): Likewise.
|
||
(decl_constant_var_p): Likewise.
|
||
(type_of_this_parm): Likewise.
|
||
(class_of_this_parm): Likewise.
|
||
(identifier_p): Likewise.
|
||
(gnu_vector_type_p): Likewise.
|
||
(make_tree_vector): Likewise.
|
||
(release_tree_vector): Likewise.
|
||
(class releasing_vec): Likewise.
|
||
(vec_safe_push): Likewise.
|
||
(null_node_p): Likewise.
|
||
* backend/rust-compile-base.cc (HIRCompileBase::setup_fndecl): Correctly
|
||
set fndecl as constexpr from qualifiers.
|
||
(HIRCompileBase::compile_function): Test if fndecl is constexpr.
|
||
(HIRCompileBase::compile_constant_item): Set fndecl as constexpr.
|
||
* backend/rust-compile-intrinsic.cc : Update include.
|
||
(finalize_intrinsic_block): Set fndecl as constexpr.
|
||
* backend/rust-constexpr.cc : Update include.
|
||
(VERIFY_CONSTANT): New.
|
||
(is_instantiation_of_constexpr): New.
|
||
(literal_type_p): New.
|
||
(verify_constant): New.
|
||
(find_array_ctor_elt): New.
|
||
(array_index_cmp): New.
|
||
(potential_constant_expression_1): New.
|
||
(get_nth_callarg): New.
|
||
(unshare_constructor): New.
|
||
(maybe_save_constexpr_fundef): New.
|
||
(returns): New.
|
||
(breaks): New.
|
||
(continues): New.
|
||
(switches): New.
|
||
(struct constexpr_global_ctx): Add new fields.
|
||
(constexpr_fundef): New.
|
||
(struct constexpr_call): New.
|
||
(constexpr_call_hasher : ggc_ptr_hash<constexpr_call>): New.
|
||
(enum constexpr_switch_state): New.
|
||
(struct constexpr_ctx): Add new fields.
|
||
(struct constexpr_fundef_hasher): New.
|
||
(constexpr_fundef_table): New.
|
||
(constexpr_fundef_hasher::equal): New.
|
||
(constexpr_fundef_hasher::hash): New.
|
||
(retrieve_constexpr_fundef): New.
|
||
(uid_sensitive_constexpr_evaluation_value): New.
|
||
(uid_sensitive_constexpr_evaluation_true_counter): New.
|
||
(uid_sensitive_constexpr_evaluation_p): New.
|
||
(class temp_override): New.
|
||
(struct uid_sensitive_constexpr_evaluation_sentinel): New.
|
||
(struct uid_sensitive_constexpr_evaluation_checker): New.
|
||
(::uid_sensitive_constexpr_evaluation_sentinel): New.
|
||
(::uid_sensitive_constexpr_evaluation_checker): New.
|
||
(uid_sensitive_constexpr_evaluation_checker::evaluation_restricted_p): New.
|
||
(constexpr_call_table): New.
|
||
(constexpr_call_hasher::hash): New.
|
||
(constexpr_call_hasher::equal): New.
|
||
(maybe_initialize_constexpr_call_table): New.
|
||
(fundef_copies_table): New.
|
||
(get_fundef_copy): New.
|
||
(save_fundef_copy): New.
|
||
(constexpr_expression): Refactor in ...
|
||
(eval_constant_expression): ...this.
|
||
(eval_store_expression): Add 3 bool params.
|
||
(eval_call_expression): Likewise.
|
||
(eval_binary_expression): Likewise.
|
||
(eval_statement_list): New.
|
||
(extract_string_elt): New.
|
||
(eval_conditional_expression): New.
|
||
(eval_bit_field_ref): New.
|
||
(eval_loop_expr): New.
|
||
(eval_switch_expr): New.
|
||
(eval_unary_expression): New.
|
||
(call_stack): New.
|
||
(call_stack_tick): New.
|
||
(last_cx_error_tick): New.
|
||
(push_cx_call_context): New.
|
||
(pop_cx_call_context): New.
|
||
(cx_error_context): New.
|
||
(fold_expr): Adjust call to eval_constant_expression.
|
||
(same_type_ignoring_tlq_and_bounds_p): New.
|
||
(union_active_member): Port more for cxx constexpr.
|
||
(fold_indirect_ref_1): New.
|
||
(rs_fold_indirect_ref): Likewise.
|
||
(rs_eval_indirect_ref): New (from corresponding cxx FE file).
|
||
(eval_logical_expression): Adjust parameter list.
|
||
(lookup_placeholder): New (from corresponding cxx FE file).
|
||
(constant_value_1): Remove.
|
||
(inline_asm_in_constexpr_error): New (from corresponding cxx FE file).
|
||
(verify_ctor_sanity): New.
|
||
(get_callee): Remove.
|
||
(initialized_type): New.
|
||
(maybe_constexpr_fn): Remove.
|
||
(init_subob_ctx): New.
|
||
(base_field_constructor_elt): New.
|
||
(get_or_insert_ctor_field): New.
|
||
(eval_vector_conditional_expression): New (from correponding cxx FE file).
|
||
(eval_bare_aggregate): New.
|
||
(cxx_eval_trinary_expression): New.
|
||
(reduced_constant_expression_p): New.
|
||
(adjust_temp_type): New.
|
||
(free_constructor): New.
|
||
(eval_and_check_array_index): New.
|
||
(eval_array_reference): New.
|
||
(eval_component_reference): New.
|
||
(label_matches): New.
|
||
(eval_constant_expression): New.
|
||
(modifying_const_object_error): New.
|
||
(is_empty_field): New.
|
||
(eval_store_expression): New.
|
||
(eval_binary_expression): New.
|
||
(addr_of_non_const_var): New.
|
||
(rs_bind_parameters_in_call): New.
|
||
(eval_builtin_function_call): New.
|
||
(eval_call_expression): New.
|
||
(build_anon_member_initialization): New.
|
||
(build_data_member_initialization): New.
|
||
(constexpr_fn_retval): New.
|
||
(constant_value_1): New.
|
||
(decl_constant_value): New.
|
||
(non_const_var_error): New.
|
||
(get_callee): New.
|
||
(get_function_named_in_call): New.
|
||
(maybe_constexpr_fn): New.
|
||
(get_nth_callarg): New.
|
||
(var_in_maybe_constexpr_fn): New.
|
||
(instantiate_cx_fn_r): New.
|
||
(instantiate_constexpr_fns): New.
|
||
(array_index_cmp): New.
|
||
(unshare_constructor): New.
|
||
(find_array_ctor_elt): New.
|
||
(verify_constant): New.
|
||
(find_heap_var_refs): New.
|
||
(find_immediate_fndecl): New.
|
||
(diag_array_subscript): New.
|
||
(get_array_or_vector_nelts): New.
|
||
(eval_and_check_array_index): New.
|
||
(extract_string_elt): New.
|
||
(is_valid_constexpr_fn): New.
|
||
(explain_invalid_constexpr_fn): New.
|
||
(register_constexpr_fundef): New.
|
||
(maybe_save_constexpr_fundef): New.
|
||
(eval_statement_list): New.
|
||
(eval_conditional_expression): New.
|
||
(eval_bit_field_ref): New.
|
||
(returns): New.
|
||
(breaks): New.
|
||
(continues): New.
|
||
(switches): New.
|
||
(eval_loop_expr): New.
|
||
(eval_switch_expr): New.
|
||
(eval_unary_expression): New.
|
||
(cxx_eval_outermost_constant_expr): New.
|
||
(is_static_init_expression): New.
|
||
(is_constant_expression): New.
|
||
(is_nondependent_static_init_expression): New.
|
||
(maybe_constant_init_1): New.
|
||
(maybe_constant_init): New.
|
||
(is_nondependent_constant_expression): New.
|
||
(cv_cache): New.
|
||
(maybe_constant_value): New.
|
||
(potential_constant_expression): New.
|
||
(struct check_for_return_continue_data): New.
|
||
(check_for_return_continue): New.
|
||
(decl_namespace_context): New.
|
||
(decl_in_std_namespace_p): New.
|
||
(is_std_construct_at): New.
|
||
(cxx_dynamic_cast_fn_p): New.
|
||
(is_std_allocator_allocate): New.
|
||
(is_std_allocator_allocate): New.
|
||
(potential_constant_expression_1): New.
|
||
(potential_constant_expression_1): New.
|
||
(fold_non_dependent_init): New.
|
||
* backend/rust-constexpr.h (maybe_save_constexpr_fundef): New.
|
||
|
||
2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* rust-session-manager.cc (Session::compile_crate): Allow the dump of prettified AST
|
||
(Session::dump_ast_pretty): New
|
||
* rust-session-manager.h: Add new output file for pretty AST dump
|
||
|
||
2023-01-05 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* resolve/rust-ast-resolve-item.cc (selftest::rust_flatten_list):
|
||
Remove output to stderr.
|
||
|
||
2023-01-05 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* Make-lang.in (selftest-rust-gdb): New.
|
||
(selftest-rust-valgrind): New.
|
||
|
||
2022-12-20 Marc Poulhiès <dkm@kataplop.net>
|
||
|
||
PR rust/108113
|
||
* Make-lang.in (rust.serial): New variable.
|
||
(rust1$(exeext)): Depend on $(rust.prev). Call LINK_PROGRESS.
|
||
|
||
2022-12-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rust/106072
|
||
* parse/rust-parse-impl.h (parse_closure_param): Store
|
||
pattern->get_locus () in a temporary before std::move (pattern) is
|
||
invoked.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* CONTRIBUTING.md: New.
|
||
* README.md: New.
|
||
* logo.png: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* config-lang.in: New.
|
||
|
||
2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* lang.opt (-frust-incomplete-and-experimental-compiler-do-not-use):
|
||
New.
|
||
* rust-session-manager.cc (Session::compile_crate): Check it.
|
||
* Make-lang.in (RUST_SELFTEST_FLAGS): Add it.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* Make-lang.in: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* lang.opt: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* lang-specs.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* rust-lang.cc: New.
|
||
* rust-session-manager.cc: New.
|
||
* rust-session-manager.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* rustspec.cc: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* rust-diagnostics.cc: New.
|
||
* rust-diagnostics.h: New.
|
||
* rust-gcc-diagnostics.cc: New.
|
||
* rust-linemap.cc: New.
|
||
* rust-linemap.h: New.
|
||
* rust-location.h: New.
|
||
* rust-system.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
David Faust <david.faust@oracle.com>
|
||
Faisal Abbas <90.abbasfaisal@gmail.com>
|
||
|
||
* backend/rust-compile-context.cc: New.
|
||
* backend/rust-compile-context.h: New.
|
||
* backend/rust-compile.cc: New.
|
||
* backend/rust-compile.h: New.
|
||
* backend/rust-constexpr.cc: New.
|
||
* backend/rust-constexpr.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
David Faust <david.faust@oracle.com>
|
||
|
||
* backend/rust-compile-block.cc: New.
|
||
* backend/rust-compile-block.h: New.
|
||
* backend/rust-compile-expr.cc: New.
|
||
* backend/rust-compile-expr.h: New.
|
||
* backend/rust-compile-extern.h: New.
|
||
* backend/rust-compile-fnparam.cc: New.
|
||
* backend/rust-compile-fnparam.h: New.
|
||
* backend/rust-compile-implitem.cc: New.
|
||
* backend/rust-compile-implitem.h: New.
|
||
* backend/rust-compile-intrinsic.cc: New.
|
||
* backend/rust-compile-intrinsic.h: New.
|
||
* backend/rust-compile-item.cc: New.
|
||
* backend/rust-compile-item.h: New.
|
||
* backend/rust-compile-pattern.cc: New.
|
||
* backend/rust-compile-pattern.h: New.
|
||
* backend/rust-compile-resolve-path.cc: New.
|
||
* backend/rust-compile-resolve-path.h: New.
|
||
* backend/rust-compile-stmt.cc: New.
|
||
* backend/rust-compile-stmt.h: New.
|
||
* backend/rust-compile-struct-field-expr.cc: New.
|
||
* backend/rust-compile-struct-field-expr.h: New.
|
||
* backend/rust-compile-type.cc: New.
|
||
* backend/rust-compile-type.h: New.
|
||
* backend/rust-compile-var-decl.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
David Faust <david.faust@oracle.com>
|
||
|
||
* backend/rust-builtins.h: New.
|
||
* backend/rust-compile-base.cc: New.
|
||
* backend/rust-compile-base.h: New.
|
||
* backend/rust-mangle.cc: New.
|
||
* backend/rust-mangle.h: New.
|
||
* backend/rust-tree.cc: New.
|
||
* backend/rust-tree.h: New.
|
||
* rust-backend.h: New.
|
||
* rust-gcc.cc: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* metadata/rust-export-metadata.cc: New.
|
||
* metadata/rust-export-metadata.h: New.
|
||
* metadata/rust-extern-crate.cc: New.
|
||
* metadata/rust-extern-crate.h: New.
|
||
* metadata/rust-import-archive.cc: New.
|
||
* metadata/rust-imports.cc: New.
|
||
* metadata/rust-imports.h: New.
|
||
* rust-object-export.cc: New.
|
||
* rust-object-export.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* checks/lints/rust-lint-unused-var.cc: New.
|
||
* checks/lints/rust-lint-unused-var.h: New.
|
||
|
||
2022-12-13 Thomas Young <wenzhang5800@gmail.com>
|
||
|
||
* checks/lints/rust-lint-marklive-base.h: New.
|
||
* checks/lints/rust-lint-marklive.cc: New.
|
||
* checks/lints/rust-lint-marklive.h: New.
|
||
* checks/lints/rust-lint-scan-deadcode.h: New.
|
||
|
||
2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* checks/errors/privacy/rust-privacy-check.cc: New.
|
||
* checks/errors/privacy/rust-privacy-check.h: New.
|
||
* checks/errors/privacy/rust-privacy-common.h: New.
|
||
* checks/errors/privacy/rust-privacy-ctx.cc: New.
|
||
* checks/errors/privacy/rust-privacy-ctx.h: New.
|
||
* checks/errors/privacy/rust-privacy-reporter.cc: New.
|
||
* checks/errors/privacy/rust-privacy-reporter.h: New.
|
||
* checks/errors/privacy/rust-pub-restricted-visitor.cc: New.
|
||
* checks/errors/privacy/rust-pub-restricted-visitor.h: New.
|
||
* checks/errors/privacy/rust-reachability.cc: New.
|
||
* checks/errors/privacy/rust-reachability.h: New.
|
||
* checks/errors/privacy/rust-visibility-resolver.cc: New.
|
||
* checks/errors/privacy/rust-visibility-resolver.h: New.
|
||
|
||
2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* checks/errors/rust-const-checker.cc: New.
|
||
* checks/errors/rust-const-checker.h: New.
|
||
|
||
2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* checks/errors/rust-unsafe-checker.cc: New.
|
||
* checks/errors/rust-unsafe-checker.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-autoderef.cc: New.
|
||
* typecheck/rust-autoderef.h: New.
|
||
* typecheck/rust-casts.cc: New.
|
||
* typecheck/rust-casts.h: New.
|
||
* typecheck/rust-coercion.cc: New.
|
||
* typecheck/rust-coercion.h: New.
|
||
* typecheck/rust-hir-dot-operator.cc: New.
|
||
* typecheck/rust-hir-dot-operator.h: New.
|
||
* typecheck/rust-hir-inherent-impl-overlap.h: New.
|
||
* typecheck/rust-hir-path-probe.h: New.
|
||
* typecheck/rust-hir-trait-ref.h: New.
|
||
* typecheck/rust-hir-type-bounds.h: New.
|
||
* typecheck/rust-substitution-mapper.cc: New.
|
||
* typecheck/rust-substitution-mapper.h: New.
|
||
* typecheck/rust-tycheck-dump.h: New.
|
||
* typecheck/rust-tyctx.cc: New.
|
||
* typecheck/rust-tyty-bounds.cc: New.
|
||
* typecheck/rust-tyty-call.cc: New.
|
||
* typecheck/rust-tyty-call.h: New.
|
||
* typecheck/rust-tyty-cmp.h: New.
|
||
* typecheck/rust-tyty-rules.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-tyty.cc: New.
|
||
* typecheck/rust-tyty.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* typecheck/rust-hir-trait-resolve.cc: New.
|
||
* typecheck/rust-hir-trait-resolve.h: New.
|
||
* typecheck/rust-hir-type-check-base.cc: New.
|
||
* typecheck/rust-hir-type-check-base.h: New.
|
||
* typecheck/rust-hir-type-check-enumitem.cc: New.
|
||
* typecheck/rust-hir-type-check-enumitem.h: New.
|
||
* typecheck/rust-hir-type-check-expr.cc: New.
|
||
* typecheck/rust-hir-type-check-expr.h: New.
|
||
* typecheck/rust-hir-type-check-implitem.cc: New.
|
||
* typecheck/rust-hir-type-check-implitem.h: New.
|
||
* typecheck/rust-hir-type-check-item.cc: New.
|
||
* typecheck/rust-hir-type-check-item.h: New.
|
||
* typecheck/rust-hir-type-check-path.cc: New.
|
||
* typecheck/rust-hir-type-check-pattern.cc: New.
|
||
* typecheck/rust-hir-type-check-pattern.h: New.
|
||
* typecheck/rust-hir-type-check-stmt.cc: New.
|
||
* typecheck/rust-hir-type-check-stmt.h: New.
|
||
* typecheck/rust-hir-type-check-struct-field.h: New.
|
||
* typecheck/rust-hir-type-check-struct.cc: New.
|
||
* typecheck/rust-hir-type-check-toplevel.cc: New.
|
||
* typecheck/rust-hir-type-check-toplevel.h: New.
|
||
* typecheck/rust-hir-type-check-type.cc: New.
|
||
* typecheck/rust-hir-type-check-type.h: New.
|
||
* typecheck/rust-hir-type-check-util.cc: New.
|
||
* typecheck/rust-hir-type-check-util.h: New.
|
||
* typecheck/rust-hir-type-check.cc: New.
|
||
* typecheck/rust-hir-type-check.h: New.
|
||
* typecheck/rust-tyty-visitor.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* util/rust-canonical-path.h: New.
|
||
* util/rust-common.h: New.
|
||
* util/rust-hir-map.cc: New.
|
||
* util/rust-hir-map.h: New.
|
||
* util/rust-identifier.h: New.
|
||
* util/rust-lang-item.h: New.
|
||
* util/rust-mapping-common.h: New.
|
||
* util/rust-stacked-contexts.h: New.
|
||
|
||
2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* util/rust-attributes.cc: New.
|
||
* util/rust-attributes.h: New.
|
||
|
||
2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* util/rust-optional-test.cc: New.
|
||
* util/rust-optional.h: New.
|
||
|
||
2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* util/rust-base62.cc: New.
|
||
* util/rust-base62.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* util/rust-abi.cc: New.
|
||
* util/rust-abi.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* util/fnv-hash.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* util/rust-make-unique.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* hir/rust-ast-lower-base.cc: New.
|
||
* hir/rust-ast-lower-base.h: New.
|
||
* hir/rust-ast-lower-block.h: New.
|
||
* hir/rust-ast-lower-enumitem.h: New.
|
||
* hir/rust-ast-lower-expr.h: New.
|
||
* hir/rust-ast-lower-extern.h: New.
|
||
* hir/rust-ast-lower-implitem.h: New.
|
||
* hir/rust-ast-lower-item.cc: New.
|
||
* hir/rust-ast-lower-item.h: New.
|
||
* hir/rust-ast-lower-pattern.cc: New.
|
||
* hir/rust-ast-lower-pattern.h: New.
|
||
* hir/rust-ast-lower-stmt.h: New.
|
||
* hir/rust-ast-lower-struct-field-expr.h: New.
|
||
* hir/rust-ast-lower-type.h: New.
|
||
* hir/rust-ast-lower.cc: New.
|
||
* hir/rust-ast-lower.h: New.
|
||
* hir/rust-hir-dump.cc: New.
|
||
* hir/rust-hir-dump.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* hir/tree/rust-hir-full-decls.h: New.
|
||
* hir/tree/rust-hir-full-test.cc: New.
|
||
* hir/tree/rust-hir-full.h: New.
|
||
* hir/tree/rust-hir-visitor.h: New.
|
||
* hir/tree/rust-hir.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* hir/tree/rust-hir-expr.h: New.
|
||
* hir/tree/rust-hir-item.h: New.
|
||
* hir/tree/rust-hir-path.h: New.
|
||
* hir/tree/rust-hir-pattern.h: New.
|
||
* hir/tree/rust-hir-stmt.h: New.
|
||
* hir/tree/rust-hir-type.h: New.
|
||
|
||
2022-12-13 Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* resolve/rust-ast-resolve-base.cc: New.
|
||
* resolve/rust-ast-resolve-base.h: New.
|
||
* resolve/rust-ast-resolve-expr.cc: New.
|
||
* resolve/rust-ast-resolve-expr.h: New.
|
||
* resolve/rust-ast-resolve-implitem.h: New.
|
||
* resolve/rust-ast-resolve-item.cc: New.
|
||
* resolve/rust-ast-resolve-item.h: New.
|
||
* resolve/rust-ast-resolve-path.cc: New.
|
||
* resolve/rust-ast-resolve-path.h: New.
|
||
* resolve/rust-ast-resolve-pattern.cc: New.
|
||
* resolve/rust-ast-resolve-pattern.h: New.
|
||
* resolve/rust-ast-resolve-stmt.cc: New.
|
||
* resolve/rust-ast-resolve-stmt.h: New.
|
||
* resolve/rust-ast-resolve-struct-expr-field.cc: New.
|
||
* resolve/rust-ast-resolve-struct-expr-field.h: New.
|
||
* resolve/rust-ast-resolve-toplevel.h: New.
|
||
* resolve/rust-ast-resolve-type.cc: New.
|
||
* resolve/rust-ast-resolve-type.h: New.
|
||
* resolve/rust-ast-resolve.cc: New.
|
||
* resolve/rust-ast-resolve.h: New.
|
||
* resolve/rust-ast-verify-assignee.h: New.
|
||
* resolve/rust-name-resolver.cc: New.
|
||
* resolve/rust-name-resolver.h: New.
|
||
|
||
2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com>
|
||
Philip Herron <philip.herron@embecosm.com>
|
||
Joel Phillips <simplytheother@gmail.com>
|
||
|
||
* expand/rust-attribute-visitor.cc: New.
|
||
* expand/rust-attribute-visitor.h: New.
|
||
* expand/rust-macro-builtins.cc: New.
|
||
* expand/rust-macro-builtins.h: New.
|
||
* expand/rust-macro-expand.cc: New.
|
||
* expand/rust-macro-expand.h: New.
|
||
* expand/rust-macro-invoc-lexer.cc: New.
|
||
* expand/rust-macro-invoc-lexer.h: New.
|
||
* expand/rust-macro-substitute-ctx.cc: New.
|
||
* expand/rust-macro-substitute-ctx.h: New.
|
||
|
||
2022-12-13 Joel Phillips <simplytheother@gmail.com>
|
||
Philip Herron <philip.herron@embecosm.com>
|
||
Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* parse/rust-parse-impl.h: New, second half.
|
||
|
||
2022-12-13 Joel Phillips <simplytheother@gmail.com>
|
||
Philip Herron <philip.herron@embecosm.com>
|
||
Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* parse/rust-cfg-parser.cc: New.
|
||
* parse/rust-cfg-parser.h: New.
|
||
* parse/rust-parse-impl.h: New.
|
||
* parse/rust-parse.cc: New.
|
||
* parse/rust-parse.h: New.
|
||
|
||
2022-12-13 Joel Phillips <simplytheother@gmail.com>
|
||
Philip Herron <philip.herron@embecosm.com>
|
||
Arthur Cohen <arthur.cohen@embecosm.com>
|
||
Mark Wielaard <mark@klomp.org>
|
||
|
||
* lex/rust-codepoint.h: New.
|
||
* lex/rust-lex.cc: New.
|
||
* lex/rust-lex.h: New.
|
||
* lex/rust-token.cc: New.
|
||
* lex/rust-token.h: New.
|
||
* rust-buffered-queue.h: New.
|
||
|
||
2022-12-13 Joel Phillips <simplytheother@gmail.com>
|
||
Philip Herron <philip.herron@embecosm.com>
|
||
Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast-dump.cc: New.
|
||
* ast/rust-ast-dump.h: New.
|
||
* ast/rust-ast-visitor.h: New.
|
||
* ast/rust-cond-compilation.h: New.
|
||
|
||
2022-12-13 Joel Phillips <simplytheother@gmail.com>
|
||
Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* ast/rust-expr.h: New.
|
||
* ast/rust-macro.h: New.
|
||
* ast/rust-path.h: New.
|
||
* ast/rust-pattern.h: New.
|
||
* ast/rust-stmt.h: New.
|
||
* ast/rust-type.h: New.
|
||
|
||
2022-12-13 Joel Phillips <simplytheother@gmail.com>
|
||
Philip Herron <philip.herron@embecosm.com>
|
||
|
||
* ast/rust-item.h: New.
|
||
|
||
2022-12-13 Joel Phillips <simplytheother@gmail.com>
|
||
Philip Herron <philip.herron@embecosm.com>
|
||
Arthur Cohen <arthur.cohen@embecosm.com>
|
||
|
||
* ast/rust-ast-full-decls.h: New.
|
||
* ast/rust-ast-full-test.cc: New.
|
||
* ast/rust-ast-full.h: New.
|
||
* ast/rust-ast.h: New.
|
||
* operator.h: New.
|
||
|
||
|
||
Copyright (C) 2022-2024 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.
|