E0308E0308 — Tipos Incompatíveis
O tipo esperado não corresponde ao tipo real fornecido.
Explore os 80 códigos de erro de Erros do Compilador Rust com causas, soluções e exemplos.
E0308O tipo esperado não corresponde ao tipo real fornecido.
E0382Um valor é utilizado após ter sido movido para outra variável ou função.
E0502Um valor não pode ser emprestado de forma mutável enquanto um empréstimo imutável ainda está ativo.
E0597Uma referência sobrevive aos dados para os quais aponta.
E0277Um tipo não implementa um trait obrigatório.
E0599O método não existe no tipo fornecido, ou o trait necessário não está no escopo.
E0425Um identificador é utilizado mas não está definido no escopo atual.
E0433O caminho de módulo usado em uma instrução use ou caminho de tipo não pode ser resolvido.
E0106Uma referência na assinatura de uma função ou em uma struct está sem um parâmetro de tempo de vida.
E0015Uma função não-const é chamada em um contexto de expressão constante.
E0658Um recurso ainda não estabilizado no Rust está sendo usado sem o feature gate.
E0609A struct ou union não possui um campo com o nome fornecido.
E0614O operador de desreferência (*) é usado em um tipo que não implementa Deref.
E0499Um valor é emprestado de forma mutável mais de uma vez ao mesmo tempo.
E0503Um valor não pode ser usado enquanto está sendo emprestado de forma mutável por outra variável.
E0505Um valor é movido enquanto ainda está sendo referenciado por um empréstimo.
E0507Você está tentando mover um valor para fora de uma referência, o que deixaria a referência pendente.
E0515Uma função tenta retornar uma referência para um valor criado dentro dela.
E0432O módulo ou item referenciado em uma instrução use não pode ser encontrado.
E0412Um nome de tipo é usado mas não está definido nem importado no escopo atual.
E0423Um nome de tipo é usado onde se esperava um valor.
E0424A palavra-chave self é usada fora do contexto de um método ou função associada.
E0369Um operador binário é usado com tipos que não o suportam.
E0384Uma variável está sendo reatribuída, mas não foi declarada como mutável.
E0061Uma função foi chamada com número incorreto de argumentos.
E0063Uma struct está sendo construída sem todos os campos obrigatórios.
E0107Um tipo ou função genérico é usado com número incorreto de parâmetros de tipo.
E0117Você está implementando uma trait externa para um tipo externo, violando a regra do órfão.
E0119Duas ou mais implementações da mesma trait existem para o mesmo tipo.
E0133Uma função ou operação unsafe é usada fora de um bloco unsafe.
E0152Um item de linguagem (#[lang = ...]) é definido mais de uma vez.
E0200Uma trait unsafe deve ser implementada com um bloco unsafe impl.
E0252Duas importações trazem o mesmo nome para o escopo.
E0255Uma definição local conflita com um nome importado.
E0271Um tipo associado em uma implementação de trait não corresponde ao tipo esperado.
E0282Rust não consegue inferir o tipo de um valor e precisa de uma anotação explícita.
E0283Múltiplas implementações de trait poderiam se aplicar e Rust não consegue determinar qual usar.
E0310Um parâmetro de tipo genérico não satisfaz um bound de lifetime requerido.
E0317Uma expressão if usada como valor está sem o ramo else.
E0373Uma closure captura uma referência a uma variável que pode não ter tempo de vida suficiente.
E0392Um parâmetro de tipo genérico ou de lifetime é declarado, mas não é utilizado na struct ou enum.
E0404Um tipo foi usado onde uma trait era esperada.
E0405Um nome de trait é utilizado, mas não está definido nem importado no escopo atual.
E0428Um item com o mesmo nome é definido mais de uma vez no mesmo escopo.
E0463O crate especificado não pode ser encontrado pelo compilador.
E0520A especialização de implementação de trait requer um recurso do compilador nightly.
E0596Você está tentando tomar um empréstimo mutável de um valor que não foi declarado como mutável.
E0600Um operador unário é aplicado a um tipo que não o suporta.
E0601O crate binário não possui um ponto de entrada com a função main.
E0603Você está tentando acessar um item privado de fora de seu módulo.
E0621Um parâmetro de função precisa de uma anotação de lifetime explícita para satisfazer o borrow checker.
E0308Diferentes braços de match retornam tipos incompatíveis.
E0716Uma referência é mantida para um valor temporário que é descartado imediatamente.
E0728A palavra-chave .await é usada em uma função que não foi declarada como async.
panic-unwrapO programa entrou em pânico porque unwrap() foi chamado em um valor None ou Err.
panic-index-out-of-boundsO programa entrou em pânico porque um índice estava fora do intervalo válido para uma coleção.
panic-integer-overflowO programa entrou em pânico porque uma operação aritmética causou overflow de inteiro no modo debug.
panic-stack-overflowO programa entrou em pânico devido ao uso excessivo de stack, tipicamente causado por recursão profunda.
clippy::needless_returnA palavra-chave return é usada desnecessariamente ao final de uma função.
clippy::let_and_returnUma variável é declarada e imediatamente retornada na linha seguinte.
clippy::unused_importsUm item importado não é utilizado em nenhum lugar do arquivo.
clippy::clone_on_copyO método clone() é chamado em um tipo que implementa Copy.
clippy::unwrap_usedO método unwrap() é utilizado, o que pode causar panic em tempo de execução.
dead_codeUma função, struct, variante de enum ou constante é definida mas nunca utilizada.
unused_variablesUma variável é declarada mas nunca utilizada no código.
unused_mutUma variável é declarada como mutável mas nunca é de fato mutada.
E0046Nem todos os métodos obrigatórios de um trait foram implementados.
E0053A assinatura do método em um bloco impl não corresponde à assinatura do método do trait.
E0277Um tipo que não implementa Send é usado em um contexto que requer segurança entre threads.
E0277Um tipo de tamanho dinâmico (DST) é usado onde um tipo Sized é exigido.
E0277Um tipo é usado em um laço for ou em contexto de iterador, mas não implementa Iterator.
E0308A closure retorna um tipo diferente do esperado pelo contexto.
E0562A sintaxe impl Trait é usada em uma posição onde não é permitida.
E0308A função retorna um Result com o tipo Ok ou Err incorreto.
E0277Um tipo é usado como chamável, mas não implementa Fn, FnMut ou FnOnce.
panic-divide-by-zeroO programa entrou em pânico devido a uma divisão inteira por zero.
panic-slice-index-out-of-rangeO programa entrou em pânico porque um intervalo de slice está fora dos limites.
clippy::map_unwrap_orO uso de .map().unwrap_or() pode ser substituído por .map_or().
clippy::single_matchUma expressão match com apenas um braço significativo pode ser simplificada para um if let.
clippy::redundant_closureUma closure que apenas chama uma função pode ser substituída pela própria função.