Files
swift-mirror/test/CrossImport/common-case.swift
Brent Royal-Gordon bf074b093e Run some implicit imports through import resolution
Unloaded implicit imports (e.g. the `-import-module` flag) will now be processed by import resolution, and will be fully validated and cross-imported. Preloaded imports, like the standard library import, are still not run through full import resolution, but this is a definite improvement over the status quo.

This also folds `-import-underlying-module` and `@_exported import <ParentModule>` into a single code path, slightly changing the diagnostic for a failed overlay-style underlying module import.
2020-10-09 18:59:19 -07:00

44 lines
1.4 KiB
Swift

// This explicitly tests "common" cases with well-constructed cross-import
// overlays. Some behaviors here are poorly covered by other tests.
// RUN: %empty-directory(%t)
// RUN: cp -r %S/Inputs/lib-templates/* %t/
// RUN: %{python} %S/Inputs/rewrite-module-triples.py %t %module-target-triple
// RUN: %target-typecheck-verify-swift -enable-cross-import-overlays -DIMPORT_BYSTANDING_LIBRARY -I %t/include -I %t/lib/swift -F %t/Frameworks
// RUN: %target-typecheck-verify-swift -enable-cross-import-overlays -import-module BystandingLibrary -I %t/include -I %t/lib/swift -F %t/Frameworks
// Each framework has a cross-import overlay with this library:
#if IMPORT_BYSTANDING_LIBRARY
import BystandingLibrary
#endif
// 1. A Swift framework
import SwiftFramework
fromSwiftFramework()
fromSwiftFrameworkCrossImport()
SwiftFramework.fromSwiftFramework()
SwiftFramework.fromSwiftFrameworkCrossImport()
// 2. A Clang framework
import ClangFramework
fromClangFramework()
fromClangFrameworkCrossImport()
ClangFramework.fromClangFramework()
ClangFramework.fromClangFrameworkCrossImport()
// 3. A Swift-overlaid Clang framework
import OverlaidClangFramework
fromOverlaidClangFramework()
fromOverlaidClangFrameworkOverlay()
fromOverlaidClangFrameworkCrossImport()
OverlaidClangFramework.fromOverlaidClangFramework()
OverlaidClangFramework.fromOverlaidClangFrameworkOverlay()
OverlaidClangFramework.fromOverlaidClangFrameworkCrossImport()