OccName: Implement startsWithUnderscore in terms of headFS
authorBen Gamari <bgamari.foss@gmail.com>
Fri, 8 Jul 2016 12:09:36 +0000 (14:09 +0200)
committerBen Gamari <ben@smart-cactus.org>
Fri, 8 Jul 2016 13:06:23 +0000 (15:06 +0200)
This avoids decoding the entire string just to look at the first
character.

Test Plan: Validate

Reviewers: austin

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D2388

compiler/basicTypes/OccName.hs

index 6a5c489..caaf90b 100644 (file)
@@ -521,9 +521,7 @@ parenSymOcc occ doc | isSymOcc occ = parens doc
 startsWithUnderscore :: OccName -> Bool
 -- ^ Haskell 98 encourages compilers to suppress warnings about unsed
 -- names in a pattern if they start with @_@: this implements that test
-startsWithUnderscore occ = case occNameString occ of
-                             ('_' : _) -> True
-                             _other    -> False
+startsWithUnderscore occ = headFS (occNameFS occ) == '_'
 
 {-
 ************************************************************************