---
htdocs/gcc-14/changes.html | 13 +
1 file changed, 13 insertions(+)
diff --git a/htdocs/gcc-14/changes.html b/htdocs/gcc-14/changes.html
index 924e045a..dd3fea8d 100644
--- a/htdocs/gcc-14/changes.html
+++ b/htdocs/gcc-14/changes.html
@@ -626,6 +626,19 @@ You may also want to
On 4/29/24 15:30, Christophe Lyon wrote:
On Mon, 29 Apr 2024 at 15:24, Arthur Cohen wrote:
Thanks Christophe!
I've added your patch as part of a documentation pull-request I'm adding
to our dev repo: https://github.com/Rust-GCC/gccrs/pull/2966
It'll be upstreamed with the next batch
Thanks Christophe!
I've added your patch as part of a documentation pull-request I'm adding
to our dev repo: https://github.com/Rust-GCC/gccrs/pull/2966
It'll be upstreamed with the next batch of commits we send, as soon as
trunk reopens fully for 15.1.
Best,
Arthur
On 4/4/24 18:27,
Hey Guillaume :)
On 4/20/24 01:05, Guillaume Gomez wrote:
Hi,
I just encountered the need to retrieve the name of an `rvalue` (if
there is one) while working on the Rust GCC backend.
This patch adds a getter to retrieve the information.
Cordially.
virtual bool get_wide_int (wide_int *)
Hi everyone,
This patch checks for the presence of dlopen and pthread_create in libc. If
that is not the
case, we check for the existence of -ldl and -lpthread, as these libraries are
required to
link the Rust runtime to our Rust frontend.
If these libs are not present on the system, then we
Hi Rainer!
On 4/17/24 10:13, Rainer Orth wrote:
Andrew Pinski writes:
On Mon, Apr 8, 2024 at 9:39 AM wrote:
From: Pierre-Emmanuel Patry
Hello,
The rust frontend requires cargo to build some of it's components,
it's presence was not checked during configuration.
WHY did this go in
Morning Thomas,
On 4/15/24 13:07, Thomas Schwinge wrote:
Hi!
On 2024-01-16T17:43:10+, Arthur Cohen via Gcc-cvs
wrote:
https://gcc.gnu.org/g:71180a9eed367667e7b2c3f6aea1ee1bba15e9b3
commit r14-7544-g71180a9eed367667e7b2c3f6aea1ee1bba15e9b3
Author: Pierre-Emmanuel Patry
Date: Wed Apr
Hi Thomas,
On 4/15/24 14:44, Thomas Schwinge wrote:
Hi!
On 2024-04-15T13:14:42+0200, I wrote:
On 2024-04-08T18:33:38+0200, pierre-emmanuel.pa...@embecosm.com wrote:
The rust frontend requires cargo to build some of it's components,
In GCC upstream still: 's%requires%is going to require'.
Hi Andrew,
On 4/9/24 16:12, Andrew Pinski wrote:
On Mon, Apr 8, 2024 at 9:39 AM wrote:
From: Pierre-Emmanuel Patry
Hello,
The rust frontend requires cargo to build some of it's components,
it's presence was not checked during configuration.
NOTE cargo itself is a huge security hole. If
On 4/9/24 12:09, Iain Sandoe wrote:
Hi Arthur,
On 9 Apr 2024, at 13:01, Arthur Cohen wrote:
On 4/9/24 10:55, Iain Sandoe wrote:
Hi Arthur,
On 9 Apr 2024, at 11:40, Arthur Cohen wrote:
On 4/9/24 09:47, John Paul Adrian Glaubitz wrote:
Hello,
On Mon, 2024-04-08 at 18:33 +0200, pierre
Hi Iain!
On 4/9/24 10:55, Iain Sandoe wrote:
Hi Arthur,
On 9 Apr 2024, at 11:40, Arthur Cohen wrote:
On 4/9/24 09:47, John Paul Adrian Glaubitz wrote:
Hello,
On Mon, 2024-04-08 at 18:33 +0200, pierre-emmanuel.pa...@embecosm.com wrote:
The rust frontend requires cargo to build some
Morning all,
On 4/9/24 09:47, John Paul Adrian Glaubitz wrote:
Hello,
On Mon, 2024-04-08 at 18:33 +0200, pierre-emmanuel.pa...@embecosm.com wrote:
The rust frontend requires cargo to build some of it's components,
it's presence was not checked during configuration.
Isn't this creating a
Hi,
On 3/5/24 16:09, David Malcolm wrote:
On Thu, 2023-11-09 at 19:33 -0500, Antoni Boucher wrote:
Hi.
See answers below.
On Thu, 2023-11-09 at 18:04 -0500, David Malcolm wrote:
On Thu, 2023-11-09 at 17:27 -0500, Antoni Boucher wrote:
Hi.
This patch adds support for getting the CPU features
From: Arthur Cohen
gcc/rust/ChangeLog:
* expand/rust-macro-expand.h (struct MacroExpander): Nitpick: fix
formatting of emitted error.
---
gcc/rust/expand/rust-macro-expand.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/gcc/rust/expand/rust-macro
From: Sahil Yeole
Signed-off-by: Sahil Yeole
---
gcc/rust/ast/rust-ast-builder.cc | 2 +-
gcc/rust/ast/rust-ast-builder.h | 2 +-
gcc/rust/ast/rust-ast-collector.cc| 2 +-
gcc/rust/ast/rust-ast-collector.h
From: Arthur Cohen
To ensure we don't introduce regressions back to issue #2314
gcc/testsuite/ChangeLog:
* rust/compile/rustc_const_stable.rs: New test.
---
gcc/testsuite/rust/compile/rustc_const_stable.rs | 2 ++
1 file changed, 2 insertions(+)
create mode 100644 gcc/testsuite/rust
From: Owen Avery
gcc/rust/ChangeLog:
* backend/rust-compile-pattern.cc
(CompilePatternLet::visit):
Lookup type of sub-pattern, not tuple pattern itself.
gcc/testsuite/ChangeLog:
* rust/compile/issue-2847-b.rs: New test.
Signed-off-by: Owen Avery
---
From: Arthur Cohen
gcc/rust/ChangeLog:
* typecheck/rust-hir-type-check-implitem.h: Fix typo in field
(region_costraints -> region_constraints).
---
gcc/rust/typecheck/rust-hir-type-check-implitem.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/r
From: 0xn4utilus
gcc/rust/ChangeLog:
* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
Add variadic check on all parameters.
gcc/testsuite/ChangeLog:
* rust/compile/issue-2850.rs: New test.
Signed-off-by: 0xn4utilus
---
From: Marc Poulhiès
gcc/rust/ChangeLog:
* backend/rust-builtins.cc
(BuiltinsContext::register_rust_mappings): Add powi and reformat.
* backend/rust-builtins.h: Add missing copyright header.
gcc/testsuite/ChangeLog:
* rust/compile/torture/intrinsics-math.rs:
From: Owen Avery
gcc/rust/ChangeLog:
* 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.
From: Arthur Cohen
This adds a testcase for issue #2129.
gcc/testsuite/ChangeLog:
* rust/execute/torture/matches_macro.rs: New test.
---
.../rust/execute/torture/matches_macro.rs | 30 +++
1 file changed, 30 insertions(+)
create mode 100644 gcc/testsuite/rust
Hey everyone,
Here is the latest patchset of the Rust frontend, taken directly from our
development branch.
The patches have been built, tested and bootstrapped on x86-64.
[COMMITTED 1/9] gccrs: Fix typo in RegionConstraints instance
[COMMITTED 2/9] gccrs: Add testcase for matches!() macro
Hi Jakub,
On 2/15/24 10:10, Jakub Jelinek wrote:
On Fri, Feb 09, 2024 at 11:03:38AM +0100, Jakub Jelinek wrote:
On Wed, Feb 07, 2024 at 12:43:59PM +0100, arthur.co...@embecosm.com wrote:
From: Philip Herron
This patch introduces one regression because generics are getting better
understood
On 2/7/24 16:26, Bernhard Reutner-Fischer wrote:
On Wed, 7 Feb 2024 12:43:53 +0100
arthur.co...@embecosm.com wrote:
diff --git a/gcc/rust/typecheck/rust-hir-type-check-implitem.h
b/gcc/rust/typecheck/rust-hir-type-check-implitem.h
index 067465ec77a..4d178440775 100644
---
From: Kushal Pal
To use AST::Function for trait functions, we can parse trait functions
using available parse_function().
gcc/rust/ChangeLog:
* parse/rust-parse-impl.h (Parser::parse_trait_item):
Use parse_function() to parse trait functions.
Signed-off-by: Kushal Pal
---
From: Kushal Pal
gcc/rust/ChangeLog:
* parse/rust-parse-impl.h (Parser::parse_trait_item):
Handle macros in trait items similar to how its handled for trait
implementation items.
Signed-off-by: Kushal Pal
---
gcc/rust/parse/rust-parse-impl.h | 37
From: Kushal Pal
Since we want to use AST::Function class for trait functions as well, we
need to check against specific conditions in ASTValidation phase.
gcc/rust/ChangeLog:
* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
Add checks for Trait functions.
From: Kushal Pal
Trait functions now use AST::Function class, so classes
AST::TraitItemFunc, AST::TraitItemMethod, AST::TraitFunctionDecl,
AST::TraitMethodDecl and their related functions can be removed.
gcc/rust/ChangeLog:
* ast/rust-ast-collector.cc (TokenCollector::visit):
From: Kushal Pal
gcc/rust/ChangeLog:
* 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):
From: Philip Herron
This keeps the resolution code in line with paths.
Addresses #2723
gcc/rust/ChangeLog:
* typecheck/rust-hir-type-check-type.cc: remove hack
---
gcc/rust/typecheck/rust-hir-type-check-type.cc | 16
1 file changed, 16 deletions(-)
diff --git
From: Jakub Dupak
gcc/rust/ChangeLog:
* typecheck/rust-tyty.cc (BaseType::BaseType): Store orig ref.
(BaseType::get_orig_ref): Add getter.
* typecheck/rust-tyty.h: Store orig ref.
Signed-off-by: Jakub Dupak
---
gcc/rust/typecheck/rust-tyty.cc | 10 --
From: Philip Herron
This patch introduces one regression because generics are getting better
understood over time. The code here used to apply generics with the same
symbol from previous segments which was a bit of a hack with out limited
inference variable support. The regression looks like it
From: Jakub Dupak
gcc/rust/ChangeLog:
* hir/tree/rust-hir-item.h: Add missing getter
Signed-off-by: Jakub Dupak
---
gcc/rust/hir/tree/rust-hir-item.h | 5 +
1 file changed, 5 insertions(+)
diff --git a/gcc/rust/hir/tree/rust-hir-item.h
b/gcc/rust/hir/tree/rust-hir-item.h
index
From: Philip Herron
Fixes #1483
gcc/testsuite/ChangeLog:
* rust/compile/issue-1483.rs: New test.
---
gcc/testsuite/rust/compile/issue-1483.rs | 28
1 file changed, 28 insertions(+)
create mode 100644 gcc/testsuite/rust/compile/issue-1483.rs
diff --git
From: Nobel Singh
This patch moves the implementation of the implitem lowering
from rust-ast-lower-implitem.h into the rust-ast-lower-implitem.cc
file.
gcc/rust/ChangeLog:
* Make-lang.in: Add rust-ast-lower-implitem.cc to list of objects.
* hir/rust-ast-lower-implitem.h
From: Kushal Pal
gcc/testsuite/ChangeLog:
* rust/compile/issue-2040.rs:
Enclose 'const' in single quotes.
Signed-off-by: Kushal Pal
---
gcc/testsuite/rust/compile/issue-2040.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git
From: Kushal Pal
To use AST::Function instead of AST::TraitItemFunc and
AST::TraitItemMethod, we need to provide similar visitors during
lowering and resolving phase.
gcc/rust/ChangeLog:
* hir/rust-ast-lower-implitem.cc (ASTLowerTraitItem::visit):
Provide visitor for
From: Nobel Singh
Previously, the default ABI was set to Rust, which is not correct for
extern blocks and extern functions. This patch changes the default
ABI to C for these cases.
gcc/rust/ChangeLog:
* hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_qualifiers):
Change
From: Philip Herron
We can point to generic parent types which means we need to do the shallow
resolve thing that rustc does. We have destructure which is similar to get
what the parameter type points to.
Fixes #2775
gcc/rust/ChangeLog:
* typecheck/rust-hir-type-check-pattern.cc
From: Jakub Dupak
gcc/rust/ChangeLog:
* typecheck/rust-tyty-region.h: New file.
Signed-off-by: Jakub Dupak
---
gcc/rust/typecheck/rust-tyty-region.h | 110 ++
1 file changed, 110 insertions(+)
create mode 100644 gcc/rust/typecheck/rust-tyty-region.h
diff
From: Philip Herron
gcc/rust/ChangeLog:
* 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
---
From: Philip Herron
Fixes #2782
gcc/testsuite/ChangeLog:
* rust/compile/issue-2782.rs: New test.
Signed-off-by: Philip Herron
---
gcc/testsuite/rust/compile/issue-2782.rs | 12
1 file changed, 12 insertions(+)
create mode 100644 gcc/testsuite/rust/compile/issue-2782.rs
From: Philip Herron
Fixes #2772
gcc/testsuite/ChangeLog:
* rust/compile/issue-2772-1.rs: New test.
* rust/compile/issue-2772-2.rs: New test.
---
gcc/testsuite/rust/compile/issue-2772-1.rs | 20
gcc/testsuite/rust/compile/issue-2772-2.rs | 20
From: Jakub Dupak
gcc/rust/ChangeLog:
* 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
From: Jakub Dupak
gcc/rust/ChangeLog:
* 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
From: Philip Herron
Fixes #2747
gcc/rust/ChangeLog:
* typecheck/rust-tyty-subst.cc
(SubstitutionRef::get_mappings_from_generic_args): fix
gcc/testsuite/ChangeLog:
* rust/compile/issue-2747.rs: New test.
---
gcc/rust/typecheck/rust-tyty-subst.cc| 3 ++-
From: Jakub Dupak
gcc/rust/ChangeLog:
* 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
From: Raiki Tamura
gcc/rust/ChangeLog:
* rust-lang.cc (run_rust_tests): Add test.
* rust-system.h: Add .
* util/make-rust-unicode.py: Output NFC_Quick_Check table.
* util/rust-codepoint.h (struct Codepoint): Add is_supplementary
method.
*
From: Kushal Pal
Fixes #2812
gcc/rust/ChangeLog:
* parse/rust-parse-impl.h (Parser::parse_function):
Skip token if its a COMMA.
gcc/testsuite/ChangeLog:
* rust/compile/issue-2812.rs: New test.
Signed-off-by: Kushal Pal
---
gcc/rust/parse/rust-parse-impl.h |
From: Jakub Dupak
gcc/rust/ChangeLog:
* hir/rust-ast-lower-type.cc (ASTLoweringTypeBounds::visit): fix for
lifetimes
(ASTLowerWhereClauseItem::visit): fix for lifetimes
Signed-off-by: Jakub Dupak
---
gcc/rust/hir/rust-ast-lower-type.cc | 21 +
1 file
From: Nirmal Patel
If newline strings are encountered while lexing, the lexer now handles
newline characters by incrementing current line number. This provides
correct line number when displaying errors. If the lexer encounters end
of file before string end, then it will use the start of the
From: Kushal Pal
gcc/rust/ChangeLog:
* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
Enclose const in single quotes.
gcc/testsuite/ChangeLog:
* rust/compile/const_trait_fn.rs:
Enclose const in single quotes.
Signed-off-by: Kushal Pal
---
From: Kushal Pal
Fixes #2785
gcc/rust/ChangeLog:
* 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.
From: Kushal Pal
Fixes #2767
gcc/rust/ChangeLog:
* checks/errors/rust-ast-validation.cc (ASTValidation::visit):
Added check for `async` function inside trait.
gcc/testsuite/ChangeLog:
* rust/compile/issue-2767.rs: New test.
Signed-off-by: Kushal Pal
---
From: Jakub Dupak
gcc/testsuite/ChangeLog:
* rust/compile/for_lifetimes.rs: New test.
Signed-off-by: Jakub Dupak
---
gcc/testsuite/rust/compile/for_lifetimes.rs | 19 +++
1 file changed, 19 insertions(+)
create mode 100644 gcc/testsuite/rust/compile/for_lifetimes.rs
From: Jakub Dupak
gcc/rust/ChangeLog:
* checks/errors/borrowck/rust-bir-builder-internal.h: Replace nodiscard.
* checks/errors/borrowck/rust-bir-place.h: Replace nodiscard.
Signed-off-by: Jakub Dupak
---
gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h | 4 ++--
From: Jakub Dupak
gcc/rust/ChangeLog:
* typecheck/rust-hir-type-check-type.cc
(TypeCheckType::resolve_root_path): Refactor.
Signed-off-by: Jakub Dupak
---
gcc/rust/typecheck/rust-hir-type-check-type.cc | 11 +++
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git
From: Jakub Dupak
gcc/rust/ChangeLog:
* 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.
Signed-off-by: Jakub Dupak
---
gcc/rust/hir/tree/rust-hir-item.h | 2 ++
From: Jakub Dupak
(probably incomplete propagation)
gcc/rust/ChangeLog:
* 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:
From: Jakub Dupak
gcc/rust/ChangeLog:
* 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
*
From: Pierre-Emmanuel Patry
Add checks in the ast validation pass to error out with functions
(either free or associated) without a definition.
gcc/rust/ChangeLog:
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
a validation check and emit an error depending
From: Arthur Cohen
This commit performs builtin initialization in a more "GCC-y" way,
similarly to what the D frontend is doing. This way, we no longer have
to worry about invalid attributes or types when initializing them by
hand.
Also add attributes suppo
From: Owen Avery
gcc/rust/ChangeLog:
* 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
From: Owen Avery
gcc/rust/ChangeLog:
* 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
From: Jakub Dupak
gcc/rust/ChangeLog:
* checks/errors/borrowck/rust-bir-place.h: Cleanup.
* checks/errors/borrowck/rust-borrow-checker.h: Cleanup.
Signed-off-by: Jakub Dupak
---
gcc/rust/checks/errors/borrowck/rust-bir-place.h | 2 +-
From: Robert Goss
Fixes #2381
If a struct type is initialized with one of it's fields repeated it will
currently issue an error at the use site. However we would like to give the
rust error code and (like rustc) show both the specifications for the field to
help the user diagnose the issue.
From: Pierre-Emmanuel Patry
The feature gating behavior may be shortened and kept cleaner using the
default visitor. This means less maintenance on visit functions as the
traversal is shared by multiple visitors.
gcc/rust/ChangeLog:
* checks/errors/rust-feature-gate.cc
From: Robert Goss
If a struct type with a variant that has fields is initialized with some fields
the expression HIR StructExprStructFields is checked that all the fields are
assigned. However, if no fields are initialized the HIR StructExprStruct is
generated. This doesn't check if the
From: Jakub Dupak
gcc/rust/ChangeLog:
* 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):
From: Pierre-Emmanuel Patry
Cfg visitor used it's own visit patterns, this made the code longer than
required.
gcc/rust/ChangeLog:
* expand/rust-cfg-strip.cc (CfgStrip::visit): Change calls from visitor
to default visitor.
(CfgStrip::go): Add call to visit crate.
From: Pierre-Emmanuel Patry
A function cannot be both async and const, however this should not be
handled in the parser but rather at a later stage in the compiler. This
commit change the AsyncConstStatus in the AST and the HIR to allows a
function to be both async and const.
From: Kushal Pal
Fixes #2783
gcc/rust/ChangeLog:
* lex/rust-lex.cc (Lexer::dump_and_skip):
Changed " " to '\n'
Signed-off-by: Kushal Pal
---
gcc/rust/lex/rust-lex.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/rust/lex/rust-lex.cc
From: Jakub Dupak
gcc/rust/ChangeLog:
* hir/rust-ast-lower-type.cc (ASTLoweringType::visit): For lifetimes.
Signed-off-by: Jakub Dupak
---
gcc/rust/hir/rust-ast-lower-type.cc | 7 +++
1 file changed, 7 insertions(+)
diff --git a/gcc/rust/hir/rust-ast-lower-type.cc
From: Pierre-Emmanuel Patry
An error should be emitted on unsafe modules during the AST validation
pass as the syntax allows those even though they're not alowed later down
the line.
gcc/rust/ChangeLog:
* ast/rust-item.h: Add safety getter to modules.
*
From: Pierre-Emmanuel Patry
Function body check emit an error message when a required function body
is missing.
gcc/testsuite/ChangeLog:
* rust/compile/functions_without_body.rs: New test.
Signed-off-by: Pierre-Emmanuel Patry
---
.../rust/compile/functions_without_body.rs| 21
From: Jakub Dupak
gcc/rust/ChangeLog:
* 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
From: Jakub Dupak
gcc/rust/ChangeLog:
* typecheck/rust-tyty.h (class ClosureType): Inherit interface.
(class FnPtr): Inherit interface.
(class FnType): Inherit interface.
(class CallableTypeInterface): New interface.
(BaseType::is): Detect interface
From: Pierre-Emmanuel Patry
Add a new check in AST validation pass that checks that no function
declaration in traits are declared const.
gcc/rust/ChangeLog:
* checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add
const check.
*
From: Arthur Cohen
gcc/rust/ChangeLog:
* resolve/rust-name-resolution-context.h: Store a reference to the
mappings.
* resolve/rust-name-resolution-context.cc
(NameResolutionContext::NameResolutionContext): Likewise.
---
gcc/rust/resolve/rust-name-resolution
From: Arthur Cohen
gcc/testsuite/ChangeLog:
* rust/execute/torture/builtin_macros1.rs: Fix output pattern.
* rust/execute/torture/coercion3.rs: Likewise.
* rust/execute/torture/issue-2080.rs: Likewise.
* rust/execute/torture/issue-2179.rs: Likewise
From: Raiki Tamura
gcc/rust/ChangeLog:
* 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):
From: Jakub Dupak
Allows skipping parent check when casting.
gcc/rust/ChangeLog:
* typecheck/rust-tyty.h (BaseType::is): Cast API.
(SubstitutionRef>): Cast API.
(BaseType::as): Cast API.
(BaseType::try_as): Cast API.
Signed-off-by: Jakub Dupak
---
From: M V V S Manoj Kumar
Fixes issue #2650
The parser now parses ASYNC functions. Added ASYNC case to parse_item
Added a new function parse_async_item which is called in
parse_vis_item to handle the ASYNC case. Parse_async_item
also checks the current Rust edition and generates an error if the
From: Pierre-Emmanuel Patry
Add a new test to check for unsafe modules during AST validation pass.
gcc/testsuite/ChangeLog:
* rust/compile/unsafe_module.rs: New test.
Signed-off-by: Pierre-Emmanuel Patry
---
gcc/testsuite/rust/compile/unsafe_module.rs | 2 ++
1 file changed, 2
From: Jakub Dupak
This test did not compile with rustc.
gcc/testsuite/ChangeLog:
* rust/compile/torture/utf8_identifiers.rs: add mising lifetime
Signed-off-by: Jakub Dupak
---
gcc/testsuite/rust/compile/torture/utf8_identifiers.rs | 2 +-
1 file changed, 1 insertion(+), 1
From: Kushal Pal
Fixes #2778
gcc/rust/ChangeLog:
* parse/rust-parse-impl.h (Parser::parse_trait_impl_item):
Handled `async` items
Signed-off-by: Kushal Pal
---
gcc/rust/parse/rust-parse-impl.h | 2 ++
1 file changed, 2 insertions(+)
diff --git
From: Pierre-Emmanuel Patry
The default resolver put some scope in place but mostly has traversal
functions similar to the default ast visitor, making it inherit from the
default visitor allows us to avoid code duplication.
gcc/rust/ChangeLog:
* resolve/rust-default-resolver.cc
From: Pierre-Emmanuel Patry
Raw values cannot be understood easily by most tools. This commit replace
some raw values with their variable counterpart.
gcc/rust/ChangeLog:
* ast/rust-ast-collector.cc (TokenCollector::visit): Replace raw value
with keyword call.
*
From: Arthur Cohen
gcc/rust/ChangeLog:
* 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
From: Kushal Pal
Fixes #2788
gcc/rust/ChangeLog:
* parse/rust-parse-impl.h (Parser::parse_inherent_impl_item):
Added switch-case for ASYNC token.
gcc/testsuite/ChangeLog:
* rust/compile/issue-2788.rs: New test.
Signed-off-by: Kushal Pal
---
From: Jakub Dupak
gcc/rust/ChangeLog:
* typecheck/rust-tyty.h: Fix nodiscard to warn unused.
Signed-off-by: Jakub Dupak
---
gcc/rust/typecheck/rust-tyty.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/rust/typecheck/rust-tyty.h
From: Pierre-Emmanuel Patry
Local variables and functions or global variables have different
resolution when binded to a variable. This was not covered before, even
though it was handled by the new name resolution. This commit highlight
this behavior from the new name resolution mechanism.
From: Pierre-Emmanuel Patry
The old "keyword" list was used for the lexer, and could therefore not
be used with keyword spanning over multiple tokens as those tokens should
remain lexed as is. Hence the introduction of a new list macro for
keyword exclusive tasks. This also means we can no
From: Owen Avery
gcc/rust/ChangeLog:
* hir/tree/rust-hir-pattern.h
(class TupleItems): New.
(class TupleStructItems): Inherit from TupleItems.
(class TuplePatternItems): Likewise.
Signed-off-by: Owen Avery
---
gcc/rust/hir/tree/rust-hir-pattern.h | 47
From: Jakub Dupak
gcc/rust/ChangeLog:
* 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.
From: Pierre-Emmanuel Patry
Many visit functions in the expand visitor simply visit their components
like the default visitor. Making the expand visitor inherit from the
default visitor allows us to keep all visitor in sync without having to
change every visitor.
gcc/rust/ChangeLog:
*
From: Owen Avery
gcc/rust/ChangeLog:
* 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.
*
From: Pierre-Emmanuel Patry
Retrieving a weak keyword value is done using raw values. Introducing a
list of weak keywords means this could change.
gcc/rust/ChangeLog:
* util/rust-keyword-values.h (class WeakKeywords): Add new class with
weak keyword constexpr.
Signed-off-by:
From: Arthur Cohen
gcc/rust/ChangeLog:
* ast/rust-item.h (class UseTree): Add `node_id` member.
---
gcc/rust/ast/rust-item.h | 8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/gcc/rust/ast/rust-item.h b/gcc/rust/ast/rust-item.h
index 2c0e45962ce..3480d126bc0
1 - 100 of 532 matches
Mail list logo