@@ -4762,9 +4762,16 @@ class ConstraintSystem {
4762
4762
// / Determine whether the set of bindings is non-empty.
4763
4763
explicit operator bool () const { return !Bindings.empty (); }
4764
4764
4765
- // / Whether these bindings should be delayed until the rest of the
4766
- // / constraint system is considered "fully bound".
4767
- bool isFullyBound () const ;
4765
+ // / Determine whether attempting this type variable should be
4766
+ // / delayed until the rest of the constraint system is considered
4767
+ // / "fully bound" meaning constraints, which affect completeness
4768
+ // / of the binding set, for this type variable such as - member
4769
+ // / constraint, disjunction, function application etc. - are simplified.
4770
+ // /
4771
+ // / Note that in some situations i.e. when there are no more
4772
+ // / disjunctions or type variables left to attempt, it's still
4773
+ // / okay to attempt "delayed" type variable to make forward progress.
4774
+ bool isDelayed () const ;
4768
4775
4769
4776
// / Whether the bindings represent (potentially) incomplete set,
4770
4777
// / there is no way to say with absolute certainty if that's the
@@ -4808,7 +4815,7 @@ class ConstraintSystem {
4808
4815
4809
4816
return std::make_tuple (b.isHole (),
4810
4817
!hasNoDefaultableBindings,
4811
- b.isFullyBound (),
4818
+ b.isDelayed (),
4812
4819
b.isSubtypeOfExistentialType (),
4813
4820
b.InvolvesTypeVariables ,
4814
4821
static_cast <unsigned char >(b.LiteralBinding ),
@@ -4955,8 +4962,8 @@ class ConstraintSystem {
4955
4962
out.indent (indent);
4956
4963
if (isPotentiallyIncomplete ())
4957
4964
out << " potentially_incomplete " ;
4958
- if (isFullyBound ())
4959
- out << " fully_bound " ;
4965
+ if (isDelayed ())
4966
+ out << " delayed " ;
4960
4967
if (isSubtypeOfExistentialType ())
4961
4968
out << " subtype_of_existential " ;
4962
4969
if (LiteralBinding != LiteralBindingKind::None)
0 commit comments