git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Merge master
commit9a5c70777180ad43f5fd0056ebdc819892ab2251 authorGary Burgess <garyb@users.noreply.github.com> dateThu 6 Feb 2014, 21:01 (13 years ago) parenta6213596e46a60
4 files changed+5−10
purescript.cabal+1−1 src/Language/PureScript/Names.hs+1−1 src/Language/PureScript/Parser/Common.hs+1−7 src/Language/PureScript/TypeChecker.hs+2−1
purescript.cabal+1−1
@@ -1,5 +1,5 @@
11name: purescript
2−version: 0.3.9
2+version: 0.3.9.1
33cabal-version: >=1.8
44build-type: Simple
55license: MIT
src/Language/PureScript/Names.hs+1−1
@@ -52,7 +52,7 @@ instance Show ProperName where
5252-- |
5353-- Module names
5454--
55−data ModuleName = ModuleName ProperName deriving (Eq, Ord, Data, Typeable)
55+data ModuleName = ModuleName { runModuleName :: ProperName } deriving (Eq, Ord, Data, Typeable)
5656
5757instance Show ModuleName where
5858 show (ModuleName name) = show name
src/Language/PureScript/Parser/Common.hs+1−7
@@ -49,6 +49,7 @@ reservedPsNames = [ "data"
4949 , "true"
5050 , "false"
5151 , "until"
52+
5253 ]
5354
5455-- |
@@ -121,13 +122,6 @@ reservedTypeNames :: [String]
121122reservedTypeNames = [ "forall"
122123 , "where" ]
123124
124−-- |
125−-- A list of reserved identifiers for block statements
126−--
127−reservedStatementNames :: [String]
128−reservedStatementNames = [ "for"
129− , "return" ]
130−
131125-- |
132126-- A list of reserved operators
133127--
src/Language/PureScript/TypeChecker.hs+2−1
@@ -43,13 +43,14 @@ addDataType moduleName name args dctors ctorKind = do
4343 env <- getEnv
4444 putEnv $ env { types = M.insert (moduleName, name) (ctorKind, Data) (types env) }
4545 forM_ dctors $ \(dctor, maybeTy) ->
46− rethrow (("Error in data constructor " ++ show name ++ ":\n") ++) $
46+ rethrow (("Error in data constructor " ++ show dctor ++ ":\n") ++) $
4747 addDataConstructor moduleName name args dctor maybeTy
4848
4949addDataConstructor :: ModuleName -> ProperName -> [String] -> ProperName -> Maybe Type -> Check ()
5050addDataConstructor moduleName name args dctor maybeTy = do
5151 env <- getEnv
5252 dataConstructorIsNotDefined moduleName dctor
53+ when (runModuleName moduleName == dctor) $ throwError "A data constructor may not have the same name as its enclosing module."
5354 let retTy = foldl TypeApp (TypeConstructor (Qualified (Just moduleName) name)) (map TypeVar args)
5455 let dctorTy = maybe retTy (flip function retTy) maybeTy
5556 let polyType = mkForAll args dctorTy