From: Iain Buclaw
gcc/ChangeLog:
* config.gcc (*-*-freebsd*): Set rust_target_objs and
target_has_targetrustm.
* config/t-freebsd (freebsd-rust.o): New rule.
* config/freebsd-rust.cc: New file.
---
gcc/config.gcc | 2 ++
gcc/config/freebsd-rust.cc |
From: Iain Buclaw
gcc/ChangeLog:
* config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set
rust_target_objs and target_has_targetrustm.
* config/t-winnt (winnt-rust.o): New rule.
* config/winnt-rust.cc: New file.
---
gcc/config.gcc | 2 ++
From: Iain Buclaw
gcc/ChangeLog:
* config.gcc (*-*-darwin*): Set rust_target_objs and
target_has_targetrustm.
* config/t-darwin (darwin-rust.o): New rule.
* config/darwin-rust.cc: New file.
---
gcc/config.gcc| 2 ++
gcc/config/darwin-rust.cc | 44
From: Iain Buclaw
gcc/ChangeLog:
* config.gcc (*-*-vxworks*): Set rust_target_objs and
target_has_targetrustm.
* config/t-vxworks (vxworks-rust.o): New rule.
* config/vxworks-rust.cc: New file.
---
gcc/config.gcc | 3 +++
gcc/config/t-vxworks
From: Iain Buclaw
There are still quite a lot of the previously reverted i386-rust.cc
missing, so it's only a partial reimplementation.
gcc/ChangeLog:
* config/i386/t-i386 (i386-rust.o): New rule.
* config/i386/i386-rust.cc: New file.
* config/i386/i386-rust.h: New
From: Iain Buclaw
gcc/ChangeLog:
* doc/tm.texi: Regenerate.
* doc/tm.texi.in: Document TARGET_RUST_OS_INFO.
gcc/rust/ChangeLog:
* rust-session-manager.cc (Session::init): Call
targetrustm.rust_os_info.
* rust-target.def (rust_os_info): New hook.
---
From: Iain Buclaw
gcc/ChangeLog:
* doc/tm.texi: Regenerate.
* doc/tm.texi.in: Add @node for Rust language and ABI, and document
TARGET_RUST_CPU_INFO.
gcc/rust/ChangeLog:
* rust-lang.cc (rust_add_target_info): Remove sorry.
* rust-session-manager.cc:
From: Iain Buclaw
gcc/ChangeLog:
* Makefile.in (tm_rust_file_list, tm_rust_include_list, TM_RUST_H,
RUST_TARGET_DEF, RUST_TARGET_H, RUST_TARGET_OBJS): New variables.
(tm_rust.h, cs-tm_rust.h, default-rust.o,
rust/rust-target-hooks-def.h,
Pushed to trunk this morning with Changelogs and SoB lines.
Thanks for the review David!
All the best,
Arthur
On 9/6/23 15:53, Arthur Cohen wrote:
This short patchset from David Malcolm enables errors to contain extra
metadata - this is particularly useful for the Rust frontend, which
On 9/6/23 16:12, David Malcolm wrote:
On Wed, 2023-09-06 at 15:53 +0200, Arthur Cohen wrote:
From: David Malcolm
I guess I can review this patch :)
Needs a ChangeLog entry, so here's one:
gcc/ChangeLog
* diagnostic-core.h (error_meta): New decl.
* diagnostic.cc (error_meta
From: David Malcolm
---
gcc/rust/rust-diagnostics.cc | 11 +++
gcc/rust/rust-diagnostics.h | 18 ++
gcc/rust/rust-gcc-diagnostics.cc | 33 +++
gcc/rust/typecheck/rust-casts.cc | 2 +-
From: David Malcolm
---
gcc/diagnostic-core.h | 3 +++
gcc/diagnostic.cc | 15 +++
2 files changed, 18 insertions(+)
diff --git a/gcc/diagnostic-core.h b/gcc/diagnostic-core.h
index 7334c79e8e6..c9e27fd2e6e 100644
--- a/gcc/diagnostic-core.h
+++ b/gcc/diagnostic-core.h
@@
This short patchset from David Malcolm enables errors to contain extra
metadata - this is particularly useful for the Rust frontend, which will
rely on that implementation to emit standard Rust error codes [1].
This series of patches is necessary for much of our more recent
additions to the
helped us.
All the best,
Arthur
-
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634
München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas
Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht
München, HRB 106955
From: M V V S Manoj Kumar
Addresses #1567
Created a AST node InlineAsm similar to the one found in rustc.
As there is no Symbol struct/class in gccrs I have made every instance
of Symbol a string.
gcc/rust/ChangeLog:
* ast/rust-ast-full-decls.h (class InlineAsm):Added class
From: Owen Avery
gcc/rust/ChangeLog:
* parse/rust-parse-impl.h
(Parser::parse_stmt): Handle unsafe expression statements.
gcc/testsuite/ChangeLog:
* rust/compile/issue-1422.rs: New test.
Signed-off-by: Owen Avery
---
gcc/rust/parse/rust-parse-impl.h | 10
From: Philip Herron
Fixes #1361
Signed-off-by: Philip Herron
gcc/testsuite/ChangeLog:
* rust/compile/issue-1361.rs: New test.
---
gcc/testsuite/rust/compile/issue-1361.rs | 8
1 file changed, 8 insertions(+)
create mode 100644 gcc/testsuite/rust/compile/issue-1361.rs
diff
From: Owen Avery
gcc/rust/ChangeLog:
* parse/rust-parse-impl.h
(Parser::parse_expr_stmt): Remove hypothetical unsafe +
expr_stmt_without_block handling.
Signed-off-by: Owen Avery
---
gcc/rust/parse/rust-parse-impl.h | 15 +++
1 file changed, 3 insertions(+), 12
From: Philip Herron
When implementing general bounds checking as part of unify calls, we did
not check associated types on bounds which lead to alot of missed error
checking. This now recursively checks the bounds and the associated types
with a decent error message. This also required us to
From: SainiAditya1
gcc/rust/Changelog:
* hir/tree/rust-hir-full-test.cc: Moved to...
* hir/tree/rust-hir.cc: ...here.
* Make-lang.in: Rename rust-hir-full-test.
Signed-off-by: SainiAditya1
---
gcc/rust/Make-lang.in| 2 +-
From: Arthur Cohen
The class now allows for more variants including a `Hint` one which
then gets emitted by calling `rust_inform`. This allows us to display
hints/tips/notes in backtracking contexts such as the parser.
gcc/rust/ChangeLog:
* rust-diagnostics.h (struct Error): Add new
From: Owen Avery
gcc/rust/ChangeLog:
* ast/rust-pattern.h: Fix formatting.
Signed-off-by: Owen Avery
---
gcc/rust/ast/rust-pattern.h | 70 ++---
1 file changed, 34 insertions(+), 36 deletions(-)
diff --git a/gcc/rust/ast/rust-pattern.h
From: Owen Avery
gcc/rust/ChangeLog:
* 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.
*
From: Arthur Cohen
gcc/rust/ChangeLog:
* 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
From: Philip Herron
Fixes #776
Signed-off-by: Philip Herron
gcc/testsuite/ChangeLog:
* rust/compile/torture/traits10.rs: Fix test-case
---
.../rust/compile/torture/traits10.rs | 64 ++-
1 file changed, 62 insertions(+), 2 deletions(-)
diff --git
From: Owen Avery
gcc/rust/ChangeLog:
* checks/errors/rust-feature-gate.h: Add trailing newline before EOF.
Signed-off-by: Owen Avery
---
gcc/rust/checks/errors/rust-feature-gate.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git
From: Arthur Cohen
gcc/rust/ChangeLog:
* expand/rust-macro-builtins.cc (MacroBuiltin::include_handler): Do not
return nullptr token in expansion of `include!()`
gcc/testsuite/ChangeLog:
* rust/compile/empty.in: New test.
* rust/compile/include_empty.rs: New
From: Philip Herron
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* 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
*
From: Owen Avery
gcc/rust/ChangeLog:
* expand/rust-macro-builtins.cc
(MacroBuiltin::include_str_handler): Add check for valid UTF-8.
gcc/testsuite/ChangeLog:
* rust/compile/builtin_macro_include_str.rs:
Include test of invalid UTF-8.
*
From: Owen Avery
gcc/rust/ChangeLog:
* 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
From: Owen Avery
gcc/rust/ChangeLog:
* parse/rust-parse-impl.h
(Parser::parse_grouped_or_tuple_pattern): Add support for empty tuple
patterns.
gcc/testsuite/ChangeLog:
* rust/compile/parse_empty_tuple_pattern.rs: New test.
Signed-off-by: Owen Avery
---
From: Owen Avery
gcc/testsuite/ChangeLog:
* rust/compile/variadic.rs: New test.
Signed-off-by: Owen Avery
---
gcc/testsuite/rust/compile/variadic.rs | 8
1 file changed, 8 insertions(+)
create mode 100644 gcc/testsuite/rust/compile/variadic.rs
diff --git
From: mxlol233
This commit implemented a feature gate to check `intrinsics`.
gcc/rust/ChangeLog:
* checks/errors/rust-feature-gate.cc: Add implementation for
`void FeatureGate::visit (AST::ExternBlock )`. Add `valid_feature`
construction process in `FeatureGate::check`.
From: Thomas Schwinge
gcc/rust/ChangeLog:
* 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:
From: Pierre-Emmanuel Patry
The compiler's warning message about the safety flag did not match
cargo-gccrs environment variable name anymore.
gcc/rust/ChangeLog:
* rust-session-manager.cc (Session::compile_crate): Update the
environment variable name.
Signed-off-by:
From: Arthur Cohen
This commit changes our macro expansion system from an eager and recursive
macro expansion to a fixed-point like system. Instead of, when seeing
a macro invocation, expanding it and all of the macros within it, we
now perform multiple passes of expansion on the entire crate
From: Pierre-Emmanuel Patry
Move function body to their own cc file instead of keeping them in the
header file.
gcc/rust/ChangeLog:
* Make-lang.in: Add `rust-hir-trait-reference.o`.
* typecheck/rust-hir-trait-reference.h: Remove multiple function body.
*
From: Arthur Cohen
gcc/rust/ChangeLog:
* ast/rust-item.h (class BlockExpr): Remove forward declaration of
class `BlockExpr`.
---
gcc/rust/ast/rust-item.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/rust/ast/rust-item.h b/gcc/rust/ast/rust-item.h
From: Arthur Cohen
gcc/rust/ChangeLog:
* 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`.
---
gcc/rust/expand/rust-macro
From: Thomas Schwinge
'dg-excess-errors' "indicates that the test is expected to fail due to compiler
messages that are not handled by 'dg-error', [etc.]". It's argument doesn't
specify the message to match but just just a comment. Here, however, we'd like
to match specific compiler messages,
From: Arthur Cohen
gcc/rust/ChangeLog:
* parse/rust-parse.h: Move `parse_macro_invocation` to public API.
---
gcc/rust/parse/rust-parse.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/rust/parse/rust-parse.h b/gcc/rust/parse/rust-parse.h
index 2f767bb2a53
From: Philip Herron
Existing tests are updated to use libcore copy and clone implementation.
Addresses #1725
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* typecheck/rust-unify.cc (UnifyRules::go): ensure the bounds are
checked
gcc/testsuite/ChangeLog:
*
From: Philip Herron
This refactors the unification systems to be a consistent interface using
switch statements and simple functions instead of the old clunky visitor
system. This is more maintainable as it is harder to miss cases when we
can take advantages of switch statements.
Signed-off-by:
From: Philip Herron
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* hir/tree/rust-hir-item.h: implement virtual function
* hir/tree/rust-hir.h: add virtual function
---
gcc/rust/hir/tree/rust-hir-item.h | 17 -
gcc/rust/hir/tree/rust-hir.h | 2 ++
2
From: Owen Avery
gcc/rust/ChangeLog:
* 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):
From: Philip Herron
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* typecheck/rust-tyty-subst.cc: add missing callback
---
gcc/rust/typecheck/rust-tyty-subst.cc | 1 +
1 file changed, 1 insertion(+)
diff --git a/gcc/rust/typecheck/rust-tyty-subst.cc
From: Philip Herron
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): remove error
message
gcc/testsuite/ChangeLog:
* rust/compile/func3.rs: update test case
---
gcc/rust/typecheck/rust-tyty-call.cc | 5 -
From: Pierre-Emmanuel Patry
Add two new tests with empty string for include_str and include_bytes
macros.
gcc/testsuite/ChangeLog:
* rust/compile/issue-1830_bytes.rs: New test.
* rust/compile/issue-1830_str.rs: New test.
Signed-off-by: Pierre-Emmanuel Patry
---
From: Philip Herron
This updates the higher ranked trait bounds computation to handle ambigious
cases. When we have a slice for example:
let slice = [1..3];
This works by reusing the Index operator overload from libcore, so when the
index range of 1..3 is computed, the type system needs to
From: Philip Herron
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* 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
From: Pierre-Emmanuel Patry
RAIIFile constructor was accepting directory filename. This lead to
unattended directory opening in some part of the code (load_file_bytes)
wich resulted in ice. Since RAIIFile are used for the lexer, removing
the ability to open directories with RAIIFile fixes those
From: Philip Herron
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* typecheck/rust-hir-type-check.h: refactor
* typecheck/rust-tyctx.cc (TypeCheckContext::iterate): refactor
(TypeCheckContext::have_loop_context): likewise
From: Philip Herron
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* typecheck/rust-substitution-mapper.cc (SubstMapper::SubstMapper):
refactor
(SubstMapper::Resolve): likewise
(SubstMapper::InferSubst): likewise
(SubstMapper::have_generic_args): likewise
From: Philip Herron
During CallExpr argument type checking we may be calling a default
implementation of a trait function this will require any possible
associated types to be resolved and setup. This monomoprhization call does
this but it will premtivly do extra unification of types which will
From: Owen Avery
gcc/rust/ChangeLog:
* typecheck/rust-tyty-call.cc
(TypeCheckCallExpr::visit): Add variadic argument type checking.
(TypeCheckCallExpr::visit): Fix comment spelling ("varadic").
gcc/testsuite/ChangeLog:
* rust/execute/torture/overflow1.rs: Fix
From: Philip Herron
When we set the callback on substitutions this is not safe to be copied
around since we store the used argument mappings and can reuse them in
different contexts. This clears the callback on copy's to make it safer.
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
From: Philip Herron
This patch changes the recusive substitution code to take a reference
instead of a copy. This is important as the callback field is going to be
made non-copyable in a future patch and this pipeline is for recursive
substitutions so its ok to reuse the same mappings here.
From: Arthur Cohen
gcc/rust/ChangeLog:
* expand/rust-macro-expand.cc (MacroExpander::expand_eager_invocations):
Add documentation explaining the algorithm.
---
gcc/rust/expand/rust-macro-expand.cc | 14 +++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git
From: Philip Herron
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* typecheck/rust-hir-path-probe.cc (PathProbeType::PathProbeType):
refactor
(PathProbeType::Probe): likewise
(PathProbeType::visit): likewise
(PathProbeType::process_enum_item_for_candiates):
From: Philip Herron
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* Make-lang.in: update name
* typecheck/rust-tyctx.cc: Moved to...
* typecheck/rust-typecheck-context.cc: ...here.
---
gcc/rust/Make-lang.in | 2 +-
From: Philip Herron
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* typecheck/rust-hir-path-probe.cc
(PathProbeCandidate::Candidate::Candidate): refactor
(PathProbeCandidate::PathProbeCandidate): likewise
(PathProbeCandidate::as_string): likewise
From: Philip Herron
This demonstrates that this also works for custom algebraic data types too.
gcc/testsuite/ChangeLog:
* rust/execute/torture/issue-1720-2.rs: New test.
Signed-off-by: Philip Herron
---
.../rust/execute/torture/issue-1720-2.rs | 30 +++
1 file
From: Philip Herron
We need these lang items to be defined and later down the line the mappings
will be used to implement proper copy and clone logic.
Fixes #1786
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* util/rust-lang-item.h:
gcc/testsuite/ChangeLog:
*
From: Philip Herron
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* typecheck/rust-tyty.cc (BaseType::BaseType): refactor
(BaseType::~BaseType): likewise
(BaseType::get_ref): likewise
(BaseType::set_ref): likewise
(BaseType::get_ty_ref): likewise
From: Arthur Cohen
The parser was missing code for handling complex type arguments such
as type paths or nested generics.
gcc/rust/ChangeLog:
* parse/rust-parse-impl.h (Parser::parse_generic_arg): Handle type
paths and nested generics properly.
gcc/testsuite/ChangeLog
From: Philip Herron
When we check if this is concrete the guard checks to ensure the argument
is non null but the check here is wrongly returning early when the check
is non null meaning when it is null and therefore not concrete it will
end up doing a null dereference.
Signed-off-by: Philip
From: Philip Herron
This extract these helpers into seperate files
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* Make-lang.in: update makefile
* typecheck/rust-tyty.cc (TyVar::TyVar): move to new file
(TyVar::get_tyty): likewise
From: mxlol233
This commit implements a very basic feature checking module.
gcc/rust/ChangeLog:
* 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.
From: Arthur Cohen
gcc/rust/ChangeLog:
* parse/rust-parse-impl.h (Parser::parse_closure_expr): Advance tokens
properly when parsing closure param list.
gcc/testsuite/ChangeLog:
* rust/compile/closure_move_expr.rs: New test.
---
gcc/rust/parse/rust-parse-impl.h
From: Philip Herron
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* Make-lang.in: update the makefile
* typecheck/rust-tyty.cc (SubstitutionParamMapping::need_substitution):
likewise
(SubstitutionParamMapping::override_context): likewise
From: Philip Herron
This moves the implementation code out of the header and into its
respective cc file.
Signed-off-by: Philip Herron
gcc/rust/ChangeLog:
* typecheck/rust-tyty-bounds.cc (TypeBoundPredicateItem::error):
refactor
(TypeBoundPredicateItem::is_error): likewise
From: Owen Avery
gcc/rust/ChangeLog:
* backend/rust-compile-expr.cc (CompileExpr::visit): Removed
copy-pasted comment.
Signed-off-by: Owen Avery
---
gcc/rust/backend/rust-compile-expr.cc | 24
1 file changed, 24 deletions(-)
diff --git
From: Owen Avery
gcc/rust/ChangeLog:
* 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.
From: Owen Avery
gcc/rust/ChangeLog:
* 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.
Signed-off-by: Owen Avery
From: Owen Avery
gcc/rust/ChangeLog:
* backend/rust-compile-fnparam.h
(CompileFnParam::visit): Remove HIR::GroupedPattern visitor.
* backend/rust-compile-pattern.cc
(CompilePatternCaseLabelExpr::visit): Remove HIR::GroupedPattern
visitor.
From: Abdul Rafey
gcc/rust/ChangeLog:
* parse/rust-parse-impl.h (Parser::null_denotation): Add proper error
when seeing wildcard var on right side of assignment.
gcc/testsuite/ChangeLog:
* rust/compile/issue-867.rs: New test.
Signed-off-by: Abdul Rafey
---
From: Owen Avery
gcc/rust/ChangeLog:
* hir/rust-ast-lower-pattern.cc
(ASTLoweringPattern::visit): Lower AST::GroupedPattern to its inner
pattern.
Signed-off-by: Owen Avery
---
gcc/rust/hir/rust-ast-lower-pattern.cc | 12 +---
1 file changed, 1 insertion(+), 11
From: Abdul Rafey
gcc/rust/ChangeLog:
* ast/rust-ast-dump.cc (Dump::visit): removed extra indentations in
trait ast dump
Signed-off-by: Abdul Rafey
---
gcc/rust/ast/rust-ast-dump.cc | 7 +--
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git
From: MAHAD
gcc/rust/ChangeLog:
* rust-buffered-queue.h: Moved to...
* util/rust-buffered-queue.h: ...here.
Signed-off-by: Muhammad Mahad
---
gcc/rust/{ => util}/rust-buffered-queue.h | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename gcc/rust/{ =>
From: Arthur Cohen
The parser now recursively tries to parse a reference type after seeing
a `&` or `&&` token.
gcc/rust/ChangeLog:
* parse/rust-parse-impl.h (Parser::parse_type): Handle double ampersan
properly
(Parser::parse_reference
From: Abdul Rafey
gcc/rust/ChangeLog:
* 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...
*
From: Parthib
gcc/rust/ChangeLog:
* Make-lang.in: Rename object file.
* ast/rust-ast-full-test.cc: Moved to...
* ast/rust-ast.cc: ...here.
---
gcc/rust/Make-lang.in | 2 +-
gcc/rust/ast/{rust-ast-full-test.cc => rust-ast.cc} | 0
2 files
From: Owen Avery
gcc/rust/ChangeLog:
* 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.
Signed-off-by: Owen
From: Arthur Cohen
gcc/rust/ChangeLog:
* 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
From: Arthur Cohen
In dg-output, check for \r* carriage returns to make sure execution
tests pass on windows platforms
gcc/testsuite/ChangeLog:
* rust/execute/torture/builtin_macro_cfg.rs: Handle carriage returns
properly.
* rust/execute/torture
From: Owen Avery
gcc/rust/ChangeLog:
* hir/tree/rust-hir-pattern.h: Add get_item method.
Signed-off-by: Owen Avery
---
gcc/rust/hir/tree/rust-hir-pattern.h | 6 ++
1 file changed, 6 insertions(+)
diff --git a/gcc/rust/hir/tree/rust-hir-pattern.h
From: Owen Avery
gcc/rust/ChangeLog:
* backend/rust-compile-pattern.cc (CompilePatternCaseLabelExpr::visit):
Add proper
visitor.
(CompilePatternBindings::visit): Likewise.
* backend/rust-compile-pattern.h: Declare them.
Signed-off-by: Owen Avery
---
From: Owen Avery
gcc/rust/ChangeLog:
* typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit):
Add proper
visitor.
Signed-off-by: Owen Avery
---
gcc/rust/typecheck/rust-hir-type-check-pattern.cc | 8 +---
1 file changed, 5 insertions(+), 3 deletions(-)
diff
From: Owen Avery
gcc/rust/ChangeLog:
* hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Add proper
visitor.
* hir/rust-ast-lower-pattern.h: Declare it.
Signed-off-by: Owen Avery
---
gcc/rust/hir/rust-ast-lower-pattern.cc | 16
From: Philip Herron
This patch adds support for the GenercArgsBinding type, where you can
specify the associated types of a trait bound using `` style
syntax. Note that the type-resolution relys on the i32 impl for Add
as type resolution will resolve the `a+a` to the core::ops::Add method
so
From: Lyra
This commit fixes a compiler crash when expanding an empty macro into an
existing AST.
gcc/rust/ChangeLog:
* expand/rust-macro-expand.cc (transcribe_expression): Fix ICE when
expanding
empty macros.
gcc/testsuite/ChangeLog:
* rust/compile/macro45.rs: New
From: mxlol233
Currently, the diagnostics only point to the corresponding token's
start position by carets, and lack of underlines for full token. This
commit add support for such underlines in diagnostics by encoding range
information in location_t.
gcc/rust/ChangeLog:
*
From: Owen Avery
gcc/rust/ChangeLog:
* resolve/rust-ast-resolve-pattern.h: Support GroupedPattern properly.
Signed-off-by: Owen Avery
---
gcc/rust/resolve/rust-ast-resolve-pattern.h | 5 +
1 file changed, 5 insertions(+)
diff --git a/gcc/rust/resolve/rust-ast-resolve-pattern.h
From: Owen Avery
Update Rust type-checking to reuse TypeCheckPattern on HIR::LetStmt's.
This will unify the paths and improve error handling.
gcc/rust/ChangeLog:
* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Cleanup
LetStmt
type checking.
Signed-off-by: Owen
From: mxlol233
This commit adds virtual function get_locus to base class MetaItemInner,
which is helpful when we need to print diagnostics on some sub-classes of
MetaItemInner.
gcc/rust/ChangeLog:
* ast/rust-ast.h: Add get_locus method.
* ast/rust-expr.h: Likewise.
*
From: Owen Avery
This allows patterns to declare multiple/no variables
gcc/rust/ChangeLog:
* 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
From: mxlol233
gcc/rust/ChangeLog:
* parse/rust-parse-impl.h (Parser::parse_generic_arg): Add proper bound
parsing.
gcc/testsuite/ChangeLog:
* rust/compile/bounds.rs: New test.
Signed-off-by: Xiao Ma
---
gcc/rust/parse/rust-parse-impl.h | 17 +
From: Philip Herron
When specifying generic arguments to Traits we can also specify the
associated types using `` syntax we need to add
name resolution to the type argument here and rely on the type
resolution pass to ensure the associated type exists and to setup the
associated types
From: Arthur Cohen
gcc/rust/ChangeLog:
* rust-session-manager.cc (Session::compile_crate): Fix typo.
---
gcc/rust/rust-session-manager.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-manager.cc
index
From: Dave
Use StackedContext instead. Fix error string
Signed-off-by: Dave Evans
(Squashed commits) Check for mutable references in const functions using
StackedContext
gcc/rust/ChangeLog:
* checks/errors/rust-const-checker.cc (ConstChecker::visit): Use
StackedContext
201 - 300 of 540 matches
Mail list logo