Fold ExtInfo::isThin and ::isBlock into a "Representation" enum.

These bits are orthogonal to each other, so combine them into one, and diagnose attempts to produce a type that's both. Spot-fix a bunch of places this revealed by inspection that we would have crashed in SILGen or IRGen if blocks were be handled.

Swift SVN r16088
This commit is contained in:
Joe Groff
2014-04-09 00:37:26 +00:00
parent e9d2e122ee
commit 8adaab0233
35 changed files with 505 additions and 339 deletions

View File

@@ -30,11 +30,10 @@ SILType SILBuilder::getPartialApplyResultType(SILType origTy, unsigned argCount,
auto newParams = params.slice(0, params.size() - argCount);
auto extInfo = SILFunctionType::ExtInfo(AbstractCC::Freestanding,
/*thin*/ false,
/*noreturn*/ FTI->isNoReturn(),
/*autoclosure*/ false,
/*block*/ false);
SILFunctionType::Representation::Thick,
/*noreturn*/ FTI->isNoReturn(),
/*autoclosure*/ false);
auto appliedFnType = SILFunctionType::get(nullptr, extInfo,
ParameterConvention::Direct_Owned,
newParams,