mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
To allow tooling to analyze use of language mode and experimental/upcoming features, add that information to the `.SWIFT_TRACE` file. Resolves rdar://152673681.
35 lines
2.3 KiB
Swift
35 lines
2.3 KiB
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: %empty-directory(%t/cache)
|
|
// RUN: %target-build-swift -emit-module -module-name Module %S/Inputs/loaded_module_trace_empty.swift -o %t/Module.swiftmodule -module-cache-path %t/cache
|
|
// RUN: %target-build-swift -emit-module -module-name Module2 %S/Inputs/loaded_module_trace_empty.swift -o %t/Module2.swiftmodule -module-cache-path %t/cache
|
|
// RUN: %target-build-swift %s %S/Inputs/loaded_module_trace_imports_module.swift -emit-loaded-module-trace-path %t/multifile.trace.json -emit-library -o %t/loaded_module_trace_multifile -I %t -module-cache-path %t/cache
|
|
// RUN: %FileCheck %s < %t/multifile.trace.json
|
|
|
|
// This file only imports Module2, but the other file imports Module: hopefully they both appear!
|
|
// The difference between this test and the one in loaded_module_trace is that here, we test that
|
|
// dependencies from multiple files in the same module are accounted for correctly. As a result,
|
|
// `Module.swiftmodule` is marked as directly imported here.
|
|
|
|
// CHECK: {
|
|
// CHECK: "version":2
|
|
// CHECK: "name":"loaded_module_trace_multifile"
|
|
// CHECK: "arch":"{{[^"]*}}"
|
|
// CHECK: "languageMode":"4"
|
|
// CHECK: "enabledLanguageFeatures":[
|
|
// CHECK: ]
|
|
// CHECK: "swiftmodules":[
|
|
// CHECK-DAG: "{{[^"]*\\[/\\]}}Module2.swiftmodule"
|
|
// CHECK-DAG: "{{[^"]*\\[/\\]}}Swift.swiftmodule{{(\\[/\\][^"]+[.]swiftmodule)?}}"
|
|
// CHECK-DAG: "{{[^"]*\\[/\\]}}SwiftOnoneSupport.swiftmodule{{(\\[/\\][^"]+[.]swiftmodule)?}}"
|
|
// CHECK-DAG: "{{[^"]*\\[/\\]}}Module.swiftmodule"
|
|
// CHECK: ]
|
|
// CHECK: "swiftmodulesDetailedInfo":[
|
|
// CHECK-DAG: {"name":"Module2","path":"{{[^"]*\\[/\\]}}Module2.swiftmodule","isImportedDirectly":true,"supportsLibraryEvolution":false,"strictMemorySafety":false}
|
|
// CHECK-DAG: {"name":"Swift","path":"{{[^"]*\\[/\\]}}Swift.swiftmodule{{(\\[/\\][^"]+[.]swiftmodule)?}}","isImportedDirectly":true,"supportsLibraryEvolution":true,"strictMemorySafety":true}
|
|
// CHECK-DAG: {"name":"SwiftOnoneSupport","path":"{{[^"]*\\[/\\]}}SwiftOnoneSupport.swiftmodule{{(\\[/\\][^"]+[.]swiftmodule)?}}","isImportedDirectly":true,"supportsLibraryEvolution":true,"strictMemorySafety":true}
|
|
// CHECK-DAG: {"name":"Module","path":"{{[^"]*\\[/\\]}}Module.swiftmodule","isImportedDirectly":true,"supportsLibraryEvolution":false,"strictMemorySafety":false}
|
|
// CHECK: ]
|
|
// CHECK: }
|
|
|
|
import Module2
|