AST: Remove unneeded expression nodes for __inout_conversion and __writeback_conversion.

We no longer need this language feature. The Sema support is still skeletally kept in place because removing it seems to totally break pointer conversions; I need to work with Joe and Doug to figure out why that's the case.

Swift SVN r19289
This commit is contained in:
Joe Groff
2014-06-27 04:23:35 +00:00
parent b80f401204
commit 9a190ea59e
12 changed files with 3 additions and 440 deletions

View File

@@ -2196,7 +2196,7 @@ namespace {
// Wrap the call in an InOutConversion node to mark its special
// writeback semantics.
return new (C) InOutConversionExpr(expr->getLoc(), conversion);
llvm_unreachable("it's dead, jim");
};
auto lvTy = expr->getSubExpr()->getType()->castTo<LValueType>();
@@ -2249,15 +2249,8 @@ namespace {
ConstraintLocatorBuilder(locator),
/*implicit*/ true,
/*directPropertyAccess*/ false);
auto lvConversion = new (C) LValueConversionExpr(expr->getSubExpr(),
LValueType::get(writebackTy),
getMemberRef,
setMemberRef);
// Convert the converted lvalue.
return buildInOutConversionExpr(conversionChoice, resultTy,
lvConversion);
llvm_unreachable("it's dead, jim");
}
}
}
@@ -2983,9 +2976,6 @@ namespace {
Expr *visitOpenExistentialExpr(OpenExistentialExpr *expr) {
llvm_unreachable("Already type-checked");
}
Expr *visitInOutConversionExpr(InOutConversionExpr *expr) {
llvm_unreachable("Already type-checked");
}
void finalize() {
// Check that all value type methods were fully applied.