【转载】[开源] 搓了个 cargo check 输出结果的归类整理与过滤工具
本文为转载内容,保留原帖观点与结构;如有侵权请联系我处理。
最近我开始使用 rust 写项目,发现 cargo check 的报错实在是太冗长了。有时候重构一下直接出现 1000 多个报错,修编译错误都不知道从何改起。
因此,我分别用 python 和 rust 搓了个命令行工具,并给出了 windows 环境的可执行文件。
支持的选项为:
# 默认使用
./analyze_cargo
# 指定输出文件
./analyze_cargo --output report.md
# 过滤警告
./analyze_cargo --filter-warnings
# 按特定路径过滤
./analyze_cargo --filter-paths src/main.rs,src/lib.rs
# 组合过滤器
./analyze_cargo --filter-warnings --output errors_only.md
python 版也支持同样功能。
生成文件的参考为:
cargo_errors_report.md
Cargo Check Error Analysis Report
Filter Settings
- No filters applied
Summary
- Total Errors: 344
- Total Warnings: 75
- Total Issues: 419
- Unique Error Patterns: 109
- Unique Warning Patterns: 24
- Files with Issues: 93
Error Statistics
Total Errors: 344
Error Type Breakdown
- error[E0308]: 146 errors
- error[E0599]: 122 errors
- error[E0277]: 29 errors
- error[E0507]: 23 errors
- error[E0614]: 18 errors
- error[E0515]: 4 errors
- error[E0382]: 2 errors
Files with Errors (Top 10)
src\query\optimizer\elimination_rules.rs: 28 errorssrc\query\optimizer\limit_pushdown.rs: 27 errorssrc\query\optimizer\index_optimization.rs: 22 errorssrc\query\optimizer\operation_merge.rs: 20 errorssrc\query\optimizer\predicate_pushdown.rs: 14 errorssrc\query\planner\ngql\go_planner.rs: 13 errorssrc\query\planner\ngql\subgraph_planner.rs: 12 errorssrc\query\visitor\extract_filter_expr_visitor.rs: 12 errorssrc\query\planner\match_planning\utils\connection_strategy.rs: 12 errorssrc\query\planner\ngql\lookup_planner.rs: 10 errors
Warning Statistics
Total Warnings: 75
Warning Type Breakdown
- warning: 75 warnings
Files with Warnings (Top 10)
src\query\optimizer\elimination_rules.rs: 28 warningssrc\query\planner\plan\core\nodes\factory.rs: 15 warningssrc\query\visitor\extract_filter_expr_visitor.rs: 12 warningssrc\query\visitor\find_visitor.rs: 10 warningssrc\query\optimizer\join_optimization.rs: 8 warningssrc\query\visitor\evaluable_expr_visitor.rs: 8 warningssrc\core\evaluator\expression_evaluator.rs: 8 warningssrc\query\executor\result_processing\aggregation.rs: 6 warningssrc\query\optimizer\optimizer.rs: 5 warningssrc\query\planner\plan\management\ddl\edge_ops.rs: 5 warnings
Detailed Error Categorization
error[E0599]: no method named [identifier] found for enum plan_node_enum::PlanNodeEnum in the current scope: method not found in [identifier]
Total Occurrences: 85
Unique Files: 7
src\query\optimizer\limit_pushdown.rs: 25 occurrences
- Line 74: no method named
as_anyfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - Line 81: no method named
as_anyfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - Line 104: no method named
as_anyfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - … 22 more occurrences in this file
src\query\optimizer\index_optimization.rs: 20 occurrences
- Line 29: no method named
is_index_scanfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - Line 40: no method named
as_anyfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - Line 49: no method named
as_anyfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - … 17 more occurrences in this file
src\query\optimizer\elimination_rules.rs: 18 occurrences
- Line 56: no method named
as_anyfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - Line 120: no method named
is_dedupfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - Line 142: no method named
is_dedupfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - … 15 more occurrences in this file
src\query\optimizer\operation_merge.rs: 11 occurrences
- Line 40: no method named
as_anyfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - Line 109: no method named
as_anyfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - Line 110: no method named
as_anyfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - … 8 more occurrences in this file
src\query\optimizer\predicate_pushdown.rs: 6 occurrences
- Line 45: no method named
as_anyfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - Line 307: no method named
as_anyfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - Line 432: no method named
as_anyfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - … 3 more occurrences in this file
src\query\optimizer\join_optimization.rs: 3 occurrences
- Line 25: no method named
is_hash_inner_joinfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - Line 26: no method named
is_hash_left_joinfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - Line 27: no method named
is_inner_joinfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum
src\query\optimizer\scan_optimization.rs: 2 occurrences
- Line 26: no method named
is_index_scanfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum - Line 67: no method named
is_scan_edgesfound for enumplan_node_enum::PlanNodeEnumin the current scope: method not found inPlanNodeEnum
后略。警告在最后。
评论区(暂无评论)