- Notifications
You must be signed in to change notification settings - Fork 10.5k
/
Copy pathattributes.swift
38 lines (30 loc) · 1.44 KB
/
attributes.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// RUN: %target-swift-frontend -disable-objc-attr-requires-foundation-module %s -emit-ir -g -o - | %FileCheck %s
// REQUIRES: objc_interop
// CHECK-DAG: ![[TY0:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "ObjCClass",{{.*}} runtimeLang: DW_LANG_Swift,
@objcclassObjCClass{
@IBActionfunc click(_:AnyObject?)->(){}
}
// CHECK-DAG: ![[TY1:[0-9]+]] = !DICompositeType(tag: DW_TAG_structure_type, name: "SwiftClass",{{.*}} runtimeLang: DW_LANG_Swift
classSwiftClass{
@objcfunc objcmethod()->(){}
func swiftmethod()->(){}
// Block attribute
func f(_ someBlock:@convention(block)(Int64)->Int64){
}
}
// FIXME: This is currently elided, but should reappear eventually as
// an artificial variable.
// DISABLED: [ DW_TAG_variable ] [OBJC_METACLASS_$__TtC10attributes9ObjCClass]
// CHECK-DAG: !DIGlobalVariable(name: "strongRef0",{{.*}}line: [[@LINE+1]],{{.*}} type: ![[TY0]],{{.*}} isLocal: false, isDefinition: true
varstrongRef0:ObjCClass
varstrongRef1:SwiftClass=SwiftClass()
// CHECK-DAG: !DIDerivedType(tag: DW_TAG_typedef, name: "$s10attributes10SwiftClassCXSqXwD"
weak varweakRef1:SwiftClass?= strongRef1
// CHECK-DAG: !DIDerivedType(tag: DW_TAG_typedef, name: "$s10attributes10SwiftClassCXoD"
unowned varunownedRef1:SwiftClass
protocolProtocol1:class{
func foo(_ x:Float)->Float
}
classImplementation:Protocol1{
func foo(_ x:Float)->Float{return2*x }
}