From b450892d69aa3013861fde6c73299d2c17aba3dc Mon Sep 17 00:00:00 2001 From: Fabrizio Ferrai Date: Mon, 25 Dec 2023 11:43:30 +0200 Subject: [PATCH] Enable strict building on all packages (#1153) --- bin/spago.yaml | 1 + core/spago.yaml | 2 ++ docs-search/client-halogen/spago.yaml | 2 ++ .../src/Docs/Search/App/SearchField.purs | 4 +-- .../src/Docs/Search/App/SearchResults.purs | 26 +++++++-------- .../src/Docs/Search/App/Sidebar.purs | 4 +-- docs-search/common/spago.yaml | 5 +++ .../common/src/Docs/Search/Config.purs | 4 +-- .../common/src/Docs/Search/Declarations.purs | 10 +++--- .../common/src/Docs/Search/Engine.purs | 7 ++-- .../common/src/Docs/Search/JsonCodec.purs | 13 +++----- docs-search/common/src/Docs/Search/Meta.purs | 11 +++---- docs-search/common/src/Docs/Search/Score.purs | 6 +--- .../common/src/Docs/Search/SearchResult.purs | 21 +++++------- .../common/src/Docs/Search/TypeDecoder.purs | 18 ++++------- .../common/src/Docs/Search/TypeQuery.purs | 32 +++++++++---------- .../common/src/Docs/Search/TypeShape.purs | 13 ++++---- docs-search/common/src/Docs/Search/Types.purs | 14 +++----- docs-search/index/spago.yaml | 2 ++ .../index/src/Docs/Search/ModuleParser.purs | 4 +-- .../index/test/Docs/Search/IndexBuilder.purs | 3 -- spago.yaml | 1 + 22 files changed, 88 insertions(+), 115 deletions(-) diff --git a/bin/spago.yaml b/bin/spago.yaml index 9d171bc1b..15b611e0d 100644 --- a/bin/spago.yaml +++ b/bin/spago.yaml @@ -4,6 +4,7 @@ package: version: 0.93.22 license: BSD-3-Clause build: + strict: true censor_project_warnings: - WildcardInferredType dependencies: diff --git a/core/spago.yaml b/core/spago.yaml index 3c488e478..69300a949 100644 --- a/core/spago.yaml +++ b/core/spago.yaml @@ -1,5 +1,7 @@ package: name: spago-core + build: + strict: true dependencies: - aff - argonaut-core diff --git a/docs-search/client-halogen/spago.yaml b/docs-search/client-halogen/spago.yaml index ca3c71648..86649abab 100644 --- a/docs-search/client-halogen/spago.yaml +++ b/docs-search/client-halogen/spago.yaml @@ -33,6 +33,8 @@ package: - web-html - web-storage - web-uievents + build: + strict: true bundle: type: "app" minify: true diff --git a/docs-search/client-halogen/src/Docs/Search/App/SearchField.purs b/docs-search/client-halogen/src/Docs/Search/App/SearchField.purs index a418873ae..b2f53e5c1 100644 --- a/docs-search/client-halogen/src/Docs/Search/App/SearchField.purs +++ b/docs-search/client-halogen/src/Docs/Search/App/SearchField.purs @@ -62,7 +62,7 @@ handleQuery :: forall a . Query a -> H.HalogenM State Action () SearchFieldMessage Aff (Maybe a) -handleQuery (ReadURIHash next) = do +handleQuery (ReadURIHash _next) = do oldInput <- H.get <#> _.input newInput <- H.liftEffect URIHash.getInput when (oldInput /= newInput) do @@ -85,7 +85,7 @@ handleAction = case _ of (HTMLDocument.toEventTarget document) (map (HandleKey sid) <<< KE.fromEvent) - HandleKey sid ev -> do + HandleKey _sid ev -> do when (KE.code ev == "KeyS") do state <- H.get diff --git a/docs-search/client-halogen/src/Docs/Search/App/SearchResults.purs b/docs-search/client-halogen/src/Docs/Search/App/SearchResults.purs index 2fdfae958..9ddff5c28 100644 --- a/docs-search/client-halogen/src/Docs/Search/App/SearchResults.purs +++ b/docs-search/client-halogen/src/Docs/Search/App/SearchResults.purs @@ -15,7 +15,7 @@ import Docs.Search.SearchResult (ResultInfo(..), SearchResult(..)) import Docs.Search.TypeDecoder (Constraint(..), Constraint', Type', Qualified(..), QualifiedBy(..), ProperName(..), Type(..), TypeArgument, ClassName, FunDeps) import Docs.Search.TypeQuery as TypeQuery import Docs.Search.TypeIndex (TypeIndex) -import Docs.Search.Types (Identifier(..), ModuleName(..), PackageName) +import Docs.Search.Types (Identifier, ModuleName(..), PackageName) import Docs.Search.Meta (Meta) import Prelude @@ -95,15 +95,15 @@ handleQuery :: forall o a . Query a -> H.HalogenM State Action () o Aff (Maybe a) -handleQuery (MessageFromSearchField Focused next) = do +handleQuery (MessageFromSearchField Focused _next) = do pure Nothing -handleQuery (MessageFromSearchField LostFocus next) = do +handleQuery (MessageFromSearchField LostFocus _next) = do pure Nothing -handleQuery (MessageFromSearchField InputCleared next) = do +handleQuery (MessageFromSearchField InputCleared _next) = do H.modify_ (_ { results = [], input = "", mode = Off }) showPageContents pure Nothing -handleQuery (MessageFromSearchField (InputUpdated input_) next) = do +handleQuery (MessageFromSearchField (InputUpdated input_) _next) = do let input = String.trim input_ state <- H.modify (_ { input = input }) @@ -233,9 +233,9 @@ renderResult state (DeclResult r) = renderSearchResult state r renderResult state (TypeResult r) = renderSearchResult state r -renderResult state (PackResult r) = +renderResult _state (PackResult r) = renderPackageResult r -renderResult state (MdlResult r) = +renderResult _state (MdlResult r) = renderModuleResult r renderPackageResult @@ -272,7 +272,7 @@ renderModuleResult :: forall a . ModuleResult -> Array (HH.HTML a Action) -renderModuleResult { name, package } = +renderModuleResult { name, package: _ } = [ HH.div [ HP.class_ (wrap "result") ] [ HH.h3 [ HP.class_ (wrap "result__title") ] [ HH.span @@ -457,7 +457,7 @@ renderTypeClassMemberSignature } -> { name :: Identifier | rest } -> Array (HH.HTML a Action) -renderTypeClassMemberSignature { type: ty, typeClass, typeClassArguments } result = +renderTypeClassMemberSignature { type: ty, typeClass: _, typeClassArguments: _ } result = [ HH.text $ unwrap result.name , HH.text " :: " , renderType ty @@ -507,8 +507,8 @@ renderTypeSynonymSignature { type: ty, arguments } { name } = ] renderTypeArgument :: forall a. TypeArgument -> Array (HH.HTML a Action) -renderTypeArgument ({ name, kind }) = - case kind of +renderTypeArgument ({ name, kind: maybeKind }) = + case maybeKind of Nothing -> [ HH.text $ name ] Just kind -> @@ -614,8 +614,8 @@ renderForAll ty = [ keyword "forall" ] <> ( Array.fromFoldable foralls.binders <#> - \{ name, kind } -> - case kind of + \{ name, kind: maybeKind } -> + case maybeKind of Nothing -> HH.text (" " <> name) Just kind -> HH.span_ diff --git a/docs-search/client-halogen/src/Docs/Search/App/Sidebar.purs b/docs-search/client-halogen/src/Docs/Search/App/Sidebar.purs index 6351c5379..1f8d6d442 100644 --- a/docs-search/client-halogen/src/Docs/Search/App/Sidebar.purs +++ b/docs-search/client-halogen/src/Docs/Search/App/Sidebar.purs @@ -107,7 +107,7 @@ handleQuery :: forall a i . Query a -> H.HalogenM State i () Action Aff (Maybe a) -handleQuery (UpdateModuleGrouping next) = do +handleQuery (UpdateModuleGrouping _next) = do oldGroupingMode <- H.get <#> _.groupingMode newGroupingMode <- H.liftEffect loadGroupingModeFromLocalStorage when (oldGroupingMode /= newGroupingMode) do @@ -201,7 +201,7 @@ getCurrentModuleName = do getCurrentPackage :: ModuleIndex -> Maybe ModuleName -> PackageInfo getCurrentPackage { modulePackages } (Just moduleName) = fromMaybe UnknownPackage $ Map.lookup moduleName modulePackages -getCurrentPackage { modulePackages } Nothing = UnknownPackage +getCurrentPackage { modulePackages: _ } Nothing = UnknownPackage -- | Convert checkbox status to sidebar mode isCheckedToGroupingMode :: Boolean -> GroupingMode diff --git a/docs-search/common/spago.yaml b/docs-search/common/spago.yaml index 3a2de0ca9..572d7f113 100644 --- a/docs-search/common/spago.yaml +++ b/docs-search/common/spago.yaml @@ -1,5 +1,10 @@ package: name: docs-search-common + build: + strict: true + censor_project_warnings: + - ImplicitQualifiedImport + - ImplicitQualifiedImportReExport dependencies: - aff - aff-promise diff --git a/docs-search/common/src/Docs/Search/Config.purs b/docs-search/common/src/Docs/Search/Config.purs index a3a8f02d8..553dfa569 100644 --- a/docs-search/common/src/Docs/Search/Config.purs +++ b/docs-search/common/src/Docs/Search/Config.purs @@ -1,13 +1,11 @@ module Docs.Search.Config where -import Docs.Search.Types (GlobalIdentifier, PackageName, PartId(..), URL, FilePath) - import Prelude import Data.Char as Char import Data.List (List, (:)) -import Data.List as List import Data.Newtype (wrap) +import Docs.Search.Types (GlobalIdentifier, PackageName, PartId(..), URL, FilePath) version :: String version = "0.0.12" diff --git a/docs-search/common/src/Docs/Search/Declarations.purs b/docs-search/common/src/Docs/Search/Declarations.purs index 09650b5f5..1e7bff57c 100644 --- a/docs-search/common/src/Docs/Search/Declarations.purs +++ b/docs-search/common/src/Docs/Search/Declarations.purs @@ -46,7 +46,7 @@ mkDeclarations scores = Declarations <<< foldr (insertDocModule scores) mempty -> Trie Char (List SearchResult) -> Trie Char (List SearchResult) - insertDocModule scores (DocModule { name, declarations }) trie = + insertDocModule _scores (DocModule { name, declarations }) trie = foldr (insertDeclaration scores name) trie declarations insertDeclaration @@ -55,7 +55,7 @@ insertDeclaration -> Declaration -> Trie Char (List SearchResult) -> Trie Char (List SearchResult) -insertDeclaration scores moduleName entry@(Declaration { title }) trie = foldr insertSearchResult trie (resultsForDeclaration scores moduleName entry) +insertDeclaration scores moduleName entry@(Declaration { title: _ }) trie = foldr insertSearchResult trie (resultsForDeclaration scores moduleName entry) insertSearchResult :: { path :: String @@ -120,7 +120,7 @@ resultsForDeclaration scores moduleName indexEntry@(Declaration entry) = _ -> Nothing mkInfo :: DeclLevel -> Declaration -> Maybe ResultInfo -mkInfo declLevel (Declaration { info, title }) = +mkInfo declLevel (Declaration { info, title: _ }) = case info of ValueDeclaration ty -> Just $ ValueResult { type: ty } @@ -195,7 +195,7 @@ getLevelAndName (Declaration { info, title }) = ) title ) - ExternDataDeclaration _ kind -> + ExternDataDeclaration _ _kind -> { name: title, declLevel: TypeLevel } -- | Extract package name from `sourceSpan.name`, which contains path to @@ -228,7 +228,7 @@ resultsForChildDeclaration packageInfo moduleName parentResult - child@(ChildDeclaration { title, info, comments, sourceSpan }) + child@(ChildDeclaration { title, info: _, comments, sourceSpan }) | Just resultInfo <- mkChildInfo parentResult child = { path: title , result: SearchResult diff --git a/docs-search/common/src/Docs/Search/Engine.purs b/docs-search/common/src/Docs/Search/Engine.purs index 4809719c0..25ffc415e 100644 --- a/docs-search/common/src/Docs/Search/Engine.purs +++ b/docs-search/common/src/Docs/Search/Engine.purs @@ -70,7 +70,7 @@ getResultPackageInfo (MdlResult r) = r.package getResultModuleName :: Result -> ModuleName getResultModuleName (DeclResult r) = (unwrap r).moduleName getResultModuleName (TypeResult r) = (unwrap r).moduleName -getResultModuleName (PackResult r) = ModuleName "" +getResultModuleName (PackResult _r) = ModuleName "" getResultModuleName (MdlResult r) = r.name getResultName :: Result -> String @@ -79,10 +79,7 @@ getResultName (TypeResult r) = unwrap (unwrap r).name getResultName (PackResult r) = unwrap r.name getResultName (MdlResult r) = unwrap r.name -sortByPopularity - :: forall index typeIndex - . Array Result - -> Array Result +sortByPopularity :: Array Result -> Array Result sortByPopularity = Array.sortBy ( compare `on` (getResultScore >>> negate) diff --git a/docs-search/common/src/Docs/Search/JsonCodec.purs b/docs-search/common/src/Docs/Search/JsonCodec.purs index dd42a3210..d547262e5 100644 --- a/docs-search/common/src/Docs/Search/JsonCodec.purs +++ b/docs-search/common/src/Docs/Search/JsonCodec.purs @@ -5,18 +5,15 @@ module Docs.Search.JsonCodec ) where import Prelude -import Prim.Row (class Cons) +import Prim.Row (class Cons) import Codec.Json.Unidirectional.Value (DecodeError, printDecodeError) -import Data.Argonaut.Core (Json, fromString, stringify) -import Data.Codec.Argonaut (JsonCodec, JsonDecodeError(..)) -import Data.Codec.Argonaut.Common as CA -import Data.Codec.Argonaut.Sum as CAS -import Data.Codec.Argonaut.Record as CAR -import Data.Either (Either(..)) +import Data.Argonaut.Core (Json) +import Data.Codec.Argonaut (JsonDecodeError(..)) +import Data.Either (Either) import Data.Profunctor.Choice (left) import Data.Symbol (class IsSymbol) -import Data.Variant +import Data.Variant (Variant, inj) import Type.Proxy (Proxy(..)) -- | Equivalent to `Data.Variant.inj`, just uses a Visible Type Application instead of Proxy diff --git a/docs-search/common/src/Docs/Search/Meta.purs b/docs-search/common/src/Docs/Search/Meta.purs index 7a90ee837..b737dfb7d 100644 --- a/docs-search/common/src/Docs/Search/Meta.purs +++ b/docs-search/common/src/Docs/Search/Meta.purs @@ -1,16 +1,13 @@ module Docs.Search.Meta where +import Prelude + +import Data.Codec.Argonaut (JsonCodec) +import Data.Codec.Argonaut.Record as CAR import Docs.Search.Config as Config import Docs.Search.Loader as Loader import Docs.Search.Types (PackageName) import Docs.Search.Types as Package - -import Data.Codec.Argonaut (JsonCodec, JsonDecodeError) -import Data.Codec.Argonaut.Common as CA -import Data.Codec.Argonaut.Record as CAR - -import Prelude - import Effect.Aff (Aff, catchError) type Meta = diff --git a/docs-search/common/src/Docs/Search/Score.purs b/docs-search/common/src/Docs/Search/Score.purs index 5de0e078e..f8745c005 100644 --- a/docs-search/common/src/Docs/Search/Score.purs +++ b/docs-search/common/src/Docs/Search/Score.purs @@ -1,17 +1,13 @@ module Docs.Search.Score where -import Docs.Search.Types (PackageName(..), PackageInfo(..), PackageScore(..)) - import Prelude import Data.Array as Array import Data.Map (Map) import Data.Map as Map import Data.Maybe (fromMaybe) -import Data.Newtype (unwrap, wrap) -import Data.String.CodeUnits as String import Data.Tuple (Tuple(..)) -import Data.Tuple as Tuple +import Docs.Search.Types (PackageInfo(..), PackageName, PackageScore(..)) import Safe.Coerce (coerce) import Web.Bower.PackageMeta as Bower diff --git a/docs-search/common/src/Docs/Search/SearchResult.purs b/docs-search/common/src/Docs/Search/SearchResult.purs index 605b48635..3418fe4a4 100644 --- a/docs-search/common/src/Docs/Search/SearchResult.purs +++ b/docs-search/common/src/Docs/Search/SearchResult.purs @@ -1,19 +1,8 @@ module Docs.Search.SearchResult where -import Docs.Search.JsonCodec (inject) -import Docs.Search.DocsJson as Docs -import Docs.Search.TypeDecoder (Constraint, FunDeps, QualifiedName, Type, TypeArgument) -import Docs.Search.Types (Identifier(..), ModuleName, PackageInfo, PackageScore) -import Docs.Search.Types as Package -import Docs.Search.TypeDecoder (Constraint', Qualified, Type, TypeArgument, FunDeps, Type', ProperName(..), ClassName(..)) -import Docs.Search.TypeDecoder as TypeDecoder -import Docs.Search.JsonCodec as JsonCodec -import Docs.Search.DocTypes (DataDeclType, SourceSpan) -import Docs.Search.Types (ModuleName, PackageInfo, Identifier, PackageScore) - import Prelude -import Data.Codec.Argonaut (JsonCodec, JsonDecodeError) +import Data.Codec.Argonaut (JsonCodec) import Data.Codec.Argonaut.Common as CA import Data.Codec.Argonaut.Record as CAR import Data.Codec.Argonaut.Variant as CAV @@ -21,8 +10,14 @@ import Data.Either (Either(..)) import Data.Maybe (Maybe(..)) import Data.Newtype (class Newtype, un) import Data.Profunctor (wrapIso, dimap) -import Data.Tuple (Tuple) import Data.Variant as Variant +import Docs.Search.DocTypes (DataDeclType, SourceSpan) +import Docs.Search.DocsJson as Docs +import Docs.Search.JsonCodec (inject) +import Docs.Search.TypeDecoder (ClassName, Constraint', FunDeps, ProperName, Qualified, Type', TypeArgument) +import Docs.Search.TypeDecoder as TypeDecoder +import Docs.Search.Types (Identifier(..), ModuleName, PackageInfo, PackageScore) +import Docs.Search.Types as Package -- | Metadata that makes sense only for certain types of search results. data ResultInfo diff --git a/docs-search/common/src/Docs/Search/TypeDecoder.purs b/docs-search/common/src/Docs/Search/TypeDecoder.purs index 849c3f7a4..a1ddb69f0 100644 --- a/docs-search/common/src/Docs/Search/TypeDecoder.purs +++ b/docs-search/common/src/Docs/Search/TypeDecoder.purs @@ -12,25 +12,19 @@ module Docs.Search.TypeDecoder , constraintCodec ) where -import Docs.Search.DocTypes as ReExport - -import Docs.Search.Types (Identifier) -import Docs.Search.DocTypes (Type', Type(..), Constraint(..), Label(..), DataDeclType, ProperName(..), Qualified(..)) -import Docs.Search.DocTypes as DocTypes -import Docs.Search.JsonCodec as JsonCodec - import Prelude +import Prim hiding (Constraint) import Codec.Json.Unidirectional.Value as Json import Data.Argonaut.Core as Argonaut -import Data.Codec.Argonaut (JsonCodec) import Data.Codec.Argonaut.Common as CA import Data.Codec.Argonaut.Record as CAR -import Data.List (List(..), (:)) -import Data.List as List -import Data.Maybe (Maybe(..)) -import Data.Newtype (wrap) +import Data.Maybe (Maybe) import Data.Tuple (Tuple) +import Docs.Search.DocTypes (AnyOpName, ChildDeclaration(..), ChildDeclarationInfo(..), ClassName, Constraint(..), Constraint', ConstraintData(..), ConstructorName, DataDeclType(..), Declaration(..), DeclarationInfo(..), DocLink(..), DocModule(..), GithubRepo(..), GithubUser(..), Ident(..), InPackage(..), InternalIdentData(..), KindInfo(..), Label(..), LinkLocation(..), LinksContext(..), ManifestError(..), ModuleName(..), Name(..), Namespace, NotYetKnown(..), OpName(..), OpNameType, Package(..), PackageError(..), ProperName(..), ProperNameType, Qualified(..), QualifiedBy(..), RowListItem(..), SkolemScope(..), SourceAnn(..), SourceConstraint, SourcePos(..), SourceSpan(..), SourceType, Type(..), Type', TypeName, TypeOpName, TypeVarVisibility(..), UploadedPackage, ValueOpName, VerifiedPackage, WildcardData(..), _ss, _sss, byNullSourcePos, compareConstraint, compareMaybeType, compareType, eqConstraint, eqMaybeType, eqType, fromChildDeclaration, fromChildDeclarationInfo, fromConstraint, fromConstraintData, fromDataDeclType, fromDeclaration, fromDeclarationInfo, fromDocModule, fromGithubRepo, fromGithubUser, fromISO8601, fromIdent, fromInPackage, fromInternalIdentData, fromKindInfo, fromLabel, fromModuleName, fromNotYetKnown, fromOpName, fromPackage, fromProperName, fromQualified, fromQualifiedBy, fromSkolemScope, fromSourceAnn, fromSourcePos, fromSourceSpan, fromType, fromTypeVarVisibility, fromVersion, fromWildcardData, hh_mm, kindType, nullSourceAnn, nullSourcePos, nullSourceSpan, showDataDeclType, srcTypeConstructor, toAsConstrantUnit, toChildDeclaration, toChildDeclarationInfo, toConstraint', toConstraintData, toConstraintUnit, toDataDeclType, toDeclaration, toDeclarationInfo, toDocModule, toFunDeps, toGithubRepo, toGithubUser, toISO8601, toIdent, toInPackage, toInternalIdentData, toKindInfo, toLabel, toModuleName, toNotYetKnown, toOpName, toPackage, toProperName, toQualified, toQualifiedBy, toSkolemScope, toSourceAnn, toSourceConstraint, toSourcePos, toSourceSpan, toSourceType, toType', toTypeArguments, toTypeUnit, toTypeVarVisibility, toUploadedPackage, toVersion, toWildcardData, yyyy_mm_dd) as ReExport +import Docs.Search.DocTypes (Constraint, DataDeclType, ProperName, Qualified, Type') +import Docs.Search.DocTypes as DocTypes +import Docs.Search.JsonCodec as JsonCodec type QualifiedName tag = Qualified (ProperName tag) diff --git a/docs-search/common/src/Docs/Search/TypeQuery.purs b/docs-search/common/src/Docs/Search/TypeQuery.purs index b997664d8..1ade92a43 100644 --- a/docs-search/common/src/Docs/Search/TypeQuery.purs +++ b/docs-search/common/src/Docs/Search/TypeQuery.purs @@ -12,17 +12,13 @@ module Docs.Search.TypeQuery , joinRows ) where -import Docs.Search.Config as Config -import Docs.Search.Extra (foldl1, foldr1) -import Docs.Search.TypeDecoder (Type(..), Type', Qualified(..), QualifiedBy(..), ModuleName(..), ProperName(..), Label(..), Constraint(..), TypeArgument) -import Docs.Search.Types (Identifier(..)) - import Prelude +import Prim hiding (Row) + import Control.Alt ((<|>)) import Data.Array as Array import Data.Either (Either) import Data.Generic.Rep (class Generic) -import Data.Show.Generic (genericShow) import Data.List (List(..), many, some, (:)) import Data.List as List import Data.List.NonEmpty (NonEmptyList) @@ -34,14 +30,19 @@ import Data.Newtype (wrap) import Data.Ord (abs) import Data.Set (Set) import Data.Set as Set +import Data.Show.Generic (genericShow) import Data.String.CodeUnits (fromCharArray) import Data.String.Common (trim) as String import Data.Tuple (Tuple(..), fst, snd) +import Docs.Search.Config as Config +import Docs.Search.Extra (foldl1, foldr1) +import Docs.Search.TypeDecoder (Type(..), Type', Qualified(..), QualifiedBy(..), ModuleName(..), ProperName(..), Label(..), Constraint(..), TypeArgument) +import Docs.Search.Types (Identifier(..)) import Language.PureScript.PSString as PSString +import Safe.Coerce (coerce) import StringParser (ParseError, Parser, runParser, try) import StringParser.CodePoints (alphaNum, anyLetter, char, eof, lowerCaseChar, skipSpaces, string, upperCaseChar) import StringParser.Combinators (fix, sepBy, sepBy1, sepEndBy, sepEndBy1) -import Safe.Coerce (coerce) -- | We need type queries because we don't have a full-featured type parser -- | available. @@ -152,14 +153,14 @@ getFreeVariables query = go Set.empty Set.empty (List.singleton $ Next query) if Set.member var bound then free else Set.insert var free - go bound free Nil = free + go _bound free Nil = free go bound free (Unbind vars : rest) = go (Set.difference bound vars) free rest go bound free (Next (QVar var) : rest) = go bound (insertIfUnbound bound var free) rest - go bound free (Next (QConst str) : rest) = + go bound free (Next (QConst _str) : rest) = go bound free rest go bound free (Next (QFun q1 q2) : rest) = go bound free (Next q1 : Next q2 : rest) @@ -336,9 +337,6 @@ unify query type_ = go Nil (List.singleton { q: query, t: type_ }) go acc ({ q, t: TypeLevelInt _ _ } : rest) = go (QueryMismatch q : acc) rest - go acc ({ q, t: TypeLevelString _ _ } : rest) = - go (QueryMismatch q : acc) rest - go acc ({ q, t: TypeWildcard _ _ } : rest) = go (QueryMismatch q : acc) rest @@ -417,7 +415,7 @@ namesPenalty = go 0 Set.size (Set.intersection qcs tcs) in go (p + Config.penalties.matchConstraint * p') rest - go p (RowsMismatch n m : rest) = go (Config.penalties.rowsMismatch * abs (n - m)) rest + go _p (RowsMismatch n m : rest) = go (Config.penalties.rowsMismatch * abs (n - m)) rest go p (_ : rest) = go p rest -- | Penalty for generalization and instantiation. @@ -425,12 +423,12 @@ mismatchPenalty :: List Substitution -> Int mismatchPenalty = go 0 where go n Nil = n - go n (Instantiate q t : rest) = go + go n (Instantiate _q t : rest) = go ( n + typeSize t * Config.penalties.instantiate ) rest - go n (Generalize q t : rest) = go + go n (Generalize q _t : rest) = go ( n + typeQuerySize q * Config.penalties.generalize ) @@ -497,7 +495,7 @@ typeSize = go 0 <<< List.singleton ( TypeConstructor _ ( Qualified (ByModuleName (ModuleName "Prim")) - name + _name ) ) t1 @@ -517,7 +515,7 @@ typeSize = go 0 <<< List.singleton go (n + 1) rest go n (KindedType _ t1 t2 : rest) = go n (t1 : t2 : rest) - go n (BinaryNoParensType _ op t1 t2 : rest) = + go n (BinaryNoParensType _ _op t1 t2 : rest) = go (n + 1) (t1 : t2 : rest) go n (ParensInType _ t : rest) = go n (t : rest) diff --git a/docs-search/common/src/Docs/Search/TypeShape.purs b/docs-search/common/src/Docs/Search/TypeShape.purs index 3f54ce85b..625e9c8b3 100644 --- a/docs-search/common/src/Docs/Search/TypeShape.purs +++ b/docs-search/common/src/Docs/Search/TypeShape.purs @@ -8,12 +8,8 @@ module Docs.Search.TypeShape , ShapeChunk(..) ) where -import Docs.Search.TypeDecoder (ModuleName(..), ProperName(..), Qualified(..), QualifiedBy(..), Type(..), Type') -import Docs.Search.TypeQuery (TypeQuery(..)) -import Docs.Search.TypeQuery as TypeQuery -import Docs.Search.Types (Identifier(..)) - import Prelude + import Data.Generic.Rep (class Generic) import Data.Show.Generic (genericShow) import Data.List (List(..), (:)) @@ -22,6 +18,9 @@ import Data.List.NonEmpty as NonEmptyList import Data.Set as Set import Data.Tuple (Tuple(..), snd) import Data.Ord (abs) +import Docs.Search.TypeDecoder (ModuleName(..), ProperName(..), Qualified(..), QualifiedBy(..), Type(..), Type') +import Docs.Search.TypeQuery (TypeQuery(..)) +import Docs.Search.TypeQuery as TypeQuery type TypeShape = List ShapeChunk @@ -71,7 +70,7 @@ shapeOfTypeQuery query = case this of QVar _ -> go rest (PVar : acc) - QConst v -> + QConst _v -> go rest (PVar : acc) QFun q1 q2 -> go (q1 : q2 : rest) (PFun : acc) @@ -79,7 +78,7 @@ shapeOfTypeQuery query = go (q1 : q2 : rest) (PApp : acc) QForAll lst q -> go (q : rest) (PForAll (NonEmptyList.length lst) : acc) - QConstraint str lst q -> + QConstraint _str _lst q -> go (q : rest) acc QRow lst -> let diff --git a/docs-search/common/src/Docs/Search/Types.purs b/docs-search/common/src/Docs/Search/Types.purs index e10c5a59b..76af6015c 100644 --- a/docs-search/common/src/Docs/Search/Types.purs +++ b/docs-search/common/src/Docs/Search/Types.purs @@ -13,28 +13,22 @@ module Docs.Search.Types , FilePath(..) ) where -import Web.Bower.PackageMeta (PackageName(..)) as ReExport -import Language.PureScript.Names (ModuleName(..)) as ReExport - -import Docs.Search.JsonCodec (inject) - import Prelude -import Data.Argonaut.Core (Json) -import Data.Codec.Argonaut (JsonCodec, JsonDecodeError) +import Data.Codec.Argonaut (JsonCodec) import Data.Codec.Argonaut.Common as CA -import Data.Codec.Argonaut.Sum as CAS import Data.Codec.Argonaut.Variant as CAV import Data.Either (Either(..)) import Data.Generic.Rep (class Generic) import Data.Newtype (class Newtype) -import Data.Maybe (Maybe(..)) import Data.Profunctor (wrapIso, dimap) import Data.Show.Generic (genericShow) -import Data.Tuple (Tuple(..)) import Data.Variant as Variant +import Docs.Search.JsonCodec (inject) import Language.PureScript.Names (ModuleName(..)) +import Language.PureScript.Names (ModuleName(..)) as ReExport import Web.Bower.PackageMeta (PackageName(..)) +import Web.Bower.PackageMeta (PackageName(..)) as ReExport newtype Identifier = Identifier String diff --git a/docs-search/index/spago.yaml b/docs-search/index/spago.yaml index fa9a8c302..bdc173628 100644 --- a/docs-search/index/spago.yaml +++ b/docs-search/index/spago.yaml @@ -1,5 +1,7 @@ package: name: docs-search-index + build: + strict: true dependencies: - aff - argonaut-core diff --git a/docs-search/index/src/Docs/Search/ModuleParser.purs b/docs-search/index/src/Docs/Search/ModuleParser.purs index 17527b775..b468e3b11 100644 --- a/docs-search/index/src/Docs/Search/ModuleParser.purs +++ b/docs-search/index/src/Docs/Search/ModuleParser.purs @@ -2,14 +2,12 @@ module Docs.Search.ModuleParser where import Prelude -import Control.Alt ((<|>)) import Data.Either (hush) import Data.Foldable (intercalate) import Data.Maybe (Maybe) import Data.Newtype (wrap) import Docs.Search.Types (ModuleName) -import Effect (Effect) -import StringParser (Parser, char, choice, fix, many, manyTill, noneOf, regex, runParser, sepBy, sepBy1, string, try, whiteSpace) +import StringParser (Parser, char, choice, many, manyTill, noneOf, regex, runParser, sepBy1, string, try, whiteSpace) parseModuleName :: String -> Maybe ModuleName parseModuleName = map wrap <<< hush <<< runParser do diff --git a/docs-search/index/test/Docs/Search/IndexBuilder.purs b/docs-search/index/test/Docs/Search/IndexBuilder.purs index ca1144efa..1a20c63c7 100644 --- a/docs-search/index/test/Docs/Search/IndexBuilder.purs +++ b/docs-search/index/test/Docs/Search/IndexBuilder.purs @@ -5,8 +5,6 @@ import Prelude import Docs.Search.IndexBuilder (patchHtml) import Data.Maybe (Maybe(..)) -import Data.Traversable (traverse) -import Effect.Class (liftEffect) import Test.Spec (Spec, describe, it) import Test.Spec.Assertions (shouldEqual, shouldNotEqual) @@ -20,6 +18,5 @@ tests = do shouldNotEqual patched (Just input) shouldNotEqual patched Nothing it "only patches once" do - let input = "" let patchTwice = patchHtml >=> patchHtml shouldEqual (patchTwice "") Nothing diff --git a/spago.yaml b/spago.yaml index 956ec687c..a25a416f9 100644 --- a/spago.yaml +++ b/spago.yaml @@ -56,6 +56,7 @@ package: main: Test.Spago censor_test_warnings: - ImplicitQualifiedImportReExport + - ImplicitQualifiedImport dependencies: - spec workspace: