[cxx-interop] Remove symbolic import mode

Importing C++ class templates in symbolic mode has proven to be problematic in interaction with other compiler features, and it isn't used widely. This change removes the feature.

rdar://150528798
This commit is contained in:
Egor Zhdan
2025-05-02 18:43:09 +01:00
parent 9de2419153
commit b51cfa5c76
20 changed files with 14 additions and 857 deletions

View File

@@ -376,11 +376,6 @@ EXPERIMENTAL_FEATURE(ParserASTGen, false)
/// corresponding syntax tree.
EXPERIMENTAL_FEATURE(BuiltinMacros, false)
/// Import C++ class templates as semantically-meaningless symbolic
/// Swift types and C++ methods as symbolic functions with blank
/// signatures.
EXPERIMENTAL_FEATURE(ImportSymbolicCXXDecls, false)
/// Generate bindings for functions that 'throw' in the C++ section of the generated Clang header.
EXPERIMENTAL_FEATURE(GenerateBindingsForThrowingFunctionsInCXX, false)

View File

@@ -690,12 +690,6 @@ public:
/// of the provided baseType.
void diagnoseMemberValue(const DeclName &name, const Type &baseType) override;
/// Enable the symbolic import experimental feature for the given callback.
void withSymbolicFeatureEnabled(llvm::function_ref<void(void)> callback);
/// Returns true when the symbolic import experimental feature is enabled.
bool isSymbolicImportEnabled() const;
const clang::TypedefType *getTypeDefForCXXCFOptionsDefinition(
const clang::Decl *candidateDecl) override;