[Serialization] Fix message for using an older compiler's module file (#17340)

Previously: "module compiled with Swift 4.1 cannot be imported in Swift
4.1.50" (i.e. following the -swift-version flag)

Now: "module compiled with Swift 4.1 cannot be imported by the Swift
4.2 compiler"

I'm pretty sure this is what I intended to do all along, and I just
messed it up when I originally implemented it. This is especially
important when working with downloadable toolchains, which would say
"module compiled with Swift 4.2 cannot be imported in Swift 4.1.50",
which is not really the problem at all. Now it'll fall back to the
more generic "module file was created by an older version of the
compiler" error.
This commit is contained in:
Jordan Rose
2018-06-25 09:20:31 -07:00
committed by GitHub
parent fada67ef60
commit 2c40c6bc21
3 changed files with 11 additions and 15 deletions

View File

@@ -27,6 +27,7 @@
#include <system_error>
using namespace swift;
using swift::version::Version;
namespace {
using AccessPathElem = std::pair<Identifier, SourceLoc>;
@@ -293,7 +294,7 @@ FileUnit *SerializedModuleLoader::loadAST(
SmallString<32> versionBuf;
llvm::raw_svector_ostream versionString(versionBuf);
versionString << Ctx.LangOpts.EffectiveLanguageVersion;
versionString << Version::getCurrentLanguageVersion();
if (versionString.str() == shortVersion)
return false;