Skip to content

Commit eb505ed

Browse files
committed
Improve some error messages purescript#289 purescript#290
1 parent ee4dc95 commit eb505ed

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

RELEASE-0.5.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

0 commit comments

Comments
 (0)