git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Improve some error messages #289 #290
commiteb505ed117f69771abedd07fb8ee259e0ea57e88 authorPhil Freeman <paf31@cantab.net> dateWed 12 Mar 2014, 22:13 (13 years ago) parentee4dc95
2 files changed+5−1
RELEASE-0.5.md+1 src/Language/PureScript/TypeChecker/Types.hs+4−1
RELEASE-0.5.md+1
@@ -37,6 +37,7 @@
3737- Let bindings can now define functions with binders (paf31)
3838- Case statements and functions which do not pattern match on their arguments now generate smaller code (paf31)
3939- Imported type class instances are now exported (paf31)
40+- Some error messages were improved (paf31)
4041
4142### Bug Fixes
4243
src/Language/PureScript/TypeChecker/Types.hs+4−1
@@ -118,6 +118,9 @@ unifyTypes t1 t2 = rethrow (\e -> "Error unifying type " ++ prettyPrintType t1 +
118118 unifyTypes' r1 r2@RCons{} = unifyRows r1 r2
119119 unifyTypes' r1@REmpty r2 = unifyRows r1 r2
120120 unifyTypes' r1 r2@REmpty = unifyRows r1 r2
121+ unifyTypes' t@(ConstrainedType _ _) _ = throwError $ "Attempted to unify a constrained type " ++ prettyPrintType t ++
122+ " with another type."
123+ unifyTypes' t3 t4@(ConstrainedType _ _) = unifyTypes' t4 t3
121124 unifyTypes' t3 t4 = throwError $ "Cannot unify " ++ prettyPrintType t3 ++ " with " ++ prettyPrintType t4 ++ "."
122125
123126-- |
@@ -321,7 +324,7 @@ escapeCheck value ty = do
321324 let allUnknowns = findAllTypes value
322325 forM_ allUnknowns $ \t -> do
323326 let unsolvedUnknowns = nub . unknowns $ subst $? t
324− guardWith "Escape check fails" $ null $ unsolvedUnknowns \\ visibleUnknowns
327+ guardWith "An unsolved type variable disappeared during type checking." $ null $ unsolvedUnknowns \\ visibleUnknowns
325328
326329-- |
327330-- Find all type annotations occuring inside a value