aboutsummaryrefslogtreecommitdiffhomepage
path: root/interp
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2004-08-06 18:04:12 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2004-08-06 18:04:12 +0000
commit8bb0d9d3853cdbde4992be9cbde393f19edcdcbf (patch)
tree4be870a5b7002df38e3d3d79564552cbd90af1f5 /interp
parent1be34dd7aed0548fdff34e09416977134781b886 (diff)
Apply implicit types to local binders too
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@6017 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'interp')
-rw-r--r--interp/constrintern.ml6
1 files changed, 4 insertions, 2 deletions
diff --git a/interp/constrintern.ml b/interp/constrintern.ml
index 9217400bc..22251aabb 100644
--- a/interp/constrintern.ml
+++ b/interp/constrintern.ml
@@ -894,8 +894,10 @@ let internalise sigma env allow_soapp lvar c =
intern (ids,Some Symbols.type_scope,scopes)
and intern_local_binder ((ids,ts,sc as env),bl) = function
- LocalRawAssum(nal,ty) ->
- let ty = intern_type env ty in
+ | LocalRawAssum(nal,ty) ->
+ let (loc,na) = List.hd nal in
+ (* TODO: fail if several names with different implicit types *)
+ let ty = locate_if_isevar loc na (intern_type env ty) in
List.fold_left
(fun ((ids,ts,sc),bl) (_,na) ->
((name_fold Idset.add na ids,ts,sc), (na,None,ty)::bl))