nponeccop/HNC

Optimization breaks allDigits-ho-2.hn

Closed this issue · 1 comments

HN source:

allDigits ss = {
    comp f g = {
        h x = f (g x)
        h
    }
    loopCond = comp incr incr
    loopCond ss
}

A correct partial inlining

allDigits ss = {
    loopCond = {
        h x = incr (incr x)
        h
    }
    loopCond ss
}

Expected result:

allDigits ss = incr (incr ss)

Actual result:

allDigits ss = {
    h x = f (g x)
    h
}

ss and inc are lost.

Fixed