Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Análise estática de Código #7

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

leohmoreira
Copy link

A transformação proposta está baseada na apresentação que fiz sobre detecção de código morto.
Tive que fazer algumas adaptações porque achei que tentar implementar o conceito de 'label' seria muito custoso.
A abordagem seguida foi:

  1. verificar todas as atribuições feitas; (LeftHandSide operator Expression)
  2. essa atribuição só será válida se o LeftHandSide estiver sendo atribuído a outra variável, ou seja, ela deve estar no lado direito de alguma atribuição;
  3. Restringi o lado direito da atribuição a variáveis e chamada de métodos com uma única variável como parâmetro;
  4. PostfixExpressions também são verificadas, por exemplo, x++ e y--;

Problemas enfrentados:

  1. Como não consegui adicionar // no começo da linha, usei a expressão "eliminado" para mostrar que a linha tem que ser removida;
  2. A verificação se a variável é usada é feita em toda compilation unit. O ideal seria fazer apenas para o trecho de código a partir da atribuição, mas não tenho idéia de como fazer isso;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant