Commit 7feae63
committed
fix(unused): align to live agda-unused (per-file local mode, UTF-8 locale)
Validated against a freshly-built agda-unused binary and adjusted the design
to match real behaviour:
- Local per-file mode, not `--global`. `--global` treats the given root's
imports as project roots and reports nothing for them; local mode
(`agda-unused <file> --json -i <root>`) flags imports unused within a file
— the rule's namesake. Invoked once per scanned file; findings attach to
that file's report (no canonical-path merge needed).
- `LC_ALL=C.UTF-8` on the invocation. agda-unused reads source in the process
locale and aborts on the first multi-byte char otherwise; Agda is all UTF-8.
- Parser pinned to the real `{type,message}` JSON and the real findings text
(`/path/File.agda:line,col-col` + ` unused import ‘Name’`, Unicode quotes).
A run that yields no JSON (tool crash) is surfaced as an `error` kind rather
than aborting the scan.
- Drops `merge_unused` and the roots-based `find_unused`; `lib.rs` no longer
flat-re-exports (avoids clashing with `agda::check_file`).
- Fixtures carry the `--safe --without-K` pragma so the dogfood shows only the
unused-import finding.
Live dogfood: `scan --unused` on the fixture emits exactly
`unused-import: unused import ‘Helper’`; with agda-unused off PATH it degrades
with a note (0 warns). README + CHANGELOG updated; unused-import removed from
"Not yet". fmt/clippy/test green (lib 41 tests).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019GiSiEfgZCte35dyykgBHs1 parent 54106d9 commit 7feae63
7 files changed
Lines changed: 150 additions & 144 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
34 | 40 | | |
35 | 41 | | |
36 | 42 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
33 | 38 | | |
34 | 39 | | |
35 | 40 | | |
| |||
51 | 56 | | |
52 | 57 | | |
53 | 58 | | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
60 | 65 | | |
61 | 66 | | |
62 | 67 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
26 | 25 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | | - | |
| 4 | + | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
9 | 8 | | |
10 | 9 | | |
11 | 10 | | |
| |||
173 | 172 | | |
174 | 173 | | |
175 | 174 | | |
176 | | - | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
177 | 178 | | |
178 | | - | |
179 | | - | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
186 | 190 | | |
187 | | - | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
188 | 198 | | |
189 | 199 | | |
190 | 200 | | |
| |||
222 | 232 | | |
223 | 233 | | |
224 | 234 | | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | | - | |
245 | | - | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | 235 | | |
252 | 236 | | |
253 | 237 | | |
| |||
0 commit comments