mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
While deserializing AST function types FunctionType and GenericFunctionType which include lifetime dependencies and an implicit self parameter, we don't correctly populate ASTExtInfoBuilder.lifetimeDependencies. We end up reading one dependency less due to incorrect index calculation. Unlike SILFunctionType, AST function types FunctionType and GenericFunctionType do not include implicit self in their param list. They represent methods with implicit self as like: `(Self) -> (Args...) -> Result` and don't have any information to indicate they may have implicit self. Since we use number of parameters while deserializing lifetime dependencies, we go wrong for such function types. Serialize the length of parameter indices, so that lifetime dependencies can be deserialized to that length. rdar://151768216