Add two move variants of "acceptable mismatches to recover from" when the mut_ok or ext_ok flags are set.

This commit is contained in:
Graydon Hoare 2010-06-30 21:00:57 -07:00
parent edfcd3a723
commit d2e7c1a5dc

View File

@ -432,6 +432,14 @@ let process_crate (cx:ctxt) (crate:Ast.crate) : unit =
TYSPEC_exterior b') ->
unify_tyvars ucx a b'; !a
| (_, TYSPEC_resolved (params, Ast.TY_exterior ty))
when ucx.ext_ok ->
unify_ty_parametric ucx ty params a; !b
| (TYSPEC_resolved (params, Ast.TY_exterior ty), _)
when ucx.ext_ok ->
unify_ty_parametric ucx ty params b; !a
| (TYSPEC_exterior a', _) when ucx.ext_ok
-> unify_tyvars ucx a' b; !a
| (_, TYSPEC_exterior b') when ucx.ext_ok
@ -453,6 +461,14 @@ let process_crate (cx:ctxt) (crate:Ast.crate) : unit =
TYSPEC_mutable b') ->
unify_tyvars ucx a b'; !a
| (_, TYSPEC_resolved (params, Ast.TY_mutable ty))
when ucx.mut_ok ->
unify_ty_parametric ucx ty params a; !b
| (TYSPEC_resolved (params, Ast.TY_mutable ty), _)
when ucx.mut_ok ->
unify_ty_parametric ucx ty params b; !a
| (TYSPEC_mutable a', _) when ucx.mut_ok
-> unify_tyvars ucx a' b; !a
| (_, TYSPEC_mutable b') when ucx.mut_ok