git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Merge pull request #1163 from mjgpy3/1142_extra_type_class_member_error

Clarify ExtraneousClassMember vs. MissingClassMember

commit2c43ca9deb09dcbfc874721a8b9ebf286f848e8a authorPhil Freeman <paf31@cantab.net> dateSat 13 Jun 2015, 22:31 (11 years ago) parente022dc3d673142
2 files changed+5−1
src/Language/PureScript/Errors.hs+4 src/Language/PureScript/Sugar/TypeClasses.hs+1−1
src/Language/PureScript/Errors.hs+4
@@ -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+1−1
@@ -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