summaryrefslogtreecommitdiff
path: root/libraries/template-haskell
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/template-haskell')
-rw-r--r--libraries/template-haskell/Language/Haskell/TH/Syntax.hs19
-rw-r--r--libraries/template-haskell/changelog.md3
2 files changed, 11 insertions, 11 deletions
diff --git a/libraries/template-haskell/Language/Haskell/TH/Syntax.hs b/libraries/template-haskell/Language/Haskell/TH/Syntax.hs
index 4e21e8b841..c9bccf665f 100644
--- a/libraries/template-haskell/Language/Haskell/TH/Syntax.hs
+++ b/libraries/template-haskell/Language/Haskell/TH/Syntax.hs
@@ -1187,20 +1187,17 @@ unboxedTupleDataName :: Int -> Name
-- | Unboxed tuple type constructor
unboxedTupleTypeName :: Int -> Name
-unboxedTupleDataName 0 = error "unboxedTupleDataName 0"
-unboxedTupleDataName 1 = error "unboxedTupleDataName 1"
-unboxedTupleDataName n = mk_unboxed_tup_name (n-1) DataName
-
-unboxedTupleTypeName 0 = error "unboxedTupleTypeName 0"
-unboxedTupleTypeName 1 = error "unboxedTupleTypeName 1"
-unboxedTupleTypeName n = mk_unboxed_tup_name (n-1) TcClsName
+unboxedTupleDataName n = mk_unboxed_tup_name n DataName
+unboxedTupleTypeName n = mk_unboxed_tup_name n TcClsName
mk_unboxed_tup_name :: Int -> NameSpace -> Name
-mk_unboxed_tup_name n_commas space
- = Name occ (NameG space (mkPkgName "ghc-prim") tup_mod)
+mk_unboxed_tup_name n space
+ = Name (mkOccName tup_occ) (NameG space (mkPkgName "ghc-prim") tup_mod)
where
- occ = mkOccName ("(#" ++ replicate n_commas ',' ++ "#)")
- tup_mod = mkModName "GHC.Tuple"
+ tup_occ | n == 1 = "Unit#" -- See Note [One-tuples] in TysWiredIn
+ | otherwise = "(#" ++ replicate n_commas ',' ++ "#)"
+ n_commas = n - 1
+ tup_mod = mkModName "GHC.Tuple"
-----------------------------------------------------
-- Locations
diff --git a/libraries/template-haskell/changelog.md b/libraries/template-haskell/changelog.md
index c4b8f034cf..1f41a6a528 100644
--- a/libraries/template-haskell/changelog.md
+++ b/libraries/template-haskell/changelog.md
@@ -16,6 +16,9 @@
* Add support for attaching deriving strategies to `deriving` statements
(#10598)
+ * `unboxedTupleTypeName` and `unboxedTupleDataName` now work for unboxed
+ 0-tuples and 1-tuples (#12977)
+
## 2.11.0.0 *May 2016*
* Bundled with GHC 8.0.1