lean4-htt/tests/lean/linterUnusedVariables.lean.expected.out
Mario Carneiro 49f66dc485
perf: rewrite UnusedVariables lint (#3186)
This is a rewrite of the `UnusedVariables` lint to inline and simplify
many of the dependent functions to try to improve the performance of
this lint, which quite often shows up in perf reports.

* The mvar assignment scanning is one of the most expensive parts of the
process, so we do two things to improve this:
  * Lazily perform the scan only if we need it
* Use an object-pointer hashmap to ensure that we don't have quadratic
behavior when there are many mvar assignments with slight differences.
* The dependency on `Lean.Server` is removed, meaning we don't need to
do the LSP conversion stuff anymore. The main logic of reference finding
is inlined.
* We take `fvarAliases` into account, and union together fvars which are
aliases of a base fvar. (It would be great if we had `UnionFind` here.)

More docs will be added once we confirm an actual perf improvement.

---------

Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch>
2024-03-21 12:28:57 +00:00

50 lines
3.3 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

linterUnusedVariables.lean:16:21-16:22: warning: unused variable `x` [linter.unusedVariables]
linterUnusedVariables.lean:17:6-17:7: warning: unused variable `y` [linter.unusedVariables]
linterUnusedVariables.lean:22:8-22:9: warning: unused variable `x` [linter.unusedVariables]
linterUnusedVariables.lean:38:5-38:6: warning: unused variable `x` [linter.unusedVariables]
linterUnusedVariables.lean:43:5-43:6: warning: unused variable `x` [linter.unusedVariables]
linterUnusedVariables.lean:46:7-46:8: warning: unused variable `x` [linter.unusedVariables]
linterUnusedVariables.lean:49:8-49:9: warning: unused variable `x` [linter.unusedVariables]
linterUnusedVariables.lean:53:9-53:10: warning: unused variable `z` [linter.unusedVariables]
linterUnusedVariables.lean:55:11-55:12: warning: unused variable `z` [linter.unusedVariables]
linterUnusedVariables.lean:60:14-60:15: warning: unused variable `y` [linter.unusedVariables]
linterUnusedVariables.lean:66:20-66:21: warning: unused variable `y` [linter.unusedVariables]
linterUnusedVariables.lean:71:34-71:38: warning: unused variable `inst` [linter.unusedVariables]
linterUnusedVariables.lean:112:25-112:26: warning: unused variable `x` [linter.unusedVariables]
linterUnusedVariables.lean:113:6-113:7: warning: unused variable `y` [linter.unusedVariables]
linterUnusedVariables.lean:119:6-119:7: warning: unused variable `a` [linter.unusedVariables]
linterUnusedVariables.lean:129:26-129:27: warning: unused variable `z` [linter.unusedVariables]
linterUnusedVariables.lean:137:9-137:10: warning: unused variable `h` [linter.unusedVariables]
linterUnusedVariables.lean:151:8-151:9: warning: unused variable `y` [linter.unusedVariables]
linterUnusedVariables.lean:154:20-154:21: warning: unused variable `β` [linter.unusedVariables]
linterUnusedVariables.lean:155:7-155:8: warning: unused variable `x` [linter.unusedVariables]
linterUnusedVariables.lean:165:6-165:7: warning: unused variable `s` [linter.unusedVariables]
linterUnusedVariables.lean:189:6-189:7: warning: unused variable `y` [linter.unusedVariables]
linterUnusedVariables.lean:196:19-196:20: warning: unused variable `x` [linter.unusedVariables]
linterUnusedVariables.lean:200:6-200:7: warning: unused variable `y` [linter.unusedVariables]
linterUnusedVariables.lean:205:6-205:7: warning: unused variable `y` [linter.unusedVariables]
linterUnusedVariables.lean:210:6-210:7: warning: unused variable `y` [linter.unusedVariables]
linterUnusedVariables.lean:219:32-219:33: warning: unused variable `b` [linter.unusedVariables]
linterUnusedVariables.lean:236:27-236:28: error: don't know how to synthesize placeholder
context:
bar : ?m
bar' : Nat → Nat
α : Type ?u
β : ?m
inst : ToString α
a : Nat
⊢ Nat
linterUnusedVariables.lean:237:0-237:7: warning: declaration uses 'sorry'
linterUnusedVariables.lean:238:0-238:7: warning: declaration uses 'sorry'
linterUnusedVariables.lean:239:29-241:7: error: unexpected token 'theorem'; expected '{' or tactic
linterUnusedVariables.lean:239:27-239:29: error: unsolved goals
bar : ?m
bar' : Nat → Nat
α : Type ?u
β : ?m
inst : ToString α
a : Nat
⊢ Nat
linterUnusedVariables.lean:249:9-249:12: warning: unused variable `ord` [linter.unusedVariables]
linterUnusedVariables.lean:250:15-250:18: warning: unused variable `ord` [linter.unusedVariables]
linterUnusedVariables.lean:251:9-251:10: warning: unused variable `h` [linter.unusedVariables]