1
1
mirror of https://github.com/anoma/juvix.git synced 2024-12-14 08:27:03 +03:00
juvix/.hlint.yaml
2021-12-30 09:56:58 -05:00

60 lines
2.3 KiB
YAML

# Based on HLint configuration file from https://github.com/ndmitchell/hlint
- arguments: [--color]
# --------------------------------------------------------------------------------
# RESTRICTIONS
# --------------------------------------------------------------------------------
- extensions:
- default: false
- name: [DeriveFunctor, GeneralizedNewtypeDeriving, OverloadedStrings]
- name: [MultiWayIf, PatternGuards, RecordWildCards]
- name: [ScopedTypeVariables]
- name: [ConstraintKinds, RankNTypes, TypeFamilies]
# - {name: nameEXT, within: [moduleName]}
- flags:
- default: false
- {name: [-Wno-incomplete-patterns, -Wno-overlapping-patterns , Wno-partial-fields]}
- modules:
# if you import Data.Set qualified, it must be as 'Set'
- {name: [Data.Set, Data.HashSet], as: Set}
- {name: [Data.Map, Data.HashMap.Strict, Data.HashMap.Lazy], as: Map}
# - {name: Control.Arrow, within: []} # Certain modules are banned entirely
- functions:
- {name: Data.List.NonEmpty.nub, within: []}
- {name: Data.List.NonEmpty.nubBy, within: []}
# --------------------------------------------------------------------------------
# OTHER HINTS
# --------------------------------------------------------------------------------
# - warn: {name: Use explicit module export list}
# --------------------------------------------------------------------------------
# HINTS
# --------------------------------------------------------------------------------
- error: {lhs: idea Warning, rhs: warn}
- error: {lhs: idea Suggestion, rhs: suggest}
- error: {lhs: ideaN Warning, rhs: warnN}
- error: {lhs: ideaN Suggestion, rhs: suggestN}
- error: {lhs: occNameString (occName (unLoc x)), rhs: rdrNameStr x}
- error: {lhs: occNameString (occName x), rhs: occNameStr x}
- error: {lhs: noLoc (HsVar noExtField (noLoc (mkRdrUnqual (mkVarOcc x)))), rhs: strToVar x}
# --------------------------------------------------------------------------------
# IGNORES
# --------------------------------------------------------------------------------
- ignore: {within: [MiniJuvix.Syntax.Core, MiniJuvix.Syntax.Eval]}
- ignore: {within: [MiniJuvix.Monad]}
- ignore: {within: [MiniJuvix.Pretty]}
- ignore: {name: Use let, within: [Test.All]}
- ignore: {name: Use String}
- ignore: {name: Avoid restricted flags}
- ignore: {name: Avoid restricted extensions, within: [MiniJuvix.Parsing.Language]}