Diagnosticos y errores semanticos

Objetivo de aprendizaje

  • Interpretar diagnosticos rapidamente y elegir la correccion correcta.

Sintaxis clave

Line 2, column 12: Incompatible return type: expected int but got string

Ejemplos

  • Diagnosticos comunes:
  • undeclared variable
  • unknown function o class
  • cantidad de argumentos incorrecta
  • asignacion o retorno incompatible
  • return fuera de funcion
  • import ciclico o simbolo faltante

Diagnosticos frecuentes y correccion rapida

  • Undeclared variable: 'x'

- Causa: la variable no existe en el scope actual. - Correccion: declara con let/const o usa el simbolo correcto.

  • Unknown function or class: 'Foo'

- Causa: import faltante, typo o nombre incorrecto. - Correccion: agrega el import y valida el identificador exacto.

  • Incorrect number of arguments for 'fn': A != B

- Causa: la llamada no coincide con la firma de funcion/metodo. - Correccion: ajusta argumentos o firma.

  • Cannot initialize 'x' of type list<T> with list<any>

- Causa: inferencia incompatible de lista. - Correccion: usa declaracion tipada (let x: list<T> = []) o valores compatibles.

  • Cannot call member 'length' on type list<...>

- Causa: length() no es metodo soportado para listas en Lucia. - Correccion: usa len(lista).

  • Unexpected Token '=' cerca de escritura por indice

- Causa en versiones antiguas: no estaba habilitado el target indexado. - Comportamiento actual: obj[i] = value; esta soportado.

Errores comunes

  • Aplicar quick fix sin entender causa raiz.
  • Ignorar limites entre archivos cuando el error viene de imports.

Flujo de depuracion recomendado

  • Atiende primero el primer error; los siguientes suelen ser en cascada.
  • Verifica imports y nombres antes de tocar logica compleja.
  • Reduce el caso a un snippet minimo reproducible.
  • Ejecuta nuevamente despues de cada ajuste para confirmar causa real.

Practica sugerida

  • Provoca 3 diagnosticos intencionales y corrige cada uno explicando la causa.

Relacionados

  • declarations-let-const
  • functions-and-builtins
  • oop-and-modules