aboutsummaryrefslogtreecommitdiff
path: root/interp/notation.ml
diff options
context:
space:
mode:
authorHugo Herbelin2016-04-24 13:46:43 +0200
committerHugo Herbelin2016-04-27 21:55:44 +0200
commit361cc73acc9d016e183e3fe85a84f470c31bc4e2 (patch)
tree5a321fe44123a1914f433a12a9027257079d10f9 /interp/notation.ml
parentc96824b7d1043090747926e2e3fa369f5d3822ff (diff)
Attempt to slightly improve abusive "Collision between bound
variables" when matching over "{v : _ | _ & _}" which hides twice the binding "fun v" since it is "sig2 (fun v => _) (fun v => _)". Computing the bound variables statically at internalisation time rather than every time at interpretation time. This cannot hurt even if I don't know how to deal with the "notation" problem of a single bound variable actually hiding two: at the current time, the notation is printed only if the two variables are identical (see #4592), so, with this semantics the warning should not be printed, but we lost the information that we are coming from a notation; if #4592 were addressed, then one of the binding should be alpha-renamed if they differ, so collision should be solved by choosing the variable name which is not renamed, but the matching algorithm should then be aware of what the notation printing algorithm is doing... maybe not the most critical thing at the current time.
Diffstat (limited to 'interp/notation.ml')
0 files changed, 0 insertions, 0 deletions