File: cross_language.m

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (47 lines) | stat: -rw-r--r-- 2,290 bytes parent folder | download
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
39
40
41
42
43
44
45
46
47
// The USR check definitions are in cross_language.swift.

#include "objc_header.h"

@interface MyCls1(ext_in_objc)
// CHECK: [[@LINE-1]]:12 | class/Swift | MyCls1 | [[MyCls1_USR]] |
// CHECK: [[@LINE-2]]:19 | extension/ObjC | ext_in_objc | c:@M@cross_language@objc(cy)MyCls1@ext_in_objc |
-(void)someMethFromObjC;
// CHECK: [[@LINE-1]]:8 | instance-method/ObjC | someMethFromObjC | [[someMethFromObjC_USR:.*]] | -[MyCls1(ext_in_objc) someMethFromObjC]
@end

void test1() {
  MyCls1 *o = [[MyCls1 alloc] init];
  // CHECK: [[@LINE-1]]:3 | class/Swift | MyCls1 | [[MyCls1_USR]] |
  // CHECK: [[@LINE-2]]:31 | instance-method/Swift | init | [[MyCls1_init_USR]] |
  // CHECK: [[@LINE-3]]:17 | class/Swift | MyCls1 | [[MyCls1_USR]] |
  [o someMeth];
  // CHECK: [[@LINE-1]]:6 | instance-method/Swift | someMeth | [[MyCls1_someMeth_USR]] |
  [o someExtMeth];
  // CHECK: [[@LINE-1]]:6 | instance-method/Swift | someExtMeth | [[MyCls1_someExtMeth_USR]] |
  [o someMethFromObjC];
  // CHECK: [[@LINE-1]]:6 | instance-method/ObjC | someMethFromObjC | [[someMethFromObjC_USR]] |

  o.prop = 1;
  // CHECK: [[@LINE-1]]:5 | instance-property/Swift | prop | [[MyCls1_prop_USR]] |
  // CHECK: [[@LINE-2]]:5 | instance-method/acc-set/Swift | setProp: | [[MyCls1_prop_set_USR]] |
  int v = o.ext_prop;
  // CHECK: [[@LINE-1]]:13 | instance-property/Swift | ext_prop | [[MyCls1_ext_prop_USR]] |
  // CHECK: [[@LINE-2]]:13 | instance-method/acc-get/Swift | ext_prop | [[MyCls1_ext_prop_get_USR]] |

  MyCls2 *o2 = [[MyCls2 alloc] initWithInt:0];
  // CHECK: [[@LINE-1]]:32 | instance-method/Swift | initWithInt: | [[MyCls2_initwithInt_USR]] |

  SomeObjCClass *oo;
  // CHECK: [[@LINE-1]]:3 | class/ObjC | SomeObjCClass | [[SomeObjCClass_USR]] |
  [oo someSwiftExtMeth];
  // CHECK: [[@LINE-1]]:7 | instance-method/Swift | someSwiftExtMeth | [[SomeObjCClass_someSwiftExtMeth_USR]] |

  id<MyProt> p;
  // CHECK: [[@LINE-1]]:6 | protocol/Swift | MyProt | [[MyProt_USR]] |
  [p someProtMeth];
  // CHECK: [[@LINE-1]]:6 | instance-method(protocol)/Swift | someProtMeth | [[MyProt_someProtMeth_USR]] |

  MyEnum myenm = MyEnumSomeEnumConst;
  // CHECK: [[@LINE-1]]:3 | enum/Swift | MyEnum | [[MyEnum_USR]] |
  // CHECK: [[@LINE-2]]:18 | enumerator/Swift | MyEnumSomeEnumConst | [[MyEnum_someEnumConst_USR]] |
}