// RUN: %target-swift-ide-test -syntax-coloring -source-filename %s | FileCheck %s // RUN: %target-swift-ide-test -syntax-coloring -typecheck -source-filename %s | FileCheck %s // CHECK: struct S { struct S { // CHECK: var x : Int var x : Int // CHECK: var y : Int.Int var y : Int.Int // CHECK: var a, b : Int var a, b : Int } enum EnumWithDerivedEquatableConformance : Int { // CHECK-LABEL: enum EnumWithDerivedEquatableConformance : {{()}}Int{{()?}} { case CaseA // CHECK-NEXT: case CaseA case CaseB, CaseC // CHECK-NEXT: case CaseB, CaseC case CaseD = 30, CaseE // CHECK-NEXT: case CaseD = 30, CaseE } // CHECK-NEXT: } // CHECK: class MyCls { class MyCls { // CHECK: var www : Int var www : Int // CHECK: func foo(x: Int) {} func foo(x: Int) {} // CHECK: var aaa : Int { var aaa : Int { // CHECK: get {} get {} // CHECK: set {} set {} } // CHECK: var bbb : Int { var bbb : Int { // CHECK: set { set { // CHECK: var tmp : Int var tmp : Int } // CHECK: get { get { // CHECK: var tmp : Int var tmp : Int } } // CHECK: subscript (i : Int, j : Int) -> Int { subscript (i : Int, j : Int) -> Int { // CHECK: get { get { // CHECK: return i + j return i + j } // CHECK: set(v) { set(v) { // CHECK: v + i - j v + i - j } } // CHECK: func multi(_ name: Int, otherpart x: Int) {} func multi(_ name: Int, otherpart x: Int) {} } // CHECK-LABEL: class Attributes { class Attributes { // CHECK: @IBOutlet var v0: Int @IBOutlet var v0: Int // CHECK: @IBOutlet @IBOutlet var {{()?}}v1{{()?}}: String @IBOutlet @IBOutlet var v1: String // CHECK: @objc @IBOutlet var {{()?}}v2{{()?}}: String @objc @IBOutlet var v2: String // CHECK: @IBOutlet @objc var {{()?}}v3{{()?}}: String @IBOutlet @objc var v3: String // CHECK: @noreturn func f0() {} @noreturn func f0() {} // CHECK: @availability(*, unavailable) func f1() {} @availability(*, unavailable) func f1() {} // CHECK: @availability(*, unavailable) @IBAction func f2() {} @availability(*, unavailable) @IBAction func f2() {} // CHECK: @IBAction @availability(*, unavailable) func f3() {} @IBAction @availability(*, unavailable) func f3() {} // CHECK: @IBAction @availability(*, unavailable) @noreturn func f4() {} @IBAction @availability(*, unavailable) @noreturn func f4() {} // CHECK: mutating func func_mutating_1() {} mutating func func_mutating_1() {} // CHECK: nonmutating func func_mutating_2() {} nonmutating func func_mutating_2() {} } func stringLikeLiterals() { // CHECK: var us1: UnicodeScalar = "a" var us1: UnicodeScalar = "a" // CHECK: var us2: UnicodeScalar = "ы" var us2: UnicodeScalar = "ы" // CHECK: var ch1: Character = "a" var ch1: Character = "a" // CHECK: var ch2: Character = "あ" var ch2: Character = "あ" // CHECK: var s1 = "abc абвгд あいうえお" var s1 = "abc абвгд あいうえお" } // CHECK: var globComp : Int var globComp : Int { // CHECK: get { get { // CHECK: return 0 return 0 } } // CHECK: /* foo is the best */ /* foo is the best */ // CHECK: func foo(n: Float) -> Int { func foo(n: Float) -> Int { // CHECK: var fnComp : Int var fnComp : Int { // CHECK: get { get { // CHECK: var a: Int // CHECK: return 0 var a: Int return 0 } } // CHECK: var q = {{()?}}MyCls{{()?}}() var q = MyCls() // CHECK: var ee = "yoo"; var ee = "yoo"; // CHECK: return 100009 return 100009 } // CHECK: protocol Prot { protocol Prot { // CHECK: typealias Blarg typealias Blarg // CHECK: func protMeth(x: Int) func protMeth(x: Int) // CHECK: var protocolProperty1: Int { get } var protocolProperty1: Int { get } // CHECK: var protocolProperty2: Int { get set } var protocolProperty2: Int { get set } } // CHECK: infix operator *-* { associativity left precedence 140 }{{$}} infix operator *-* { associativity left precedence 140 } // CHECK: func *-*(l: Int, r: Int) -> Int { return l }{{$}} func *-*(l: Int, r: Int) -> Int { return l } // CHECK: infix operator *-+* { associativity left }{{$}} infix operator *-+* { associativity left } // CHECK: func *-+*(l: Int, r: Int) -> Int { return l }{{$}} func *-+*(l: Int, r: Int) -> Int { return l } // CHECK: infix operator *--* {}{{$}} infix operator *--* {} // CHECK: func *--*(l: Int, r: Int) -> Int { return l }{{$}} func *--*(l: Int, r: Int) -> Int { return l } // CHECK: protocol Prot2 : Prot {} protocol Prot2 : Prot {} // CHECK: class SubCls : MyCls, Prot {} class SubCls : MyCls, Prot {} // CHECK: func genFnwhere T.Blarg : Prot2>(_: T) -> Int {} func genFn(_: T) -> Int {} func f(x: Int) -> Int { // CHECK: // string interpolation is the best // string interpolation is the best // CHECK: "This is string \(genFn({(a:Int -> Int) in a})) interpolation" "This is string \(genFn({(a:Int -> Int) in a})) interpolation" } // CHECK: func bar(x: Int) -> (Int, Float) { func bar(x: Int) -> (Int, Float) { // CHECK: foo({{()?}}Float{{()?}}()) foo(Float()) } class GenC {} func test() { // CHECK: {{()?}}GenC{{()?}}<Int, Float>() var x = GenC() } // CHECK: typealias MyInt = Int typealias MyInt = Int func test2(x: Int) { // CHECK: "\(x)" "\(x)" } // CHECK: class Observers { class Observers { // CHECK: var p1 : Int { var p1 : Int { // CHECK: willSet(newValue) {} willSet(newValue) {} // CHECK: didSet {} didSet {} } // CHECK: var p2 : Int { var p2 : Int { // CHECK: didSet {} didSet {} // CHECK: willSet {} willSet {} } } // CHECK: func test3(o: AnyObject) { func test3(o: AnyObject) { // CHECK: let x = o as! MyCls let x = o as! MyCls } // CHECK: func test4(inout a: Int) {{{$}} func test4(inout a: Int) { // CHECK: if <#kw>#available (OSX >= 10.10, iOS >= 8.01) {let OSX = "iOS"}}{{$}} if #available (OSX >= 10.10, iOS >= 8.01) {let OSX = "iOS"}} // CHECK: class MySubClass : MyCls { class MySubClass : MyCls { // CHECK: override func foo(x: Int) {} override func foo(x: Int) {} // CHECK: convenience init(a: Int) {} convenience init(a: Int) {} } // CHECK: var g1 = { (x: Int) -> Int in return 0 } var g1 = { (x: Int) -> Int in return 0 } // CHECK: infix operator ~~ { infix operator ~~ {} // CHECK: prefix operator *~~ { prefix operator *~~ {} // CHECK: postfix operator ~~* { postfix operator ~~* {} // FIXME: blah. // FIXME: blah blah // Something something, FIXME: blah // CHECK: // FIXME: blah. // CHECK: // FIXME: blah blah // CHECK: // Something something, FIXME: blah /* FIXME: blah*/ // CHECK: /* FIXME: blah*/ /* * FIXME: blah * Blah, blah. */ // CHECK: /* // CHECK: * FIXME: blah // CHECK: * Blah, blah. // CHECK: */ // TODO: blah. /// TTODO: blah. // MARK: blah. // CHECK: // TODO: blah. // CHECK: /// TTODO: blah. // CHECK: // MARK: blah. // CHECK: func test5() -> Int { func test5() -> Int { // CHECK: // TODO: something, something. // TODO: something, something. // CHECK: return 0 return 0 } // http://whatever.com?ee=2&yy=1 and radar://123456 /* http://whatever.com FIXME: see in http://whatever.com/fixme http://whatever.com */ // CHECK: // http://whatever.com?ee=2&yy=1 and radar://123456 // CHECK: /* http://whatever.com FIXME: see in http://whatever.com/fixme // CHECK: http://whatever.com */ // CHECK: // http://whatever.com/what-ever // http://whatever.com/what-ever // CHECK: func <#test1#> () {} func <#test1#> () {}