[Hat] Qualified variable in pattern: T.mkRoot
Olaf Chitil
O.Chitil at kent.ac.uk
Mon Jul 4 09:50:18 EDT 2005
>hat-trans is generating bad code for this, because the pattern binding
>is at the toplevel. If the pattern binding were in a let or where
>clause, the generated code is different. When not at the toplevel,
>the parent, p, of the binding is always a variable passed in.
>But at the toplevel, there is no static parent, so hat-trans has
>wrongly substituted T.mkRoot (which explicitly represents no parent),
>in both the generated pattern and the generated expression:
>
> gx px T.mkRoot = T.constUse px T.mkRoot sx -- incorrect
>vs.
> gx px p = T.constUse px p sx -- correct
>
>I think the attached patch for hat-trans should fix the problem (but
>would like someone to confirm this is not going to break anything else,
>before I will commit it to CVS).
>
>
You are absolutely right. I just committed it to CVS.
Ciao,
Olaf
More information about the Hat
mailing list