1a84cc52

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Say nothing when the name names no type, or names one nobody can build

Running the rule over nix-ci had it name a type on no basis twice over.

That repository declares three ClientSecret newtypes, one per forge, because
one forge's client secret is not another's. The rule told a reader to use
"ClientSecret" and chose between the three by the order their rows came back
in. A name the project declares in more than one module names no type, so it
is not in the lexicon at all now.

It also named Width for a field holding a Word, where Width is exported
without its constructor on purpose so that a panel can only have a width the
grid has room for. A constructor leaves a module only inside its type's
subordinate list, so a bare entry in an export list is the type and not the
constructor however alike they are spelled, and a type nothing outside can wrap
a value in is not a fix any field can apply. That is the same thing the
dependency walk already asks: do not name what the site cannot use.

Four of this rule's eleven findings in nix-ci remain wrong and none of them is
wrong in a way a checker can see: a GitLab payload's username is not the
validated account name this project parses, and a cursor's row height in grid
units is not a panel's declared height. Those want annotations, which is what
the rule's bucket is for, and they are the reason it is not the error-grade
rule it was argued for.
e2e-added-rule-is-rune2e-artifacts-are-reade2e-choices-are-found-beside-the-repositorye2e-cleane2e-dirty-package-is-judged-failinge2e-dirty-project-is-judged-failinge2e-dirty-report-is-readablee2e-disabled-rule-is-not-rune2e-incomplete-artifacts-are-a-failuree2e-judging-nothing-failse2e-named-packages-are-every-packagee2e-no-packages-is-judged-failinge2e-no-store-paths-in-findingse2e-paths-are-repository-relativee2e-withheld-facts-faile2e-wrong-source-mapping-is-a-complainthlint-checkhopinionpre-commitreleaseshellweeder-checkconfiguredevShelldefaultx86_64-linux