2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Apple 开源了 Swift Migrator

  • 2017-07-12
  • 本文字数:675 字

    阅读完需:约 2 分钟

Apple 近期在 WWDC 2017 大会上宣布,已经开源在了 Xcode 9 中提供的的 Swift 4 Migrator。

Swift Migrator 现已完全重写,业已成为编译器的一个组成部分,而不再是一个独立的工具,并对 Swift 3 和 Swift 4 提供同等优秀的支持。Migrator 的工作是通过下面一系列的测试(Pass)完成的:

  • Pre-fix-it 测试。在编译器不能对主输入文件做类型检查时,执行该测试。在此情况下,Migrator 会应用编译器给出的所有 fix-it 建议,该过程至多重新尝试两次,目的在于生成代码的抽象语法树(AST)表示。
  • AST 测试。如果开发人员需要迁移 Swift 4 之前的代码,那么需要在 Pre-fix-it 测试之后开展 AST 测试。测试包括考虑所有以前的 SDK 在 API 层次上的改进,使得源代码能匹配新的 SDK API。
  • Post-fix-it 测试。该测试尝试去应用所有 Swift 4 模式编译器给出的 fix-it 建议。这一步骤最多执行七次,因为在每个 fix-it 测试过程中可能会出现新的问题。

在 Pre-fix-it 和 Post-fix-it 测试阶段,对于所有关联到错误的 fix-it,Migrator 是默认应用的;而对于关联到警告的 fix-it,Migrator 是选择性使用的。

值得注意的是,虽然Apple 鼓励项目迁移到Swift 4,但代码迁移并非是严格要求的,因为Swift 3.2 和4 的编译目标可以共存并链接到一起。此外,开发人员不应该期待被迁移的代码块会自动生成一个可编译项目,迁移后的代码也无法保证是正确的,或是符合语言习惯的。一系列迁移到Swift 4 的已知问题,以及所有可用的解决方案,都以文档形式提供于 Xcode 9 的发行说明中,文档对所有注册的开发人员可用。

查看英文原文: Apple Open-sources the Swift Language Migrator

2017-07-12 19:002411
用户头像

发布了 227 篇内容, 共 80.4 次阅读, 收获喜欢 28 次。

关注

评论

发布
暂无评论
发现更多内容

【开源项目】今天推荐一个很好的开源项目,一款新的编程语言——HVML

hvmlenvoy

GitHub 编程语言 开源项目

推荐8个提高工作效率的IntelliJ插件

JAVA旭阳

Java IDEA

什么是低代码?低代码平台能解决什么样的问题?

优秀

低代码 低代码平台

2022-12-20:二狗买了一些小兵玩具,和大胖一起玩, 一共有n个小兵,这n个小兵拍成一列, 第i个小兵战斗力为hi,然后他们两个开始对小兵进行排列, 一共进行m次操作,二狗每次操作选择一个数k,

福大大架构师每日一题

算法 rust 福大大

ZBC成功上线PancakeSwap的糖浆池,并有望在不久上线Binance

鳄鱼视界

架构实战营 3-3 架构设计中期随堂练习

西山薄凉

「架构实战营」

企业常用shell脚本汇总

@下一站

企业运维 12月日更 12月月更 shell脚本 脚本程序

Gradle基础操作一

派大星

Gradle

如何使用轮播图在小程序内实现水平内容自动切换?

Towify

小程序 微信小程序 无代码 轮播图

可观测落地实践-从战略管理到工具落地

嘉为蓝鲸

可观测 自动化运维 嘉为蓝鲸

嘉为蓝鲸受邀出席汽车新智造数字行业峰会,助力构建数字时代竞争力!

嘉为蓝鲸

数字时代 自动化运维 嘉为蓝鲸

本年度软件供应链攻击事件回顾

SEAL安全

基础设施 第三方风险 软件供应链安全 软件供应链攻击 12 月 PK 榜

跨平台应用开发进阶(三十):uni-app 实现集成火山视频直播服务

No Silver Bullet

uni-app 12月月更 服务集成 火山视频直播服务

云原生时代的灰度发布有几种“姿势”?

嘉为蓝鲸

灰度发布 自动化运维 嘉为蓝鲸

什么是 Redis 持久化,如何理解?

千锋IT教育

Redis 6.0

Dubbo架构设计与源码解析(二) 服务注册

京东科技开发者

架构 dubbo spi 服务注册 Dubbo SPI

直播预约|阿里云EMR 2.0 重磅发布

阿里云大数据AI技术

大数据 阿里云 大数据 开源

如何用3D流体实现逼真水流效果?

HarmonyOS SDK

HMS Core

小游戏未来将在技术侧如何发展

Onegun

小游戏 小游戏开发

如何制作一个实时在线显示评论?

Towify

微信小程序 编辑器 无代码

YonBuilder移动开发平台AVM框架封装数据表格组件

YonBuilder低代码开发平台

开发者 前端 AVM

跨平台应用开发进阶(三十二) :AK/SK鉴权原理简介

No Silver Bullet

uni-app 12月月更 AK/SK鉴权

无效回表谁的锅?存储引擎:这事儿不赖我

小小怪下士

Java MySQL 程序员

港华燃气上线WeOps推动运维效能提升,托举业务智慧运行!

嘉为蓝鲸

运维 自动化运维 嘉为蓝鲸 #WeOps

数据库原理及MySQL应用 | 实体联系模型

TiAmo

数据库 :MySQL 数据库 12月月更

YonBuilder移动开发平台 AVM框架 数字滚动组件

YonBuilder低代码开发平台

开发者 前端 avm.js AVM

Verilog的模块与端口

芯动大师

Verilog Verilog语法 Verilog模块端口

跨平台应用开发进阶(三十一) :uni-app实现覆盖原生控件导航栏和tabbar全屏弹窗

No Silver Bullet

uni-app 跨平台应用 12月月更 原生控件覆盖 全屏弹窗

HarmonyOS 3优化游戏续航,nova 6等老机型升级后游戏续航更持久

极客天地

汽车行业:充分借力数据价值,推动数字化营销链路闭环

HarmonyOS SDK

HMS Core

Apple开源了Swift Migrator_Linux_Sergio De Simone_InfoQ精选文章