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
259
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 ]