gccrs: Correctly collect tokens for TypePathSegmentGeneric
Fixes a bug in gccrs where TypePathSegmentGeneric tokens were duplicated during collection.
This commit corrects an issue in gccrs where the TokenCollector would inadvertently duplicate the segment identifier when visiting a TypePathSegmentGeneric. By removing the redundant push operation, the token collection process is now accurate, ensuring proper Abstract Syntax Tree (AST) construction for generic type paths.
In Details
The TokenCollector::visit(TypePathSegmentGeneric) in gccrs's AST construction was erroneously pushing the segment identifier twice. This commit corrects the TokenCollector by removing the duplicate push operation for the segment identifier within the TypePathSegmentGeneric visitor. This ensures the AST accurately reflects the source code without redundant elements, which is crucial for subsequent compiler passes.
- gccrs
- The GCC Rust frontend, responsible for parsing, type-checking, and generating code for Rust programs using the GCC compiler infrastructure.
- TypePathSegmentGeneric
- Represents a segment within a Rust type path that includes generic arguments, such as in
Vec<T>whereVecis the segment and<T>are the generic arguments. - TokenCollector
- A component within gccrs responsible for traversing the Abstract Syntax Tree (AST) and collecting tokens, which are the basic lexical units of the source code. This is often a step in generating intermediate representations or performing analysis.
- Abstract Syntax Tree (AST)
- A tree representation of the abstract syntactic structure of source code. It is used by compilers and interpreters to parse and process code.