don't compose lits
It forces the identities of lits to change during relabel(). I think we still have to update() the expression to track changes in the F function stack effect or we risk losing assoviations between type variables in the stack effects and type variables in the pending expression. Hrmmm.
This commit is contained in:
parent
db28989b64
commit
4321ea874b
|
|
@ -242,17 +242,13 @@ def infer(e, F=ID):
|
|||
fi, fo = n.enter_guard(F)
|
||||
res = []
|
||||
for combinator in n.stack_effects:
|
||||
print fo
|
||||
print e
|
||||
new_fo, ee, _ = combinator(fo, e, {})
|
||||
print new_fo
|
||||
print ee
|
||||
ee = update(FUNCTIONS, ee) # Fix Symbols.
|
||||
new_F = fi, new_fo
|
||||
res.extend(infer(ee, new_F))
|
||||
else:
|
||||
lit = s9, (n, s9)
|
||||
res = flatten(infer(e, Fn) for Fn in MC([F], [lit]))
|
||||
fi, fo = F
|
||||
res = infer(e, (fi, (n, fo)))
|
||||
|
||||
return res
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue