Tracks lifetimes per trait item
GCC Rust now correctly tracks lifetimes associated with trait items, improving type safety.
This commit enhances GCC Rust by enabling the tracking of lifetimes specifically for trait items. Previously, lifetimes might not have been correctly associated with trait method signatures or other trait-defined elements. This change ensures better type safety and correctness when dealing with generic code involving lifetimes within traits.
In Details
The gccrs type checker now captures and tracks lifetimes associated with trait items, specifically when resolving function types within traits. This is implemented in TraitItemReference::get_type_from_fn in typecheck/rust-hir-type-check.cc, ensuring that lifetime parameters are correctly associated with trait item signatures.
- lifetimes
- A Rust concept that ensures references are valid for as long as they are needed. The compiler uses lifetimes to determine the scope for which a reference is guaranteed to be safe.
- trait item
- An element defined within a Rust trait, such as a method, associated type, or associated constant.
- trait
- A collection of method signatures and associated types/constants that define a set of behaviors. Similar to interfaces in other languages.