Skip to content
Snippets Groups Projects

Adapt to coq/coq#8829 (Error when [foo.(bar)] is used with nonprojection [bar])

Merged Gaëtan Gilbert requested to merge (removed):proj-syntax-check into master
1 unresolved thread

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
42 42 Qed.
43 43
44 44 Global Instance uniq_bor_wf κ ty `{!TyWf ty} : TyWf (uniq_bor κ ty) :=
45 { ty_lfts := [κ]; ty_wf_E := ty.(ty_wf_E) ++ ty.(ty_outlives_E) κ }.
45 { ty_lfts := [κ]; ty_wf_E := ty.(ty_wf_E) ++ ty_outlives_E ty κ }.
  • Author Contributor

    Hm, can't we make some of these records primitive instead?

    Have another look, ty_outlives_E is a regular definition, not a record projection. The Coq now errors on regular definitions but still permits emulated projections, with a warning that you're free to disable and which I ignored when making this MR.

  • Oh, I see.

    Hm, I have to admit I quite liked being able to use "fake projections", it communicates intent very well IMO. But I suppose you have good reasons for removing that ability.

    @jjourdan what do you think?

  • I think I do agree with @jung that it is nicer to be able to define "fake projections". It gives a taste of "object oriented programming" to Record.

    But really, I will not strongly argue for this.

  • Okay. I'll merge this to avoid blocking Coq, but @SkySkimmer please consider this feedback for there being good use-cases for "fake projections".

  • Ralf Jung mentioned in commit 37640c4b

    mentioned in commit 37640c4b

  • merged

  • Please register or sign in to reply
    Loading