diff --git a/test/SourceKit/InterfaceGen/gen_clang_cxx_module.swift b/test/SourceKit/InterfaceGen/gen_clang_cxx_module.swift index 2bb9a31c2da0f..ee7f19af9a439 100644 --- a/test/SourceKit/InterfaceGen/gen_clang_cxx_module.swift +++ b/test/SourceKit/InterfaceGen/gen_clang_cxx_module.swift @@ -1,7 +1,10 @@ // 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 +// The interface should fail to generate with C++ interop disabled: +// RUN: not %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 + +// With C++ interop enabled, it should succeed: // RUN: %sourcekitd-test -req=interface-gen -module CxxModule -- -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import -cxx-interoperability-mode=default -I %t/Inputs -target %target-triple %clang-importer-sdk-nosource | %FileCheck %s diff --git a/test/SourceKit/InterfaceGen/gen_clang_mixed_lang_fmwk_cxx_module.swift b/test/SourceKit/InterfaceGen/gen_clang_mixed_lang_fmwk_cxx_module.swift index 413dda8adb16f..07fd707fd3b83 100644 --- a/test/SourceKit/InterfaceGen/gen_clang_mixed_lang_fmwk_cxx_module.swift +++ b/test/SourceKit/InterfaceGen/gen_clang_mixed_lang_fmwk_cxx_module.swift @@ -3,7 +3,7 @@ // RUN: %target-swift-frontend -emit-module %t/TestFmSwift.swift -module-name TestFm -enable-experimental-cxx-interop -F %t -o %t/TestFm.swiftmodule -import-underlying-module -// RUN: %sourcekitd-test -req=interface-gen -module TestFm -- -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import -I %t -target %target-triple %clang-importer-sdk-nosource | %FileCheck %s +// RUN: %sourcekitd-test -req=interface-gen -module TestFm -- -cxx-interoperability-mode=default -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import -I %t -target %target-triple %clang-importer-sdk-nosource | %FileCheck %s //--- TestFm.framework/Headers/TestFm.h #pragma once diff --git a/tools/SourceKit/lib/SwiftLang/SwiftEditorInterfaceGen.cpp b/tools/SourceKit/lib/SwiftLang/SwiftEditorInterfaceGen.cpp index c46f297a4b482..20562beeda137 100644 --- a/tools/SourceKit/lib/SwiftLang/SwiftEditorInterfaceGen.cpp +++ b/tools/SourceKit/lib/SwiftLang/SwiftEditorInterfaceGen.cpp @@ -790,26 +790,8 @@ void SwiftLangSupport::editorOpenInterface( SynthesizedExtensions, InterestedUSR); if (!IFaceGenRef) { - // Retry to generate a module interface with C++ interop enabled, - // if the first attempt failed. - bool retryWithCxxEnabled = true; - for (const auto &arg: Args) { - if (StringRef(arg).starts_with("-cxx-interoperability-mode=") || - StringRef(arg).starts_with("-enable-experimental-cxx-interop")) { - retryWithCxxEnabled = false; - break; - } - } - if (retryWithCxxEnabled) { - std::vector AdjustedArgs(Args.begin(), Args.end()); - AdjustedArgs.push_back("-cxx-interoperability-mode=default"); - return editorOpenInterface(Consumer, Name, ModuleName, Group, AdjustedArgs, - SynthesizedExtensions, InterestedUSR); - } - else { - Consumer.handleRequestError(ErrMsg.c_str()); - return; - } + Consumer.handleRequestError(ErrMsg.c_str()); + return; } IFaceGenRef->reportEditorInfo(Consumer);