Skip to content
  • Zubin's avatar
    Add info about typeclass evidence to .hie files · 05d86c7c
    Zubin authored
    See `testsuite/tests/hiefile/should_run/HieQueries.hs` and
    `testsuite/tests/hiefile/should_run/HieQueries.stdout` for an example of this
    
    We add two new fields, `EvidenceVarBind` and `EvidenceVarUse` to the
    `ContextInfo` associated with an Identifier. These are associated with the
    appropriate identifiers for the evidence variables collected when we come across
    `HsWrappers`, `TcEvBinds` and `IPBinds` while traversing the AST.
    
    Instance dictionary and superclass selector dictionaries from `tcg_insts` and
    classes defined in `tcg_tcs` are also recorded in the AST as originating from
    their definition span
    
    This allows us to save a complete picture of the evidence constructed by the
    constraint solver, and will let us report this to the user, enabling features
    like going to the instance definition from the invocation of a class method(or
    any other method taking a constraint) and finding all usages of a particular
    instance.
    
    Additionally,
    
    - Mark NodeInfo with an origin so we can differentiate between bindings
      origininating in the source vs those in ghc
    - Along with typeclass evidence info, also include information on Implicit
      Parameters
    - Add a few utility functions to HieUtils in order to query the new info
    
    Updates haddock submodule
    05d86c7c