You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行dart fix --apply时出现Bad state错误的原因排查

关于dart fix --apply报错"Bad state: Can't create both a dart file edit and a generic file edit for the same file"的成因

问题复现

执行以下命令时触发错误:

dart fix --apply

错误提示:

Bad state: Can't create both a dart file edit and a generic file edit for the same file

堆栈跟踪信息:

#0      ChangeBuilderImpl.addGenericFileEdit (package:analyzer_plugin/src/utilities/change_builder/change_builder_core.dart:166:7)
#1      ConvertDocumentationIntoLine.compute (package:analysis_server/src/services/correction/dart/convert_documentation_into_line.dart:81:19)
#2      BulkFixProcessor._applyProducer (package:analysis_server/src/services/correction/bulk_fix_processor.dart:297:22)
#3      BulkFixProcessor._generateFix (package:analysis_server/src/services/correction/bulk_fix_processor.dart:734:11)
#4      BulkFixProcessor._bulkApply (package:analysis_server/src/services/correction/bulk_fix_processor.dart:313:15)
#5      BulkFixProcessor._fixSingleError (package:analysis_server/src/services/correction/bulk_fix_processor.dart:618:15)
#6      BulkFixProcessor._fixErrorsInLibrary (package:analysis_server/src/services/correction/bulk_fix_processor.dart:521:15)

成因分析

从堆栈跟踪能直接定位问题根源:

  • 报错来自Dart分析服务器的批量修复模块,具体是执行多行文档注释转单行的修复逻辑(ConvertDocumentationIntoLine)时触发的
  • 该修复逻辑尝试对同一个文件同时创建两种不兼容的编辑操作:一种是针对Dart文件的专属编辑,另一种是通用文件编辑
  • 分析服务器的ChangeBuilderImpl组件明确禁止这种操作,因此抛出了状态异常

本质上这是Dart分析工具内部的逻辑冲突bug,批量修复工具在处理文档注释格式修复时,误用了两种不能同时使用的文件编辑方式。


内容的提问来源于stack exchange,提问作者agDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 10:02:40