整理下能把Swift编译器和Xcode弄崩溃的代码

最近在学Swift,然后使用的过程中发现这个编译器还是不够成熟,经常有一些代码能把Xcode的Playground甚至是Swift编译器给弄崩溃。我这边环境是Xcode 6 beta 2

代码1

在Swift的Repl里执行这个直接Segmentation Fault: 11了。

代码2

代码分析
按照Swift的Grammar规定,函数内部是由多个statement组成的,而statement里可以包括类型定义,这里在类型TTT里引用了test里的一个局部变量,而编译器会将i初始化用的b当作全局变量来查找,编译器检查符号引用的pass发现是没问题的,因为这是在上一层scope里定义的,但是代码生成的时候就出问题了,因为代码生成的时候类型只能引用上层的全局变量,而不能引用局部变量,编译器报错:

代码3

这个错误可出在定义一个同一作用域内与自定义类型同名的变量上,对于typealias定义的别名则不出错。
编译器出错信息:

代码4

对于别的类型,使用.self.dynamicType都会出同样的错误
编译器出错信息:


Last modified on 2014-07-23