aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2020-02-25 15:21:05 -0500
committerEmilio Jesus Gallego Arias2020-02-25 15:21:05 -0500
commitfe1335eb350c305142bf4be57c681891515a5dac (patch)
treec23e9cb9d1ed520c559b94ad8d192e646cc8fc36
parent1528c066e69327c4769b531cc105b558183b43b1 (diff)
parentf71ec3907c0535bf6831ed60a3656ecbe8ac744f (diff)
Merge PR #11680: Fixing residual bug of #11120: inheritance of maximal implicit arguments for non-applied notations
Reviewed-by: ejgallego
-rw-r--r--interp/constrintern.ml4
-rw-r--r--test-suite/success/Notations2.v8
2 files changed, 11 insertions, 1 deletions
diff --git a/interp/constrintern.ml b/interp/constrintern.ml
index c39e61083d..8a820293a0 100644
--- a/interp/constrintern.ml
+++ b/interp/constrintern.ml
@@ -2057,7 +2057,9 @@ let internalize globalenv env pattern_mode (_, ntnvars as lvar) c =
intern env (CAst.make ?loc @@ CPrim (Numeral (SMinus,p)))
| CNotation (_,(InConstrEntrySomeLevel,"( _ )"),([a],[],[],[])) -> intern env a
| CNotation (_,ntn,args) ->
- intern_notation intern env ntnvars loc ntn args
+ let c = intern_notation intern env ntnvars loc ntn args in
+ let x, impl, scopes, l = find_appl_head_data c in
+ apply_impargs x env impl scopes l loc
| CGeneralization (b,a,c) ->
intern_generalization intern env ntnvars loc b a c
| CPrim p ->
diff --git a/test-suite/success/Notations2.v b/test-suite/success/Notations2.v
index f166a53256..382c252727 100644
--- a/test-suite/success/Notations2.v
+++ b/test-suite/success/Notations2.v
@@ -194,3 +194,11 @@ Notation q := @p.
Check fun A n => q (A * A) (n * n). (* check that argument scopes are propagated *)
End InheritanceArgumentScopes.
+
+Module InheritanceMaximalImplicitPureNotation.
+
+Definition id {A B:Type} (a:B) := a.
+Notation "#" := (@id nat).
+Check # = (fun a:nat => a). (* # should inherit its maximal implicit argument *)
+
+End InheritanceMaximalImplicitPureNotation.