From: Arthur Cohen
gcc/rust/ChangeLog:
* expand/rust-derive-clone.cc (DeriveClone::clone_call): Mention using
`clone_fn`
lang item in the future.
---
gcc/rust/expand/rust-derive-clone.cc | 14 ++
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/gcc
From: Arthur Cohen
gcc/rust/ChangeLog:
* hir/tree/rust-hir.h: Add override qualifier to overriden method.
---
gcc/rust/hir/tree/rust-hir.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/rust/hir/tree/rust-hir.h b/gcc/rust/hir/tree/rust-hir.h
index 8ce5cf4d102
From: Arthur Cohen
gcc/rust/ChangeLog:
* util/rust-lang-item.h: Add new lang items.
* util/rust-lang-item.cc: Likewise.
---
gcc/rust/util/rust-lang-item.cc | 6 ++
gcc/rust/util/rust-lang-item.h | 9 +
2 files changed, 15 insertions(+)
diff --git a/gcc/rust/util
From: Arthur Cohen
gcc/rust/ChangeLog:
* expand/rust-derive-copy.cc: Use lang item path.
---
gcc/rust/expand/rust-derive-copy.cc | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/gcc/rust/expand/rust-derive-copy.cc
b/gcc/rust/expand/rust-derive-copy.cc
index
From: Pierre-Emmanuel Patry
A variant being moved lead to a null being created and a segfault later
down the line.
gcc/rust/ChangeLog:
* backend/rust-compile-expr.cc (CompileExpr::visit): Call getter
instead of size function.
* checks/errors/privacy/rust-privacy-reporter
From: Arthur Cohen
gcc/rust/ChangeLog:
* expand/rust-derive-clone.cc (DeriveClone::variant_match_path): New
function.
(DeriveClone::clone_enum_identifier): Rename.
(DeriveClone::clone_enum_tuple): New function.
(DeriveClone::visit_enum): Visit tuple variants
From: Arthur Cohen
gcc/rust/ChangeLog:
* expand/rust-derive-clone.cc (DeriveClone::visit_union): Create a lang
item path
instead of a regular path.
---
gcc/rust/expand/rust-derive-clone.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/rust/expand/rust
From: Om Swaroop Nayak <96killera...@gmail.com>
* ast/rust-collect-lang-items.cc (get_lang_item_attr): "removed checker
fn"
* util/rust-attributes.cc (Attributes::is_lang_item): "added fn"
* util/rust-attributes.h: "added fn"
Signed-off-by: Om Swaroop Nayak <96killera...@
From: Arthur Cohen
gcc/rust/ChangeLog:
* util/rust-attribute-values.h: Declare new attribute value.
* util/rust-attributes.cc: Use it.
---
gcc/rust/util/rust-attribute-values.h | 1 +
gcc/rust/util/rust-attributes.cc | 1 +
2 files changed, 2 insertions(+)
diff --git a
From: Arthur Cohen
This commit correctly lowers and typechecks parenthesized types, which are used
for trait objects with additional bounds.
gcc/rust/ChangeLog:
* resolve/rust-ast-resolve-type.cc (ResolveType::visit): New visitor to
handle
ParenthesizedType.
* resolve
From: Prajwal S N
Replaces the DIY vector stack with a StackedContexts object for block
scopes in the type checker context.
Fixes #3284.
gcc/rust/ChangeLog:
* typecheck/rust-hir-type-check.h (class TypeCheckContext): add
header file and use StackedContexts for blocks
*
From: Arthur Cohen
This commit adds things like Item::Kind, Expr::Kind, etc, and implements the
associated `get_*_kind` functions.
It also removes the more generic AST::Kind enum we were using, which was
incomplete and painful to use.
gcc/rust/ChangeLog:
* ast/rust-ast.h: Add new
From: Owen Avery
gcc/rust/ChangeLog:
* resolve/rust-toplevel-name-resolver-2.0.cc
(TopLevel::visit): Use DefaultResolver::visit and avoid a call
to Identifier::as_string while handling instances of StaticItem.
Signed-off-by: Owen Avery
---
gcc/rust/resolve/rust-topleve
From: Arthur Cohen
Fixes a couple of warnings thrown by clang, with mismatched class/struct
usages and unused members.
gcc/rust/ChangeLog:
* ast/rust-expr.h: Remove invalid usage of `struct`.
* backend/rust-compile-asm.h: Remove unused `translated` member.
* backend
From: Arthur Cohen
gcc/rust/ChangeLog:
* ast/rust-collect-lang-items.cc (CollectLangItems::visit): New.
* ast/rust-collect-lang-items.h: New.
---
gcc/rust/ast/rust-collect-lang-items.cc | 9 +
gcc/rust/ast/rust-collect-lang-items.h | 1 +
2 files changed, 10 insertions
From: Arthur Cohen
gcc/rust/ChangeLog:
* ast/rust-ast.cc (BlockExpr::normalize_tail_expr): Remove overzealous
std::move
---
gcc/rust/ast/rust-ast.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/rust/ast/rust-ast.cc b/gcc/rust/ast/rust-ast.cc
index
From: Arthur Cohen
This commit adds two new constructors for AST::PathInExpression: One using a
provided lang-item, and one with an already built std::unique_ptr
gcc/rust/ChangeLog:
* ast/rust-path.h: Add two new constructors.
---
gcc/rust/ast/rust-path.h | 21
From: Philip Herron
This is pretty nasty piece of rust in my opinion the return type of this
intrinsic results into a lang item associated type:
::Discriminant
This is a special case which needs to support mapping onto the repr type
of the associated ADT that is passed in, but defaults to isz
From: Philip Herron
We resolve path segments and inserted their resolution into the name
resolution space which was an old hack to use this as information in
code-gen/check-passes in order to help things move forward but this is
not nessecary
gcc/rust/ChangeLog:
* typecheck/rust-hir-typ
From: Philip Herron
We have the type information for the resolved call lets tell the user about
it in the diagnostic and apply the correct error code.
Fixes Rust-GCC#2035
gcc/rust/ChangeLog:
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): improve
error diag
gcc/testsu
From: Benjamin Thos
Check if an if-expr returns void type or a coercible type like an early return.
gcc/rust/ChangeLog:
* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
Add check on if-expr.
gcc/testsuite/ChangeLog:
* rust/compile/implicit_returns_err3.r
From: Arthur Cohen
This paves the way for adding trait bounds that aren't necessarily Sized.
gcc/rust/ChangeLog:
* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::add_trait_bound): New
function.
* typecheck/rust-hir-type-bounds.h: Declare it.
(TypeBounds
From: Pierre-Emmanuel Patry
gcc/rust/ChangeLog:
* backend/rust-compile-resolve-path.cc (ResolvePathRef::resolve): Do
not use query system for unit struct but compile it's constructor
instead.
Signed-off-by: Pierre-Emmanuel Patry
---
gcc/rust/backend/rust-compile-resolv
From: Pierre-Emmanuel Patry
Those tests are now passing.
gcc/testsuite/ChangeLog:
* rust/compile/nr2/exclude: Remove some tests.
Signed-off-by: Pierre-Emmanuel Patry
---
gcc/testsuite/rust/compile/nr2/exclude | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/
From: Owen Avery
gcc/rust/ChangeLog:
* ast/rust-ast.h
(SingleASTNode::take_trait_item): Remove.
(SingleASTNode::take_impl_item): Remove.
(SingleASTNode::take_trait_impl_item): Remove.
* expand/rust-expand-visitor.cc
(ExpandVisitor::visit): Replace
From: Owen Avery
gcc/rust/ChangeLog:
* resolve/rust-early-name-resolver-2.0.cc
(Early::visit): Adjust error produced when macro resolution
fails.
* resolve/rust-early-name-resolver.cc
(EarlyNameResolver::visit): Likewise.
gcc/testsuite/ChangeLog:
From: Arthur Cohen
gcc/rust/ChangeLog:
* util/rust-lang-item.h: Declare it.
* util/rust-lang-item.cc: Use it.
---
gcc/rust/util/rust-lang-item.cc | 2 ++
gcc/rust/util/rust-lang-item.h | 3 +++
2 files changed, 5 insertions(+)
diff --git a/gcc/rust/util/rust-lang-item.cc b
From: Pierre-Emmanuel Patry
Rib kind had no string representation, and thus were not used in the
debug string representation.
gcc/rust/ChangeLog:
* resolve/rust-forever-stack.hxx: Output rib kind.
* resolve/rust-rib.h: Add function to get string representation from
a rib
From: Philip Herron
This completes the initial setup and boilerplate for the new type in the
typesystem. This is not functional yet but its a big patch already.
gcc/rust/ChangeLog:
* backend/rust-compile-type.cc (TyTyResolveCompile::visit): new
tyty::OpaqueType
* backend/rust-c
From: Philip Herron
Rust allows you to use generics within type bounds when they are declared
later on. This changes the name resolution to walk the genric params
in two passes to ensure the type parameters are setup before drilling down
into the type parameters
This issue has exposed another ty
From: Philip Herron
We need to be careful when doing bounds check as to not create a recusive
trait resolution. This patch checks for that case and fixes a bad type
is equal check on ADT Types which was caught with a regression here.
Fixes Rust-GCC#3126
gcc/rust/ChangeLog:
* typecheck/
From: Owen Avery
gcc/rust/ChangeLog:
* backend/rust-compile-intrinsic.cc
(assume_handler): Fix copy/paste error.
* typecheck/rust-hir-type-check-pattern.cc
(TypeCheckPattern::visit): Fix spelling mistake.
Signed-off-by: Owen Avery
---
gcc/rust/backend/rust-comp
From: Owen Avery
gcc/rust/ChangeLog:
* resolve/rust-ast-resolve-expr.cc
(ResolveExpr::visit): Modify error message.
* resolve/rust-ast-resolve-implitem.h
(ResolveToplevelImplItem::visit): Likewise.
(ResolveTopLevelTraitItems::visit): Likewise.
(Res
From: Owen Avery
gcc/rust/ChangeLog:
* resolve/rust-late-name-resolver-2.0.cc
(Late::visit): Add visitor for StructExprFieldIdentifier.
* resolve/rust-late-name-resolver-2.0.h
(Late::visit): Likewise.
gcc/testsuite/ChangeLog:
* rust/compile/nr2/exclude:
From: Owen Avery
gcc/rust/ChangeLog:
* expand/rust-derive-clone.cc
(DeriveClone::clone_impl): Avoid using the same node id multiple
times.
(DeriveClone::clone_enum_identifier): Likewise.
(DeriveClone::clone_enum_tuple): Likewise.
* expand/rust-deri
From: Owen Avery
gcc/rust/ChangeLog:
* resolve/rust-forever-stack.hxx
(ForeverStack::find_starting_point): Be more careful about
applying ForeverStack::find_closest_module.
(ForeverStack::resolve_segments): Allow traversal into parent
nodes when not in a m
From: Arthur Cohen
gcc/rust/ChangeLog:
* typecheck/rust-tyty-call.h: Remove unused context member.
---
gcc/rust/typecheck/rust-tyty-call.h | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/gcc/rust/typecheck/rust-tyty-call.h
b/gcc/rust/typecheck/rust-tyty-call.h
From: Arthur Cohen
gcc/rust/ChangeLog:
* backend/rust-compile-resolve-path.cc (ResolvePathRef::visit): Adapt
visitor to lang item
HIR::PathInExpressions.
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit):
Likewise.
---
gcc/rust/backend/rust-compile
From: Arthur Cohen
gcc/rust/ChangeLog:
* checks/lints/rust-lint-marklive.cc (MarkLive::visit): Adapt to lang
items.
---
gcc/rust/checks/lints/rust-lint-marklive.cc | 16
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/gcc/rust/checks/lints/rust-lint
From: Arthur Cohen
gcc/rust/ChangeLog:
* backend/rust-compile-resolve-path.cc (ResolvePathRef::visit): Call
into
resolve_path_like instead.
(ResolvePathRef::resolve_path_like): New.
(ResolvePathRef::resolve): Call into resolve_with_node_id.
* backend
From: Arthur Cohen
gcc/rust/ChangeLog:
* rust-session-manager.cc (Session::compile_crate): Call the visitor.
---
gcc/rust/rust-session-manager.cc | 4
1 file changed, 4 insertions(+)
diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-manager.cc
index
From: Arthur Cohen
gcc/rust/ChangeLog:
* ast/rust-ast-builder.h: Mark all arguments as &&.
* ast/rust-ast-builder.cc (Builder::let): Likewise.
---
gcc/rust/ast/rust-ast-builder.cc | 4 ++--
gcc/rust/ast/rust-ast-builder.h | 6 +++---
2 files changed, 5 insertio
From: Arthur Cohen
gcc/rust/ChangeLog:
* expand/rust-derive.cc (DeriveVisitor::derive): Call into DeriveEq.
* expand/rust-derive-eq.cc: New file.
* expand/rust-derive-eq.h: New file.
* Make-lang.in: Compile them.
gcc/testsuite/ChangeLog:
* rust/compile
From: Philip Herron
In order to handle generic super traits on any trait bound we need to ensure
we track the TypeBoundPredicate as part of the TraitReference instead of just
the raw TraitReferences because these will have any applied generics enplace.
Then for any TypeBoundPredicate it takes a
From: Owen Avery
gcc/rust/ChangeLog:
* resolve/rust-toplevel-name-resolver-2.0.cc
(TopLevel::visit): When visiting an external crate declaration,
handle failed crate name lookups. This can happen when
Session::load_extern_crate fails to load a crate during the
From: Arthur Cohen
We are still missing some deriving for enums, as part of our codegen and
nameres for rebinding struct
field patterns is missing.
gcc/rust/ChangeLog:
* expand/rust-derive-partial-eq.cc: New file.
* expand/rust-derive-partial-eq.h: New file.
* expand
From: Arthur Cohen
gcc/rust/ChangeLog:
* expand/rust-derive-clone.cc: Cleanup implementation, avoid
repetitions.
* expand/rust-derive-clone.h: Likewise.
---
gcc/rust/expand/rust-derive-clone.cc | 34 ++--
gcc/rust/expand/rust-derive-clone.h | 8
From: Pierre-Emmanuel Patry
The algorithm was comparing using the wrong id, this lead to some
mangling errors as an erroneous parent was selected.
gcc/rust/ChangeLog:
* resolve/rust-forever-stack.hxx: Fix the id comparison.
Signed-off-by: Pierre-Emmanuel Patry
---
gcc/rust/resolve/ru
From: Owen Avery
gcc/rust/ChangeLog:
* resolve/rust-late-name-resolver-2.0.cc
(Late::visit): When visiting a PathInExpression instance, call
into DefaultResolver::visit, ensuring generic arguments are
visited.
gcc/testsuite/ChangeLog:
* rust/compile/nr2/
From: Arthur Cohen
gcc/rust/ChangeLog:
* ast/rust-ast-builder.cc (Builder::block): Change return type.
(Builder::loop): Use new APIs.
* ast/rust-ast-builder.h: Change return type of block functions.
---
gcc/rust/ast/rust-ast-builder.cc | 22 +++---
gcc
From: Arthur Cohen
gcc/rust/ChangeLog:
* ast/rust-ast-builder.cc (Builder::statementify): New.
(Builder::function): Add generic params optional argument.
(Builder::path_in_expression): Add opening_scope_resolution optional
argument.
(Builder::block): Add
From: Pierre-Emmanuel Patry
Those test are now passing.
gcc/testsuite/ChangeLog:
* rust/compile/nr2/exclude: Remove passing tests.
Signed-off-by: Pierre-Emmanuel Patry
---
gcc/testsuite/rust/compile/nr2/exclude | 11 ---
1 file changed, 11 deletions(-)
diff --git a/gcc/tests
From: Philip Herron
This will be crucial for more complex gimple debugging to make it easier
to follow the code vs the original rust code.
gcc/rust/ChangeLog:
* backend/rust-compile-expr.cc (CompileExpr::visit): disable overflow
checks
* lang.opt: new flag
Signed-off-by: Phili
From: Arthur Cohen
gcc/rust/ChangeLog:
* ast/rust-ast-collector.cc (TokenCollector::visit): Adapt visitor to
lang item
PathInExpressions.
* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
* expand/rust-cfg-strip.cc (CfgStrip::visit): Likewise
From: Arthur Cohen
gcc/rust/ChangeLog:
* util/rust-hir-map.cc (Mappings::get_lang_item_node): Better
formatting when a lang
item does not exist when it should.
---
gcc/rust/util/rust-hir-map.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/rust
From: Dylan Gardner
Fixes #3129.
gcc/rust/ChangeLog:
* rust-session-manager.cc (Session::handle_crate_name): Remove
crate name inference
(Session::compile_crate): Add crate name inference and error if
inferred name is empty. Remove CompileOptions::get_instance ()
From: Philip Herron
When we lookup here it returns an optional which can lead to a crash
because it needs a guard if it has a value.
gcc/rust/ChangeLog:
* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile):
add guard
gcc/testsuite/ChangeLog:
* rust/compile/n
From: Pierre-Emmanuel Patry
Nr2 did not emit the correct error message for break identifier "rust".
gcc/rust/ChangeLog:
* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add "rust"
identifier detection akin to nr1.
(funny_ice_finalizer): Copy ICE finalizer from nr1
From: Arthur Cohen
gcc/rust/ChangeLog:
* expand/rust-derive-debug.cc: New file.
* expand/rust-derive-debug.h: New file.
* Make-lang.in: Compile them.
* expand/rust-derive.cc (DeriveVisitor::derive): Call into DeriveDebug.
gcc/testsuite/ChangeLog:
* rust
From: Arthur Cohen
gcc/rust/ChangeLog:
* expand/rust-derive-copy.cc: Always add an extra Copy bound on generic
Copy impls.
---
gcc/rust/expand/rust-derive-copy.cc | 9 +++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/gcc/rust/expand/rust-derive-copy.cc
b/gcc
From: Owen Avery
Some of our tests only work with name resolution 2.0 because the latter
misinterprets type paths. This change should cause the compiler to error out
if it would otherwise misinterpret a type path. A fix for type path
resolution isn't included in this comment, since doing so would
From: Philip Herron
We needed to check for the optional has a value here or not it leads to an
ICE.
gcc/rust/ChangeLog:
* typecheck/rust-tyty.cc (ClosureType::setup_fn_once_output): add
checks for lang items
Signed-off-by: Philip Herron
---
gcc/rust/typecheck/rust-tyty.cc | 22 +
From: Philip Herron
This guards against a crash but i think this should actually be treated
as if its a generic type like below. But for now this addresses a crash which
can occur.
gcc/rust/ChangeLog:
* checks/errors/privacy/rust-privacy-reporter.cc
(PrivacyReporter::check_base_type_p
From: Philip Herron
This was fixed as part of: "gccrs: Fix compilation of trait-items which map to
impl items"
Fixes Rust-GCC#3402
gcc/testsuite/ChangeLog:
* rust/compile/nr2/exclude: nr2 cant handle this
* rust/compile/issue-3402-1.rs: New test.
* rust/compile/issue-3
From: Arthur Cohen
Adapt functions for lowering nodes that should never reach the lowering phase
to cause an
unreachable, and mark them as final so as it not possible to override them in
other visitors.
gcc/rust/ChangeLog:
* hir/rust-ast-lower-base.cc: Adapt functions for
From: Owen Avery
gcc/rust/ChangeLog:
* resolve/rust-forever-stack.h
(ForeverStack::ForeverStack): Set the node id of the root node
to that of the current crate.
* resolve/rust-forever-stack.hxx
(ForeverStack::find_starting_point): Use the node id of the ro
From: Philip Herron
Just a small refactor to remove a visitor which is not needed.
gcc/rust/ChangeLog:
* backend/rust-compile-resolve-path.cc (ResolvePathRef::Compile):
remove visitor
(ResolvePathRef::ResolvePathRef): likewise
(ResolvePathRef::visit): likewise
*
From: Philip Herron
gcc/rust/ChangeLog:
* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): track
DefId of origin
* typecheck/rust-tyty.cc (BaseType::monomorphized_clone): likewise
(ADTType::ADTType): likewise
(ADTType::get_id): likewise
(ADTT
From: Arthur Cohen
gcc/rust/ChangeLog:
* util/rust-lang-item.h: Add Sync marker trait.
* util/rust-lang-item.cc: Likewise.
---
gcc/rust/util/rust-lang-item.cc | 1 +
gcc/rust/util/rust-lang-item.h | 1 +
2 files changed, 2 insertions(+)
diff --git a/gcc/rust/util/rust-lang
From: Philip Herron
These hir nodes have optional expressions which need guarded
gcc/rust/ChangeLog:
* hir/rust-hir-dump.cc (Dump::do_qualifiedpathtype): add guard
(Dump::do_traitfunctiondecl): likewise
(Dump::visit): likewise
Signed-off-by: Philip Herron
---
gcc/rust
From: Owen Avery
gcc/rust/ChangeLog:
* resolve/rust-late-name-resolver-2.0.cc
(Late::visit): Call DefaultResolver::visit when visiting
TypePath.
gcc/testsuite/ChangeLog:
* rust/compile/nr2/exclude: Remove entries.
Signed-off-by: Owen Avery
---
gcc/rust/resolv
From: Arthur Cohen
gcc/rust/ChangeLog:
* expand/rust-macro-builtins-asm.cc (strip_double_quotes): Special case
empty
strings ("\"\"").
(parse_reg_operand): Remove use of the `struct` keyword.
(parse_reg_operand_in): Likewise.
(p
From: Arthur Cohen
gcc/rust/ChangeLog:
* ast/rust-ast-builder.cc (Builder::literal_bool): New method.
(Builder::comparison_expr): Likewise.
(Builder::boolean_operation): Likewise.
* ast/rust-ast-builder.h: Declare them.
---
gcc/rust/ast/rust-ast-builder.cc | 46
From: Arthur Cohen
gcc/rust/ChangeLog:
* Make-lang.in: Compile it.
* ast/rust-desugar-question-mark.cc: New file.
* ast/rust-desugar-question-mark.h: New file.
gcc/testsuite/ChangeLog:
* rust/compile/try-expr1.rs: New test.
---
gcc/rust/Make-lang.in
From: GS-GOAT <86884129+gs-g...@users.noreply.github.com>
gcc/rust/ChangeLog:
* typecheck/rust-autoderef.cc
(insert_implicit_type): Update single-parameter call to
pass explicit HirId.
* typecheck/rust-hir-type-check-expr.cc: Same.
* typecheck/rust-hir-type
From: Pierre-Emmanuel Patry
New enum variant status now appears in the string representation of
the resolver's definition.
gcc/rust/ChangeLog:
* resolve/rust-rib.cc (Rib::Definition::to_string): Add enum variant
status.
Signed-off-by: Pierre-Emmanuel Patry
---
gcc/rust/resolv
From: Philip Herron
Addresses Rust-GCC#3348
gcc/rust/ChangeLog:
* backend/rust-compile-intrinsic.cc (variant_count_handler): new
intrinsic
gcc/testsuite/ChangeLog:
* rust/execute/torture/enum_intrinsics2.rs: New test.
Signed-off-by: Philip Herron
---
gcc/rust/backend/rust-
From: Pierre-Emmanuel Patry
gcc/testsuite/ChangeLog:
* rust/compile/nr2/exclude: Remove test.
Signed-off-by: Pierre-Emmanuel Patry
---
gcc/testsuite/rust/compile/nr2/exclude | 1 -
1 file changed, 1 deletion(-)
diff --git a/gcc/testsuite/rust/compile/nr2/exclude
b/gcc/testsuite/rust
From: Owen Avery
gcc/rust/ChangeLog:
* resolve/rust-forever-stack.hxx
(ForeverStack::find_starting_point): Stop when hitting a lang
item segment.
(ForeverStack::resolve_segments): Resolve lang item segments.
(ForeverStacl::resolve_path): Handle single segm
From: Owen Avery
gcc/rust/ChangeLog:
* ast/rust-ast-visitor.cc
(DefaultASTVisitor::visit): Make sure to always visit the struct
name.
* resolve/rust-late-name-resolver-2.0.cc
(Late::visit): Avoid visiting the struct name twice.
gcc/testsuite/ChangeLog:
From: Arthur Cohen
gcc/rust/ChangeLog:
* ast/rust-path.h: New function.
---
gcc/rust/ast/rust-path.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gcc/rust/ast/rust-path.h b/gcc/rust/ast/rust-path.h
index 2a76acc48c3..c2537034b61 100644
--- a/gcc/rust/ast/rust-path.h
+++ b/gcc
From: Arthur Cohen
gcc/rust/ChangeLog:
* expand/rust-derive-clone.cc: Cleanup using
DeriveVisitor::setup_impl_generics.
* expand/rust-derive-copy.cc: Likewise.
---
gcc/rust/expand/rust-derive-clone.cc | 87 ++--
gcc/rust/expand/rust-derive-copy.cc | 87
From: Arthur Cohen
gcc/rust/ChangeLog:
* hir/tree/rust-hir-path.h: Adapt PathPattern to accept lang-item paths.
* hir/tree/rust-hir-path.cc: Assert we are dealing with a segmented
path, create lang-item
constructors.
* hir/tree/rust-hir.cc (PathPattern
From: Arthur Cohen
These lang items are used when deriving Eq and PartialEq, and will be checked
when compiling pattern matching.
gcc/rust/ChangeLog:
* util/rust-lang-item.cc: New items.
* util/rust-lang-item.h: Likewise.
gcc/testsuite/ChangeLog:
* rust/compile
From: Pierre-Emmanuel Patry
Those function should not change anything within the foreverstack, it
can therefore be made const.
gcc/rust/ChangeLog:
* resolve/rust-forever-stack.h: Make debug functions const.
* resolve/rust-forever-stack.hxx: Likewise.
Signed-off-by: Pierre-Emman
From: Arthur Cohen
gcc/rust/ChangeLog:
* ast/rust-ast-builder.h: Declare it.
* ast/rust-ast-builder.cc (Builder::return_expr): Define it.
---
gcc/rust/ast/rust-ast-builder.cc | 7 +++
gcc/rust/ast/rust-ast-builder.h | 4
2 files changed, 11 insertions(+)
diff --git a
From: Owen Avery
gcc/rust/ChangeLog:
* util/rust-edition.cc: New file.
* util/rust-edition.h: New file.
* Make-lang.in: Add rust-edition.o to the object list.
* ast/rust-pattern.cc: Remove inclusion of
rust-session-manager.h.
* expand/rust-macro-e
From: Pierre-Emmanuel Patry
We already lost some time on this unusual pattern, a comment will
hopefully prevent this from happening again.
gcc/rust/ChangeLog:
* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Add
warning about current code.
Signed-off-by: Pierre-E
From: Pierre-Emmanuel Patry
Condition was inverted, we should retrieve the locus only if we have a
pattern.
gcc/rust/ChangeLog:
* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Do not
get a reference if the pattern does not exist.
(TypeCheckMethodCallExpr::check
From: Owen Avery
gcc/rust/ChangeLog:
* resolve/rust-late-name-resolver-2.0.cc
(Late::visit): Make sure to return early after a resolution
error, improve the resolution error message, fix a typo, handle
ambiguous resolutions, and remove an old comment.
gcc/testsui
From: Liam Naddell
gcc/rust/ChangeLog:
* resolve/rust-forever-stack.h (ForeverStack): Add a dedicated prelude
node for
the Language prelude
* resolve/rust-forever-stack.hxx (ForeverStack): Add support code for
the
prelude node
* resolve/rust-late-name-re
From: Pierre-Emmanuel Patry
gcc/testsuite/ChangeLog:
* rust/compile/nr2/exclude: Remove issue-1786 and issue-3033 from
exclusion list.
Signed-off-by: Pierre-Emmanuel Patry
---
gcc/testsuite/rust/compile/nr2/exclude | 2 --
1 file changed, 2 deletions(-)
diff --git a/gcc/tests
From: Pierre-Emmanuel Patry
Highlight the fact that a value inside an enum definition refers to
a struct outside of the enum and not to the enum variant's name
directly.
gcc/testsuite/ChangeLog:
* rust/compile/enum_variant_name.rs: New test.
Signed-off-by: Pierre-Emmanuel Patry
---
g
From: Pierre-Emmanuel Patry
Import mapping was relying on resolve_path which in turn relies on
the cursor function. This means the mapping resolver should be called
from the correct scope instead of being called from the crate scope.
gcc/rust/ChangeLog:
* resolve/rust-early-name-resolve
From: Pierre-Emmanuel Patry
This visitor is not used anymore.
gcc/rust/ChangeLog:
* resolve/rust-finalize-imports-2.0.cc
(FinalizeImports::FinalizeImports):
Remove constructor.
(FinalizeImports::go): Remove function.
(FinalizeImports::visit): Likewise.
*
From: Owen Avery
gcc/rust/ChangeLog:
* expand/rust-expand-visitor.cc
(ExpandVisitor::visit): Override DefaultASTVisitor in order to
expand a module's items, rather than directly visit them.
* expand/rust-expand-visitor.h
(ExpandVisitor::visit): Add overrid
From: Owen Avery
gcc/rust/ChangeLog:
* util/rust-unwrap-segment.cc: New file.
* util/rust-unwrap-segment.h: New file.
* Make-lang.in: Add rust-unwrap-segment.o to the object list.
* resolve/rust-forever-stack.hxx: Include rust-unwrap-segment.h.
(ForeverSta
From: Arthur Cohen
gcc/rust/ChangeLog:
* Make-lang.in: Compile it.
* expand/rust-derive.cc (DeriveVisitor::derive): Call it.
* expand/rust-derive-hash.cc: New file.
* expand/rust-derive-hash.h: New file.
gcc/testsuite/ChangeLog:
* rust/compile/derive
From: Arthur Cohen
gcc/rust/ChangeLog:
* expand/rust-derive-debug.cc (ptrify): Remove function.
---
gcc/rust/expand/rust-derive-debug.cc | 8
1 file changed, 8 deletions(-)
diff --git a/gcc/rust/expand/rust-derive-debug.cc
b/gcc/rust/expand/rust-derive-debug.cc
index
From: Owen Avery
gcc/testsuite/ChangeLog:
* rust/compile/nr2/compile.exp: Adjust to cover tests in the
torture subdirectory.
* rust/compile/nr2/exclude: Add entries.
Signed-off-by: Owen Avery
---
gcc/testsuite/rust/compile/nr2/compile.exp | 6 ++
gcc/testsuite/rus
801 - 900 of 1405 matches
Mail list logo