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