Add a new conversion and type-matching kind for argument tuples.

We're going to give argument-tuple handling special behavior; separate
it out first.

Swift SVN r17095
This commit is contained in:
Doug Gregor
2014-04-30 15:32:50 +00:00
parent d8a71c4866
commit 97a2df25c5
8 changed files with 32 additions and 7 deletions

View File

@@ -49,6 +49,7 @@ Constraint::Constraint(ConstraintKind Kind, Type First, Type Second,
case ConstraintKind::Equal:
case ConstraintKind::Subtype:
case ConstraintKind::Conversion:
case ConstraintKind::ArgumentTupleConversion:
case ConstraintKind::OperatorConversion:
case ConstraintKind::Construction:
case ConstraintKind::ConformsTo:
@@ -176,6 +177,7 @@ void Constraint::print(llvm::raw_ostream &Out, SourceManager *sm) const {
case ConstraintKind::Equal: Out << " == "; break;
case ConstraintKind::Subtype: Out << " < "; break;
case ConstraintKind::Conversion: Out << " <c "; break;
case ConstraintKind::ArgumentTupleConversion: Out << " <ac "; break;
case ConstraintKind::OperatorConversion: Out << " <oc "; break;
case ConstraintKind::Construction: Out << " <C "; break;
case ConstraintKind::ConformsTo: Out << " conforms to "; break;
@@ -340,6 +342,7 @@ gatherReferencedTypeVars(Constraint *constraint,
case ConstraintKind::Bind:
case ConstraintKind::Construction:
case ConstraintKind::Conversion:
case ConstraintKind::ArgumentTupleConversion:
case ConstraintKind::OperatorConversion:
case ConstraintKind::CheckedCast:
case ConstraintKind::Equal: