[serialization] Stop eagerly deserializing decls with conversion functions.

There shouldn't ever be a reason to do this: if a conversion function is
ever selected by the type-checker, it's because the type the conversion
lives on was suggested by another constraint, which means we can do a
normal lookup for the conversion function.

This is actually the only thing being eagerly deserialized, so remove the
notion of eager deserialization altogether.

Swift SVN r11220
This commit is contained in:
Jordan Rose
2013-12-12 23:31:16 +00:00
parent c2bd6eb2b0
commit f29f083fcb
4 changed files with 2 additions and 22 deletions

View File

@@ -283,7 +283,6 @@ void Serializer::writeBlockInfoBlock() {
BLOCK(KNOWN_PROTOCOL_BLOCK);
#define PROTOCOL(Id) BLOCK_RECORD(index_block, Id);
#include "swift/AST/KnownProtocols.def"
BLOCK_RECORD(index_block, FORCE_DESERIALIZATION);
#undef BLOCK
#undef BLOCK_RECORD
@@ -1250,9 +1249,6 @@ void Serializer::writeDecl(const Decl *D) {
for (auto pattern : fn->getBodyParamPatterns())
writePattern(pattern);
if (fn->getAttrs().isConversion())
EagerDeserializationDecls.push_back(addDeclRef(DC));
break;
}
@@ -2008,8 +2004,6 @@ void Serializer::writeModule(ModuleOrSourceFile DC, const SILModule *SILMod) {
writeKnownProtocolList(AdopterList, static_cast<KnownProtocolKind>(i),
KnownProtocolAdopters[i]);
}
AdopterList.emit(ScratchRecord, index_block::FORCE_DESERIALIZATION,
EagerDeserializationDecls);
}
}