blob: a821791b4299f9245fd63d02e7ba1d05e35ae6e1 [file] [log] [blame]
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 -range -pos=4:1 -end-pos=9:2 -source-filename %s | %FileCheck %s -check-prefix=CHECK1
// RUN: %target-swift-ide-test -range -pos=5:3 -end-pos=7:4 -source-filename %s | %FileCheck %s -check-prefix=CHECK2
// RUN: %target-swift-ide-test -range -pos=5:25 -end-pos=7:4 -source-filename %s | %FileCheck %s -check-prefix=CHECK3
// RUN: %target-swift-ide-test -range -pos=8:3 -end-pos=8:31 -source-filename %s | %FileCheck %s -check-prefix=CHECK4
// RUN: %target-swift-ide-test -range -pos=13:5 -end-pos=13:32 -source-filename %s | %FileCheck %s -check-prefix=CHECK5
// RUN: %target-swift-ide-test -range -pos=13:16 -end-pos=13:32 -source-filename %s | %FileCheck %s -check-prefix=CHECK6
// RUN: %target-swift-ide-test -range -pos=12:26 -end-pos=14:4 -source-filename %s | %FileCheck %s -check-prefix=CHECK7
// RUN: %target-swift-ide-test -range -pos=17:5 -end-pos=18:21 -source-filename %s | %FileCheck %s -check-prefix=CHECK8
// RUN: %target-swift-ide-test -range -pos=20:5 -end-pos=22:12 -source-filename %s | %FileCheck %s -check-prefix=CHECK9
// RUN: %target-swift-ide-test -range -pos=21:5 -end-pos=22:12 -source-filename %s | %FileCheck %s -check-prefix=CHECK10
// CHECK1: <Kind>SingleDecl</Kind>
// CHECK1-NEXT: <Content>@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: }</Content>
// CHECK1-NEXT: <Context>swift_ide_test.(file)</Context>
// CHECK1-NEXT: <Declared>ObjCClass</Declared><OutscopeReference>false</OutscopeReference>
// CHECK1-NEXT: <Declared>foo</Declared><OutscopeReference>false</OutscopeReference>
// CHECK1-NEXT: <Declared>_</Declared><OutscopeReference>false</OutscopeReference>
// CHECK1-NEXT: <Declared>bar</Declared><OutscopeReference>false</OutscopeReference>
// CHECK1-NEXT: <Declared>baz</Declared><OutscopeReference>false</OutscopeReference>
// CHECK1-NEXT: <ASTNodes>1</ASTNodes>
// CHECK1-NEXT: <end>
// CHECK2: <Kind>SingleDecl</Kind>
// CHECK2-NEXT: <Content>override var foo: Int {
// CHECK2-NEXT: return 42
// CHECK2-NEXT: }</Content>
// CHECK2-NEXT: <Context>swift_ide_test.(file).ObjCClass</Context>
// CHECK2-NEXT: <Declared>foo</Declared><OutscopeReference>false</OutscopeReference>
// CHECK2-NEXT: <ASTNodes>1</ASTNodes>
// CHECK2-NEXT: <end>
// CHECK3: <Kind>SingleDecl</Kind>
// CHECK3-NEXT: <Content>{
// CHECK3-NEXT: return 42
// CHECK3-NEXT: }</Content>
// CHECK3-NEXT: <Context>swift_ide_test.(file).ObjCClass</Context>
// CHECK3-NEXT: <Declared>_</Declared><OutscopeReference>false</OutscopeReference>
// CHECK3-NEXT: <ASTNodes>1</ASTNodes>
// CHECK3-NEXT: <end>
// CHECK4: <Kind>SingleDecl</Kind>
// CHECK4-NEXT: <Content>@objc var bar = 12, baz = 13</Content>
// CHECK4-NEXT: <Context>swift_ide_test.(file).ObjCClass</Context>
// CHECK4-NEXT: <Declared>bar</Declared><OutscopeReference>false</OutscopeReference>
// CHECK4-NEXT: <Declared>baz</Declared><OutscopeReference>false</OutscopeReference>
// CHECK4-NEXT: <ASTNodes>1</ASTNodes>
// CHECK4-NEXT: <end>
// CHECK5: <Kind>SingleDecl</Kind>
// CHECK5-NEXT: <Content>@inlinable get { return 0 }</Content>
// CHECK5-NEXT: <Context>swift_ide_test.(file).Derived</Context>
// CHECK5-NEXT: <Declared>_</Declared><OutscopeReference>false</OutscopeReference>
// CHECK5-NEXT: <ASTNodes>1</ASTNodes>
// CHECK5-NEXT: <end>
// CHECK6: <Kind>Invalid</Kind>
// CHECK6-NEXT: <Content>get { return 0 }</Content>
// CHECK6-NEXT: <ASTNodes>0</ASTNodes>
// CHECK6-NEXT: <end>
// CHECK7: <Kind>Invalid</Kind>
// CHECK7-NEXT: <Content>{
// CHECK7-NEXT: @inlinable get { return 0 }
// CHECK7-NEXT: }</Content>
// CHECK7-NEXT: <ASTNodes>0</ASTNodes>
// CHECK7-NEXT: <end>
// CHECK8: <Kind>SingleDecl</Kind>
// CHECK8-NEXT: <Content>@available(*, unavailable)
// CHECK8-NEXT: get { return 0 }</Content>
// CHECK8-NEXT: <Context>swift_ide_test.(file).Derived</Context>
// CHECK8-NEXT: <Declared>_</Declared><OutscopeReference>false</OutscopeReference>
// CHECK8-NEXT: <ASTNodes>1</ASTNodes>
// CHECK8-NEXT: <end>
// CHECK9: <Kind>SingleDecl</Kind>
// CHECK9-NEXT: <Content>@available(*, unavailable)
// CHECK9-NEXT: @inlineable
// CHECK9-NEXT: set { }</Content>
// CHECK9-NEXT: <Context>swift_ide_test.(file).Derived</Context>
// CHECK9-NEXT: <Declared>_</Declared><OutscopeReference>false</OutscopeReference>
// CHECK9-NEXT: <ASTNodes>1</ASTNodes>
// CHECK9-NEXT: <end>
// CHECK10: <Kind>Invalid</Kind>
// CHECK10-NEXT: <Content>@inlineable
// CHECK10-NEXT: set { }</Content>
// CHECK10-NEXT: <ASTNodes>0</ASTNodes>
// CHECK10-NEXT: <end>