getff docs
Framework reference (raw)

Cargo.lints.toml — the [lints.clippy] deny projection (E22)

The cargo lane's reference table that projects the clippy.toml bans onto clippy's severity ladder so they FAIL the build — delivered to .getff/ as a reference the consumer merges by hand; getff never edits a Cargo.toml.

Cargo.lints.toml — the [lints.clippy] deny projection (E22)

Status: shipped-beta · Ships to: cargo-lane only (delivered by setup.d/46-cargo.sh on every lane run) · Fires at: install time as a file delivery; its bans become build-failing through the consumer's Cargo.toml merge OR the delivered CI gate's -D clippy::disallowed_* flags

What it is

An 11-line generated reference file carrying one table: [lints.clippy] with disallowed_methods = "deny". It exists because of a clippy structural fact the file's header spells out: clippy.toml carries no severity, so a banned call is only a WARNING and cargo clippy still exits 0. This table is the projection that moves the same ban onto clippy's own ladder (allow → warn → deny → forbid) so it fails the build.

How it works

  • The template is generated ("getff cargo backend v0 — do not edit by hand") — it is the second surface of the same bans clippy.toml (E20) declares, authored by the same render pipeline.
  • It lands at .getff/Cargo.lints.toml on EVERY cargo-lane run (always delivered, like the CI gate), and the stage prints the merge note: to make the bans build-failing locally, merge the [lints.clippy] table into your Cargo.toml.
  • The never-auto-edit rule is the file's spine: getff NEVER edits the consumer's Cargo.toml — a bad merge would break their build — so the reference is delivered and the consumer merges by hand, or sets the same levels on the CI command line, which the delivered getff-cargo.yml gate does anyway.
  • Lane honesty: cargo-lane only. In the collision matrix the deny surface has its own cell — even when the consumer's Cargo.toml already carries a [lints.clippy] section, the lane never touches it; it always ships this reference plus instructions. The rules-lock record fingerprints the DELIVERED config (getff-clippy.toml in the refuse cell), never the consumer's own file.

Satellites & companions

Second surface of clippy.toml (E20) — same bans, severity-projected. Delivered by the cargo stage (A7) next to deny.toml (E21) and the getff-cargo.yml CI gate (E23), whose -D clippy::disallowed_* invocation is the CI-side realization of this table's deny.

Anchors

At framework pin aa87d0a47a6d8502f983cc9fe7284bd5dcb3d650:

  • packages/core/templates/cargo/Cargo.lints.toml:1 — «# generated by getff cargo backend v0 — do not edit by hand»
  • packages/core/templates/cargo/Cargo.lints.toml:2-3 — «# getff clippy severity projection (the "deny surface"). clippy.toml carries NO severity, so a» «# banned call is only a WARNING and cargo clippy exits 0 over it (render-clippy.ts FF7003). This»
  • packages/core/templates/cargo/Cargo.lints.toml:7-8 — «# getff NEVER edits your Cargo.toml automatically (a bad merge would break your build). MERGE this» «# table into your crate's Cargo.toml by hand — or set the same levels on the CI command line»
  • packages/core/templates/cargo/Cargo.lints.toml:11 — «disallowed_methods = "deny"»
  • setup.d/46-cargo.sh:129 — «_cargo_copy_or_refresh "$tpl/Cargo.lints.toml" "$PROJECT_ROOT/.getff/Cargo.lints.toml"»
  • setup.d/46-cargo.sh:19-20 — «# (lints) [lints.clippy] deny surface → NEVER auto-edit the consumer's Cargo.toml (a bad merge breaks» «# their build). ALWAYS deliver Cargo.lints.toml (the reference)»

On this page