mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
For collection literals that contained implicitly unwrapped optionals, we were attempting three different conversions per element of the collection, resulting in exponential type checking time. We should only ever attempt one of these conversions for any pair of types where one or both is optional. We had several reports of this as it seems quite common for people to write expressions that create a collection of IUOs from class/struct elements, and then either return the collection or some variation that has been filtered and mapped. I am looking at adding the appropriate instrumentation to the type checker so that I can add a scale-test for this and other type checker test cases related to slow type checking so that we can avoid regressing in the future.
162 KiB
162 KiB