Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
GHC
GHC
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,386
    • Issues 4,386
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 371
    • Merge Requests 371
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #16830

Closed
Open
Opened Jun 15, 2019 by Krzysztof Gogolewski@monoidalDeveloper

TTG: move phase-specific constructors

The goal of this ticket is to move phase-specific constructors to extension fields (Trees That Grow) - make illegal states unrepresentable.

  • (done !2083 (closed)) HsWrap is specific to typechecking, should be inside XExpr.
  • (done !2553 (closed)) ConPatIn and ConPatOut could become a single ConPat with fields depending on the pass.
  • (done !2553 (closed)) Perhaps CoPat too.
  • (in progress !3524)HsRecFld occurs only at the GhcRn phase.
  • (in progress !3524 or !4782) HsRnBracketOut occurs only at the GhcRn phase.
  • (in progress !4782) HsTcBracketOut occurs only at the GhcTc phase.
  • (in progress !4782) AbsBinds occurs only at the GhcTc phase.
  • HsTick and HsBinTick occur only at the GhcTc phase.
  • HsConLikeOut occurs only at the GhcTc phase.
  • HsSpliced could be moved to XSplice.
  • Perhaps HsUnboundVar, HsIPVar, HsOverLabel which occur in GhcPs and GhcRn but not GhcTc.

(Initial idea mentioned by Simon and Richard during Zurihac)

Edited Jan 11, 2021 by John Ericson
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: ghc/ghc#16830