packages feed

purescript 0.3.6 → 0.3.6.1

raw patch · 3 files changed

+13/−4 lines, 3 files

Files

purescript.cabal view
@@ -1,5 +1,5 @@ name: purescript-version: 0.3.6+version: 0.3.6.1 cabal-version: >=1.8 build-type: Simple license: MIT
src/Language/PureScript/CodeGen/JS.hs view
@@ -41,7 +41,7 @@ import Language.PureScript.CodeGen.JS.AST as AST import Language.PureScript.Types import Language.PureScript.CodeGen.Optimize-import Language.PureScript.TypeChecker.Monad (canonicalizeType)+import Language.PureScript.TypeChecker.Monad (canonicalizeDataConstructor)  -- | -- Generate code in the simplified Javascript intermediate representation for all declarations in a module@@ -199,7 +199,7 @@   then     return done   else-    return [JSIfElse (JSBinary EqualTo (JSAccessor "ctor" (JSVar varName)) (JSStringLiteral (show ((\(mp, nm) -> Qualified (Just mp) nm) $ canonicalizeType m e ctor)))) (JSBlock done) Nothing]+    return [JSIfElse (JSBinary EqualTo (JSAccessor "ctor" (JSVar varName)) (JSStringLiteral (show ((\(mp, nm) -> Qualified (Just mp) nm) $ canonicalizeDataConstructor m e ctor)))) (JSBlock done) Nothing] binderToJs m e varName done (UnaryBinder ctor b) = do   value <- fresh   js <- binderToJs m e value done b@@ -208,7 +208,7 @@   then     return [success]   else-    return [JSIfElse (JSBinary EqualTo (JSAccessor "ctor" (JSVar varName)) (JSStringLiteral (show ((\(mp, nm) -> Qualified (Just mp) nm) $ canonicalizeType m e ctor))))+    return [JSIfElse (JSBinary EqualTo (JSAccessor "ctor" (JSVar varName)) (JSStringLiteral (show ((\(mp, nm) -> Qualified (Just mp) nm) $ canonicalizeDataConstructor m e ctor))))                      success                      Nothing] binderToJs m e varName done (ObjectBinder bs) = go done bs
src/Language/PureScript/TypeChecker/Monad.hs view
@@ -210,6 +210,15 @@ canonicalizeType mn env (Qualified Nothing nm) = case (mn, nm) `M.lookup` types env of   Just (_, DataAlias mn' pn') -> (mn', pn')   _ -> (mn, nm)+  +-- |+-- Canonicalize a data constructor by resolving any aliases introduced by module imports+--+canonicalizeDataConstructor :: ModuleName -> Environment -> Qualified ProperName -> (ModuleName, Ident)+canonicalizeDataConstructor _ _ (Qualified (Just mn) i) = (mn, Ident $ show i)+canonicalizeDataConstructor mn env (Qualified Nothing i) = case (mn, i) `M.lookup` dataConstructors env of+  Just (_, Alias mn' i') -> (mn', i')+  _ -> (mn, Ident $ show i)  -- | -- State required for type checking: