94 |
* because an ERRORtyc should never occur in a CONty and hence an eqprop |
* because an ERRORtyc should never occur in a CONty and hence an eqprop |
95 |
* of one of them should never be needed. |
* of one of them should never be needed. |
96 |
* |
* |
97 |
|
* [GK 5/7/07] The above note is not true. See bug271. Since an error |
98 |
|
* was already flagged, it seems harmless to return YES for the eqprop |
99 |
|
* to avoid possibly spurious eqprop related warnings. |
100 |
|
* |
101 |
* Calling this function on a DEFtyc also produces an impossible because |
* Calling this function on a DEFtyc also produces an impossible because |
102 |
* the current eqprop scheme is insufficiently expressive to describe |
* the current eqprop scheme is insufficiently expressive to describe |
103 |
* the possibilities. (Ex: first argument must be an eq type but not |
* the possibilities. (Ex: first argument must be an eq type but not |
108 |
(case !eq of ABS => NO | ep => ep) |
(case !eq of ABS => NO | ep => ep) |
109 |
| tyconEqprop (RECORDtyc _) = YES |
| tyconEqprop (RECORDtyc _) = YES |
110 |
| tyconEqprop (DEFtyc _) = bug "tyconEqprop: DEFtyc" |
| tyconEqprop (DEFtyc _) = bug "tyconEqprop: DEFtyc" |
111 |
| tyconEqprop (ERRORtyc) = bug "tyconEqprop: ERRORtyc" |
| tyconEqprop (ERRORtyc) = YES |
112 |
| tyconEqprop _ = bug "unexpected tycon in tyconEqprop" |
| tyconEqprop _ = bug "unexpected tycon in tyconEqprop" |
113 |
|
|
114 |
(* |
(* |
253 |
(unifyTy(ty1,ty2); unifyArgs(ss,tys1,tys2)) |
(unifyTy(ty1,ty2); unifyArgs(ss,tys1,tys2)) |
254 |
| unifyArgs(false::ss, _::tys1, _::tys2) = |
| unifyArgs(false::ss, _::tys1, _::tys2) = |
255 |
unifyArgs(ss,tys1,tys2) |
unifyArgs(ss,tys1,tys2) |
256 |
|
| unifyArgs _ = |
257 |
|
bug "unifyTy: arg ty lists wrong length" |
258 |
in unifyArgs(strict,args1,args2) |
in unifyArgs(strict,args1,args2) |
259 |
end |
end |
260 |
| _ => ListPair.app unifyTy (args1,args2)) |
| _ => ListPair.app unifyTy (args1,args2)) |