def misfit

bend-lint-rules@0.2.0.0 · layout/case.bend:258

import bend-lint-rules@0.2.0.0/layout/case.bend as Case
import Base
import bend-lint-api@0.2.0.0/linter/lint.bend as Lint
import bend-lint-api@0.2.0.0/shared/strings.bend as Strings

258# The finding for a name that does not fit: it says the new name when recasing makes one that fits, and, for a local
259# name, offers the rename.
260def misfit(
261  +syntax: Lint.Syntax,
262  +want: Case,
263  +name: String,
264  +span: Lint.Span
265) -> List<&2, Lint.Finding>:
266  +seg = Strings.after_last(name, '.')
267  +to = String.take(name, Nat.sub(String.length(name), String.length(seg))) ++ recased(want, seg)
268  +ok = fits(want, recased(want, seg))
269  rename = Bool.pick(String, ok, "Rename " ++ name ++ " to " ++ to, "Rename " ++ name)
270  [
271    Lint.Finding{
272      Lint.Warning{},
273      span,
274      rename ++ ": " ++ what(syntax, want) ++ ".",
275      renames(Bool.and(ok, is_local(syntax)), span, to, recased(want, seg))
276    }
277  ]

Uses (20)

Used by (1)