FilePath едет в stdlib — но ещё не приехал 📁

📁 SE-0529 «Add FilePath to the Standard Library» переносит FilePath из Swift System прямо в модуль Swift: разбор путей с учётом платформы, изменяемое представление компонентов, разрешение симлинков через resolve().

⚠️ И самое важное, чего нет в пересказах: пропозал в статусе Accepted with modifications, а не Implemented. В шапке нет ни версии Swift, ни строки Implementation, файлов stdlib/public/core/FilePath*.swift не существует. То есть писать «ship в 6.4» рано — сегодня это по-прежнему import System. При принятии, кстати, потребовали сделать непортируемые части вроде driveLetter платформозависимыми. Что будет, когда приедет: ExpressibleByStringLiteral, components как RangeReplaceableCollection (то есть append работает), isAbsolute, String(decoding:) обратно и withCodeUnits для C — причём последний отдаёт указатель и длину, с типизированным throws. Чего сознательно не будет: оператора /, lastComponent, stem, extension, removingLastComponent() — всё это отложено. И Codable тоже нет намеренно: пути зависят от платформы и версии ОС, сериализовать их как обычное значение — ловушка.

💡 Ещё деталь: resolve() помечен @available(*, noasync) — он лезет в файловую систему, блокирует и из async-контекста недоступен.

#Swift #SwiftLang #iOSDev #ServerSideSwift #Swift64

FilePath едет в stdlib — но ещё не приехал 📁 | Сетка — социальная сеть от hh.ru