@@ -48,32 +48,19 @@ data SimpleErrorMessage
48 | CannotWriteFile FilePath
48 | CannotWriteFile FilePath
49 | InfiniteType Type
49 | InfiniteType Type
50 | InfiniteKind Kind
50 | InfiniteKind Kind
51− | MultipleFixities Ident
51+ | MultipleValueOpFixities (OpName 'ValueOpName)
52+ | MultipleTypeOpFixities (OpName 'TypeOpName)
52 | OrphanTypeDeclaration Ident
53 | OrphanTypeDeclaration Ident
53− | OrphanFixityDeclaration String
54 | RedefinedModule ModuleName [SourceSpan]
54 | RedefinedModule ModuleName [SourceSpan]
55 | RedefinedIdent Ident
55 | RedefinedIdent Ident
56 | OverlappingNamesInLet
56 | OverlappingNamesInLet
57− | UnknownModule ModuleName
57+ | UnknownName (Qualified Name)
58− | UnknownType (Qualified (ProperName 'TypeName))
58+ | UnknownImport ModuleName Name
59− | UnknownTypeOp (Qualified Ident)
60− | UnknownTypeClass (Qualified (ProperName 'ClassName))
61− | UnknownValue (Qualified Ident)
62− | UnknownDataConstructor (Qualified (ProperName 'ConstructorName)) (Maybe (Qualified (ProperName 'ConstructorName)))
63− | UnknownTypeConstructor (Qualified (ProperName 'TypeName))
64− | UnknownImportType ModuleName (ProperName 'TypeName)
65− | UnknownExportType (ProperName 'TypeName)
66− | UnknownImportTypeOp ModuleName Ident
67− | UnknownExportTypeOp Ident
68− | UnknownImportTypeClass ModuleName (ProperName 'ClassName)
69− | UnknownExportTypeClass (ProperName 'ClassName)
70− | UnknownImportValue ModuleName Ident
71− | UnknownExportValue Ident
72− | UnknownExportModule ModuleName
73 | UnknownImportDataConstructor ModuleName (ProperName 'TypeName) (ProperName 'ConstructorName)
59 | UnknownImportDataConstructor ModuleName (ProperName 'TypeName) (ProperName 'ConstructorName)
74 | UnknownExportDataConstructor (ProperName 'TypeName) (ProperName 'ConstructorName)
61 | UnknownExportDataConstructor (ProperName 'TypeName) (ProperName 'ConstructorName)
75− | ScopeConflict String [ModuleName]
62+ | ScopeConflict Name [ModuleName]
76− | ScopeShadowing String (Maybe ModuleName) [ModuleName]
63+ | ScopeShadowing Name (Maybe ModuleName) [ModuleName]
77 | ConflictingTypeDecls (ProperName 'TypeName)
64 | ConflictingTypeDecls (ProperName 'TypeName)
78 | ConflictingCtorDecls (ProperName 'ConstructorName)
65 | ConflictingCtorDecls (ProperName 'ConstructorName)
79 | TypeConflictsWithClass (ProperName 'TypeName)
66 | TypeConflictsWithClass (ProperName 'TypeName)
@@ -83,7 +70,8 @@ data SimpleErrorMessage
83 | DuplicateModuleName ModuleName
70 | DuplicateModuleName ModuleName
84 | DuplicateClassExport (ProperName 'ClassName)
71 | DuplicateClassExport (ProperName 'ClassName)
85 | DuplicateValueExport Ident
72 | DuplicateValueExport Ident
73+ | DuplicateValueOpExport (OpName 'ValueOpName)
86− | DuplicateTypeOpExport Ident
74+ | DuplicateTypeOpExport (OpName 'TypeOpName)
87 | DuplicateTypeArgument String
75 | DuplicateTypeArgument String
88 | InvalidDoBind
76 | InvalidDoBind
89 | InvalidDoLet
77 | InvalidDoLet
@@ -128,18 +116,16 @@ data SimpleErrorMessage
128 | MissingTypeDeclaration Ident Type
116 | MissingTypeDeclaration Ident Type
129 | OverlappingPattern [[Binder]] Bool
117 | OverlappingPattern [[Binder]] Bool
130 | IncompleteExhaustivityCheck
118 | IncompleteExhaustivityCheck
131− | ClassOperator (ProperName 'ClassName) Ident
132 | MisleadingEmptyTypeImport ModuleName (ProperName 'TypeName)
119 | MisleadingEmptyTypeImport ModuleName (ProperName 'TypeName)
133 | ImportHidingModule ModuleName
120 | ImportHidingModule ModuleName
134 | UnusedImport ModuleName
121 | UnusedImport ModuleName
135 | UnusedExplicitImport ModuleName [String] (Maybe ModuleName) [DeclarationRef]
122 | UnusedExplicitImport ModuleName [String] (Maybe ModuleName) [DeclarationRef]
136 | UnusedDctorImport (ProperName 'TypeName)
123 | UnusedDctorImport (ProperName 'TypeName)
137 | UnusedDctorExplicitImport (ProperName 'TypeName) [ProperName 'ConstructorName]
124 | UnusedDctorExplicitImport (ProperName 'TypeName) [ProperName 'ConstructorName]
138− | DeprecatedOperatorDecl String
139 | DuplicateSelectiveImport ModuleName
125 | DuplicateSelectiveImport ModuleName
140 | DuplicateImport ModuleName ImportDeclarationType (Maybe ModuleName)
126 | DuplicateImport ModuleName ImportDeclarationType (Maybe ModuleName)
141− | DuplicateImportRef String
127+ | DuplicateImportRef Name
142− | DuplicateExportRef String
128+ | DuplicateExportRef Name
143 | IntOutOfRange Integer String Integer Integer
129 | IntOutOfRange Integer String Integer Integer
144 | RedundantEmptyHidingImport ModuleName
130 | RedundantEmptyHidingImport ModuleName
145 | ImplicitQualifiedImport ModuleName ModuleName [DeclarationRef]
131 | ImplicitQualifiedImport ModuleName ModuleName [DeclarationRef]
@@ -147,7 +133,7 @@ data SimpleErrorMessage
147 | HidingImport ModuleName [DeclarationRef]
133 | HidingImport ModuleName [DeclarationRef]
148 | CaseBinderLengthDiffers Int [Binder]
134 | CaseBinderLengthDiffers Int [Binder]
149 | IncorrectAnonymousArgument
135 | IncorrectAnonymousArgument
150− | InvalidOperatorInBinder Ident Ident
136+ | InvalidOperatorInBinder (Qualified (OpName 'ValueOpName)) (Qualified Ident)
151 | DeprecatedRequirePath
137 | DeprecatedRequirePath
152 | CannotGeneralizeRecursiveFunction Ident Type
138 | CannotGeneralizeRecursiveFunction Ident Type
153 deriving (Show)
139 deriving (Show)
@@ -232,29 +218,16 @@ errorCode em = case unwrapErrorMessage em of
232 CannotWriteFile{} -> "CannotWriteFile"
218 CannotWriteFile{} -> "CannotWriteFile"
233 InfiniteType{} -> "InfiniteType"
219 InfiniteType{} -> "InfiniteType"
234 InfiniteKind{} -> "InfiniteKind"
220 InfiniteKind{} -> "InfiniteKind"
235− MultipleFixities{} -> "MultipleFixities"
221+ MultipleValueOpFixities{} -> "MultipleValueOpFixities"
222+ MultipleTypeOpFixities{} -> "MultipleTypeOpFixities"
236 OrphanTypeDeclaration{} -> "OrphanTypeDeclaration"
223 OrphanTypeDeclaration{} -> "OrphanTypeDeclaration"
237− OrphanFixityDeclaration{} -> "OrphanFixityDeclaration"
238 RedefinedModule{} -> "RedefinedModule"
224 RedefinedModule{} -> "RedefinedModule"
239 RedefinedIdent{} -> "RedefinedIdent"
225 RedefinedIdent{} -> "RedefinedIdent"
240 OverlappingNamesInLet -> "OverlappingNamesInLet"
226 OverlappingNamesInLet -> "OverlappingNamesInLet"
241− UnknownModule{} -> "UnknownModule"
227+ UnknownName{} -> "UnknownName"
242− UnknownType{} -> "UnknownType"
228+ UnknownImport{} -> "UnknownImport"
243− UnknownTypeOp{} -> "UnknownTypeOp"
244− UnknownTypeClass{} -> "UnknownTypeClass"
245− UnknownValue{} -> "UnknownValue"
246− UnknownDataConstructor{} -> "UnknownDataConstructor"
247− UnknownTypeConstructor{} -> "UnknownTypeConstructor"
248− UnknownImportType{} -> "UnknownImportType"
249− UnknownImportTypeOp{} -> "UnknownImportTypeOp"
250− UnknownExportType{} -> "UnknownExportType"
251− UnknownExportTypeOp{} -> "UnknownExportTypeOp"
252− UnknownImportTypeClass{} -> "UnknownImportTypeClass"
253− UnknownExportTypeClass{} -> "UnknownExportTypeClass"
254− UnknownImportValue{} -> "UnknownImportValue"
255− UnknownExportValue{} -> "UnknownExportValue"
256− UnknownExportModule{} -> "UnknownExportModule"
257 UnknownImportDataConstructor{} -> "UnknownImportDataConstructor"
229 UnknownImportDataConstructor{} -> "UnknownImportDataConstructor"
230+ UnknownExport{} -> "UnknownExport"
258 UnknownExportDataConstructor{} -> "UnknownExportDataConstructor"
231 UnknownExportDataConstructor{} -> "UnknownExportDataConstructor"
259 ScopeConflict{} -> "ScopeConflict"
232 ScopeConflict{} -> "ScopeConflict"
260 ScopeShadowing{} -> "ScopeShadowing"
233 ScopeShadowing{} -> "ScopeShadowing"
@@ -267,6 +240,7 @@ errorCode em = case unwrapErrorMessage em of
267 DuplicateModuleName{} -> "DuplicateModuleName"
240 DuplicateModuleName{} -> "DuplicateModuleName"
268 DuplicateClassExport{} -> "DuplicateClassExport"
241 DuplicateClassExport{} -> "DuplicateClassExport"
269 DuplicateValueExport{} -> "DuplicateValueExport"
242 DuplicateValueExport{} -> "DuplicateValueExport"
243+ DuplicateValueOpExport{} -> "DuplicateValueOpExport"
270 DuplicateTypeOpExport{} -> "DuplicateTypeOpExport"
244 DuplicateTypeOpExport{} -> "DuplicateTypeOpExport"
271 DuplicateTypeArgument{} -> "DuplicateTypeArgument"
245 DuplicateTypeArgument{} -> "DuplicateTypeArgument"
272 InvalidDoBind -> "InvalidDoBind"
246 InvalidDoBind -> "InvalidDoBind"
@@ -312,14 +286,12 @@ errorCode em = case unwrapErrorMessage em of
312 MissingTypeDeclaration{} -> "MissingTypeDeclaration"
286 MissingTypeDeclaration{} -> "MissingTypeDeclaration"
313 OverlappingPattern{} -> "OverlappingPattern"
287 OverlappingPattern{} -> "OverlappingPattern"
314 IncompleteExhaustivityCheck{} -> "IncompleteExhaustivityCheck"
288 IncompleteExhaustivityCheck{} -> "IncompleteExhaustivityCheck"
315− ClassOperator{} -> "ClassOperator"
316 MisleadingEmptyTypeImport{} -> "MisleadingEmptyTypeImport"
289 MisleadingEmptyTypeImport{} -> "MisleadingEmptyTypeImport"
317 ImportHidingModule{} -> "ImportHidingModule"
290 ImportHidingModule{} -> "ImportHidingModule"
318 UnusedImport{} -> "UnusedImport"
291 UnusedImport{} -> "UnusedImport"
319 UnusedExplicitImport{} -> "UnusedExplicitImport"
292 UnusedExplicitImport{} -> "UnusedExplicitImport"
320 UnusedDctorImport{} -> "UnusedDctorImport"
293 UnusedDctorImport{} -> "UnusedDctorImport"
321 UnusedDctorExplicitImport{} -> "UnusedDctorExplicitImport"
294 UnusedDctorExplicitImport{} -> "UnusedDctorExplicitImport"
322− DeprecatedOperatorDecl{} -> "DeprecatedOperatorDecl"
323 DuplicateSelectiveImport{} -> "DuplicateSelectiveImport"
295 DuplicateSelectiveImport{} -> "DuplicateSelectiveImport"
324 DuplicateImport{} -> "DuplicateImport"
296 DuplicateImport{} -> "DuplicateImport"
325 DuplicateImportRef{} -> "DuplicateImportRef"
297 DuplicateImportRef{} -> "DuplicateImportRef"
@@ -541,7 +513,7 @@ prettyPrintSingleError full level showWiki e = flip evalState defaultUnknownMap
541 paras $ [ line "Unable to parse foreign module:"
513 paras $ [ line "Unable to parse foreign module:"
542 , indent . line $ path
514 , indent . line $ path
544− (map (indent . line) (concatMap Bundle.printErrorMessage (maybeToList extra)))
516+ map (indent . line) (concatMap Bundle.printErrorMessage (maybeToList extra))
545 renderSimpleErrorMessage (ErrorParsingModule err) =
517 renderSimpleErrorMessage (ErrorParsingModule err) =
546 paras [ line "Unable to parse module: "
518 paras [ line "Unable to parse module: "
547 , prettyPrintParseError err
519 , prettyPrintParseError err
@@ -586,70 +558,36 @@ prettyPrintSingleError full level showWiki e = flip evalState defaultUnknownMap
586 paras [ line "An infinite kind was inferred for a type: "
558 paras [ line "An infinite kind was inferred for a type: "
587 , indent $ line $ prettyPrintKind ki
559 , indent $ line $ prettyPrintKind ki
589− renderSimpleErrorMessage (MultipleFixities name) =
561+ renderSimpleErrorMessage (MultipleValueOpFixities op) =
590− line $ "There are multiple fixity/precedence declarations for " ++ showIdent name
562+ line $ "There are multiple fixity/precedence declarations for operator " ++ showOp op
563+ renderSimpleErrorMessage (MultipleTypeOpFixities op) =
564+ line $ "There are multiple fixity/precedence declarations for type operator " ++ showOp op
591 renderSimpleErrorMessage (OrphanTypeDeclaration nm) =
565 renderSimpleErrorMessage (OrphanTypeDeclaration nm) =
592 line $ "The type declaration for " ++ showIdent nm ++ " should be followed by its definition."
566 line $ "The type declaration for " ++ showIdent nm ++ " should be followed by its definition."
593− renderSimpleErrorMessage (OrphanFixityDeclaration op) =
594− line $ "The fixity/precedence declaration for " ++ show op ++ " should appear in the same module as its definition."
595 renderSimpleErrorMessage (RedefinedModule name filenames) =
567 renderSimpleErrorMessage (RedefinedModule name filenames) =
596 paras [ line ("The module " ++ runModuleName name ++ " has been defined multiple times:")
568 paras [ line ("The module " ++ runModuleName name ++ " has been defined multiple times:")
597 , indent . paras $ map (line . displaySourceSpan) filenames
569 , indent . paras $ map (line . displaySourceSpan) filenames
599 renderSimpleErrorMessage (RedefinedIdent name) =
571 renderSimpleErrorMessage (RedefinedIdent name) =
600 line $ "The value " ++ showIdent name ++ " has been defined multiple times"
572 line $ "The value " ++ showIdent name ++ " has been defined multiple times"
601− renderSimpleErrorMessage (UnknownModule mn) =
573+ renderSimpleErrorMessage (UnknownName name) =
602− line $ "Unknown module " ++ runModuleName mn
603− renderSimpleErrorMessage (UnknownType name) =
604− line $ "Unknown type " ++ showQualified runProperName name
574+ line $ "Unknown " ++ printName name
605− renderSimpleErrorMessage (UnknownTypeOp name) =
575+ renderSimpleErrorMessage (UnknownImport mn name) =
606− line $ "Unknown type operator " ++ showQualified showIdent name
607− renderSimpleErrorMessage (UnknownTypeClass name) =
608− line $ "Unknown type class " ++ showQualified runProperName name
609− renderSimpleErrorMessage (UnknownValue name) =
610− line $ "Unknown value " ++ showQualified showIdent name
611− renderSimpleErrorMessage (UnknownTypeConstructor name) =
612− line $ "Unknown type constructor " ++ showQualified runProperName name
613− renderSimpleErrorMessage (UnknownDataConstructor dc tc) =
614− line $ "Unknown data constructor " ++ showQualified runProperName dc ++ foldMap ((" for type constructor " ++) . showQualified runProperName) tc
615− renderSimpleErrorMessage (UnknownImportType mn name) =
616− paras [ line $ "Cannot import type " ++ runProperName name ++ " from module " ++ runModuleName mn
576+ paras [ line $ "Cannot import " ++ printName (Qualified Nothing name) ++ " from module " ++ runModuleName mn
617 , line "It either does not exist or the module does not export it."
577 , line "It either does not exist or the module does not export it."
619− renderSimpleErrorMessage (UnknownExportType name) =
620− line $ "Cannot export unknown type " ++ runProperName name
621− renderSimpleErrorMessage (UnknownImportTypeOp mn name) =
622− paras [ line $ "Cannot import type operator " ++ showIdent name ++ " from module " ++ runModuleName mn
623− , line "It either does not exist or the module does not export it."
625− renderSimpleErrorMessage (UnknownExportTypeOp name) =
626− line $ "Cannot export unknown type operator " ++ showIdent name
627− renderSimpleErrorMessage (UnknownImportTypeClass mn name) =
628− paras [ line $ "Cannot import type class " ++ runProperName name ++ " from module " ++ runModuleName mn
629− , line "It either does not exist or the module does not export it."
631− renderSimpleErrorMessage (UnknownExportTypeClass name) =
632− line $ "Cannot export unknown type class " ++ runProperName name
633− renderSimpleErrorMessage (UnknownImportValue mn name) =
634− paras [ line $ "Cannot import value " ++ showIdent name ++ " from module " ++ runModuleName mn
635− , line "It either does not exist or the module does not export it."
637− renderSimpleErrorMessage (UnknownExportValue name) =
638− line $ "Cannot export unknown value " ++ showIdent name
639− renderSimpleErrorMessage (UnknownExportModule name) =
640− paras [ line $ "Cannot export unknown module " ++ runModuleName name
641− , line "It either does not exist or has not been imported by the current module."
643− renderSimpleErrorMessage (UnknownImportDataConstructor mn tcon dcon) =
579+ renderSimpleErrorMessage (UnknownImportDataConstructor mn dcon tcon) =
644 line $ "Module " ++ runModuleName mn ++ " does not export data constructor " ++ runProperName dcon ++ " for type " ++ runProperName tcon
580 line $ "Module " ++ runModuleName mn ++ " does not export data constructor " ++ runProperName dcon ++ " for type " ++ runProperName tcon
581+ renderSimpleErrorMessage (UnknownExport name) =
582+ line $ "Cannot export unknown " ++ printName (Qualified Nothing name)
645 renderSimpleErrorMessage (UnknownExportDataConstructor tcon dcon) =
583 renderSimpleErrorMessage (UnknownExportDataConstructor tcon dcon) =
646 line $ "Cannot export data constructor " ++ runProperName dcon ++ " for type " ++ runProperName tcon ++ ", as it has not been declared."
584 line $ "Cannot export data constructor " ++ runProperName dcon ++ " for type " ++ runProperName tcon ++ ", as it has not been declared."
647 renderSimpleErrorMessage (ScopeConflict nm ms) =
585 renderSimpleErrorMessage (ScopeConflict nm ms) =
648− paras [ line $ "Conflicting definitions are in scope for " ++ nm ++ " from the following modules:"
586+ paras [ line $ "Conflicting definitions are in scope for " ++ printName (Qualified Nothing nm) ++ " from the following modules:"
649 , indent $ paras $ map (line . runModuleName) ms
587 , indent $ paras $ map (line . runModuleName) ms
651 renderSimpleErrorMessage (ScopeShadowing nm exmn ms) =
589 renderSimpleErrorMessage (ScopeShadowing nm exmn ms) =
652− paras [ line $ "Shadowed definitions are in scope for " ++ nm ++ " from the following open imports:"
590+ paras [ line $ "Shadowed definitions are in scope for " ++ printName (Qualified Nothing nm) ++ " from the following open imports:"
653 , indent $ paras $ map (line . ("import " ++) . runModuleName) ms
591 , indent $ paras $ map (line . ("import " ++) . runModuleName) ms
654 , line $ "These will be ignored and the " ++ case exmn of
592 , line $ "These will be ignored and the " ++ case exmn of
655 Just exmn' -> "declaration from " ++ runModuleName exmn' ++ " will be used."
593 Just exmn' -> "declaration from " ++ runModuleName exmn' ++ " will be used."
@@ -673,8 +611,10 @@ prettyPrintSingleError full level showWiki e = flip evalState defaultUnknownMap
673 line $ "Duplicate export declaration for type class " ++ runProperName nm
611 line $ "Duplicate export declaration for type class " ++ runProperName nm
674 renderSimpleErrorMessage (DuplicateValueExport nm) =
612 renderSimpleErrorMessage (DuplicateValueExport nm) =
675 line $ "Duplicate export declaration for value " ++ showIdent nm
613 line $ "Duplicate export declaration for value " ++ showIdent nm
676− renderSimpleErrorMessage (DuplicateTypeOpExport nm) =
614+ renderSimpleErrorMessage (DuplicateValueOpExport op) =
615+ line $ "Duplicate export declaration for operator " ++ showOp op
616+ renderSimpleErrorMessage (DuplicateTypeOpExport op) =
677− line $ "Duplicate export declaration for type operator " ++ showIdent nm
617+ line $ "Duplicate export declaration for type operator " ++ showOp op
678 renderSimpleErrorMessage (CycleInDeclaration nm) =
618 renderSimpleErrorMessage (CycleInDeclaration nm) =
679 line $ "The value of " ++ showIdent nm ++ " is undefined here, so this reference is not allowed."
619 line $ "The value of " ++ showIdent nm ++ " is undefined here, so this reference is not allowed."
680 renderSimpleErrorMessage (CycleInModules mns) =
620 renderSimpleErrorMessage (CycleInModules mns) =
@@ -867,11 +807,6 @@ prettyPrintSingleError full level showWiki e = flip evalState defaultUnknownMap
867 line $ "Type variable '" ++ tv ++ "' was shadowed."
807 line $ "Type variable '" ++ tv ++ "' was shadowed."
868 renderSimpleErrorMessage (UnusedTypeVar tv) =
808 renderSimpleErrorMessage (UnusedTypeVar tv) =
869 line $ "Type variable '" ++ tv ++ "' was declared but not used."
809 line $ "Type variable '" ++ tv ++ "' was declared but not used."
870− renderSimpleErrorMessage (ClassOperator className opName) =
871− paras [ line $ "Type class '" ++ runProperName className ++ "' declares operator " ++ showIdent opName ++ "."
872− , line "This may be disallowed in the future - consider declaring a named member in the class and making the operator an alias:"
873− , indent . line $ showIdent opName ++ " = someMember"
875 renderSimpleErrorMessage (MisleadingEmptyTypeImport mn name) =
810 renderSimpleErrorMessage (MisleadingEmptyTypeImport mn name) =
876 line $ "Importing type " ++ runProperName name ++ "(..) from " ++ runModuleName mn ++ " is misleading as it has no exported data constructors."
811 line $ "Importing type " ++ runProperName name ++ "(..) from " ++ runModuleName mn ++ " is misleading as it has no exported data constructors."
877 renderSimpleErrorMessage (ImportHidingModule name) =
812 renderSimpleErrorMessage (ImportHidingModule name) =
@@ -917,24 +852,17 @@ prettyPrintSingleError full level showWiki e = flip evalState defaultUnknownMap
917 paras [ line $ "The import of type " ++ runProperName name ++ " includes the following unused data constructors:"
852 paras [ line $ "The import of type " ++ runProperName name ++ " includes the following unused data constructors:"
918 , indent $ paras $ map (line .runProperName) names ]
853 , indent $ paras $ map (line .runProperName) names ]
920− renderSimpleErrorMessage (DeprecatedOperatorDecl name) =
921− paras [ line $ "The operator (" ++ name ++ ") was declared as a value rather than an alias for a named function."
922− , line "Operator aliases are declared by using a fixity declaration, for example:"
923− , indent $ line $ "infixl 9 someFunction as " ++ name
924− , line "Support for value-declared operators will be removed in PureScript 0.9."
927 renderSimpleErrorMessage (DuplicateSelectiveImport name) =
855 renderSimpleErrorMessage (DuplicateSelectiveImport name) =
928 line $ "There is an existing import of " ++ runModuleName name ++ ", consider merging the import lists"
856 line $ "There is an existing import of " ++ runModuleName name ++ ", consider merging the import lists"
930 renderSimpleErrorMessage (DuplicateImport name imp qual) =
858 renderSimpleErrorMessage (DuplicateImport name imp qual) =
931 line $ "Duplicate import of " ++ prettyPrintImport name imp qual
859 line $ "Duplicate import of " ++ prettyPrintImport name imp qual
933− renderSimpleErrorMessage (DuplicateImportRef ref) =
861+ renderSimpleErrorMessage (DuplicateImportRef name) =
934− line $ "Import list contains multiple references to " ++ ref
862+ line $ "Import list contains multiple references to " ++ printName (Qualified Nothing name)
936− renderSimpleErrorMessage (DuplicateExportRef ref) =
864+ renderSimpleErrorMessage (DuplicateExportRef name) =
937− line $ "Export list contains multiple references to " ++ ref
865+ line $ "Export list contains multiple references to " ++ printName (Qualified Nothing name)
939 renderSimpleErrorMessage (IntOutOfRange value backend lo hi) =
867 renderSimpleErrorMessage (IntOutOfRange value backend lo hi) =
940 paras [ line $ "Integer value " ++ show value ++ " is out of range for the " ++ backend ++ " backend."
868 paras [ line $ "Integer value " ++ show value ++ " is out of range for the " ++ backend ++ " backend."
@@ -969,7 +897,7 @@ prettyPrintSingleError full level showWiki e = flip evalState defaultUnknownMap
969 line "An anonymous function argument appears in an invalid context."
897 line "An anonymous function argument appears in an invalid context."
971 renderSimpleErrorMessage (InvalidOperatorInBinder op fn) =
899 renderSimpleErrorMessage (InvalidOperatorInBinder op fn) =
972− paras [ line $ "Operator " ++ showIdent op ++ " cannot be used in a pattern as it is an alias for function " ++ showIdent fn ++ "."
900+ paras [ line $ "Operator " ++ showQualified showOp op ++ " cannot be used in a pattern as it is an alias for function " ++ showQualified showIdent fn ++ "."
973 , line "Only aliases for data constructors may be used in patterns."
901 , line "Only aliases for data constructors may be used in patterns."
@@ -1099,6 +1027,24 @@ prettyPrintSingleError full level showWiki e = flip evalState defaultUnknownMap
1099 , detail
1027 , detail
1030+ printName :: Qualified Name -> String
1031+ printName (Qualified mn (IdentName name)) =
1032+ "value " ++ showQualified showIdent (Qualified mn name)
1033+ printName (Qualified mn (ValOpName op)) =
1034+ "operator " ++ showQualified showOp (Qualified mn op)
1035+ printName (Qualified mn (TyName name)) =
1036+ "type " ++ showQualified runProperName (Qualified mn name)
1037+ printName (Qualified mn (TyOpName op)) =
1038+ "type operator " ++ showQualified showOp (Qualified mn op)
1039+ printName (Qualified mn (DctorName name)) =
1040+ "data constructor " ++ showQualified runProperName (Qualified mn name)
1041+ printName (Qualified mn (TyClassName name)) =
1042+ "type class " ++ showQualified runProperName (Qualified mn name)
1043+ printName (Qualified Nothing (ModName name)) =
1044+ "module " ++ runModuleName name
1045+ printName (Qualified _ ModName{}) =
1046+ internalError "qualified ModName in printName"
1102 valueDepth :: Int
1048 valueDepth :: Int
1103 valueDepth | full = 1000
1049 valueDepth | full = 1000
1104 | otherwise = 3
1050 | otherwise = 3
@@ -1179,8 +1125,9 @@ prettyPrintRef :: DeclarationRef -> String
1179prettyPrintRef (TypeRef pn Nothing) = runProperName pn ++ "(..)"
1125prettyPrintRef (TypeRef pn Nothing) = runProperName pn ++ "(..)"
1180prettyPrintRef (TypeRef pn (Just [])) = runProperName pn
1126prettyPrintRef (TypeRef pn (Just [])) = runProperName pn
1181prettyPrintRef (TypeRef pn (Just dctors)) = runProperName pn ++ "(" ++ intercalate ", " (map runProperName dctors) ++ ")"
1127prettyPrintRef (TypeRef pn (Just dctors)) = runProperName pn ++ "(" ++ intercalate ", " (map runProperName dctors) ++ ")"
1182−prettyPrintRef (TypeOpRef ident) = "type " ++ showIdent ident
1128+prettyPrintRef (TypeOpRef op) = "type " ++ showOp op
1183prettyPrintRef (ValueRef ident) = showIdent ident
1129prettyPrintRef (ValueRef ident) = showIdent ident
1130+prettyPrintRef (ValueOpRef op) = showOp op
1184prettyPrintRef (TypeClassRef pn) = "class " ++ runProperName pn
1131prettyPrintRef (TypeClassRef pn) = "class " ++ runProperName pn
1185prettyPrintRef (TypeInstanceRef ident) = showIdent ident
1132prettyPrintRef (TypeInstanceRef ident) = showIdent ident
1186prettyPrintRef (ModuleRef name) = "module " ++ runModuleName name
1133prettyPrintRef (ModuleRef name) = "module " ++ runModuleName name