haskell / network-uri

URI manipulation facilities
Other
24 stars 33 forks source link

`x-partial` warnings with GHC 9.8 #81

Open andreasabel opened 9 months ago

andreasabel commented 9 months ago

The blessings of the new x-partial warning will be bestowed unto you by GHC 9.8:

Network/URI.hs:1131:12: warning: [GHC-63394] [-Wx-partial]
    In the use of ‘head’
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
     |
1131 |         if head (uriPath ref) == '/' then
     |            ^^^^

Network/URI.hs:1437:16: warning: [GHC-63394] [-Wx-partial]
    In the use of ‘tail’
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
     |
1437 | query = orNull tail . uriQuery
     |                ^^^^

Network/URI.hs:1441:19: warning: [GHC-63394] [-Wx-partial]
    In the use of ‘tail’
    (imported from Prelude, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
     |
1441 | fragment = orNull tail . uriFragment
     |                   ^^^^

These are all false alarms: https://github.com/haskell/network-uri/blob/4012e57276a6c121c4c6682103a711591cdadfb8/Network/URI.hs#L1148-L1149 https://github.com/haskell/network-uri/blob/4012e57276a6c121c4c6682103a711591cdadfb8/Network/URI.hs#L1453-L1463

ezrakilty commented 9 months ago

Thanks for the heads up. Looks like it's not released yet, so I guess I can't add it to the CI test automation. I'll try to get ahead of it nonetheless.

andreasabel commented 9 months ago

https://github.com/haskell-CI/haskell-ci supports GHC 9.8 prereleases under the version 9.8.1. My fork at https://github.com/andreasabel/haskell-ci does so under the version 9.8.0, so you could add GHC == 9.8.0 to the tested-with of the cabal file.