mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
72 lines
2.1 KiB
Swift
72 lines
2.1 KiB
Swift
// --- Prepare SDK (.swiftmodule).
|
|
// RUN: %empty-directory(%t)
|
|
// RUN: %empty-directory(%t/SDK)
|
|
// RUN: mkdir -p %t/SDK/Frameworks/SomeModule.framework/Modules/SomeModule.swiftmodule
|
|
// RUN: %target-swift-frontend \
|
|
// RUN: -emit-module \
|
|
// RUN: -module-name SomeModule \
|
|
// RUN: -o %t/SDK/Frameworks/SomeModule.framework/Modules/SomeModule.swiftmodule/%module-target-triple.swiftmodule \
|
|
// RUN: -swift-version 5 \
|
|
// RUN: -D SOME_MODULE \
|
|
// RUN: %s
|
|
|
|
#if SOME_MODULE
|
|
|
|
public func someFunc() {}
|
|
|
|
public class C2 {}
|
|
|
|
extension C2 {
|
|
public func publicFunc() {}
|
|
}
|
|
|
|
// Don't record extensions with nothing to index.
|
|
extension C2 {}
|
|
|
|
extension C2 {
|
|
internal func SECRET() {}
|
|
private func SECRET1() {}
|
|
fileprivate func SECRET2() {}
|
|
}
|
|
|
|
internal protocol SECRETProto {}
|
|
extension C2: SECRETProto {}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Test-1 - '.swiftmodule' - Normal index-while-building.
|
|
//
|
|
// RUN: %empty-directory(%t/idx)
|
|
// RUN: %empty-directory(%t/modulecache)
|
|
//
|
|
// --- Built with indexing
|
|
// RUN: %target-swift-frontend \
|
|
// RUN: -typecheck \
|
|
// RUN: -index-system-modules \
|
|
// RUN: -index-ignore-stdlib \
|
|
// RUN: -index-store-path %t/idx \
|
|
// RUN: -sdk %t/SDK \
|
|
// RUN: -Fsystem %t/SDK/Frameworks \
|
|
// RUN: -module-cache-path %t/modulecache \
|
|
// RUN: -D CLIENT \
|
|
// RUN: %s
|
|
|
|
#elseif CLIENT
|
|
|
|
import SomeModule
|
|
print(someFunc())
|
|
|
|
#endif
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// --- Check the records.
|
|
// RUN: c-index-test core -print-record %t/idx | %FileCheck %s
|
|
|
|
// CHECK: 0:0 | function/Swift | s:10SomeModule8someFuncyyF | Def | rel: 0
|
|
// CHECK-NEXT: 0:0 | class/Swift | [[class_USR:s:10SomeModule2C2C]] | Def | rel: 0
|
|
// CHECK-NEXT: 0:0 | class/Swift | [[class_USR]] | Ref,RelExt | rel: 1
|
|
// CHECK-NEXT: RelExt | s:e:[[publicFunc_USR:s:10SomeModule2C2C10publicFuncyyF]]
|
|
// CHECK-NEXT: 0:0 | instance-method/Swift | [[publicFunc_USR]] | Def,Dyn,RelChild | rel: 1
|
|
// CHECK-NEXT: RelChild | s:e:[[publicFunc_USR]]
|
|
// CHECK-NEXT: 0:0 | extension/ext-class/Swift | s:e:[[publicFunc_USR]] | Def | rel: 0
|
|
// CHECK-NOT: SECRET
|