Orientações


Este documento traz orientações para quem está implementando um analisador.

Geral

  • Analise todos os arquivos enviados, exceto arquivos tests/invalidator/editor/example/exemplar
  • Não busque 100% de acerto, algo praticamente impossível de alcançar. Não tem problema se o analisador não encontrar todos os problemas ou não conseguir inferir algumas tags.

Compilação

Se a sua linguagem exige uma etapa de compilação, considere estes pontos:

  • Compilar a solução geralmente permite uma fidelidade maior. Por exemplo, o tipo definitivo de um valor só é conhecido depois da compilação. Mas fique atento aos trade-offs (por exemplo, execução mais lenta e mais uso de memória).
  • Considere a compilação em memória (se possível) para melhorar o desempenho.

Testes

  • Tenha uma suíte de testes abrangente
  • Use testes golden para verificar o comportamento do analisador. Esses testes devem usar a imagem Docker que será publicada para verificar o analisador.
  • Considere ter testes para cada abordagem. Você quer que o analisador funcione bem para essas soluções, e isso vai ajudar a atribuir tags às abordagens mais adiante.