diff options
| author | Emilio Jesus Gallego Arias | 2020-02-25 15:21:05 -0500 |
|---|---|---|
| committer | Emilio Jesus Gallego Arias | 2020-02-25 15:21:05 -0500 |
| commit | fe1335eb350c305142bf4be57c681891515a5dac (patch) | |
| tree | c23e9cb9d1ed520c559b94ad8d192e646cc8fc36 | |
| parent | 1528c066e69327c4769b531cc105b558183b43b1 (diff) | |
| parent | f71ec3907c0535bf6831ed60a3656ecbe8ac744f (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.ml | 4 | ||||
| -rw-r--r-- | test-suite/success/Notations2.v | 8 |
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. |
