From ee95b41c072fbcec63df1ac8f8a67ee3996e9ac8 Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Wed, 28 Jun 2023 14:42:18 +0200 Subject: collector: Fix missing trait generics Generics on the target structure did not correctly output. gcc/rust/ChangeLog: * ast/rust-ast-collector.cc (TokenCollector::visit): Fix generic output. gcc/testsuite/ChangeLog: * rust/link/trait_import_0.rs: Mark test as xfail. Signed-off-by: Pierre-Emmanuel Patry --- gcc/rust/ast/rust-ast-collector.cc | 9 +-------- gcc/testsuite/rust/link/trait_import_0.rs | 3 +++ 2 files changed, 4 insertions(+), 8 deletions(-) (limited to 'gcc') diff --git a/gcc/rust/ast/rust-ast-collector.cc b/gcc/rust/ast/rust-ast-collector.cc index ffd5311..84ebcad 100644 --- a/gcc/rust/ast/rust-ast-collector.cc +++ b/gcc/rust/ast/rust-ast-collector.cc @@ -2117,14 +2117,7 @@ TokenCollector::visit (Trait &trait) push (Rust::Token::make (TRAIT, trait.get_locus ())); push (Rust::Token::make_identifier (Location (), std::move (id))); - // Traits actually have an implicit Self thrown at the start, so we must - // expect the number of generic params to be > 1 - if (trait.get_generic_params ().size () > 1) - { - push (Rust::Token::make (LEFT_ANGLE, Location ())); - visit_items_joined_by_separator (trait.get_generic_params (), COMMA, 1); - push (Rust::Token::make (RIGHT_ANGLE, Location ())); - } + visit (trait.get_generic_params ()); visit_items_as_block (trait.get_trait_items (), {}); } diff --git a/gcc/testsuite/rust/link/trait_import_0.rs b/gcc/testsuite/rust/link/trait_import_0.rs index ac8c581..1b8c90a 100644 --- a/gcc/testsuite/rust/link/trait_import_0.rs +++ b/gcc/testsuite/rust/link/trait_import_0.rs @@ -1,3 +1,6 @@ +// { dg-xfail-if "https://github.com/Rust-GCC/gccrs/issues/2349" { *-*-* } } +// { dg-excess-errors "" { xfail *-*-* } } + extern crate trait_import_1; use trait_import_1::Add; -- cgit v1.1