mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
483 lines
19 KiB
Swift
483 lines
19 KiB
Swift
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_IMPLICIT_GET_1 | FileCheck %s -check-prefix=WITH_GLOBAL_DECLS
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_IMPLICIT_GET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_GET_1 | FileCheck %s -check-prefix=WITH_GLOBAL_DECLS
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_GET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_SET_1 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_GLOBAL_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_NEWVALUE < %t.txt
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_SET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_SET_3 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_GLOBAL_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_NEWVALUE < %t.txt
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_SET_4 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_WILLSET_1 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_GLOBAL_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_NEWVALUE < %t.txt
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_WILLSET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_WILLSET_3 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_GLOBAL_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_NEWVALUE < %t.txt
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_DIDSET_1 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_GLOBAL_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_OLDVALUE < %t.txt
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_DIDSET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_DIDSET_3 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_GLOBAL_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_OLDVALUE < %t.txt
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_INIT_1 | FileCheck %s -check-prefix=WITH_GLOBAL_DECLS1
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=GLOBAL_ACCESSOR_INIT_2 | FileCheck %s -check-prefix=WITH_GLOBAL_DECLS1
|
|
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_IMPLICIT_GET_1 | FileCheck %s -check-prefix=WITH_MEMBER_DECLS
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_IMPLICIT_GET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_GET_1 | FileCheck %s -check-prefix=WITH_MEMBER_DECLS
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_GET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_SET_1 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_MEMBER_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_NEWVALUE < %t.txt
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_SET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_SET_3 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_MEMBER_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_NEWVALUE < %t.txt
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_SET_4 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_WILLSET_1 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_MEMBER_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_NEWVALUE < %t.txt
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_WILLSET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_WILLSET_3 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_MEMBER_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_NEWVALUE < %t.txt
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_DIDSET_1 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_MEMBER_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_OLDVALUE < %t.txt
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_DIDSET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_DIDSET_3 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_MEMBER_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_OLDVALUE < %t.txt
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_INIT_1 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_MEMBER_DECLS_INIT < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_MEMBER_DECLS_INIT_WRONG < %t.txt
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=MEMBER_ACCESSOR_INIT_2 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_MEMBER_DECLS_INIT < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_MEMBER_DECLS_INIT_WRONG < %t.txt
|
|
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_IMPLICIT_GET_1 | FileCheck %s -check-prefix=WITH_LOCAL_DECLS
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_IMPLICIT_GET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_GET_1 | FileCheck %s -check-prefix=WITH_LOCAL_DECLS
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_GET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_SET_1 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_LOCAL_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_NEWVALUE < %t.txt
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_SET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_SET_3 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_LOCAL_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_NEWVALUE < %t.txt
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_SET_4 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_WILLSET_1 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_LOCAL_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_NEWVALUE < %t.txt
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_WILLSET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_WILLSET_3 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_LOCAL_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_NEWVALUE < %t.txt
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_DIDSET_1 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_LOCAL_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_OLDVALUE < %t.txt
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_DIDSET_2 | FileCheck %s -check-prefix=FOO_OBJECT_DOT
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_DIDSET_3 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_LOCAL_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_OLDVALUE < %t.txt
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_INIT_1 | FileCheck %s -check-prefix=WITH_LOCAL_DECLS1
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LOCAL_ACCESSOR_INIT_2 | FileCheck %s -check-prefix=WITH_LOCAL_DECLS1
|
|
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=ACCESSOR_IN_MEMBER_FUNC_1 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_GLOBAL_DECLS1 < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=ACCESSORS_IN_MEMBER_FUNC_1 < %t.txt
|
|
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=ACCESSOR_IN_MEMBER_FUNC_2 > %t.txt
|
|
// RUN: FileCheck %s -check-prefix=WITH_GLOBAL_DECLS < %t.txt
|
|
// RUN: FileCheck %s -check-prefix=ACCESSORS_IN_MEMBER_FUNC_2 < %t.txt
|
|
|
|
//===--- Helper types that are used in this test
|
|
|
|
struct FooStruct {
|
|
var instanceVar: Int = 0
|
|
func instanceFunc0() {}
|
|
static var staticVar: Int
|
|
static func staticFunc0() {}
|
|
}
|
|
|
|
func returnsInt() -> Int {}
|
|
|
|
// FOO_OBJECT_DOT: Begin completions
|
|
// FOO_OBJECT_DOT-NEXT: Decl[InstanceVar]/CurrNominal: instanceVar[#Int#]{{; name=.+$}}
|
|
// FOO_OBJECT_DOT-NEXT: Decl[InstanceMethod]/CurrNominal: instanceFunc0()[#Void#]{{; name=.+$}}
|
|
// FOO_OBJECT_DOT-NEXT: End completions
|
|
|
|
// WITH_GLOBAL_DECLS: Begin completions
|
|
// WITH_GLOBAL_DECLS-DAG: Decl[Struct]/CurrModule: FooStruct[#FooStruct#]{{; name=.+$}}
|
|
// WITH_GLOBAL_DECLS-DAG: Decl[FreeFunction]/CurrModule: returnsInt()[#Int#]{{; name=.+$}}
|
|
// WITH_GLOBAL_DECLS: End completions
|
|
|
|
// WITH_GLOBAL_DECLS1: Begin completions
|
|
// WITH_GLOBAL_DECLS1-DAG: Decl[Struct]/CurrModule: FooStruct[#FooStruct#]{{; name=.+$}}
|
|
// WITH_GLOBAL_DECLS1-DAG: Decl[FreeFunction]/CurrModule/TypeRelation[Identical]: returnsInt()[#Int#]{{; name=.+$}}
|
|
// WITH_GLOBAL_DECLS1: End completions
|
|
|
|
// WITH_MEMBER_DECLS: Begin completions
|
|
// WITH_MEMBER_DECLS-DAG: Decl[Struct]/CurrModule: FooStruct[#FooStruct#]{{; name=.+$}}
|
|
// WITH_MEMBER_DECLS-DAG: Decl[FreeFunction]/CurrModule: returnsInt()[#Int#]{{; name=.+$}}
|
|
// WITH_MEMBER_DECLS-DAG: Decl[LocalVar]/Local: self[#MemberAccessors#]{{; name=.+$}}
|
|
// WITH_MEMBER_DECLS-DAG: Decl[InstanceVar]/CurrNominal: instanceVar[#Double#]{{; name=.+$}}
|
|
// WITH_MEMBER_DECLS-DAG: Decl[InstanceMethod]/CurrNominal: instanceFunc({#(a): Int#})[#Float#]{{; name=.+$}}
|
|
// WITH_MEMBER_DECLS: End completions
|
|
|
|
// WITH_MEMBER_DECLS_INIT: Begin completions
|
|
// WITH_MEMBER_DECLS_INIT-DAG: Decl[Struct]/CurrModule: FooStruct[#FooStruct#]{{; name=.+$}}
|
|
// WITH_MEMBER_DECLS_INIT-DAG: Decl[FreeFunction]/CurrModule: returnsInt()[#Int#]{{; name=.+$}}
|
|
// WITH_MEMBER_DECLS_INIT-DAG: Decl[InstanceMethod]/CurrNominal: instanceFunc({#self: MemberAccessors#})[#(Int) -> Float#]{{; name=.+$}}
|
|
// WITH_MEMBER_DECLS_INIT: End completions
|
|
|
|
// WITH_MEMBER_DECLS_INIT_WRONG-NOT: self[
|
|
// WITH_MEMBER_DECLS_INIT_WRONG-NOT: instanceVar
|
|
|
|
// WITH_LOCAL_DECLS: Begin completions
|
|
// WITH_LOCAL_DECLS-DAG: Decl[Struct]/CurrModule: FooStruct[#FooStruct#]{{; name=.+$}}
|
|
// WITH_LOCAL_DECLS-DAG: Decl[FreeFunction]/CurrModule: returnsInt()[#Int#]{{; name=.+$}}
|
|
// WITH_LOCAL_DECLS-DAG: Decl[LocalVar]/Local: functionParam[#Int#]{{; name=.+$}}
|
|
// WITH_LOCAL_DECLS-DAG: Decl[FreeFunction]/Local: localFunc({#(a): Int#})[#Float#]{{; name=.+$}}
|
|
// WITH_LOCAL_DECLS: End completions
|
|
|
|
// WITH_LOCAL_DECLS1: Begin completions
|
|
// WITH_LOCAL_DECLS1-DAG: Decl[Struct]/CurrModule: FooStruct[#FooStruct#]{{; name=.+$}}
|
|
// WITH_LOCAL_DECLS1-DAG: Decl[FreeFunction]/CurrModule/TypeRelation[Identical]: returnsInt()[#Int#]{{; name=.+$}}
|
|
// WITH_LOCAL_DECLS1-DAG: Decl[LocalVar]/Local/TypeRelation[Identical]: functionParam[#Int#]{{; name=.+$}}
|
|
// WITH_LOCAL_DECLS1-DAG: Decl[FreeFunction]/Local: localFunc({#(a): Int#})[#Float#]{{; name=.+$}}
|
|
// WITH_LOCAL_DECLS1: End completions
|
|
|
|
// WITH_OLDVALUE: Begin completions
|
|
// WITH_OLDVALUE-DAG: Decl[LocalVar]/Local: oldValue[#Int#]{{; name=.+$}}
|
|
// WITH_OLDVALUE: End completions
|
|
|
|
// WITH_NEWVALUE: Begin completions
|
|
// WITH_NEWVALUE-DAG: Decl[LocalVar]/Local: newValue[#Int#]{{; name=.+$}}
|
|
// WITH_NEWVALUE: End completions
|
|
|
|
|
|
//===--- Check that we can complete inside accessors.
|
|
|
|
// Each test comes in two variants: a basic one, with global completions, and
|
|
// another one with a local variable to make sure that we type check accessor
|
|
// bodies.
|
|
|
|
var globalAccessorImplicitGet1: Int {
|
|
#^GLOBAL_ACCESSOR_IMPLICIT_GET_1^#
|
|
}
|
|
var globalAccessorImplicitGet2: Int {
|
|
var fs = FooStruct()
|
|
fs.#^GLOBAL_ACCESSOR_IMPLICIT_GET_2^#
|
|
}
|
|
|
|
var globalAccessorGet1: Int {
|
|
get {
|
|
#^GLOBAL_ACCESSOR_GET_1^#
|
|
}
|
|
}
|
|
var globalAccessorGet2: Int {
|
|
get {
|
|
var fs = FooStruct()
|
|
fs.#^GLOBAL_ACCESSOR_GET_2^#
|
|
}
|
|
}
|
|
|
|
var globalAccessorSet1: Int {
|
|
set {
|
|
#^GLOBAL_ACCESSOR_SET_1^#
|
|
}
|
|
}
|
|
var globalAccessorSet2: Int {
|
|
set {
|
|
var fs = FooStruct()
|
|
fs.#^GLOBAL_ACCESSOR_SET_2^#
|
|
}
|
|
}
|
|
var globalAccessorSet3: Int {
|
|
set(newValue) {
|
|
#^GLOBAL_ACCESSOR_SET_3^#
|
|
}
|
|
}
|
|
var globalAccessorSet4: Int {
|
|
set(newValue) {
|
|
var fs = FooStruct()
|
|
fs.#^GLOBAL_ACCESSOR_SET_4^#
|
|
}
|
|
}
|
|
|
|
var globalAccessorWillSet1: Int {
|
|
willSet {
|
|
#^GLOBAL_ACCESSOR_WILLSET_1^#
|
|
}
|
|
}
|
|
var globalAccessorWillSet2: Int {
|
|
willSet {
|
|
var fs = FooStruct()
|
|
fs.#^GLOBAL_ACCESSOR_WILLSET_2^#
|
|
}
|
|
}
|
|
var globalAccessorWillSet3 = 42 {
|
|
willSet {
|
|
#^GLOBAL_ACCESSOR_WILLSET_3^#
|
|
}
|
|
}
|
|
|
|
var globalAccessorDidSet1: Int {
|
|
didSet {
|
|
#^GLOBAL_ACCESSOR_DIDSET_1^#
|
|
}
|
|
}
|
|
var globalAccessorDidSet2: Int {
|
|
didSet {
|
|
var fs = FooStruct()
|
|
fs.#^GLOBAL_ACCESSOR_DIDSET_2^#
|
|
}
|
|
}
|
|
var globalAccessorDidSet3 = 42 {
|
|
didSet {
|
|
#^GLOBAL_ACCESSOR_DIDSET_3^#
|
|
}
|
|
}
|
|
|
|
var globalAccessorInit1: Int = #^GLOBAL_ACCESSOR_INIT_1^# {
|
|
}
|
|
var globalAccessorInit2: Int = #^GLOBAL_ACCESSOR_INIT_2^# {
|
|
get {}
|
|
}
|
|
|
|
struct MemberAccessors {
|
|
var instanceVar: Double
|
|
func instanceFunc(a: Int) -> Float { return 0.0 }
|
|
|
|
static var staticVar: Int
|
|
static func staticFunc0(a: Float) -> Int { return 0 }
|
|
|
|
var memberAccessorImplicitGet1: Int {
|
|
#^MEMBER_ACCESSOR_IMPLICIT_GET_1^#
|
|
}
|
|
var memberAccessorImplicitGet2: Int {
|
|
var fs = FooStruct()
|
|
fs.#^MEMBER_ACCESSOR_IMPLICIT_GET_2^#
|
|
}
|
|
|
|
var memberAccessorGet1: Int {
|
|
get {
|
|
#^MEMBER_ACCESSOR_GET_1^#
|
|
}
|
|
}
|
|
var memberAccessorGet2: Int {
|
|
get {
|
|
var fs = FooStruct()
|
|
fs.#^MEMBER_ACCESSOR_GET_2^#
|
|
}
|
|
}
|
|
|
|
var memberAccessorSet1: Int {
|
|
set {
|
|
#^MEMBER_ACCESSOR_SET_1^#
|
|
}
|
|
}
|
|
var memberAccessorSet2: Int {
|
|
set {
|
|
var fs = FooStruct()
|
|
fs.#^MEMBER_ACCESSOR_SET_2^#
|
|
}
|
|
}
|
|
var memberAccessorSet3: Int {
|
|
set(newValue) {
|
|
#^MEMBER_ACCESSOR_SET_3^#
|
|
}
|
|
}
|
|
var memberAccessorSet4: Int {
|
|
set(newValue) {
|
|
var fs = FooStruct()
|
|
fs.#^MEMBER_ACCESSOR_SET_4^#
|
|
}
|
|
}
|
|
|
|
var memberAccessorWillSet1: Int {
|
|
willSet {
|
|
#^MEMBER_ACCESSOR_WILLSET_1^#
|
|
}
|
|
}
|
|
var memberAccessorWillSet2: Int {
|
|
willSet {
|
|
var fs = FooStruct()
|
|
fs.#^MEMBER_ACCESSOR_WILLSET_2^#
|
|
}
|
|
}
|
|
var memberAccessorWillSet3 = 42 {
|
|
willSet {
|
|
#^MEMBER_ACCESSOR_WILLSET_3^#
|
|
}
|
|
}
|
|
|
|
var memberAccessorDidSet1: Int {
|
|
didSet {
|
|
#^MEMBER_ACCESSOR_DIDSET_1^#
|
|
}
|
|
}
|
|
var memberAccessorDidSet2: Int {
|
|
didSet {
|
|
var fs = FooStruct()
|
|
fs.#^MEMBER_ACCESSOR_DIDSET_2^#
|
|
}
|
|
}
|
|
var memberAccessorDidSet3 = 42 {
|
|
didSet {
|
|
#^MEMBER_ACCESSOR_DIDSET_3^#
|
|
}
|
|
}
|
|
|
|
var memberAccessorInit1: Int = #^MEMBER_ACCESSOR_INIT_1^# {
|
|
}
|
|
var memberAccessorInit2: Int = #^MEMBER_ACCESSOR_INIT_2^# {
|
|
get {}
|
|
}
|
|
}
|
|
|
|
func accessorsInFunction(functionParam: Int) {
|
|
func localFunc(a: Int) -> Float { return 0.0 }
|
|
|
|
var memberAccessorImplicitGet1: Int {
|
|
#^LOCAL_ACCESSOR_IMPLICIT_GET_1^#
|
|
}
|
|
var memberAccessorImplicitGet2: Int {
|
|
var fs = FooStruct()
|
|
fs.#^LOCAL_ACCESSOR_IMPLICIT_GET_2^#
|
|
}
|
|
|
|
var memberAccessorGet1: Int {
|
|
get {
|
|
#^LOCAL_ACCESSOR_GET_1^#
|
|
}
|
|
}
|
|
var memberAccessorGet2: Int {
|
|
get {
|
|
var fs = FooStruct()
|
|
fs.#^LOCAL_ACCESSOR_GET_2^#
|
|
}
|
|
}
|
|
|
|
var memberAccessorSet1: Int {
|
|
set {
|
|
#^LOCAL_ACCESSOR_SET_1^#
|
|
}
|
|
}
|
|
var memberAccessorSet2: Int {
|
|
set {
|
|
var fs = FooStruct()
|
|
fs.#^LOCAL_ACCESSOR_SET_2^#
|
|
}
|
|
}
|
|
var memberAccessorSet3: Int {
|
|
set(newValue) {
|
|
#^LOCAL_ACCESSOR_SET_3^#
|
|
}
|
|
}
|
|
var memberAccessorSet4: Int {
|
|
set(newValue) {
|
|
var fs = FooStruct()
|
|
fs.#^LOCAL_ACCESSOR_SET_4^#
|
|
}
|
|
}
|
|
|
|
var memberAccessorWillSet1: Int {
|
|
willSet {
|
|
#^LOCAL_ACCESSOR_WILLSET_1^#
|
|
}
|
|
}
|
|
var memberAccessorWillSet2: Int {
|
|
willSet {
|
|
var fs = FooStruct()
|
|
fs.#^LOCAL_ACCESSOR_WILLSET_2^#
|
|
}
|
|
}
|
|
var memberAccessorWillSet3 = 42 {
|
|
willSet {
|
|
#^LOCAL_ACCESSOR_WILLSET_3^#
|
|
}
|
|
}
|
|
|
|
var memberAccessorDidSet1: Int {
|
|
didSet {
|
|
#^LOCAL_ACCESSOR_DIDSET_1^#
|
|
}
|
|
}
|
|
var memberAccessorDidSet2: Int {
|
|
didSet {
|
|
var fs = FooStruct()
|
|
fs.#^LOCAL_ACCESSOR_DIDSET_2^#
|
|
}
|
|
}
|
|
var memberAccessorDidSet3: Int {
|
|
didSet {
|
|
#^LOCAL_ACCESSOR_DIDSET_3^#
|
|
}
|
|
}
|
|
|
|
var globalAccessorInit1: Int = #^LOCAL_ACCESSOR_INIT_1^# {
|
|
}
|
|
var globalAccessorInit2: Int = #^LOCAL_ACCESSOR_INIT_2^# {
|
|
get {}
|
|
}
|
|
}
|
|
|
|
// ACCESSORS_IN_MEMBER_FUNC_1: Begin completions
|
|
// ACCESSORS_IN_MEMBER_FUNC_1-DAG: Decl[LocalVar]/Local: self[#AccessorsInMemberFunction#]
|
|
// ACCESSORS_IN_MEMBER_FUNC_1-DAG: Decl[LocalVar]/Local/TypeRelation[Identical]: functionParam[#Int#]
|
|
// ACCESSORS_IN_MEMBER_FUNC_1-DAG: Decl[InstanceVar]/CurrNominal: instanceVar[#Double#]
|
|
// ACCESSORS_IN_MEMBER_FUNC_1-DAG: Decl[InstanceMethod]/CurrNominal: instanceFunc({#(a): Int#})[#Float#]
|
|
// ACCESSORS_IN_MEMBER_FUNC_1: End completions
|
|
|
|
// ACCESSORS_IN_MEMBER_FUNC_2: Begin completions
|
|
// ACCESSORS_IN_MEMBER_FUNC_2-DAG: Decl[LocalVar]/Local: self[#AccessorsInMemberFunction#]
|
|
// ACCESSORS_IN_MEMBER_FUNC_2-DAG: Decl[LocalVar]/Local: functionParam[#Int#]
|
|
// ACCESSORS_IN_MEMBER_FUNC_2-DAG: Decl[InstanceVar]/OutNominal: instanceVar[#Double#]
|
|
// ACCESSORS_IN_MEMBER_FUNC_2-DAG: Decl[InstanceMethod]/OutNominal: instanceFunc({#(a): Int#})[#Float#]
|
|
// ACCESSORS_IN_MEMBER_FUNC_2: End completions
|
|
|
|
struct AccessorsInMemberFunction {
|
|
var instanceVar: Double
|
|
func instanceFunc(a: Int) -> Float { return 0.0 }
|
|
|
|
static var staticVar: Int
|
|
static func staticFunc0(a: Float) -> Int { return 0 }
|
|
|
|
func accessorsInInstanceFunction1(functionParam: Int) {
|
|
var x: Int = #^ACCESSOR_IN_MEMBER_FUNC_1^# {
|
|
get {}
|
|
}
|
|
}
|
|
func accessorsInInstanceFunction2(functionParam: Int) {
|
|
var x: Int {
|
|
get {
|
|
#^ACCESSOR_IN_MEMBER_FUNC_2^#
|
|
}
|
|
}
|
|
}
|
|
}
|