E0308E0308 — 类型不匹配
期望的类型与实际提供的类型不符。
浏览所有 80 个 Rust 编译器错误 错误代码,包含原因、修复方法和示例。
E0308期望的类型与实际提供的类型不符。
E0382一个值在被移动到另一个变量或函数之后,仍被继续使用。
E0502在不可变借用仍然有效期间,无法对同一值进行可变借用。
E0597一个引用超出了其所指向数据的生命周期。
E0277某类型未实现所要求的 trait。
E0599给定类型上不存在该方法,或所需 trait 未引入作用域。
E0425使用了一个在当前作用域中未定义的标识符。
E0433use 语句或类型路径中使用的模块路径无法被解析。
E0106函数签名或结构体中的引用缺少生命周期参数。
E0015在常量表达式上下文中调用了非 const 函数。
E0658在未启用 feature gate 的情况下使用了 Rust 中尚未稳定的特性。
E0609结构体或联合体上不存在具有给定名称的字段。
E0614解引用运算符(*)被用于未实现 Deref 的类型上。
E0499同一时间对一个值进行了多次可变借用。
E0503在另一个变量持有可变借用期间,无法使用该值。
E0505一个值在仍被引用借用的情况下被移动。
E0507你正在尝试从引用中移出一个值,这将导致引用悬空。
E0515函数试图返回一个在函数内部创建的值的引用。
E0432use 语句中引用的模块或项找不到。
E0412使用了一个未在当前作用域中定义或导入的类型名称。
E0423在期望值的位置使用了类型名称。
E0424在方法或关联函数上下文之外使用了 self 关键字。
E0369对不支持该运算符的类型使用了二元运算符。
E0384尝试对未声明为可变的变量进行重新赋值。
E0061调用函数时提供了错误数量的参数。
E0063构造结构体时未提供所有必填字段。
E0107使用泛型类型或函数时,提供了错误数量的类型参数。
E0117你正在为外部类型实现外部 trait,违反了孤儿规则。
E0119同一类型存在两个或多个相同 trait 的实现。
E0133在 unsafe 块之外使用了 unsafe 函数或操作。
E0152语言项(#[lang = ...])被定义了多次。
E0200unsafe trait 必须使用 unsafe impl 块来实现。
E0252两个导入将相同的名称引入了作用域。
E0255本地定义与导入的名称冲突。
E0271trait 实现中的关联类型与预期类型不符。
E0282Rust 无法推断值的类型,需要显式注解。
E0283存在多个可匹配的 trait 实现,Rust 无法确定使用哪一个。
E0310泛型类型参数未满足所需的生命周期约束。
E0317作为值使用的 if 表达式缺少 else 分支。
E0373闭包捕获了一个引用,但该引用的生命周期可能不够长。
E0392结构体或枚举声明了泛型类型或生命周期参数,但未在任何字段中使用。
E0404在需要 trait 的位置使用了具体类型。
E0405使用了某个 trait 名称,但该 trait 在当前作用域中未定义或未导入。
E0428在同一作用域中,某个名称被定义了多次。
E0463编译器无法找到指定的 crate。
E0520trait 实现特化需要 nightly 编译器特性支持。
E0596你正在尝试对一个未声明为可变的值进行可变借用。
E0600对不支持该运算符的类型使用了一元运算符。
E0601二进制 crate 缺少 main 函数入口点。
E0603你正在尝试从模块外部访问私有条目。
E0621函数参数需要显式的生命周期标注以满足借用检查器的要求。
E0308不同的 match 分支返回了不兼容的类型。
E0716持有了一个临时值的引用,而该临时值随即被丢弃。
E0728在未声明为 async 的函数中使用了 .await 关键字。
panic-unwrap程序因对 None 或 Err 值调用 unwrap() 而发生 panic。
panic-index-out-of-bounds程序因使用了超出集合有效范围的索引而发生 panic。
panic-integer-overflow程序在 debug 模式下因算术运算导致整数溢出而发生 panic。
panic-stack-overflow程序因栈空间耗尽(通常由深层递归引起)而发生 panic。
clippy::needless_return在函数末尾使用了不必要的 return 关键字。
clippy::let_and_return变量在声明后紧接着在下一行被返回。
clippy::unused_imports导入的条目在文件中任何地方均未被使用。
clippy::clone_on_copy在实现了 Copy 的类型上调用了 clone() 方法。
clippy::unwrap_used使用了 unwrap() 方法,可能在运行时引发 panic。
dead_code某个函数、结构体、枚举变体或常量已定义但从未被使用。
unused_variables变量已声明但在代码中从未被使用。
unused_mut变量被声明为可变,但实际上从未发生过修改。
E0046未实现 trait 的所有必需方法。
E0053impl 块中的方法签名与 trait 的方法签名不一致。
E0277一个未实现 Send 的类型被用于需要线程安全的上下文中。
E0277在需要 Sized 类型的地方使用了动态大小类型(DST)。
E0277某个类型被用于 for 循环或迭代器上下文,但未实现 Iterator。
E0308闭包的返回类型与上下文期望的类型不同。
E0562impl Trait 语法被用于不允许使用的位置。
E0308函数返回的 Result 具有错误的 Ok 或 Err 类型。
E0277某个类型被当作可调用对象使用,但未实现 Fn、FnMut 或 FnOnce。
panic-divide-by-zero程序因整数除以零而发生 panic。
panic-slice-index-out-of-range程序因切片范围越界而发生 panic。
clippy::map_unwrap_or使用 .map().unwrap_or() 可以替换为 .map_or()。
clippy::single_match只有一个有意义分支的 match 表达式可以简化为 if let。
clippy::redundant_closure仅调用某个函数的闭包可以直接用该函数替代。