Skip to content
Snippets Groups Projects
  1. Sep 27, 2023
  2. Sep 21, 2023
  3. Sep 19, 2023
    • 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
    • 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
    • Alexis King's avatar
      Don’t store the async exception masking state in CATCH frames · 8b61dfd6
      Alexis King authored and Marge Bot's avatar Marge Bot committed
      8b61dfd6
  4. Sep 18, 2023
  5. 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
  6. Sep 15, 2023
  7. Sep 13, 2023
    • Simon Peyton Jones's avatar
      Fix eta reduction · 6840012e
      Simon Peyton Jones authored and Marge Bot's avatar Marge Bot committed
      Issue #23922 showed that GHC was bogusly eta-reducing a join point.
      We should never eta-reduce (\x -> j x) to j, if j is a join point.
      
      It is extremly difficult to trigger this bug.  It took me 45 mins of
      trying to make a small tests case, here immortalised as T23922a.
      6840012e
    • Ben Gamari's avatar
      spec-constr: Lift argument limit for SPEC-marked functions · 56b403c9
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      When the user adds a SPEC argument to a function, they are informing us
      that they expect the function to be specialised. However, previously
      this instruction could be preempted by the specialised-argument limit
      (sc_max_args). Fix this.
      
      This fixes #14003.
      56b403c9
    • Simon Peyton Jones's avatar
      Add -fno-cse to T15426 and T18964 · 98e7c1cf
      Simon Peyton Jones authored and Marge Bot's avatar Marge Bot committed
      This -fno-cse change is to avoid these performance tests depending on
      flukey CSE stuff.  Each contains several independent tests, and we don't
      want them to interact.
      
      See #23925.
      
      By killing CSE we expect a 400% increase in T15426, and 100% in T18964.
      
      Metric Increase:
          T15426
          T18964
      98e7c1cf
  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 31, 2023
    • sheaf's avatar
      Add a test for #21765 · dd39bdc0
      sheaf authored and Marge Bot's avatar Marge Bot committed
      This issue (of reporting a constraint as being redundant even though
      removing it causes typechecking to fail) was fixed in aed1974e.
      This commit simply adds a regression test.
      
      Fixes #21765
      dd39bdc0
  15. Aug 30, 2023
Loading