Files
swift-mirror/test/SourceKit/InterfaceGen/gen_clang_cxx_module.swift
Alex Lorenz 72050c5385 [interop] SourceKit should retry generating module interface with C++ interop enabled
Sometimes the request might not have it enabled explicitly
2023-03-14 15:23:56 -07:00

45 lines
1.4 KiB
Swift

// RUN: %empty-directory(%t)
// RUN: split-file %s %t
// RUN: %sourcekitd-test -req=interface-gen -module CxxModule -- -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import -I %t/Inputs -target %target-triple %clang-importer-sdk-nosource | %FileCheck %s
// RUN: %sourcekitd-test -req=interface-gen -module CxxModule -- -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import -cxx-interoperability-mode=swift-5.9 -I %t/Inputs -target %target-triple %clang-importer-sdk-nosource | %FileCheck %s
// RUN: not %sourcekitd-test -req=interface-gen -module CxxModule -- -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import -Xcc -DERROR -I %t/Inputs -target %target-triple %clang-importer-sdk-nosource 2>&1 | %FileCheck --check-prefix=NOLOAD %s
//--- Inputs/module.modulemap
module CxxModule {
header "headerA.h"
requires cplusplus
}
//--- Inputs/headerA.h
namespace ns {
#ifdef ERROR
#error "Unluckee"
#endif
class CxxClass {
public:
int x;
CxxClass(): x(0) {}
inline void method() const {}
};
} // ns
using ClassType = ns::CxxClass;
// CHECK: public enum ns {
// CHECK: public struct CxxClass {
// CHECK: public init()
// CHECK: public func method()
// CHECK: public typealias ClassType = ns.CxxClass
// NOLOAD: Could not load module: CxxModule