mirror of
https://github.com/jfmengels/elm-review.git
synced 2024-12-21 08:41:35 +03:00
57 lines
1.4 KiB
Elm
57 lines
1.4 KiB
Elm
module NoInconsistentAliases.BadAlias exposing (BadAlias, mapExpectedName, mapModuleName, mapName, mapUses, new, range, withModuleUse)
|
|
|
|
import Elm.Syntax.ModuleName exposing (ModuleName)
|
|
import Elm.Syntax.Range exposing (Range)
|
|
import NoInconsistentAliases.ModuleUse exposing (ModuleUse)
|
|
|
|
|
|
type BadAlias
|
|
= BadAlias
|
|
{ name : String
|
|
, moduleName : ModuleName
|
|
, expectedName : String
|
|
, at : Range
|
|
, uses : List ModuleUse
|
|
}
|
|
|
|
|
|
new : { name : String, moduleName : ModuleName, expectedName : String, range : Range } -> BadAlias
|
|
new options =
|
|
BadAlias
|
|
{ name = options.name
|
|
, moduleName = options.moduleName
|
|
, expectedName = options.expectedName
|
|
, at = options.range
|
|
, uses = []
|
|
}
|
|
|
|
|
|
withModuleUse : ModuleUse -> BadAlias -> BadAlias
|
|
withModuleUse moduleUse (BadAlias alias) =
|
|
BadAlias { alias | uses = moduleUse :: alias.uses }
|
|
|
|
|
|
range : BadAlias -> Range
|
|
range (BadAlias alias) =
|
|
alias.at
|
|
|
|
|
|
mapName : (String -> a) -> BadAlias -> a
|
|
mapName mapper (BadAlias alias) =
|
|
mapper alias.name
|
|
|
|
|
|
mapModuleName : (ModuleName -> a) -> BadAlias -> a
|
|
mapModuleName mapper (BadAlias alias) =
|
|
mapper alias.moduleName
|
|
|
|
|
|
mapExpectedName : (String -> a) -> BadAlias -> a
|
|
mapExpectedName mapper (BadAlias alias) =
|
|
mapper alias.expectedName
|
|
|
|
|
|
mapUses : (ModuleUse -> a) -> BadAlias -> List a
|
|
mapUses mapper (BadAlias { uses }) =
|
|
List.map mapper uses
|