Skip to content
Snippets Groups Projects
  1. Sep 28, 2023
  2. Sep 27, 2023
    • Krzysztof Gogolewski's avatar
      Refactor: introduce stgArgRep · 1dbdb9d0
      Krzysztof Gogolewski authored and Marge Bot's avatar Marge Bot committed
      The function 'stgArgType' returns the type in STG. But this violates
      the abstraction: in STG we're supposed to operate on PrimReps.
      
      This introduces
      stgArgRep ty = typePrimRep (stgArgType ty)
      stgArgRep1 ty = typePrimRep1 (stgArgType ty)
      stgArgRep_maybe ty = typePrimRep_maybe (stgArgType ty)
      
      stgArgType is still directly used for unboxed tuples (should be fixable), FFI
      and in ticky.
      1dbdb9d0
  3. Sep 26, 2023
  4. Sep 19, 2023
    • John Ericson's avatar
      Remove `ghc-cabal` · 35bc506b
      John Ericson authored and Marge Bot's avatar Marge Bot committed
      It is dead code since the Make build system was removed.
      
      I tried to go over every match of `git grep -i ghc-cabal` to find other
      stray bits. Some of those might be workarounds that can be further
      removed.
      35bc506b
    • sheaf's avatar
      Validity: refactor treatment of data families · 1eed645c
      sheaf authored and Marge Bot's avatar Marge Bot committed
      This commit refactors the reporting of unused type variables in type
      and data family instances to be more principled. This avoids ad-hoc
      logic in the treatment of data family instances.
      1eed645c
    • sheaf's avatar
      Unused tyvars in FamInst: only report user tyvars · 28dd52ee
      sheaf authored and Marge Bot's avatar Marge Bot committed
      This commit changes how we perform some validity checking for
      coercion axioms to mirror how we handle default declarations for
      associated type families. This allows us to keep track of whether
      type variables in type and data family instances were user-written
      or not, in order to only report the user-written ones in
      "unused type variable" error messages.
      
      Consider for example:
      
        {-# LANGUAGE PolyKinds #-}
        type family F
        type instance forall a. F = ()
      
      In this case, we get two quantified type variables,
      (k :: Type) and (a :: k); the second being user-written, but the first
      is introduced by the typechecker. We should only report 'a' as being
      unused, as the user has no idea what 'k' is.
      
      Fixes #23734
      28dd52ee
    • sheaf's avatar
      Adjust reporting of unused tyvars in data FamInsts · a525a92a
      sheaf authored and Marge Bot's avatar Marge Bot committed
      This commit adjusts the validity checking of data family
      instances to improve the reporting of unused type variables.
      
      See Note [Out of scope tvs in data family instances] in GHC.Tc.Validity.
      
      The problem was that, in a situation such as
      
        data family D :: Type
        data instance forall (d :: Type). D = MkD
      
      the RHS passed to 'checkFamPatBinders' would be the TyCon app
      
        R:D d
      
      which mentions the type variable 'd' quantified in the user-written
      forall. Thus, when computing the set of unused type variables in
      the RHS of the data family instance, we would find that 'd' is used,
      and report a strange error message that would say that 'd' is not
      bound on the LHS.
      
      To fix this, we special-case the data-family instance case,
      manually extracting all the type variables that appear in the
      arguments of all the data constructores of the data family instance.
      
      Fixes #23778
      a525a92a
    • sheaf's avatar
      Avoid panic in mkGADTVars · aba18424
      sheaf authored and Marge Bot's avatar Marge Bot committed
      This commit avoids panicking in mkGADTVars when we encounter
      a type variable as in #23784 that is bound by a user-written
      forall but not actually used.
      
      Fixes #23784
      aba18424
    • sheaf's avatar
      Pass quantified tyvars in tcDefaultAssocDecl · 5f826c18
      sheaf authored and Marge Bot's avatar Marge Bot committed
      This commit passes the correct set of quantified type variables written
      by the user in associated type default declarations for validity
      checking. This ensures that validity checking of associated type defaults
      mirrors that of standalone type family instances.
      
      Fixes #23768 (see testcase T23734 in subsequent commit)
      5f826c18
    • jeffrey young's avatar
      compiler,ghci: error codes link to HF error index · 86d2971e
      jeffrey young authored and Marge Bot's avatar Marge Bot committed
      closes: #23259
      
      - adds -fprint-error-index-links={auto|always|never} flag
      86d2971e
  5. Sep 18, 2023
  6. Sep 16, 2023
    • Simon Peyton Jones's avatar
      Use correct FunTyFlag in adjustJoinPointType · 8e05c54a
      Simon Peyton Jones authored and Marge Bot's avatar Marge Bot committed
      As the Lint error in #23952 showed, the function adjustJoinPointType
      was failing to adjust the FunTyFlag when adjusting the type.
      
      I don't think this caused the seg-fault reported in the ticket,
      but it is definitely.  This patch fixes it.
      
      It is tricky to come up a small test case; Krzysztof came up with
      this one, but it only triggers a failure in GHC 9.6.
      8e05c54a
  7. Sep 13, 2023
  8. Sep 12, 2023
  9. Sep 08, 2023
  10. Sep 07, 2023
    • Krzysztof Gogolewski's avatar
      Fix wrong role in mkSelCo_maybe · e0aa8c6e
      Krzysztof Gogolewski authored and Marge Bot's avatar Marge Bot committed
      In the Lint failure in #23938, we start with a coercion Refl :: T a ~R T a,
      and call mkSelCo (SelTyCon 1 nominal) Refl.
      The function incorrectly returned Refl :: a ~R a. The returned role
      should be nominal, according to the SelCo rule:
      
            co : (T s1..sn) ~r0 (T t1..tn)
            r = tyConRole tc r0 i
            ----------------------------------
            SelCo (SelTyCon i r) : si ~r ti
      
      In this test case, r is nominal while r0 is representational.
      e0aa8c6e
    • Alan Zimmerman's avatar
      EPA: Incorrect locations for UserTyVar with '@' · b34f8586
      Alan Zimmerman authored and Marge Bot's avatar Marge Bot committed
      In T13343.hs, the location for the @ is not within the span of the
      surrounding UserTyVar.
      
        type Bad @v = (forall (v1 :: RuntimeRep) (a1 :: TYPE v). a1) :: TYPE v
      
      Widen it so it is captured.
      
      Closes #23887
      b34f8586
  11. Sep 06, 2023
  12. Sep 05, 2023
  13. Sep 01, 2023
  14. Aug 30, 2023
Loading