E0308E0308 — Невідповідність типів
Очікуваний тип не збігається з фактично наданим типом.
Перегляньте всі 80 кодів помилок Помилки компілятора Rust з причинами, виправленнями та прикладами.
E0308Очікуваний тип не збігається з фактично наданим типом.
E0382Значення використовується після того, як воно було переміщено до іншої змінної або функції.
E0502Значення не може бути позичене змінно, поки активне незмінне позичення.
E0597Посилання переживає дані, на які воно вказує.
E0277Тип не реалізує необхідний трейт.
E0599Метод не існує для вказаного типу, або необхідний трейт не в області видимості.
E0425Ідентифікатор використовується, але не визначений у поточній області видимості.
E0433Шлях до модуля в операторі use або в шляху до типу не може бути розв'язаний.
E0106У підписі функції або структурі посиланню бракує параметра часу життя.
E0015Неконстантна функція викликається в контексті константного виразу.
E0658Функція, що ще не стабілізована в Rust, використовується без відповідного feature gate.
E0609Структура або об'єднання не має поля з вказаною назвою.
E0614Оператор розіменування (*) застосовується до типу, що не реалізує Deref.
E0499Значення позичається змінно більше одного разу одночасно.
E0503Значення не може використовуватися, поки воно змінно позичене іншою змінною.
E0505Значення переміщується, поки воно ще позичене посиланням.
E0507Ви намагаєтеся перемістити значення з посилання, що залишило б посилання звисаючим.
E0515Функція намагається повернути посилання на значення, створене всередині функції.
E0432Модуль або елемент, на який посилається оператор use, не може бути знайдений.
E0412Використовується назва типу, яку не визначено або не імпортовано в поточній області видимості.
E0423Назва типу використовується там, де очікується значення.
E0424Ключове слово self використовується поза контекстом методу або асоційованої функції.
E0369Бінарний оператор використовується з типами, які його не підтримують.
E0384Змінна перепризначається, але не була оголошена як мутабельна.
E0061Функцію викликано з неправильною кількістю аргументів.
E0063Структура створюється без усіх обов'язкових полів.
E0107Узагальнений тип або функція використовується з неправильною кількістю типових параметрів.
E0117Ви реалізуєте сторонній трейт для стороннього типу, порушуючи правило сирітства.
E0119Для одного типу існує дві або більше реалізацій одного й того самого трейту.
E0133Небезпечна функція або операція використовується поза блоком unsafe.
E0152Мовний елемент (#[lang = ...]) визначено більше одного разу.
E0200Небезпечний трейт необхідно реалізовувати за допомогою блоку unsafe impl.
E0252Два імпорти вводять одну й ту саму назву в область видимості.
E0255Локальне визначення конфліктує з імпортованою назвою.
E0271Асоційований тип у реалізації трейту не відповідає очікуваному типу.
E0282Rust не може вивести тип значення й потребує явної анотації.
E0283Можуть застосовуватися кілька реалізацій трейту, і Rust не може визначити, яку з них використати.
E0310Параметр узагальненого типу не задовольняє необхідного обмеження часу життя.
E0317Вираз if, що використовується як значення, не має гілки else.
E0373Замикання захоплює посилання на змінну, яка може не прожити достатньо довго.
E0392Узагальнений параметр типу або часу існування оголошено, але не використано у структурі або перерахуванні.
E0404Тип використано там, де очікувався трейт.
E0405Ім'я трейта використано, але його не визначено або не імпортовано в поточній області видимості.
E0428Елемент з тим самим ім'ям визначено більше одного разу в одній області видимості.
E0463Вказаний крейт не може бути знайдений компілятором.
E0520Спеціалізація реалізацій трейтів потребує нічної функції компілятора.
E0596Ви намагаєтеся позичити значення як змінне, хоча воно не оголошено як змінне.
E0600Унарний оператор застосовано до типу, який його не підтримує.
E0601Двійковий крейт не має точки входу — функції main.
E0603Ви намагаєтеся отримати доступ до приватного елемента поза його модулем.
E0621Параметр функції потребує явної анотації часу існування для задоволення перевірки позичання.
E0308Різні гілки match повертають несумісні типи.
E0716Утримується посилання на тимчасове значення, яке негайно відкидається.
E0728Ключове слово .await використовується у функції, яка не оголошена як async.
panic-unwrapПрограма завершилась з панікою, оскільки unwrap() було викликано для значення None або Err.
panic-index-out-of-boundsПрограма завершилась з панікою, оскільки індекс вийшов за допустимий діапазон для колекції.
panic-integer-overflowПрограма завершилась з панікою, оскільки арифметична операція спричинила переповнення цілого числа в режимі налагодження.
panic-stack-overflowПрограма завершилась з панікою через надмірне використання стеку, зазвичай через глибоку рекурсію.
clippy::needless_returnКлючове слово return використовується без необхідності наприкінці функції.
clippy::let_and_returnЗмінна оголошується і одразу ж повертається у наступному рядку.
clippy::unused_importsІмпортований елемент ніде не використовується у файлі.
clippy::clone_on_copyМетод clone() викликається на типі, що реалізує Copy.
clippy::unwrap_usedВикористовується метод unwrap(), який може спричинити паніку під час виконання.
dead_codeФункція, структура, варіант enum або константа оголошені, але ніколи не використовуються.
unused_variablesЗмінна оголошена, але ніде не використовується у коді.
unused_mutЗмінна оголошена як змінювана, але насправді ніколи не змінюється.
E0046Реалізовані не всі обов'язкові методи трейту.
E0053Сигнатура методу в блоці impl не відповідає сигнатурі методу в трейті.
E0277Тип, що не реалізує Send, використовується в контексті, який вимагає потокобезпечності.
E0277Динамічно розмірний тип (DST) використовується там, де вимагається тип Sized.
E0277Тип використовується у циклі for або в контексті ітератора, але не реалізує Iterator.
E0308Замикання повертає тип, відмінний від очікуваного контекстом.
E0562Синтаксис impl Trait використовується в позиції, де це не дозволено.
E0308Функція повертає Result із неправильним типом Ok або Err.
E0277Тип використовується як викличний, але не реалізує Fn, FnMut або FnOnce.
panic-divide-by-zeroПрограма завершилася панікою через ділення цілого числа на нуль.
panic-slice-index-out-of-rangeПрограма завершилася панікою через вихід діапазону зрізу за межі.
clippy::map_unwrap_orВикористання .map().unwrap_or() можна замінити на .map_or().
clippy::single_matchВираз match лише з одним значущим рукавом можна спростити до if let.
clippy::redundant_closureЗамикання, що лише викликає функцію, можна замінити безпосередньо цією функцією.