             "let foo = 1 + \n  2\n",
             "let range = 1...3\n",
             "let range = 1 ... 3\n",
-            "let range = 1..<3\n"
+            "let range = 1..<3\n",
+            "#if swift(>=3.0)\n",
+            "array.removeAtIndex(-200)\n"
         ],
         triggeringExamples: [
             "let foo = 1+2\n",

        let oneSpace = "[^\\S\\r\\n]" // to allow lines ending with operators to be valid
        let zeroSpaces = oneSpace + "{0}"
        let manySpaces = oneSpace + "{2,}"
        let variableOrNumber = "\\b"

        let spaces = [(zeroSpaces, zeroSpaces), (oneSpace, manySpaces),
                      (manySpaces, oneSpace), (manySpaces, manySpaces)]
        let patterns = spaces.map { first, second in
            variableOrNumber + first + operators + second + variableOrNumber
        }
        let pattern = "(?:\(patterns.joined(separator: "|")))"

        let genericPattern = "<.+?>"
        let validRangePattern = variableOrNumber + zeroSpaces + rangePattern +
            zeroSpaces + variableOrNumber
        let excludingPattern = "(?:\(genericPattern)|\(validRangePattern))"

        let kinds = SyntaxKind.commentAndStringKinds()

            "let foo = bar   ?? 0\n",
            "let foo = bar??0\n",
            "let foo = bar !=  0\n",
            "let foo = bar !==  bar2\n",
            "let v8 = Int8(1)  << 6\n",
            "let v8 = 1 <<  (6)\n",
            "let v8 = 1 <<  (6)\n let foo = 1 > 2\n"
        ]
    )

