E0308E0308 — Несоответствие типов
Ожидаемый тип не совпадает с фактически предоставленным.
Просмотрите все 80 кодов ошибок Ошибки компилятора Rust с причинами, исправлениями и примерами.
E0308Ожидаемый тип не совпадает с фактически предоставленным.
E0382Значение используется после того, как оно было перемещено в другую переменную или передано в функцию.
E0502Значение нельзя заимствовать изменяемо, пока активен неизменяемый заём.
E0597Ссылка переживает данные, на которые указывает.
E0277Тип не реализует требуемый трейт.
E0599Метод не существует для данного типа, либо требуемый трейт не импортирован в область видимости.
E0425Используется идентификатор, не определённый в текущей области видимости.
E0433Путь к модулю, указанный в операторе use или в пути типа, не может быть разрешён.
E0106Ссылке в сигнатуре функции или структуре не хватает параметра времени жизни.
E0015В контексте константного выражения вызывается функция, не являющаяся const.
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Специализация реализации трейта требует функции нестабильного (nightly) компилятора.
E0596Выполняется попытка получить изменяемую ссылку на значение, не объявленное как изменяемое.
E0600Унарный оператор применяется к типу, который его не поддерживает.
E0601В бинарном крейте отсутствует точка входа — функция main.
E0603Выполняется попытка обратиться к приватному элементу из-за пределов его модуля.
E0621Параметр функции требует явной аннотации времени жизни для удовлетворения borrow checker.
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Функция, структура, вариант перечисления или константа определены, но нигде не используются.
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Замыкание, которое просто вызывает функцию, можно заменить самой функцией.