E0308E0308 — Niezgodność Typów
Oczekiwany typ nie zgadza się z rzeczywiście podanym typem.
Przeglądaj wszystkie 80 kodów błędów Błędy kompilatora Rust z przyczynami, rozwiązaniami i przykładami.
E0308Oczekiwany typ nie zgadza się z rzeczywiście podanym typem.
E0382Wartość jest używana po tym, jak została przeniesiona do innej zmiennej lub funkcji.
E0502Wartość nie może być pożyczona mutowalnie, gdy aktywne jest jeszcze niemutowalne pożyczenie.
E0597Referencja przeżywa dane, na które wskazuje.
E0277Typ nie implementuje wymaganej cechy.
E0599Metoda nie istnieje dla danego typu lub wymagana cecha nie jest w zasięgu.
E0425Identyfikator jest używany, ale nie jest zdefiniowany w bieżącym zasięgu.
E0433Ścieżka modułu użyta w instrukcji use lub ścieżce typu nie może być rozwiązana.
E0106Referencja w sygnaturze funkcji lub strukturze nie ma parametru czasu życia.
E0015Funkcja niebędąca const jest wywoływana w kontekście wyrażenia stałego.
E0658Używana jest funkcjonalność Rusta, która nie została jeszcze ustabilizowana, bez włączenia flagi feature gate.
E0609Struktura lub unia nie ma pola o podanej nazwie.
E0614Operator wyłuskania (*) jest używany na typie, który nie implementuje Deref.
E0499Wartość jest pożyczana mutowalnie więcej niż raz w tym samym czasie.
E0503Wartość nie może być używana, gdy jest mutowalnie pożyczona przez inną zmienną.
E0505Wartość jest przenoszona, gdy nadal jest pożyczona przez referencję.
E0507Próbujesz przenieść wartość z referencji, co pozostawiłoby referencję wiszącą.
E0515Funkcja próbuje zwrócić referencję do wartości utworzonej wewnątrz funkcji.
E0432Moduł lub element wskazany w instrukcji use nie może być znaleziony.
E0412Użyto nazwy typu, który nie jest zdefiniowany ani zaimportowany w bieżącym zasięgu.
E0423Użyto nazwy typu w miejscu, gdzie oczekiwano wartości.
E0424Słowo kluczowe self jest używane poza kontekstem metody lub funkcji skojarzonej.
E0369Użyto operatora binarnego z typami, które go nie obsługują.
E0384Zmienna jest ponownie przypisywana, ale nie została zadeklarowana jako mutowalna.
E0061Funkcja została wywołana z błędną liczbą argumentów.
E0063Struktura jest konstruowana bez wszystkich wymaganych pól.
E0107Typ generyczny lub funkcja są używane z błędną liczbą parametrów typu.
E0117Implementujesz zewnętrzny trait dla zewnętrznego typu, naruszając regułę sieroty (orphan rule).
E0119Dla tego samego typu istnieją dwie lub więcej implementacji tego samego traitu.
E0133Niebezpieczna funkcja lub operacja jest używana poza blokiem unsafe.
E0152Element języka (#[lang = ...]) jest zdefiniowany więcej niż raz.
E0200Niebezpieczny trait musi być implementowany za pomocą bloku unsafe impl.
E0252Dwa importy wprowadzają tę samą nazwę do zasięgu.
E0255Lokalna definicja koliduje z zaimportowaną nazwą.
E0271Typ skojarzony w implementacji traitu nie odpowiada oczekiwanemu typowi.
E0282Rust nie może wywnioskować typu wartości i potrzebuje jawnej adnotacji.
E0283Mogą mieć zastosowanie wiele implementacji traitu i Rust nie może określić, której użyć.
E0310Parametr typu generycznego nie spełnia wymaganego ograniczenia czasu życia.
E0317Wyrażeniu if używanemu jako wartość brakuje gałęzi else.
E0373Domknięcie przechwytuje referencję do zmiennej, która może nie żyć wystarczająco długo.
E0392Deklarowany jest parametr generyczny typu lub czasu życia, który nie jest używany w strukturze lub wyliczeniu.
E0404W miejscu, gdzie oczekiwano cechy, użyto typu.
E0405Nazwa cechy jest używana, ale nie jest zdefiniowana ani zaimportowana w bieżącym zakresie.
E0428Element o tej samej nazwie jest definiowany więcej niż raz w tym samym zakresie.
E0463Kompilator nie może znaleźć podanej skrzynki.
E0520Specjalizacja implementacji cech wymaga niestabilnej funkcji kompilatora z wersji nightly.
E0596Próbujesz mutowanie pożyczyć wartość, która nie jest zadeklarowana jako mutowalna.
E0600Operator jednoargumentowy jest stosowany do typu, który go nie obsługuje.
E0601Binarna skrzynka nie posiada punktu wejścia w postaci funkcji main.
E0603Próbujesz uzyskać dostęp do prywatnego elementu spoza jego modułu.
E0621Parametr funkcji wymaga jawnej adnotacji czasu życia, aby spełnić wymagania nadzorcy pożyczeń.
E0308Różne ramiona dopasowania zwracają niezgodne typy.
E0716Referencja jest przechowywana do wartości tymczasowej, która jest natychmiast usuwana.
E0728Słowo kluczowe .await jest używane w funkcji, która nie jest zadeklarowana jako async.
panic-unwrapProgram spanikował, ponieważ unwrap() zostało wywołane na wartości None lub Err.
panic-index-out-of-boundsProgram spanikował, ponieważ indeks przekroczył prawidłowy zakres dla kolekcji.
panic-integer-overflowProgram spanikował, ponieważ operacja arytmetyczna spowodowała przepełnienie liczby całkowitej w trybie debugowania.
panic-stack-overflowProgram spanikował z powodu nadmiernego zużycia stosu, typowo przez głęboką rekurencję.
clippy::needless_returnSłowo kluczowe return jest używane niepotrzebnie na końcu funkcji.
clippy::let_and_returnZmienna jest deklarowana i natychmiast zwracana w następnej linii.
clippy::unused_importsZaimportowany element nie jest używany nigdzie w pliku.
clippy::clone_on_copyMetoda clone() jest wywoływana na typie implementującym Copy.
clippy::unwrap_usedUżywana jest metoda unwrap(), która może spowodować panikę w czasie wykonania.
dead_codeFunkcja, struktura, wariant enuma lub stała jest zdefiniowana, ale nigdy nieużywana.
unused_variablesZmienna jest zadeklarowana, ale nigdy nieużywana w kodzie.
unused_mutZmienna jest zadeklarowana jako mutowalna, ale nigdy faktycznie nie jest modyfikowana.
E0046Nie wszystkie wymagane metody cechy zostały zaimplementowane.
E0053Sygnatura metody w bloku impl nie zgadza się z sygnaturą metody cechy.
E0277Typ nieimplementujący Send jest użyty w kontekście wymagającym bezpieczeństwa wątkowego.
E0277Dynamicznie rozmiarowany typ (DST) jest użyty tam, gdzie wymagany jest typ Sized.
E0277Typ jest użyty w pętli for lub kontekście iteratora, ale nie implementuje Iterator.
E0308Domknięcie zwraca inny typ niż oczekiwany przez kontekst.
E0562Składnia impl Trait jest użyta w pozycji, gdzie nie jest dozwolona.
E0308Funkcja zwraca Result z błędnym typem Ok lub Err.
E0277Typ jest użyty jako wywoływalny, ale nie implementuje Fn, FnMut ani FnOnce.
panic-divide-by-zeroProgram wywołał panic z powodu dzielenia całkowitoliczbowego przez zero.
panic-slice-index-out-of-rangeProgram wywołał panic, ponieważ zakres wycinka jest poza granicami.
clippy::map_unwrap_orUżycie .map().unwrap_or() można zastąpić przez .map_or().
clippy::single_matchWyrażenie match z tylko jednym znaczącym ramieniem można uprościć do if let.
clippy::redundant_closureDomknięcie, które tylko wywołuje funkcję, można zastąpić samą funkcją.