SATURDAY, APRIL 18, 2026
gccrs
gccrs: Fix ICE when identifier is a lang item
Compiler crash fixed when an identifier mistakenly refers to a language item.
This commit resolves an Internal Compiler Error (ICE) in gccrs that occurred when an identifier was incorrectly treated as a language item. The fix involves adding a check in TokenCollector::visit to correctly handle such cases.
In Details
The gccrs compiler now correctly handles cases where an identifier in the Abstract Syntax Tree (AST) is mistaken for a language item, preventing an ICE. The TokenCollector now explicitly checks for language items during AST traversal.
For Context
- Internal Compiler Error (ICE)
- A severe error within the compiler itself that prevents compilation from completing. It typically indicates a bug in the compiler's internal logic.
- language item
- Special identifiers in Rust that refer to fundamental language constructs, such as the
println!macro or primitive types. The compiler has specific knowledge of these items. - Abstract Syntax Tree (AST)
- A tree representation of the abstract syntactic structure of source code. It's an intermediate representation used by compilers to analyze and manipulate code.