View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0000257 | mercury | Bug | public | 2012-06-22 12:49 | 2013-05-21 14:04 | ||||
Reporter | wangp | ||||||||
Assigned To | juliensf | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | resolved | Resolution | fixed | ||||||
Product Version | |||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0000257: require_complete_switch var does not appear in sub-goal | ||||||||
Description | The compiler doesn't warn if the variable named in a require_complete_switch does not appear anywhere in the sub-goal, e.g. :- type xyz ---> x ; y ; z. :- pred oops(xyz::in, int::out) is semidet. oops(G, N) :- require_complete_switch [Gee] ( G = x, N = 1 ; G = y, fail ). | ||||||||
Tags | No tags attached. | ||||||||
Attached Files |
|
Notes | |
juliensf (administrator) 2013-05-20 16:42 |
Even better, consider what happens (or rather doesn't happen) with: oops(G, N) :- some [Gee] ( G = x, N = 1 ; G = y, fail ). |
juliensf (administrator) 2013-05-20 17:48 |
Fix posted for review. |
juliensf (administrator) 2013-05-21 14:04 |
The compiler now emits a warning in this case. |
Issue History | |||
Date Modified | Username | Field | Change |
---|---|---|---|
2012-06-22 12:49 | wangp | New Issue | |
2013-05-20 16:42 | juliensf | Note Added: 0000520 | |
2013-05-20 17:48 | juliensf | Assigned To | => juliensf |
2013-05-20 17:48 | juliensf | Status | new => assigned |
2013-05-20 17:48 | juliensf | Note Added: 0000521 | |
2013-05-21 14:04 | juliensf | Note Added: 0000522 | |
2013-05-21 14:04 | juliensf | Status | assigned => resolved |
2013-05-21 14:04 | juliensf | Resolution | open => fixed |