View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000498 | mercury | Feature Request | public | 2020-04-04 21:01 | 2020-04-04 21:01 | ||||||||
Reporter | zs | ||||||||||||
Assigned To | zs | ||||||||||||
Priority | normal | Severity | minor | Reproducibility | have not tried | ||||||||
Status | assigned | Resolution | open | ||||||||||
Product Version | |||||||||||||
Target Version | Fixed in Version | ||||||||||||
Summary | 0000498: handle misalignment of arguments in type errors better. | ||||||||||||
Description | Suppose you have a predicate p with arguments A, B, C. When you add an extra arg at the start of the argument list, say X, then existing calls p(A, B, C) won't match the new definition p(X, A, B, C), but they *could* be taken as attempts to curry a call to p. We currently generate an error message that says 1: arg A should have type X, 2: arg B should have type A, 3: arg C should have type B. The compiler should notice that each arg i has the type expected of arg i+j, where j is the number of added arguments, and generate an error message that reports *this*, instead of generating a message about each argument's wrong type. | ||||||||||||
Tags | No tags attached. | ||||||||||||
Attached Files |
|