Rust编译cssparser v0.24.1出现cannot assign to borrowed self.input.cached_token错误
解决方案
错误原因
该编译报错由cssparser v0.24.1和新版Rust编译器的兼容性问题导致:cssparser 0.24.1版本的代码写法不符合新版借用检查器的规则,Rust 1.60及以上版本编译时就会触发E0506错误。
修复方案
可根据你的使用场景任选以下一种方案处理:
- 降级Rust编译器版本到1.59及以下,旧版编译器的借用检查规则可以兼容cssparser 0.24.1的代码,直接正常构建即可。
- 强制覆盖cssparser依赖版本。cssparser从0.25.0版本开始已经修复了该借用错误,你可以在Cargo.toml末尾添加如下配置覆盖依赖:
[patch.crates-io] cssparser = "0.25.0"
修改完成后执行cargo update更新依赖锁文件,再重新执行构建操作即可。0.25.x版本和0.24.1的API兼容性极高,不会影响google-somethin 0.1.4的正常功能。
- 升级
google-somethin依赖到最新正式版本,新版google-somethin已经默认依赖修复了问题的cssparser版本,不需要额外修改配置即可正常构建。
内容的提问来源于stack exchange,提问作者SawwAL
相关产品推荐
相关产品推荐

