@@ -60,12 +60,15 @@ data SimpleErrorMessage
6060 | OverlappingNamesInLet
6161 | UnknownModule ModuleName
6262 | UnknownType (Qualified (ProperName 'TypeName))
63+ | UnknownTypeOp (Qualified Ident )
6364 | UnknownTypeClass (Qualified (ProperName 'ClassName))
6465 | UnknownValue (Qualified Ident )
6566 | UnknownDataConstructor (Qualified (ProperName 'ConstructorName)) (Maybe (Qualified (ProperName 'ConstructorName)))
6667 | UnknownTypeConstructor (Qualified (ProperName 'TypeName))
6768 | UnknownImportType ModuleName (ProperName 'TypeName)
6869 | UnknownExportType (ProperName 'TypeName)
70+ | UnknownImportTypeOp ModuleName Ident
71+ | UnknownExportTypeOp Ident
6972 | UnknownImportTypeClass ModuleName (ProperName 'ClassName)
7073 | UnknownExportTypeClass (ProperName 'ClassName)
7174 | UnknownImportValue ModuleName Ident
@@ -84,6 +87,7 @@ data SimpleErrorMessage
8487 | DuplicateModuleName ModuleName
8588 | DuplicateClassExport (ProperName 'ClassName)
8689 | DuplicateValueExport Ident
90+ | DuplicateTypeOpExport Ident
8791 | DuplicateTypeArgument String
8892 | InvalidDoBind
8993 | InvalidDoLet
@@ -244,12 +248,15 @@ errorCode em = case unwrapErrorMessage em of
244248 OverlappingNamesInLet -> " OverlappingNamesInLet"
245249 UnknownModule {} -> " UnknownModule"
246250 UnknownType {} -> " UnknownType"
251+ UnknownTypeOp {} -> " UnknownTypeOp"
247252 UnknownTypeClass {} -> " UnknownTypeClass"
248253 UnknownValue {} -> " UnknownValue"
249254 UnknownDataConstructor {} -> " UnknownDataConstructor"
250255 UnknownTypeConstructor {} -> " UnknownTypeConstructor"
251256 UnknownImportType {} -> " UnknownImportType"
257+ UnknownImportTypeOp {} -> " UnknownImportTypeOp"
252258 UnknownExportType {} -> " UnknownExportType"
259+ UnknownExportTypeOp {} -> " UnknownExportTypeOp"
253260 UnknownImportTypeClass {} -> " UnknownImportTypeClass"
254261 UnknownExportTypeClass {} -> " UnknownExportTypeClass"
255262 UnknownImportValue {} -> " UnknownImportValue"
@@ -268,6 +275,7 @@ errorCode em = case unwrapErrorMessage em of
268275 DuplicateModuleName {} -> " DuplicateModuleName"
269276 DuplicateClassExport {} -> " DuplicateClassExport"
270277 DuplicateValueExport {} -> " DuplicateValueExport"
278+ DuplicateTypeOpExport {} -> " DuplicateTypeOpExport"
271279 DuplicateTypeArgument {} -> " DuplicateTypeArgument"
272280 InvalidDoBind -> " InvalidDoBind"
273281 InvalidDoLet -> " InvalidDoLet"
@@ -595,6 +603,8 @@ prettyPrintSingleError full level showWiki e = flip evalState defaultUnknownMap
595603 line $ " Unknown module " ++ runModuleName mn
596604 renderSimpleErrorMessage (UnknownType name) =
597605 line $ " Unknown type " ++ showQualified runProperName name
606+ renderSimpleErrorMessage (UnknownTypeOp name) =
607+ line $ " Unknown type operator " ++ showQualified showIdent name
598608 renderSimpleErrorMessage (UnknownTypeClass name) =
599609 line $ " Unknown type class " ++ showQualified runProperName name
600610 renderSimpleErrorMessage (UnknownValue name) =
@@ -609,6 +619,12 @@ prettyPrintSingleError full level showWiki e = flip evalState defaultUnknownMap
609619 ]
610620 renderSimpleErrorMessage (UnknownExportType name) =
611621 line $ " Cannot export unknown type " ++ runProperName name
622+ renderSimpleErrorMessage (UnknownImportTypeOp mn name) =
623+ paras [ line $ " Cannot import type operator " ++ showIdent name ++ " from module " ++ runModuleName mn
624+ , line " It either does not exist or the module does not export it."
625+ ]
626+ renderSimpleErrorMessage (UnknownExportTypeOp name) =
627+ line $ " Cannot export unknown type operator " ++ showIdent name
612628 renderSimpleErrorMessage (UnknownImportTypeClass mn name) =
613629 paras [ line $ " Cannot import type class " ++ runProperName name ++ " from module " ++ runModuleName mn
614630 , line " It either does not exist or the module does not export it."
@@ -658,6 +674,8 @@ prettyPrintSingleError full level showWiki e = flip evalState defaultUnknownMap
658674 line $ " Duplicate export declaration for type class " ++ runProperName nm
659675 renderSimpleErrorMessage (DuplicateValueExport nm) =
660676 line $ " Duplicate export declaration for value " ++ showIdent nm
677+ renderSimpleErrorMessage (DuplicateTypeOpExport nm) =
678+ line $ " Duplicate export declaration for type operator " ++ showIdent nm
661679 renderSimpleErrorMessage (CycleInDeclaration nm) =
662680 line $ " The value of " ++ showIdent nm ++ " is undefined here, so this reference is not allowed."
663681 renderSimpleErrorMessage (CycleInModules mns) =
@@ -996,8 +1014,8 @@ prettyPrintSingleError full level showWiki e = flip evalState defaultUnknownMap
9961014
9971015 renderSimpleErrorMessage (InvalidOperatorInBinder op fn) =
9981016 paras [ line $ " Operator " ++ showIdent op ++ " cannot be used in a pattern as it is an alias for function " ++ showIdent fn ++ " ."
999- , line " Only aliases for data constructors may be used in patterns."
1000- ]
1017+ , line " Only aliases for data constructors may be used in patterns."
1018+ ]
10011019
10021020 renderSimpleErrorMessage DeprecatedRequirePath =
10031021 line " The require-path option is deprecated and will be removed in PureScript 0.9."
@@ -1205,6 +1223,7 @@ prettyPrintRef :: DeclarationRef -> String
12051223prettyPrintRef (TypeRef pn Nothing ) = runProperName pn ++ " (..)"
12061224prettyPrintRef (TypeRef pn (Just [] )) = runProperName pn
12071225prettyPrintRef (TypeRef pn (Just dctors)) = runProperName pn ++ " (" ++ intercalate " , " (map runProperName dctors) ++ " )"
1226+ prettyPrintRef (TypeOpRef ident) = " type " ++ showIdent ident
12081227prettyPrintRef (ValueRef ident) = showIdent ident
12091228prettyPrintRef (TypeClassRef pn) = " class " ++ runProperName pn
12101229prettyPrintRef (ProperRef name) = name
0 commit comments