E0308E0308 — Tipos no coincidentes
El tipo esperado no coincide con el tipo real proporcionado.
Explora los 80 códigos de error de Errores del Compilador de Rust con causas, soluciones y ejemplos.
E0308El tipo esperado no coincide con el tipo real proporcionado.
E0382Se utiliza un valor después de haber sido movido a otra variable o función.
E0502Un valor no puede tomarse prestado de forma mutable mientras un préstamo inmutable siga activo.
E0597Una referencia sobrevive a los datos a los que apunta.
E0277Un tipo no implementa un trait requerido.
E0599El método no existe en el tipo dado, o el trait requerido no está en el alcance.
E0425Se usa un identificador que no está definido en el alcance actual.
E0433La ruta de módulo utilizada en una declaración use o en una ruta de tipo no puede resolverse.
E0106Una referencia en la firma de una función o en un struct no tiene parámetro de tiempo de vida.
E0015Se invoca una función no const en un contexto de expresión constante.
E0658Se está usando una característica que aún no está estabilizada en Rust sin el feature gate correspondiente.
E0609El struct o union no tiene un campo con el nombre dado.
E0614Se usa el operador de desreferencia (*) sobre un tipo que no implementa Deref.
E0499Un valor se toma prestado de forma mutable más de una vez al mismo tiempo.
E0503Un valor no puede usarse mientras esté prestado de forma mutable por otra variable.
E0505Un valor se mueve mientras aún está prestado por una referencia.
E0507Estás intentando mover un valor fuera de una referencia, lo que dejaría la referencia colgante.
E0515Una función intenta devolver una referencia a un valor creado dentro de la función.
E0432No se puede encontrar el módulo o elemento referenciado en una declaración use.
E0412Se utiliza un nombre de tipo que no está definido ni importado en el ámbito actual.
E0423Se utiliza un nombre de tipo donde se esperaba un valor.
E0424La palabra clave self se utiliza fuera del contexto de un método o función asociada.
E0369Se utiliza un operador binario con tipos que no lo admiten.
E0384Se reasigna una variable que no fue declarada como mutable.
E0061Se llamó a una función con un número incorrecto de argumentos.
E0063Se está construyendo un struct sin todos los campos requeridos.
E0107Se usa un tipo o función genérica con un número incorrecto de parámetros de tipo.
E0117Estás implementando un trait externo para un tipo externo, infringiendo la regla del huérfano.
E0119Existen dos o más implementaciones del mismo trait para el mismo tipo.
E0133Se utiliza una función u operación unsafe fuera de un bloque unsafe.
E0152Un language item (#[lang = ...]) está definido más de una vez.
E0200Un trait unsafe debe implementarse con un bloque impl unsafe.
E0252Dos imports introducen el mismo nombre en el ámbito.
E0255Una definición local entra en conflicto con un nombre importado.
E0271Un tipo asociado en la implementación de un trait no coincide con el tipo esperado.
E0282Rust no puede inferir el tipo de un valor y necesita una anotación explícita.
E0283Pueden aplicarse varias implementaciones de trait y Rust no puede determinar cuál usar.
E0310Un parámetro de tipo genérico no satisface una restricción de lifetime requerida.
E0317Una expresión if usada como valor no tiene una rama else.
E0373Una clausura captura una referencia a una variable que podría no vivir lo suficiente.
E0392Un parámetro genérico de tipo o de tiempo de vida está declarado pero no se usa en el struct o enum.
E0404Se usó un tipo donde se esperaba un trait.
E0405Se usa el nombre de un trait, pero no está definido ni importado en el ámbito actual.
E0428Un elemento con el mismo nombre se define más de una vez en el mismo ámbito.
E0463El compilador no encuentra el crate especificado.
E0520La especialización de implementaciones de traits requiere una característica del compilador nightly.
E0596Intentas tomar prestado de forma mutable un valor que no está declarado como mutable.
E0600Se aplica un operador unario a un tipo que no lo admite.
E0601El crate binario no tiene una función main como punto de entrada.
E0603Intentas acceder a un elemento privado desde fuera de su módulo.
E0621Un parámetro de función necesita una anotación explícita de tiempo de vida para satisfacer al verificador de préstamos.
E0308Distintos brazos de match devuelven tipos incompatibles.
E0716Se mantiene una referencia a un valor temporal que se libera de inmediato.
E0728Se usa la palabra clave .await en una función que no está declarada como async.
panic-unwrapEl programa entró en panic porque se llamó a unwrap() sobre un valor None o Err.
panic-index-out-of-boundsEl programa entró en panic porque un índice quedó fuera del rango válido de una colección.
panic-integer-overflowEl programa entró en panic porque una operación aritmética causó desbordamiento de entero en modo debug.
panic-stack-overflowEl programa entró en panic por uso excesivo de la pila, normalmente debido a recursión profunda.
clippy::needless_returnSe usa la palabra clave return de forma innecesaria al final de una función.
clippy::let_and_returnSe declara una variable y se devuelve inmediatamente en la línea siguiente.
clippy::unused_importsUn elemento importado no se utiliza en ninguna parte del archivo.
clippy::clone_on_copySe llama al método clone() en un tipo que implementa Copy.
clippy::unwrap_usedSe utiliza el método unwrap(), que puede provocar un panic en tiempo de ejecución.
dead_codeSe define una función, struct, variante de enum o constante que nunca se utiliza.
unused_variablesSe declara una variable pero nunca se utiliza en el código.
unused_mutUna variable se declara como mutable pero nunca se modifica realmente.
E0046No se han implementado todos los métodos requeridos de un trait.
E0053La firma del método en un bloque impl no coincide con la firma del método del trait.
E0277Se usa un tipo que no implementa Send en un contexto que requiere seguridad entre hilos.
E0277Se usa un tipo de tamaño dinámico (DST) donde se requiere un tipo Sized.
E0277Se usa un tipo en un bucle for o en un contexto de iterador, pero no implementa Iterator.
E0308El closure devuelve un tipo distinto al que espera el contexto.
E0562La sintaxis impl Trait se usa en una posición donde no está permitida.
E0308La función devuelve un Result con el tipo Ok o Err incorrecto.
E0277Se usa un tipo como invocable, pero no implementa Fn, FnMut ni FnOnce.
panic-divide-by-zeroEl programa entró en pánico debido a una división entera por cero.
panic-slice-index-out-of-rangeEl programa entró en pánico porque el rango de un slice está fuera de los límites.
clippy::map_unwrap_orEl uso de .map().unwrap_or() se puede sustituir por .map_or().
clippy::single_matchUna expresión match con un solo brazo significativo se puede simplificar a un if let.
clippy::redundant_closureUn closure que solo llama a una función se puede sustituir por la función en sí.