4040#include " swift/Basic/Defer.h"
4141#include " swift/Basic/Dwarf.h"
4242#include " swift/Basic/FileSystem.h"
43- #include " swift/Basic/PathRemapper.h"
4443#include " swift/Basic/STLExtras.h"
4544#include " swift/Basic/Version.h"
4645#include " swift/ClangImporter/ClangImporter.h"
4948#include " swift/Demangling/ManglingMacros.h"
5049#include " swift/Serialization/SerializationOptions.h"
5150#include " swift/Strings.h"
52- #include " swift/SymbolGraphGen/SymbolGraphGen.h"
53- #include " swift/SymbolGraphGen/SymbolGraphOptions.h"
5451#include " clang/AST/DeclTemplate.h"
52+ #include " swift/SymbolGraphGen/SymbolGraphOptions.h"
53+ #include " swift/SymbolGraphGen/SymbolGraphGen.h"
5554#include " llvm/ADT/SmallSet.h"
5655#include " llvm/ADT/SmallString.h"
5756#include " llvm/ADT/StringExtras.h"
@@ -512,7 +511,7 @@ static uint8_t getRawOpaqueReadOwnership(swift::OpaqueReadOwnership ownership) {
512511 CASE (OwnedOrBorrowed)
513512#undef CASE
514513 }
515- llvm_unreachable (" bad kind" );
514+ llvm_unreachable (" bad kind" );
516515}
517516
518517static uint8_t getRawReadImplKind (swift::ReadImplKind kind) {
@@ -1059,35 +1058,25 @@ void Serializer::writeHeader(const SerializationOptions &options) {
10591058 options_block::SDKPathLayout SDKPath (Out);
10601059 options_block::XCCLayout XCC (Out);
10611060
1062- const auto &PathRemapper = options.DebuggingOptionsPrefixMap ;
1063- SDKPath.emit (
1064- ScratchRecord,
1065- PathRemapper.remapPath (M->getASTContext ().SearchPathOpts .SDKPath ));
1061+ SDKPath.emit (ScratchRecord, M->getASTContext ().SearchPathOpts .SDKPath );
10661062 auto &Opts = options.ExtraClangOptions ;
1067- for (auto Arg = Opts.begin (), E = Opts.end (); Arg != E; ++Arg) {
1068- StringRef arg (*Arg);
1069- if (arg.startswith (" -ivfsoverlay" )) {
1070- // FIXME: This is a hack and calls for a better design.
1071- //
1072- // Filter out any -ivfsoverlay options that include an
1073- // unextended-module-overlay.yaml overlay. By convention the Xcode
1074- // buildsystem uses these while *building* mixed Objective-C and
1075- // Swift frameworks; but they should never be used to *import* the
1076- // module defined in the framework.
1063+ for (auto Arg = Opts.begin (), E = Opts.end (); Arg != E; ++Arg) {
1064+ // FIXME: This is a hack and calls for a better design.
1065+ //
1066+ // Filter out any -ivfsoverlay options that include an
1067+ // unextended-module-overlay.yaml overlay. By convention the Xcode
1068+ // buildsystem uses these while *building* mixed Objective-C and Swift
1069+ // frameworks; but they should never be used to *import* the module
1070+ // defined in the framework.
1071+ if (StringRef (*Arg).startswith (" -ivfsoverlay" )) {
10771072 auto Next = std::next (Arg);
10781073 if (Next != E &&
10791074 StringRef (*Next).endswith (" unextended-module-overlay.yaml" )) {
10801075 ++Arg;
10811076 continue ;
10821077 }
1083- } else if (arg.startswith (" -fdebug-prefix-map=" )) {
1084- // We don't serialize the debug prefix map flags as these
1085- // contain absoute paths that are not usable on different
1086- // machines. These flags are not necessary to compile the
1087- // clang modules again so are safe to remove.
1088- continue ;
10891078 }
1090- XCC.emit (ScratchRecord, arg );
1079+ XCC.emit (ScratchRecord, *Arg );
10911080 }
10921081 }
10931082 }
@@ -1138,16 +1127,14 @@ void Serializer::writeInputBlock(const SerializationOptions &options) {
11381127 input_block::ModuleInterfaceLayout ModuleInterface (Out);
11391128
11401129 if (options.SerializeOptionsForDebugging ) {
1141- const auto &PathMapper = options.DebuggingOptionsPrefixMap ;
11421130 const SearchPathOptions &searchPathOpts = M->getASTContext ().SearchPathOpts ;
11431131 // Put the framework search paths first so that they'll be preferred upon
11441132 // deserialization.
11451133 for (auto &framepath : searchPathOpts.FrameworkSearchPaths )
11461134 SearchPath.emit (ScratchRecord, /* framework=*/ true , framepath.IsSystem ,
1147- PathMapper. remapPath ( framepath.Path ) );
1135+ framepath.Path );
11481136 for (auto &path : searchPathOpts.ImportSearchPaths )
1149- SearchPath.emit (ScratchRecord, /* framework=*/ false , /* system=*/ false ,
1150- PathMapper.remapPath (path));
1137+ SearchPath.emit (ScratchRecord, /* framework=*/ false , /* system=*/ false , path);
11511138 }
11521139
11531140 // Note: We're not using StringMap here because we don't need to own the
@@ -1481,7 +1468,7 @@ void Serializer::writeASTBlockEntity(const SILLayout *layout) {
14811468 typeRef |= 0x80000000U ;
14821469 data.push_back (typeRef);
14831470 }
1484-
1471+
14851472 unsigned abbrCode
14861473 = DeclTypeAbbrCodes[SILLayoutLayout::Code];
14871474
@@ -1716,7 +1703,7 @@ static bool shouldSerializeMember(Decl *D) {
17161703
17171704 case DeclKind::OpaqueType:
17181705 return true ;
1719-
1706+
17201707 case DeclKind::EnumElement:
17211708 case DeclKind::Protocol:
17221709 case DeclKind::Constructor:
@@ -1814,14 +1801,14 @@ void Serializer::writeCrossReference(const DeclContext *DC, uint32_t pathLen) {
18141801 if (auto opaque = dyn_cast<OpaqueTypeDecl>(generic)) {
18151802 if (!opaque->hasName ()) {
18161803 abbrCode = DeclTypeAbbrCodes[XRefOpaqueReturnTypePathPieceLayout::Code];
1817-
1804+
18181805 XRefOpaqueReturnTypePathPieceLayout::emitRecord (Out, ScratchRecord,
18191806 abbrCode,
18201807 addDeclBaseNameRef (opaque->getOpaqueReturnTypeIdentifier ()));
18211808 break ;
18221809 }
18231810 }
1824-
1811+
18251812 assert (generic->hasName ());
18261813
18271814 abbrCode = DeclTypeAbbrCodes[XRefTypePathPieceLayout::Code];
@@ -1862,7 +1849,7 @@ void Serializer::writeCrossReference(const DeclContext *DC, uint32_t pathLen) {
18621849 case DeclContextKind::SubscriptDecl: {
18631850 auto SD = cast<SubscriptDecl>(DC);
18641851 writeCrossReference (DC->getParent (), pathLen + 1 );
1865-
1852+
18661853 Type ty = SD->getInterfaceType ()->getCanonicalType ();
18671854
18681855 abbrCode = DeclTypeAbbrCodes[XRefValuePathPieceLayout::Code];
@@ -1873,7 +1860,7 @@ void Serializer::writeCrossReference(const DeclContext *DC, uint32_t pathLen) {
18731860 SD->isStatic ());
18741861 break ;
18751862 }
1876-
1863+
18771864 case DeclContextKind::AbstractFunctionDecl: {
18781865 if (auto fn = dyn_cast<AccessorDecl>(DC)) {
18791866 auto storage = fn->getStorage ();
@@ -1985,7 +1972,7 @@ void Serializer::writeCrossReference(const Decl *D) {
19851972 addDeclBaseNameRef (opaque->getOpaqueReturnTypeIdentifier ()));
19861973 return ;
19871974 }
1988-
1975+
19891976 if (auto genericParam = dyn_cast<GenericTypeParamDecl>(D)) {
19901977 assert (!D->getDeclContext ()->isModuleScopeContext () &&
19911978 " Cannot cross reference a generic type decl at module scope." );
@@ -4686,7 +4673,7 @@ class ClangToSwiftBasicWriter :
46864673
46874674 Serializer &S;
46884675 SmallVectorImpl<uint64_t > &Record;
4689- using TypeWriter =
4676+ using TypeWriter =
46904677 clang::serialization::AbstractTypeWriter<ClangToSwiftBasicWriter>;
46914678 TypeWriter Types;
46924679
@@ -5490,7 +5477,7 @@ void Serializer::writeAST(ModuleOrSourceFile DC) {
54905477 /* isLocal=*/ true );
54915478 }
54925479 }
5493-
5480+
54945481 for (auto OTD : opaqueReturnTypeDecls) {
54955482 // FIXME: We should delay parsing function bodies so these type decls
54965483 // don't even get added to the file.
0 commit comments