Remove the concept of a "nonsettable lvalue": Now everything that is

nonsettable is represented as an rvalue.  Yay for one less concept in
the AST.


Swift SVN r11640
This commit is contained in:
Chris Lattner
2013-12-25 22:20:01 +00:00
parent bbe346d004
commit d7621b5a7b
14 changed files with 12 additions and 86 deletions

View File

@@ -1509,10 +1509,7 @@ ConstraintSystem::simplifyMemberConstraint(const Constraint &constraint) {
// values.
if (!isMetatype && !baseObjTy->hasReferenceSemantics() &&
isa<FuncDecl>(result) && cast<FuncDecl>(result)->isMutating() &&
result->isInstanceMember() &&
// Reject non-values and non-settable lvalues.
(!baseTy->is<LValueType>() ||
!baseTy->castTo<LValueType>()->isSettable()))
result->isInstanceMember() && !baseTy->is<LValueType>())
continue;
// If we're looking into an existential type, check whether this