Deprecate Data.Version.versionTags (#2496)
authorThomas Miedema <thomasmiedema@gmail.com>
Fri, 21 Nov 2014 23:03:19 +0000 (00:03 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Fri, 21 Nov 2014 23:10:46 +0000 (00:10 +0100)
The library submission was accepted:

  http://www.haskell.org/pipermail/libraries/2014-September/023777.html

The T5892ab testcases were changed to use `Data.Tree` instead of `Data.Version`

Reviewed By: ekmett

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

libraries/base/Data/Version.hs
libraries/base/System/Info.hs
testsuite/tests/rename/should_fail/T5892a.hs
testsuite/tests/rename/should_fail/T5892a.stderr
testsuite/tests/rename/should_fail/T5892b.hs
testsuite/tests/rename/should_fail/T5892b.stderr
testsuite/tests/rename/should_fail/all.T
utils/ghc-pkg/Main.hs

index 8a0f9c8..3761d81 100644 (file)
@@ -92,6 +92,8 @@ data Version =
                 -- on the entity that this version applies to.
         }
   deriving (Read,Show,Typeable)
+{-# DEPRECATED versionTags "See GHC ticket #2496" #-}
+-- TODO. Remove all references to versionTags in GHC 7.12 release.
 
 instance Eq Version where
   v1 == v2  =  versionBranch v1 == versionBranch v2
index 1791cdb..c345cf9 100644 (file)
@@ -29,7 +29,7 @@ import Data.Version
 -- | The version of 'compilerName' with which the program was compiled
 -- or is being interpreted.
 compilerVersion :: Version
-compilerVersion = Version {versionBranch=[major, minor], versionTags=[]}
+compilerVersion = Version [major, minor] []
   where (major, minor) = compilerVersionRaw `divMod` 100
 
 #include "ghcplatform.h"
index c0ad989..13d7c3f 100644 (file)
@@ -3,10 +3,10 @@
 
 module T5892a where
 
-import Data.Version ( Version( Version, versionBranch ))
--- Not importing its field: versionTags
+import Data.Tree ( Tree( Node, rootLabel ))
+-- Not importing field 'subForest'
 
-foo :: Version -> Version
-foo (Version {..}) -- Pattern match does not bind versionTags 
-  = let versionBranch = []
-    in Version {..}   -- Hence warning here
+foo :: Tree [Int] -> Tree [Int]
+foo (Node {..}) -- Pattern match does not bind 'subForest'
+  = let rootLabel = []
+    in Node {..}   -- Hence warning here
index 1600d8f..5e9e4d3 100644 (file)
@@ -1,10 +1,10 @@
 
 T5892a.hs:12:8: Warning:
-    Fields of ‘Version’ not initialised: Data.Version.versionTags
-    In the expression: Version {..}
-    In the expression: let versionBranch = [] in Version {..}
+    Fields of ‘Node’ not initialised: Data.Tree.subForest
+    In the expression: Node {..}
+    In the expression: let rootLabel = [] in Node {..}
     In an equation for ‘foo’:
-        foo (Version {..}) = let versionBranch = ... in Version {..}
+        foo (Node {..}) = let rootLabel = ... in Node {..}
 
 <no location info>: 
 Failing due to -Werror.
index 6bcea27..737fd1f 100644 (file)
@@ -1,11 +1,11 @@
 {-# LANGUAGE RecordWildCards #-}
 module T5892b where
 
-import Data.Version ( Version( Version, versionBranch ))
--- Not importing its field: versionTags
+import Data.Tree ( Tree( Node, rootLabel ))
+-- Not importing field 'subForest'
 
-Version{..} = Version [] []
--- Binds versionBranch only
+Node{..} = Node [] []
+-- Binds 'rootLabel' only
 
-foo = T5892b.versionBranch
-bar = T5892b.versionTags
+foo = T5892b.rootLabel
+bar = T5892b.subForest
index 3d25973..994ea78 100644 (file)
@@ -1,4 +1,2 @@
 
-T5892b.hs:11:7:
-    Not in scope: ‘T5892b.versionTags’
-    Perhaps you meant ‘T5892b.versionBranch’ (line 7)
+T5892b.hs:11:7: Not in scope: ‘T5892b.subForest’
index 4c61a8a..d81b743 100644 (file)
@@ -98,8 +98,8 @@ test('T5657', normal, compile_fail, [''])
 test('T5745',
      extra_clean(['T5745a.hi', 'T5745a.o', 'T5745b.hi', 'T5745b.o']),
      multimod_compile_fail, ['T5745', '-v0'])
-test('T5892a', normal, compile_fail, [''])
-test('T5892b', normal, compile_fail, [''])
+test('T5892a', normal, compile_fail, ['-package containers'])
+test('T5892b', normal, compile_fail, ['-package containers'])
 test('T5951', normal, compile_fail, [''])
 test('T6060', normal, compile_fail, [''])
 test('T6148', normal, compile_fail, [''])
index b1c7a4b..2b0b4cc 100644 (file)
@@ -493,7 +493,7 @@ readPackageArg False str = Id `fmap` readGlobPkgId str
 
 -- globVersion means "all versions"
 globVersion :: Version
-globVersion = Version{ versionBranch=[], versionTags=["*"] }
+globVersion = Version [] ["*"]
 
 -- -----------------------------------------------------------------------------
 -- Package databases