|
@@ -327,11 +327,11 @@ let unify_field_call ctx fa el_typed el p inline =
|
|
| cf :: candidates ->
|
|
| cf :: candidates ->
|
|
let known_monos = List.map (fun (m,_) ->
|
|
let known_monos = List.map (fun (m,_) ->
|
|
m,m.tm_type,m.tm_down_constraints
|
|
m,m.tm_type,m.tm_down_constraints
|
|
- ) ctx.e.monomorphs.perfunction in
|
|
|
|
- let current_monos = ctx.e.monomorphs.perfunction in
|
|
|
|
|
|
+ ) ctx.e.monomorphs in
|
|
|
|
+ let current_monos = ctx.e.monomorphs in
|
|
begin try
|
|
begin try
|
|
let candidate = attempt_call cf true in
|
|
let candidate = attempt_call cf true in
|
|
- ctx.e.monomorphs.perfunction <- current_monos;
|
|
|
|
|
|
+ ctx.e.monomorphs <- current_monos;
|
|
if overload_kind = OverloadProper then begin
|
|
if overload_kind = OverloadProper then begin
|
|
let candidates,failures = loop candidates in
|
|
let candidates,failures = loop candidates in
|
|
candidate :: candidates,failures
|
|
candidate :: candidates,failures
|
|
@@ -342,7 +342,7 @@ let unify_field_call ctx fa el_typed el p inline =
|
|
if t != m.tm_type then m.tm_type <- t;
|
|
if t != m.tm_type then m.tm_type <- t;
|
|
if constr != m.tm_down_constraints then m.tm_down_constraints <- constr;
|
|
if constr != m.tm_down_constraints then m.tm_down_constraints <- constr;
|
|
) known_monos;
|
|
) known_monos;
|
|
- ctx.e.monomorphs.perfunction <- current_monos;
|
|
|
|
|
|
+ ctx.e.monomorphs <- current_monos;
|
|
check_unknown_ident err;
|
|
check_unknown_ident err;
|
|
let candidates,failures = loop candidates in
|
|
let candidates,failures = loop candidates in
|
|
candidates,(cf,err,extract_delayed_display()) :: failures
|
|
candidates,(cf,err,extract_delayed_display()) :: failures
|