// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_FIRST > %t.result // RUN: %FileCheck %s -check-prefix=WITH_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=WITH_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_SECOND > %t.result // RUN: %FileCheck %s -check-prefix=NO_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=WITH_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_FIRST > %t.result // RUN: %FileCheck %s -check-prefix=WITH_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=WITH_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_SECOND > %t.result // RUN: %FileCheck %s -check-prefix=NO_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=WITH_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=PROTOCOL_PROPERTY_FIRST > %t.result // RUN: %FileCheck %s -check-prefix=NO_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=NO_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=PROTOCOL_PROPERTY_SECOND > %t.result // RUN: %FileCheck %s -check-prefix=NO_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=NO_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=PROTOCOL_SUBSCRIPT_FIRST > %t.result // RUN: %FileCheck %s -check-prefix=NO_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=NO_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=PROTOCOL_SUBSCRIPT_SECOND > %t.result // RUN: %FileCheck %s -check-prefix=NO_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=NO_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=PROTOCOL_EXT_PROPERTY_FIRST > %t.result // RUN: %FileCheck %s -check-prefix=WITH_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=WITH_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=NO_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=PROTOCOL_EXT_PROPERTY_SECOND > %t.result // RUN: %FileCheck %s -check-prefix=NO_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=NO_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=PROTOCOL_EXT_SUBSCRIPT_FIRST > %t.result // RUN: %FileCheck %s -check-prefix=WITH_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=WITH_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=NO_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=PROTOCOL_EXT_SUBSCRIPT_SECOND > %t.result // RUN: %FileCheck %s -check-prefix=NO_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=NO_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CONCRETE_PROPERTY_FIRST > %t.result // RUN: %FileCheck %s -check-prefix=WITH_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=WITH_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=WITH_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CONCRETE_PROPERTY_SECOND > %t.result // RUN: %FileCheck %s -check-prefix=NO_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=WITH_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CONCRETE_SUBSCRIPT_FIRST > %t.result // RUN: %FileCheck %s -check-prefix=WITH_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=WITH_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=NO_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CONCRETE_SUBSCRIPT_SECOND > %t.result // RUN: %FileCheck %s -check-prefix=NO_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=NO_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CONCRETE_EXT_PROPERTY_FIRST > %t.result // RUN: %FileCheck %s -check-prefix=WITH_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=WITH_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=WITH_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CONCRETE_EXT_PROPERTY_SECOND > %t.result // RUN: %FileCheck %s -check-prefix=NO_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=WITH_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CONCRETE_EXT_SUBSCRIPT_FIRST > %t.result // RUN: %FileCheck %s -check-prefix=WITH_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=WITH_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=NO_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CONCRETE_EXT_SUBSCRIPT_SECOND > %t.result // RUN: %FileCheck %s -check-prefix=NO_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=NO_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=UNKNOWN_EXT_PROPERTY_FIRST > %t.result // RUN: %FileCheck %s -check-prefix=WITH_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=WITH_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=WITH_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=UNKNOWN_EXT_PROPERTY_SECOND > %t.result // RUN: %FileCheck %s -check-prefix=NO_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=WITH_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=UNKNOWN_EXT_SUBSCRIPT_FIRST > %t.result // RUN: %FileCheck %s -check-prefix=WITH_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=WITH_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=NO_OBSERVER < %t.result // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=UNKNOWN_EXT_SUBSCRIPT_SECOND > %t.result // RUN: %FileCheck %s -check-prefix=NO_GLOBAL < %t.result // RUN: %FileCheck %s -check-prefix=NO_SELF < %t.result // RUN: %FileCheck %s -check-prefix=WITH_GETSET < %t.result // RUN: %FileCheck %s -check-prefix=NO_OBSERVER < %t.result // WITH_GETSET: Keyword/None: get; name=get // WITH_GETSET: Keyword/None: set; name=set // NO_GETSET-NOT: get // NO_GETSET-NOT: set // WITH_OBSERVER: Keyword/None: willSet; name=willSet // WITH_OBSERVER: Keyword/None: didSet; name=didSet // NO_OBSERVER-NOT: willSet // NO_OBSERVER-NOT: didSet // WITH_GLOBAL: Decl[GlobalVar]/CurrModule{{(/TypeRelation\[Identical\])?}}: globalValue[#String#]; // NO_GLOBAL-NOT: globalValue; // WITH_SELF: Decl[LocalVar]/Local: self[#{{.+}}#]; name=self // NO_SELF-NOT: self var globalValue: String var something1: String = 1 { #^GLOBAL_FIRST^# willSet {} } var something2: String { get {} #^GLOBAL_SECOND^# } func testLocal() { var something3: String = 1 { #^LOCAL_FIRST^# willSet {} } var something4: String { get {} #^LOCAL_SECOND^# } } protocol SomeProto { var prop1: Int { #^PROTOCOL_PROPERTY_FIRST^# } var prop2: Int { get #^PROTOCOL_PROPERTY_SECOND^# } subscript(_1 index:Int) -> Int { #^PROTOCOL_SUBSCRIPT_FIRST^# } subscript(_2 index:Int) -> String { get #^PROTOCOL_SUBSCRIPT_SECOND^# } } extension SomeProto { var prop1: Int { #^PROTOCOL_EXT_PROPERTY_FIRST^# } var prop2: Int { set {} #^PROTOCOL_EXT_PROPERTY_SECOND^# } subscript(_1 index:Int) -> Int { #^PROTOCOL_EXT_SUBSCRIPT_FIRST^# } subscript(_2 index:Int) -> String { get { } #^PROTOCOL_EXT_SUBSCRIPT_SECOND^# } } struct SomeStruct { var prop1: Int { #^CONCRETE_PROPERTY_FIRST^# } var prop2: Int { get {} @available(*, unavailable) #^CONCRETE_PROPERTY_SECOND^# } subscript(_1 index: T) -> Int { #^CONCRETE_SUBSCRIPT_FIRST^# } subscript(_2 index: Int) -> String { get { } #^CONCRETE_SUBSCRIPT_SECOND^# } } extension SomeStruct { var prop3: Int { #^CONCRETE_EXT_PROPERTY_FIRST^# } var prop4: Int { get {} #^CONCRETE_EXT_PROPERTY_SECOND^# } subscript(_3 index:Int) -> Int { #^CONCRETE_EXT_SUBSCRIPT_FIRST^# } subscript(_4 index: Int) -> U { get { } #^CONCRETE_EXT_SUBSCRIPT_SECOND^# } } extension UNKNOWN_TYPE { var prop1: Int { #^UNKNOWN_EXT_PROPERTY_FIRST^# } var prop2: Int { get {} #^UNKNOWN_EXT_PROPERTY_SECOND^# } subscript(_1 index: T) -> T where T: ANOTHER_UNKNWON_TYPE { #^UNKNOWN_EXT_SUBSCRIPT_FIRST^# } subscript(_2 index: Int) -> String { get { } #^UNKNOWN_EXT_SUBSCRIPT_SECOND^# } }