diff options
| author | Maxime Dénès | 2018-01-24 16:45:46 +0100 |
|---|---|---|
| committer | Maxime Dénès | 2018-01-30 14:19:57 +0100 |
| commit | de988641848ecb26f749fbc3f50ce9194db46a4c (patch) | |
| tree | 7eb76c35fb7c4543f91405266d54523026403c54 /interp/constrextern.ml | |
| parent | 879ebad4d0b39fda275a72ba44c1f4dfbb9282e5 (diff) | |
Use r.(p) syntax to print primitive projections.
There is no way today to distinguish primitive projections from
compatibility constants, at least in the case of a record without
parameters.
We remedy to this by always using the r.(p) syntax when printing
primitive projections, even with Set Printing All.
The input syntax r.(p) is still elaborated to GApp, so that we can preserve
the compatibility layer. Hopefully we can make up a plan to get rid of that
layer, but it will require fixing a few problems.
Diffstat (limited to 'interp/constrextern.ml')
| -rw-r--r-- | interp/constrextern.ml | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/interp/constrextern.ml b/interp/constrextern.ml index 1330b3741e..4f7d537d3f 100644 --- a/interp/constrextern.ml +++ b/interp/constrextern.ml @@ -908,6 +908,9 @@ let rec extern inctx scopes vars r = | GCast (c, c') -> CCast (sub_extern true scopes vars c, Miscops.map_cast_type (extern_typ scopes vars) c') + | GProj (p, c) -> + let pr = extern_reference ?loc Id.Set.empty (ConstRef (Projection.constant p)) in + CProj (pr, sub_extern inctx scopes vars c) ) r' and extern_typ (_,scopes) = |
