swift 3.02 Xcode 8.2.1上的分段错误

swift 3.02 Xcode 8.2.1上的分段错误,swift,Swift,以下代码生成分段错误: extension Int { static prefix func++(i:Int)->Int{ return i+1; } static prefix func--(i:Int)->Int{ return i-1; } } infix operator <-; class DynamicList

以下代码生成分段错误:

  extension Int
    {
        static prefix func++(i:Int)->Int{

            return i+1;
        }

        static prefix func--(i:Int)->Int{
            return i-1;
        }
    }


    infix operator <-;

    class DynamicList<T>: RangeReplaceableCollection, MutableCollection, BidirectionalCollection
    {

        var length:Int;
        var arr:Array<T>?;
        var startIndex:Int{
            return 0;
        }
        var endIndex:Int{

            return length;
        }

        subscript(i:Int)->T{
            get{
                return arr![i];
            }
            set{
                arr![i] = newValue;
            }
        }

        func index(after i: Int) -> Int{
            return ++i;
        }

        func index(before i: Int) -> Int{
            return --i;
        }

        required init(){
            length = 0;



        }



        static func <- (left: inout DynamicList<T>, right: DynamicList<T>){

        }


        /* func replaceSubrange<C>(_ subrange: Range<Self.Index>, with newElements: C) where C : Collection,
            C.Iterator.Element == Iterator.Element  */



        func replaceSubrange<C>(_ subrange: Range<DynamicList.Index>, with c: C)
        where C : Collection, C.Iterator.Element == DynamicList.Iterator.Element{








        }


    }
extension Int
{
静态前缀func++(i:Int)->Int{
返回i+1;
}
静态前缀func--(i:Int)->Int{
返回i-1;
}
}
中缀算子T{
得到{
返回arr![i];
}
设置{
arr![i]=newValue;
}
}
func索引(在i:Int之后)->Int{
return++i;
}
func索引(在i:Int之前)->Int{
return--i;
}
必需的init(){
长度=0;
}

static func您的意思是在编译期间或运行时出现分段错误。如果是后者,请说明发生在哪里。如果是前者,您需要堆栈跟踪,并且需要向swift.org报告编译器错误。这是一个编译时错误。该代码旨在模仿同样采用所有3种协议的阵列结构。不太清楚为什么我的代码在编译时会生成分段错误11。