Skip to content

Commit 2c43ca9

Browse files
committed
Merge pull request purescript#1163 from mjgpy3/1142_extra_type_class_member_error
Clarify ExtraneousClassMember vs. MissingClassMember
2 parents e022dc3 + d673142 commit 2c43ca9

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

src/Language/PureScript/Errors.hs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ data SimpleErrorMessage
107107
| ArgListLengthsDiffer Ident
108108
| OverlappingArgNames (Maybe Ident)
109109
| MissingClassMember Ident
110+
| ExtraneousClassMember Ident
110111
| ExpectedType Kind
111112
| IncorrectConstructorArity (Qualified ProperName)
112113
| SubsumptionCheckFailed
@@ -215,6 +216,7 @@ errorCode em = case unwrapErrorMessage em of
215216
(ArgListLengthsDiffer _) -> "ArgListLengthsDiffer"
216217
(OverlappingArgNames _) -> "OverlappingArgNames"
217218
(MissingClassMember _) -> "MissingClassMember"
219+
(ExtraneousClassMember _) -> "ExtraneousClassMember"
218220
(ExpectedType _) -> "ExpectedType"
219221
(IncorrectConstructorArity _) -> "IncorrectConstructorArity"
220222
SubsumptionCheckFailed -> "SubsumptionCheckFailed"
@@ -513,6 +515,8 @@ prettyPrintSingleError full e = prettyPrintErrorMessage <$> onTypesInErrorMessag
513515
line $ "Overlapping names in function/binder" ++ foldMap ((" in declaration" ++) . show) ident
514516
goSimple (MissingClassMember ident) =
515517
line $ "Member " ++ show ident ++ " has not been implemented"
518+
goSimple (ExtraneousClassMember ident) =
519+
line $ "Member " ++ show ident ++ " is not a member of the class being instantiated"
516520
goSimple (ExpectedType kind) =
517521
line $ "Expected type of kind *, was " ++ prettyPrintKind kind
518522
goSimple (IncorrectConstructorArity nm) =

src/Language/PureScript/Sugar/TypeClasses.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ typeInstanceDictionaryDeclaration name mn deps className tys decls =
277277

278278
memberToValue :: (Functor m, Applicative m, MonadSupply m, MonadError MultipleErrors m) => [(Ident, Type)] -> Declaration -> Desugar m Expr
279279
memberToValue tys' (ValueDeclaration ident _ [] (Right val)) = do
280-
_ <- maybe (throwError . errorMessage $ MissingClassMember ident) return $ lookup ident tys'
280+
_ <- maybe (throwError . errorMessage $ ExtraneousClassMember ident) return $ lookup ident tys'
281281
return val
282282
memberToValue tys' (PositionedDeclaration pos com d) = rethrowWithPosition pos $ do
283283
val <- memberToValue tys' d

0 commit comments

Comments
 (0)