SIL: Lower lifetime dependencies when lowering function types.

Map the lifetime dependencies described in terms of the formal AST-level parameters
to the correct parameter(s) in the lowered SIL function type. There can be 0, 1,
or many SIL parameters per formal parameter because of tuple exploding. Also,
record which dependencies are on addressable parameters (meaning that the dependency
includes not only the value of the parameter, but its specific memory location).
This commit is contained in:
Joe Groff
2025-02-12 20:25:32 -08:00
parent 3ce2449b8d
commit c65475628f
10 changed files with 381 additions and 57 deletions

View File

@@ -2284,6 +2284,7 @@ namespace decls_block {
BCFixed<1>, // isImmortal
BCFixed<1>, // hasInheritLifetimeParamIndices
BCFixed<1>, // hasScopeLifetimeParamIndices
BCFixed<1>, // hasAddressableParamIndices
BCArray<BCFixed<1>> // concatenated param indices
>;