@@ -24,6 +24,7 @@ import Control.Arrow ((&&&))
24import Language.PureScript.Crash
24import Language.PureScript.Crash
25import Language.PureScript.AST
25import Language.PureScript.AST
26import Language.PureScript.Pretty
26import Language.PureScript.Pretty
27+import Language.PureScript.Pretty.Common (before)
27import Language.PureScript.Types
28import Language.PureScript.Types
28import Language.PureScript.Names
29import Language.PureScript.Names
29import Language.PureScript.Kinds
30import Language.PureScript.Kinds
@@ -128,6 +129,7 @@ data SimpleErrorMessage
128 | UnusedDctorImport (ProperName 'TypeName)
129 | UnusedDctorImport (ProperName 'TypeName)
129 | UnusedDctorExplicitImport (ProperName 'TypeName) [ProperName 'ConstructorName]
130 | UnusedDctorExplicitImport (ProperName 'TypeName) [ProperName 'ConstructorName]
130 | DeprecatedOperatorDecl String
131 | DeprecatedOperatorDecl String
132+ | DeprecatedOperatorSection Expr (Either Expr Expr)
131 | DeprecatedQualifiedSyntax ModuleName ModuleName
133 | DeprecatedQualifiedSyntax ModuleName ModuleName
132 | DeprecatedClassImport ModuleName (ProperName 'ClassName)
134 | DeprecatedClassImport ModuleName (ProperName 'ClassName)
133 | DeprecatedClassExport (ProperName 'ClassName)
135 | DeprecatedClassExport (ProperName 'ClassName)
@@ -304,6 +306,7 @@ errorCode em = case unwrapErrorMessage em of
304 UnusedDctorImport{} -> "UnusedDctorImport"
306 UnusedDctorImport{} -> "UnusedDctorImport"
305 UnusedDctorExplicitImport{} -> "UnusedDctorExplicitImport"
307 UnusedDctorExplicitImport{} -> "UnusedDctorExplicitImport"
306 DeprecatedOperatorDecl{} -> "DeprecatedOperatorDecl"
308 DeprecatedOperatorDecl{} -> "DeprecatedOperatorDecl"
309+ DeprecatedOperatorSection{} -> "DeprecatedOperatorSection"
307 DeprecatedQualifiedSyntax{} -> "DeprecatedQualifiedSyntax"
310 DeprecatedQualifiedSyntax{} -> "DeprecatedQualifiedSyntax"
308 DeprecatedClassImport{} -> "DeprecatedClassImport"
311 DeprecatedClassImport{} -> "DeprecatedClassImport"
309 DeprecatedClassExport{} -> "DeprecatedClassExport"
312 DeprecatedClassExport{} -> "DeprecatedClassExport"
@@ -426,7 +429,7 @@ wikiUri e = "https://github.com/purescript/purescript/wiki/Error-Code-" ++ error
426-- TODO Other possible suggestions:
429-- TODO Other possible suggestions:
427-- WildcardInferredType - source span not small enough
430-- WildcardInferredType - source span not small enough
428-- DuplicateSelectiveImport - would require 2 ranges to remove and 1 insert
431-- DuplicateSelectiveImport - would require 2 ranges to remove and 1 insert
429−-- DeprecatedClassExport, DeprecatedClassImport, would want to replace smaller span?
432+-- DeprecatedClassExport, DeprecatedClassImport, DeprecatedOperatorSection, would want to replace smaller span?
430errorSuggestion :: SimpleErrorMessage -> Maybe ErrorSuggestion
433errorSuggestion :: SimpleErrorMessage -> Maybe ErrorSuggestion
431errorSuggestion err = case err of
434errorSuggestion err = case err of
432 UnusedImport{} -> emptySuggestion
435 UnusedImport{} -> emptySuggestion
@@ -854,6 +857,30 @@ prettyPrintSingleError full level showWiki e = flip evalState defaultUnknownMap
854 , line "Support for value-declared operators will be removed in PureScript 0.9."
857 , line "Support for value-declared operators will be removed in PureScript 0.9."
860+ renderSimpleErrorMessage (DeprecatedOperatorSection op val) =
861+ paras [ line "An operator section uses legacy syntax. Operator sections are now written using anonymous function syntax:"
862+ , indent $ foldr1 before $
866+ , prettyPrintValue valueDepth l
875+ , prettyPrintValue valueDepth r
878+ , line "Support for legacy operator sections will be removed in PureScript 0.9."
881+ renderOperator (PositionedValue _ _ ex) = renderOperator ex
882+ renderOperator (Var (Qualified _ (Op ident))) = line ident
883+ renderOperator other = Box.hcat Box.top [ line "`", prettyPrintValue valueDepth other, line "`" ]
857 renderSimpleErrorMessage (DeprecatedQualifiedSyntax name qualName) =
884 renderSimpleErrorMessage (DeprecatedQualifiedSyntax name qualName) =
858 paras [ line "Import uses the deprecated 'qualified' syntax:"
885 paras [ line "Import uses the deprecated 'qualified' syntax:"
859 , indent $ line $ "import qualified " ++ runModuleName name ++ " as " ++ runModuleName qualName
886 , indent $ line $ "import qualified " ++ runModuleName name ++ " as " ++ runModuleName qualName