RULES for Class ops don't fire in HEAD
For the attached programme, compiled with 7.1.20101010, the rule truncate/Double->Int doesn't fire, resulting in
-248407781
1
const 0 took 0.004000s
-248407781
truncate took 0.940059s
-248407781
double2Int took 0.032002s
i.e. truncate is not rewritten to double2Int, although it is given an explicit type signature (same behaviour without a type signature).
-ddump-rule-firings lists
Rule fired: Class op truncate
among (if I haven't miscounted) 41 Class op xxx rules.
That behaviour keeps the fix for #2271 (closed) from working and is a severe regression for #1434 (closed) .
IMO it's a show-stopper.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |