E0308E0308 — Neshodující se typy
Očekávaný typ neodpovídá skutečně poskytnutému typu.
Procházejte všech 80 chybových kódů Chyby kompilátoru Rust s příčinami, opravami a příklady.
E0308Očekávaný typ neodpovídá skutečně poskytnutému typu.
E0382Hodnota je použita poté, co byla přesunuta do jiné proměnné nebo funkce.
E0502Hodnotu nelze mutabilně vypůjčit, dokud je aktivní imutabilní výpůjčka.
E0597Reference přežívá data, na která ukazuje.
E0277Typ neimplementuje požadovaný trait.
E0599Metoda na daném typu neexistuje, nebo požadovaný trait není v rozsahu.
E0425Identifikátor je použit, ale není definován v aktuálním rozsahu.
E0433Cestu k modulu použitou v příkazu use nebo v cestě k typu nelze vyřešit.
E0106Referenci v signatuře funkce nebo ve struktuře chybí parametr doby životnosti.
E0015V kontextu konstantního výrazu je volána nekonstantní funkce.
E0658Funkce, která ještě není stabilizována v Rustu, je použita bez přepínače feature gate.
E0609Struktura nebo union nemá pole se zadaným názvem.
E0614Operátor dereference (*) je použit na typu, který neimplementuje Deref.
E0499Hodnota je mutabilně vypůjčena více než jednou ve stejnou dobu.
E0503Hodnotu nelze použít, dokud ji mutabilně vypůjčuje jiná proměnná.
E0505Hodnota je přesunuta, zatímco je stále vypůjčena referencí.
E0507Pokoušíte se přesunout hodnotu z reference, což by referenci zanechalo visící.
E0515Funkce se pokouší vrátit referenci na hodnotu vytvořenou uvnitř funkce.
E0432Modul nebo položka odkazovaná v příkazu use nebyla nalezena.
E0412Název typu je použit, ale není definován ani importován v aktuálním oboru.
E0423Název typu je použit na místě, kde se očekávala hodnota.
E0424Klíčové slovo self je použito mimo kontext metody nebo přidružené funkce.
E0369Binární operátor je použit s typy, které ho nepodporují.
E0384Proměnná je znovu přiřazována, ale nebyla deklarována jako měnitelná.
E0061Funkce byla zavolána s nesprávným počtem argumentů.
E0063Struktura je konstruována bez všech povinných polí.
E0107Generický typ nebo funkce je použita s nesprávným počtem typových parametrů.
E0117Implementujete cizí trait pro cizí typ, čímž porušujete pravidlo sirotka.
E0119Pro stejný typ existují dvě nebo více implementací stejného traitu.
E0133Unsafe funkce nebo operace je použita mimo blok unsafe.
E0152Jazyková položka (#[lang = ...]) je definována více než jednou.
E0200Unsafe trait musí být implementován blokem unsafe impl.
E0252Dva importy přinášejí do oboru stejný název.
E0255Lokální definice koliduje s importovaným názvem.
E0271Přidružený typ v implementaci traitu neodpovídá očekávanému typu.
E0282Rust nemůže odvodit typ hodnoty a vyžaduje explicitní anotaci.
E0283Mohlo by platit více implementací traitu a Rust nemůže určit, která se má použít.
E0310Generický typový parametr nesplňuje požadované ohraničení doby životnosti.
E0317Výraz if použitý jako hodnota postrádá větev else.
E0373Uzávěr zachytává referenci na proměnnou, která nemusí žít dostatečně dlouho.
E0392Generický typový nebo doživotnostní parametr je deklarován, ale ve struktuře nebo výčtu není použit.
E0404Na místě, kde se očekává trait, byl použit typ.
E0405Název traitu je použit, ale v aktuálním rozsahu platnosti není definován ani importován.
E0428Položka se stejným názvem je v tomtéž rozsahu definována více než jednou.
E0463Kompilátor zadanou krabici (crate) nemůže najít.
E0520Specializace implementace traitu vyžaduje funkci dostupnou pouze v nočním (nightly) kompilátoru.
E0596Pokoušíte se mutovatelně půjčit hodnotu, která není deklarována jako mutovatelná.
E0600Unární operátor je aplikován na typ, který ho nepodporuje.
E0601Binární krabice nemá vstupní bod — funkci main.
E0603Pokoušíte se přistoupit k soukromé položce zvenčí jejího modulu.
E0621Parametr funkce potřebuje explicitní anotaci doživotnosti pro splnění podmínek borrow checkeru.
E0308Různé větve match vrací nekompatibilní typy.
E0716Reference je držena na dočasnou hodnotu, která je okamžitě zahozena.
E0728Klíčové slovo .await je použito ve funkci, která není deklarována jako async.
panic-unwrapProgram zpanikoval, protože unwrap() bylo voláno na hodnotě None nebo Err.
panic-index-out-of-boundsProgram zpanikoval, protože index byl mimo platný rozsah kolekce.
panic-integer-overflowProgram zpanikoval, protože aritmetická operace způsobila přetečení celého čísla v ladícím (debug) režimu.
panic-stack-overflowProgram zpanikoval v důsledku nadměrného využití zásobníku, typicky způsobeného hlubokou rekurzí.
clippy::needless_returnKlíčové slovo return je na konci funkce použito zbytečně.
clippy::let_and_returnProměnná je deklarována a hned na dalším řádku vrácena.
clippy::unused_importsImportovaná položka není nikde v souboru použita.
clippy::clone_on_copyMetoda `clone()` je volána na typu, který implementuje Copy.
clippy::unwrap_usedJe použita metoda `unwrap()`, která může za běhu způsobit panic.
dead_codeFunkce, struktura, varianta výčtu nebo konstanta je definována, ale nikdy použita.
unused_variablesProměnná je deklarována, ale v kódu nikdy použita.
unused_mutProměnná je deklarována jako mutabilní, ale ve skutečnosti nikdy mutována.
E0046Nejsou implementovány všechny požadované metody traitu.
E0053Signatura metody v bloku `impl` neodpovídá signatuře metody v traitu.
E0277Typ, který neimplementuje `Send`, je použit v kontextu vyžadujícím bezpečnost vláken.
E0277Dynamicky veliký typ (DST) je použit tam, kde je vyžadován typ `Sized`.
E0277Typ je použit ve smyčce `for` nebo iterátorovém kontextu, ale neimplementuje `Iterator`.
E0308Closure vrací jiný typ, než jaký kontext očekává.
E0562Syntaxe `impl Trait` je použita na místě, kde to není povoleno.
E0308Funkce vrací `Result` s nesprávným typem `Ok` nebo `Err`.
E0277Typ je použit jako volatelný, ale neimplementuje `Fn`, `FnMut` ani `FnOnce`.
panic-divide-by-zeroProgram selhal panickou chybou kvůli celočíselnému dělení nulou.
panic-slice-index-out-of-rangeProgram selhal panickou chybou, protože rozsah slice je mimo meze.
clippy::map_unwrap_orPoužití `.map().unwrap_or()` lze nahradit `.map_or()`.
clippy::single_matchVýraz `match` s jediným smysluplným ramenem lze zjednodušit na `if let`.
clippy::redundant_closureClosure, která pouze volá funkci, lze nahradit přímo touto funkcí.