Files
swift-mirror/test/PrintAsObjC/emit-clang-header-nonmodular-includes-mock-sdk.swift
Nuri Amari cd4b9a6416 Add support for textual imports to -emit-objc-header
Currently headers produced with `-emit-objc-header` /
`-emit-objc-header-path` produce headers that include modular imports.
If the consumer wishes to operate without modules enabled, these headers
cannot be used. This patch introduces a new flag
(`-emit-clang-header-nonmodular-includes`) that when enabled
attempts to argument each modular import included in such a header with
a set of equivalent textual imports.
2022-12-03 13:07:39 -08:00

39 lines
1.2 KiB
Swift

// REQUIRES: objc_interop
// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -F %S/Inputs/ -typecheck -emit-objc-header-path %t/textual-imports.h -emit-clang-header-nonmodular-includes %s
// RUN: %FileCheck %s < %t/textual-imports.h
// RUN: %check-in-clang -fno-modules -Qunused-arguments %t/textual-imports.h -F %S/Inputs
import Foundation
import Mixed
public class HelloWorld: NSObject {
@objc public func sayHello() {
print("Hello, World!")
}
@objc public func getPoint() -> CGPoint {
return CGPoint(x: 1, y: 1)
}
@objc public func getIntAlias() -> CIntAlias {
let result: CInt = 0
return result
}
}
// CHECK: #if __has_feature(objc_modules)
// CHECK-NEXT: #if __has_warning("-Watimport-in-framework-header")
// CHECK-NEXT: #pragma clang diagnostic ignored "-Watimport-in-framework-header"
// CHECK-NEXT: #endif
// CHECK-NEXT: @import CoreGraphics;
// CHECK-NEXT: @import Mixed;
// CHECK-NEXT: @import ObjectiveC;
// CHECK-NEXT: #else
// CHECK-NEXT: #import <CoreGraphics.h>
// CHECK-NEXT: #import <Mixed/Mixed.h>
// CHECK-NEXT: #import <objc/objc.h>
// CHECK-NEXT: #import <objc/NSObject.h>
// CHECK-NEXT: #endif