mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[SourceKit] Add whether a property is dynamic
Properties can also be specified in a protocol/overridden by subclasses, so they should also be classed as "dynamic" in these cases. Removed receiver USRs when *not* dynamic, since it's not used for anything in that case and should be equivalent to the container anyway. Resolves rdar://92882348.
This commit is contained in:
@@ -1,20 +1,34 @@
|
||||
protocol ProtoA {
|
||||
var protoMember: Int { get }
|
||||
static var staticProtoMember: Int { get }
|
||||
func method()
|
||||
static func staticMethod()
|
||||
}
|
||||
|
||||
extension ProtoA {
|
||||
static var staticProtoMember: Int { get { 1 } }
|
||||
static func staticMethod() {}
|
||||
}
|
||||
|
||||
class ClassB: ProtoA {
|
||||
var protoMember: Int { get { 1 } }
|
||||
class var classMember: Int { get { 1 } }
|
||||
let immutableMember: Int = 1
|
||||
var mutableMember: Int = 1
|
||||
func method() {}
|
||||
static func staticMethod() {}
|
||||
class func classMethod() {}
|
||||
final func finalMethod() {}
|
||||
}
|
||||
|
||||
class ClassC: ClassB {}
|
||||
class ClassC: ClassB {
|
||||
static var staticProtoMember: Int { get { 1 } }
|
||||
static func staticMethod() {}
|
||||
}
|
||||
|
||||
class ClassD: ClassC {
|
||||
override var protoMember: Int { get { 1 } }
|
||||
override class var classMember: Int { get { 1 } }
|
||||
|
||||
override var mutableMember: Int {
|
||||
get {
|
||||
return super.mutableMember
|
||||
@@ -25,118 +39,265 @@ class ClassD: ClassC {
|
||||
}
|
||||
|
||||
override func method() {
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):11 %s -- %s | %FileCheck -check-prefix=CHECK-SUPER %s
|
||||
super.method()
|
||||
// CHECK-SUPER: s:14cursor_dynamic6ClassBC6methodyyF
|
||||
// CHECK-SUPER-NOT: DYNAMIC
|
||||
}
|
||||
|
||||
override class func classMethod() {}
|
||||
}
|
||||
|
||||
struct StructE: ProtoA {
|
||||
let protoMember: Int = 1
|
||||
static let staticProtoMember: Int = 1
|
||||
|
||||
func method() {}
|
||||
|
||||
static func staticMethod() {}
|
||||
}
|
||||
|
||||
func direct() {
|
||||
func directRefs() {
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):14 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSBSTATICMEM %s
|
||||
_ = ClassB.staticProtoMember
|
||||
// CHECK-CLASSBSTATICMEM: s:14cursor_dynamic6ProtoAPAAE06staticC6MemberSivpZ
|
||||
// CHECK-CLASSBSTATICMEM-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):14 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSBCLASSMEM %s
|
||||
_ = ClassB.classMember
|
||||
// CHECK-CLASSBCLASSMEM: s:14cursor_dynamic6ClassBC11classMemberSivpZ
|
||||
// CHECK-CLASSBCLASSMEM-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):10 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSBSTATIC %s
|
||||
ClassB.staticMethod()
|
||||
// CHECK-CLASSBSTATIC: s:14cursor_dynamic6ProtoAPAAE12staticMethodyyFZ
|
||||
// CHECK-CLASSBSTATIC-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):10 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSBCLASS %s
|
||||
ClassB.classMethod()
|
||||
// CHECK-CLASSBCLASS: s:14cursor_dynamic6ClassBC11classMethodyyFZ
|
||||
// CHECK-CLASSBCLASS-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):14 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCSTATICMEM %s
|
||||
_ = ClassC.staticProtoMember
|
||||
// CHECK-CLASSCSTATICMEM: s:14cursor_dynamic6ClassCC17staticProtoMemberSivpZ
|
||||
// CHECK-CLASSCSTATICMEM-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):14 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCCLASSMEM %s
|
||||
_ = ClassC.classMember
|
||||
// CHECK-CLASSCCLASSMEM: s:14cursor_dynamic6ClassBC11classMemberSivpZ
|
||||
// CHECK-CLASSCCLASSMEM-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):10 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCSTATIC %s
|
||||
ClassC.staticMethod()
|
||||
// CHECK-CLASSCSTATIC: s:14cursor_dynamic6ClassCC12staticMethodyyFZ
|
||||
// CHECK-CLASSCSTATIC-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):10 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCCLASS %s
|
||||
ClassC.classMethod()
|
||||
// CHECK-CLASSCCLASS: s:14cursor_dynamic6ClassBC11classMethodyyFZ
|
||||
// CHECK-CLASSCCLASS-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):14 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSDCLASSMEM %s
|
||||
_ = ClassD.classMember
|
||||
// CHECK-CLASSDCLASSMEM: s:14cursor_dynamic6ClassDC11classMemberSivpZ
|
||||
// CHECK-CLASSDCLASSMEM-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):10 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSDCLASS %s
|
||||
ClassD.classMethod()
|
||||
// CHECK-CLASSDCLASS: s:14cursor_dynamic6ClassDC11classMethodyyFZ
|
||||
// CHECK-CLASSDCLASS-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):15 %s -- %s | %FileCheck -check-prefix=CHECK-STRUCTESTATICMEM %s
|
||||
_ = StructE.staticProtoMember
|
||||
// CHECK-STRUCTESTATICMEM: s:14cursor_dynamic7StructEV17staticProtoMemberSivpZ
|
||||
// CHECK-STRUCTESTATICMEM-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):11 %s -- %s | %FileCheck -check-prefix=CHECK-STRUCTESTATIC %s
|
||||
StructE.staticMethod()
|
||||
// CHECK-STRUCTESTATIC: s:14cursor_dynamic7StructEV12staticMethodyyFZ
|
||||
// CHECK-STRUCTESTATIC-NOT: DYNAMIC
|
||||
}
|
||||
|
||||
func protoCalls(p: ProtoA) {
|
||||
func protoRefs(p: ProtoA) {
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):9 %s -- %s | %FileCheck -check-prefix=CHECK-PROTOMEM %s
|
||||
_ = p.protoMember
|
||||
// CHECK-PROTOMEM: s:14cursor_dynamic6ProtoAP11protoMemberSivp
|
||||
// CHECK-PROTOMEM: DYNAMIC
|
||||
// CHECK-PROTOMEM: RECEIVERS BEGIN
|
||||
// CHECK-PROTOMEM-NEXT: s:14cursor_dynamic6ProtoAP
|
||||
// CHECK-PROTOMEM-NEXT: RECEIVERS END
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):5 %s -- %s | %FileCheck -check-prefix=CHECK-PROTOMETHOD %s
|
||||
p.method()
|
||||
// CHECK-PROTOMETHOD: s:14cursor_dynamic6ProtoAP6methodyyF
|
||||
// CHECK-PROTOMETHOD: DYNAMIC
|
||||
// CHECK-PROTOMETHOD: RECEIVERS BEGIN
|
||||
// CHECK-PROTOMETHOD-NEXT: s:14cursor_dynamic6ProtoAP
|
||||
// CHECK-PROTOMETHOD-NEXT: RECEIVERS END
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):19 %s -- %s | %FileCheck -check-prefix=CHECK-PROTOSTATICMEM %s
|
||||
_ = type(of: p).staticProtoMember
|
||||
// CHECK-PROTOSTATICMEM: s:14cursor_dynamic6ProtoAP06staticC6MemberSivpZ
|
||||
// CHECK-PROTOSTATICMEM: DYNAMIC
|
||||
// CHECK-PROTOSTATICMEM: RECEIVERS BEGIN
|
||||
// CHECK-PROTOSTATICMEM-NEXT: s:14cursor_dynamic6ProtoAP
|
||||
// CHECK-PROTOSTATICMEM-NEXT: RECEIVERS END
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):19 %s -- %s | %FileCheck -check-prefix=CHECK-PROTOSTATIC %s
|
||||
type(of: p).staticMethod()
|
||||
// CHECK-PROTOSTATIC: s:14cursor_dynamic6ProtoAP12staticMethodyyFZ
|
||||
// CHECK-PROTOSTATIC: DYNAMIC
|
||||
// CHECK-PROTOSTATIC: RECEIVERS BEGIN
|
||||
// CHECK-PROTOSTATIC-NEXT: s:14cursor_dynamic6ProtoAP
|
||||
// CHECK-PROTOSTATIC-NEXT: RECEIVERS END
|
||||
}
|
||||
|
||||
func classCalls(c: ClassC) {
|
||||
func protoGenericRefs<T>(p: T) where T: ProtoA {
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):9 %s -- %s | %FileCheck -check-prefix=CHECK-GENPROTOMEM %s
|
||||
_ = p.protoMember
|
||||
// CHECK-GENPROTOMEM: s:14cursor_dynamic6ProtoAP11protoMemberSivp
|
||||
// CHECK-GENPROTOMEM: DYNAMIC
|
||||
// TODO: Return receiver USRs for generics
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):5 %s -- %s | %FileCheck -check-prefix=CHECK-GENPROTOMETHOD %s
|
||||
p.method()
|
||||
// CHECK-GENPROTOMETHOD: s:14cursor_dynamic6ProtoAP6methodyyF
|
||||
// CHECK-GENPROTOMETHOD: DYNAMIC
|
||||
// TODO: Return receiver USRs for generics
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):19 %s -- %s | %FileCheck -check-prefix=CHECK-GENPROTOSTATICMEM %s
|
||||
_ = type(of: p).staticProtoMember
|
||||
// CHECK-GENPROTOSTATICMEM: s:14cursor_dynamic6ProtoAP06staticC6MemberSivpZ
|
||||
// CHECK-GENPROTOSTATICMEM: DYNAMIC
|
||||
// TODO: Return receiver USRs for generics
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):15 %s -- %s | %FileCheck -check-prefix=CHECK-GENPROTOTOSTATIC %s
|
||||
type(of: p).staticMethod()
|
||||
// CHECK-GENPROTOTOSTATIC: s:14cursor_dynamic6ProtoAP12staticMethodyyFZ
|
||||
// CHECK-GENPROTOTOSTATIC: DYNAMIC
|
||||
// TODO: Return receiver USRs for generics
|
||||
}
|
||||
|
||||
func classRefs(c: ClassC, d: ClassD) {
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):9 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCPROTOMEM %s
|
||||
_ = c.protoMember
|
||||
// CHECK-CLASSCPROTOMEM: s:14cursor_dynamic6ClassBC11protoMemberSivp
|
||||
// CHECK-CLASSCPROTOMEM: DYNAMIC
|
||||
// CHECK-CLASSCPROTOMEM: RECEIVERS BEGIN
|
||||
// CHECK-CLASSCPROTOMEM-NEXT: s:14cursor_dynamic6ClassCC
|
||||
// CHECK-CLASSCPROTOMEM-NEXT: RECEIVERS END
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):9 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCIMMEMBER %s
|
||||
_ = c.immutableMember
|
||||
// CHECK-CLASSCIMMEMBER: s:14cursor_dynamic6ClassBC15immutableMemberSivp
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):9 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCMEMBERREAD %s
|
||||
_ = c.mutableMember
|
||||
// CHECK-CLASSCMEMBERREAD: s:14cursor_dynamic6ClassBC13mutableMemberSivp
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):5 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCMEMBERWRITE %s
|
||||
c.mutableMember = 1
|
||||
// CHECK-CLASSCMEMBERWRITE: s:14cursor_dynamic6ClassBC13mutableMemberSivp
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):5 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCMETHOD %s
|
||||
c.method()
|
||||
// CHECK-CLASSCMETHOD: s:14cursor_dynamic6ClassBC6methodyyF
|
||||
// CHECK-CLASSCMETHOD: DYNAMIC
|
||||
// CHECK-CLASSCMETHOD: RECEIVERS BEGIN
|
||||
// CHECK-CLASSCMETHOD-NEXT: s:14cursor_dynamic6ClassCC
|
||||
// CHECK-CLASSCMETHOD-NEXT: RECEIVERS END
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):19 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCTOSTATICMEM %s
|
||||
_ = type(of: c).staticProtoMember
|
||||
// CHECK-CLASSCTOSTATICMEM: s:14cursor_dynamic6ClassCC17staticProtoMemberSivpZ
|
||||
// CHECK-CLASSCTOSTATICMEM-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):19 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCTOCLASSMEM %s
|
||||
_ = type(of: c).classMember
|
||||
// CHECK-CLASSCTOCLASSMEM: s:14cursor_dynamic6ClassBC11classMemberSivpZ
|
||||
// CHECK-CLASSCTOCLASSMEM: DYNAMIC
|
||||
// CHECK-CLASSCTOCLASSMEM: RECEIVERS BEGIN
|
||||
// CHECK-CLASSCTOCLASSMEM-NEXT: s:14cursor_dynamic6ClassCC
|
||||
// CHECK-CLASSCTOCLASSMEM-NEXT: RECEIVERS END
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):15 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCTOSTATIC %s
|
||||
type(of: c).staticMethod()
|
||||
// CHECK-CLASSCTOSTATIC: s:14cursor_dynamic6ClassCC12staticMethodyyFZ
|
||||
// CHECK-CLASSCTOSTATIC-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):15 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCTOCLASS %s
|
||||
type(of: c).classMethod()
|
||||
// CHECK-CLASSCTOCLASS: s:14cursor_dynamic6ClassBC11classMethodyyFZ
|
||||
// CHECK-CLASSCTOCLASS: DYNAMIC
|
||||
// CHECK-CLASSCTOCLASS: RECEIVERS BEGIN
|
||||
// CHECK-CLASSCTOCLASS-NEXT: s:14cursor_dynamic6ClassCC
|
||||
// CHECK-CLASSCTOCLASS-NEXT: RECEIVERS END
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):5 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCFINAL %s
|
||||
c.finalMethod()
|
||||
// CHECK-CLASSCFINAL: s:14cursor_dynamic6ClassBC11finalMethodyyF
|
||||
// CHECK-CLASSCFINAL-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):9 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSDPROTOMEM %s
|
||||
_ = d.protoMember
|
||||
// CHECK-CLASSDPROTOMEM: s:14cursor_dynamic6ClassDC11protoMemberSivp
|
||||
// CHECK-CLASSDPROTOMEM: DYNAMIC
|
||||
// CHECK-CLASSDPROTOMEM: RECEIVERS BEGIN
|
||||
// CHECK-CLASSDPROTOMEM-NEXT: s:14cursor_dynamic6ClassDC
|
||||
// CHECK-CLASSDPROTOMEM-NEXT: RECEIVERS END
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):9 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSDMEMBERREAD %s
|
||||
_ = d.mutableMember
|
||||
// CHECK-CLASSDMEMBERREAD: s:14cursor_dynamic6ClassBC13mutableMemberSivp
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):5 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSDMEMBERWRITE %s
|
||||
d.mutableMember = 1
|
||||
// CHECK-CLASSDMEMBERWRITE: s:14cursor_dynamic6ClassBC13mutableMemberSivp
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):5 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSDMETHOD %s
|
||||
d.method()
|
||||
// CHECK-CLASSDMETHOD: s:14cursor_dynamic6ClassDC6methodyyF
|
||||
// CHECK-CLASSDMETHOD: DYNAMIC
|
||||
// CHECK-CLASSDMETHOD: RECEIVERS BEGIN
|
||||
// CHECK-CLASSDMETHOD-NEXT: s:14cursor_dynamic6ClassDC
|
||||
// CHECK-CLASSDMETHOD-NEXT: RECEIVERS END
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):19 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSDTOCLASSMEM %s
|
||||
_ = type(of: d).classMember
|
||||
// CHECK-CLASSDTOCLASSMEM: s:14cursor_dynamic6ClassDC11classMemberSivpZ
|
||||
// CHECK-CLASSDTOCLASSMEM: DYNAMIC
|
||||
// CHECK-CLASSDTOCLASSMEM: RECEIVERS BEGIN
|
||||
// CHECK-CLASSDTOCLASSMEM-NEXT: s:14cursor_dynamic6ClassDC
|
||||
// CHECK-CLASSDTOCLASSMEM-NEXT: RECEIVERS END
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):15 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSDTOCLASS %s
|
||||
type(of: d).classMethod()
|
||||
// CHECK-CLASSDTOCLASS: s:14cursor_dynamic6ClassDC11classMethodyyFZ
|
||||
// CHECK-CLASSDTOCLASS: DYNAMIC
|
||||
// CHECK-CLASSDTOCLASS: RECEIVERS BEGIN
|
||||
// CHECK-CLASSDTOCLASS-NEXT: s:14cursor_dynamic6ClassDC
|
||||
// CHECK-CLASSDTOCLASS-NEXT: RECEIVERS END
|
||||
}
|
||||
|
||||
func structCalls(e: StructE) {
|
||||
func structRefs(e: StructE) {
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):9 %s -- %s | %FileCheck -check-prefix=CHECK-STRUCTMEM %s
|
||||
_ = e.protoMember
|
||||
// CHECK-STRUCTMEM: s:14cursor_dynamic7StructEV11protoMemberSivp
|
||||
// CHECK-STRUCTMEM-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):5 %s -- %s | %FileCheck -check-prefix=CHECK-STRUCTMETHOD %s
|
||||
e.method()
|
||||
// CHECK-STRUCTMETHOD: s:14cursor_dynamic7StructEV6methodyyF
|
||||
// CHECK-STRUCTMETHOD-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):19 %s -- %s | %FileCheck -check-prefix=CHECK-STRUCTTOSTATICMEM %s
|
||||
_ = type(of: e).staticProtoMember
|
||||
// CHECK-STRUCTTOSTATICMEM: s:14cursor_dynamic7StructEV17staticProtoMemberSivpZ
|
||||
// CHECK-STRUCTTOSTATICMEM-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=%(line+1):15 %s -- %s | %FileCheck -check-prefix=CHECK-STRUCTTOSTATIC %s
|
||||
type(of: e).staticMethod()
|
||||
// CHECK-STRUCTTOSTATIC: s:14cursor_dynamic7StructEV12staticMethodyyFZ
|
||||
// CHECK-STRUCTOTSTATIC-NOT: DYNAMIC
|
||||
}
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=28:11 %s -- %s | %FileCheck -check-prefix=CHECK-SUPER %s
|
||||
// CHECK-SUPER: s:14cursor_dynamic6ClassBC6methodyyF
|
||||
// CHECK-SUPER-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=41:10 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSSTATIC %s
|
||||
// CHECK-CLASSSTATIC: s:14cursor_dynamic6ClassBC12staticMethodyyFZ
|
||||
// CHECK-CLASSSTATIC-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=42:10 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSCLASS %s
|
||||
// CHECK-CLASSCLASS: s:14cursor_dynamic6ClassBC11classMethodyyFZ
|
||||
// CHECK-CLASSCLASS-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=43:10 %s -- %s | %FileCheck -check-prefix=CHECK-SUBCLASSCLASS %s
|
||||
// CHECK-SUBCLASSCLASS: s:14cursor_dynamic6ClassDC11classMethodyyFZ
|
||||
// CHECK-SUBCLASSCLASS-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=44:11 %s -- %s | %FileCheck -check-prefix=CHECK-STRUCTSTATIC %s
|
||||
// CHECK-STRUCTSTATIC: s:14cursor_dynamic7StructEV12staticMethodyyFZ
|
||||
// CHECK-STRUCTSTATIC-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=48:5 %s -- %s | %FileCheck -check-prefix=CHECK-PROTOMETHOD %s
|
||||
// CHECK-PROTOMETHOD: s:14cursor_dynamic6ProtoAP6methodyyF
|
||||
// CHECK-PROTOMETHOD: DYNAMIC
|
||||
// CHECK-PROTOMETHOD: RECEIVERS BEGIN
|
||||
// CHECK-PROTOMETHOD-NEXT: s:14cursor_dynamic6ProtoAP
|
||||
// CHECK-PROTOMETHOD-NEXT: RECEIVERS END
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=49:15 %s -- %s | %FileCheck -check-prefix=CHECK-PROTOTOSTATIC %s
|
||||
// CHECK-PROTOTOSTATIC: s:14cursor_dynamic6ProtoAP12staticMethodyyFZ
|
||||
// CHECK-PROTOTOSTATIC: DYNAMIC
|
||||
// CHECK-PROTOSTATIC: RECEIVERS BEGIN
|
||||
// CHECK-PROTOSTATIC-NEXT: s:14cursor_dynamic6ProtoAP
|
||||
// CHECK-PROTOSTATIC-NEXT: RECEIVERS END
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=53:9 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSIMMEMBER %s
|
||||
// CHECK-CLASSIMMEMBER: s:14cursor_dynamic6ClassBC15immutableMemberSivp
|
||||
// rdar://75645572 should include getter without dynamic (or maybe we just skip returning in that case
|
||||
// since it would only be used to find overrides)
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=54:9 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSMEMBERREAD %s
|
||||
// CHECK-CLASSMEMBERREAD: s:14cursor_dynamic6ClassBC13mutableMemberSivp
|
||||
// rdar://75645572 should include getter with dynamic
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=55:5 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSMEMBERWRITE %s
|
||||
// CHECK-CLASSMEMBERWRITE: s:14cursor_dynamic6ClassBC13mutableMemberSivp
|
||||
// rdar://75645572 should include setter with dynamic
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=56:5 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSMETHOD %s
|
||||
// CHECK-CLASSMETHOD: s:14cursor_dynamic6ClassBC6methodyyF
|
||||
// CHECK-CLASSMETHOD: DYNAMIC
|
||||
// CHECK-CLASSMETHOD: RECEIVERS BEGIN
|
||||
// CHECK-CLASSMETHOD-NEXT: s:14cursor_dynamic6ClassCC
|
||||
// CHECK-CLASSMETHOD-NEXT: RECEIVERS END
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=57:15 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSTOSTATIC %s
|
||||
// CHECK-CLASSTOSTATIC: s:14cursor_dynamic6ClassBC12staticMethodyyFZ
|
||||
// CHECK-CLASSTOSTATIC-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=58:15 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSTOCLASS %s
|
||||
// CHECK-CLASSTOCLASS: s:14cursor_dynamic6ClassBC11classMethodyyFZ
|
||||
// CHECK-CLASSTOCLASS: DYNAMIC
|
||||
// CHECK-CLASSTOCLASS: RECEIVERS BEGIN
|
||||
// CHECK-CLASSTOCLASS-NEXT: s:14cursor_dynamic6ClassCC
|
||||
// CHECK-CLASSTOCLASS-NEXT: RECEIVERS END
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=59:5 %s -- %s | %FileCheck -check-prefix=CHECK-CLASSFINAL %s
|
||||
// CHECK-CLASSFINAL: s:14cursor_dynamic6ClassBC11finalMethodyyF
|
||||
// CHECK-CLASSFINAL-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=63:5 %s -- %s | %FileCheck -check-prefix=CHECK-STRUCTMETHOD %s
|
||||
// CHECK-STRUCTMETHOD: s:14cursor_dynamic7StructEV6methodyyF
|
||||
// CHECK-STRUCTMETHOD-NOT: DYNAMIC
|
||||
|
||||
// RUN: %sourcekitd-test -req=cursor -pos=64:15 %s -- %s | %FileCheck -check-prefix=CHECK-STRUCTTOSTATIC %s
|
||||
// CHECK-STRUCTTOSTATIC: s:14cursor_dynamic7StructEV12staticMethodyyFZ
|
||||
// CHECK-STRUCTOTSTATIC-NOT: DYNAMIC
|
||||
|
||||
Reference in New Issue
Block a user