SE-0375: экзистенциалы дошли до опциональных параметров ⚠️
🔥 SE-0352 (Swift 5.7) научил передавать any P в func f<T: P>(_ x: T). Но стоило параметру стать T? — тот же вызов переставал компилироваться. SE-0375 (Swift 5.8) закрыл ровно эту дыру. Что всё ещё не работает, и это стоит знать. Если сам аргумент уже (any P)? — открытия не произойдёт: значение может оказаться nil. И вообще открытие срабатывает только когда один аргумент однозначно связывает T — для [T], (T, T), T... или X<T> его не будет, потому что согласованной привязки может не существовать. Мелочь для точности: диагностику, которую в этом контексте цитируют, сам SE-0375 не приводит — она из SE-0352 и звучит как «protocol 'P' as a type cannot conform to itself».
#Swift #Generics #AdvancedSwift #iOSDevelopment #SwiftProgramming