Constraints not resulting in errors are not required to succeed, i.e. they allow other solutions that do not satisfy them. It makes sense to not propagate information inferred from such a constraint.

Submitted by Hendrik van Antwerpen on 7 September 2016 at 16:48

On 8 September 2016 at 13:13 Hendrik van Antwerpen commented:

It would be nice if you could set the error level on a list of constraints, like (C1 ... Cn) | warning, and all constraints in the list get the level of the list. Be careful about (C | error) | warning. We could (1) disallow it / make it a warning anyway, or (2) keep it an error. I think (1) makes a bit more sense.

On 12 September 2016 at 14:22 Hendrik van Antwerpen commented:

Forbidding inference altogether is too much. Consider (Var{x} |-> d, d : ty) | warning, which needs to infer d for the whole thing to work. Some kind of stratification might work here, first solving error constraints, then warnings, then notes. Issue is a bit relaed here, because the condition should only contribute to the final solution, if it can be satisfied.

Log in to post comments