Skip to content
  • Edsko de Vries's avatar
    Fine-grained dependencies in solver input · a5a823d4
    Edsko de Vries authored
    The modular solver has its own representation for a package (PInfo). In this
    commit we modify PInfo to keep track of the different kinds of dependencies.
    
    This is a bit intricate because the solver also regards top-level goals as
    dependencies, but of course those dependencies are not part of any 'component'
    as such, unlike "real" dependencies. We model this by adding a type parameter
    to FlaggedDeps and go which indicates whether or not we have component
    information; crucially, underneath flag choices we _always_ have component
    information available.
    
    Consequently, the modular solver itself will not make use of the ComponentDeps
    datatype (but only using the Component type, classifying components); we will
    use ComponentDeps when we translate out of the results from the modular solver
    into cabal-install's main datatypes.
    
    We don't yet _return_ fine-grained dependencies from the solver; this will be
    the subject of the next commit.
    a5a823d4