背景
试图将大型100k代码库从Swift 2.3升级到Swift 4.正在取得良好进展,修复了~1000错误。然后,在将我们的一个DTO对象更改为使用Any
而不是AnyObject
之后(因为我们不得不),编译器开始挂起。
问题: 编译应用程序时将获得某个文件并且卡住(即使在24小时后)。它不是冻结只是卡住编译。我试过临时删除文件,但它只是卡在另一个文件等等等等。
研究与发展尝试
我已经阅读了编译器以及如何打开警告和标志。我试着查看-Xfrontend -debug-time-function-bodies
和-Xfrontend Xfrontend -warn-long-expression-type-checking
,但没有任何结果。当我查看文件的构建记录时,其中没有信息在扩展的记录中。
你知道我还能检查什么吗?我怀疑这与它无法推断类型有关,因为我们有多少Any
填充的词典,但没有得到更好的信息我不知道从哪里开始。
你知道我怎么能得到关于它为什么会被困在这个文件上并且没有给出警告的信息?
答案 0 :(得分:0)
要进行跟进,需要几天时间,但是首先转换为Swift 3.2然后转换为Swift 4(注释掉大多数代码以便稍后解决)我能够在Xcode 9中进行编译。