class ObjCBase { var foo: Int { return 1 } } @objc class ObjCClass : ObjCBase { override var foo: Int { return 42 } @objc var bar = 12, baz = 13 } class Derived : ObjCBase { @available(*, unavailable) override var quux: Int { @inlinable get { return 0 } } subscript(idx: Int) -> Int { @available(*, unavailable) get { return 0 } @available(*, unavailable) @inlineable set { } } } // RUN: %target-swift-ide-test -enable-objc-interop -disable-objc-attr-requires-foundation-module -range -pos=4:1 -end-pos=9:2 -source-filename %s | %FileCheck %s -check-prefix=CHECK1 // RUN: %target-swift-ide-test -enable-objc-interop -disable-objc-attr-requires-foundation-module -range -pos=5:3 -end-pos=7:4 -source-filename %s | %FileCheck %s -check-prefix=CHECK2 // RUN: %target-swift-ide-test -enable-objc-interop -disable-objc-attr-requires-foundation-module -range -pos=5:25 -end-pos=7:4 -source-filename %s | %FileCheck %s -check-prefix=CHECK3 // RUN: %target-swift-ide-test -enable-objc-interop -disable-objc-attr-requires-foundation-module -range -pos=8:3 -end-pos=8:31 -source-filename %s | %FileCheck %s -check-prefix=CHECK4 // RUN: %target-swift-ide-test -enable-objc-interop -disable-objc-attr-requires-foundation-module -range -pos=13:5 -end-pos=13:32 -source-filename %s | %FileCheck %s -check-prefix=CHECK5 // RUN: %target-swift-ide-test -enable-objc-interop -disable-objc-attr-requires-foundation-module -range -pos=13:16 -end-pos=13:32 -source-filename %s | %FileCheck %s -check-prefix=CHECK6 // RUN: %target-swift-ide-test -enable-objc-interop -disable-objc-attr-requires-foundation-module -range -pos=12:26 -end-pos=14:4 -source-filename %s | %FileCheck %s -check-prefix=CHECK7 // RUN: %target-swift-ide-test -enable-objc-interop -disable-objc-attr-requires-foundation-module -range -pos=17:5 -end-pos=18:21 -source-filename %s | %FileCheck %s -check-prefix=CHECK8 // RUN: %target-swift-ide-test -enable-objc-interop -disable-objc-attr-requires-foundation-module -range -pos=20:5 -end-pos=22:12 -source-filename %s | %FileCheck %s -check-prefix=CHECK9 // RUN: %target-swift-ide-test -enable-objc-interop -disable-objc-attr-requires-foundation-module -range -pos=21:5 -end-pos=22:12 -source-filename %s | %FileCheck %s -check-prefix=CHECK10 // CHECK1: SingleDecl // CHECK1-NEXT: @objc class ObjCClass : ObjCBase { // CHECK1-NEXT: override var foo: Int { // CHECK1-NEXT: return 42 // CHECK1-NEXT: } // CHECK1-NEXT: @objc var bar = 12, baz = 13 // CHECK1-NEXT: } // CHECK1-NEXT: swift_ide_test.(file) // CHECK1-NEXT: ObjCClassfalse // CHECK1-NEXT: foofalse // CHECK1-NEXT: _false // CHECK1-NEXT: barfalse // CHECK1-NEXT: bazfalse // CHECK1-NEXT: 1 // CHECK1-NEXT: // CHECK2: SingleDecl // CHECK2-NEXT: override var foo: Int { // CHECK2-NEXT: return 42 // CHECK2-NEXT: } // CHECK2-NEXT: swift_ide_test.(file).ObjCClass // CHECK2-NEXT: foofalse // CHECK2-NEXT: 1 // CHECK2-NEXT: // CHECK3: SingleDecl // CHECK3-NEXT: { // CHECK3-NEXT: return 42 // CHECK3-NEXT: } // CHECK3-NEXT: swift_ide_test.(file).ObjCClass // CHECK3-NEXT: _false // CHECK3-NEXT: 1 // CHECK3-NEXT: // CHECK4: SingleDecl // CHECK4-NEXT: @objc var bar = 12, baz = 13 // CHECK4-NEXT: swift_ide_test.(file).ObjCClass // CHECK4-NEXT: barfalse // CHECK4-NEXT: bazfalse // CHECK4-NEXT: 1 // CHECK4-NEXT: // CHECK5: SingleDecl // CHECK5-NEXT: @inlinable get { return 0 } // CHECK5-NEXT: swift_ide_test.(file).Derived // CHECK5-NEXT: _false // CHECK5-NEXT: 1 // CHECK5-NEXT: // CHECK6: Invalid // CHECK6-NEXT: get { return 0 } // CHECK6-NEXT: 0 // CHECK6-NEXT: // CHECK7: Invalid // CHECK7-NEXT: { // CHECK7-NEXT: @inlinable get { return 0 } // CHECK7-NEXT: } // CHECK7-NEXT: 0 // CHECK7-NEXT: // CHECK8: SingleDecl // CHECK8-NEXT: @available(*, unavailable) // CHECK8-NEXT: get { return 0 } // CHECK8-NEXT: swift_ide_test.(file).Derived // CHECK8-NEXT: _false // CHECK8-NEXT: 1 // CHECK8-NEXT: // CHECK9: SingleDecl // CHECK9-NEXT: @available(*, unavailable) // CHECK9-NEXT: @inlineable // CHECK9-NEXT: set { } // CHECK9-NEXT: swift_ide_test.(file).Derived // CHECK9-NEXT: _false // CHECK9-NEXT: 1 // CHECK9-NEXT: // CHECK10: Invalid // CHECK10-NEXT: @inlineable // CHECK10-NEXT: set { } // CHECK10-NEXT: 0 // CHECK10-NEXT: