Skip to content

Algoritmo de recycle [PT]

Ricardo Morais edited this page Feb 16, 2019 · 3 revisions

CONSEQUÊNCIAS:
– LOST_OWNERSHIP – A scope principal perdeu o controlo da variável.
– CONSIDERED_CONTROLED – A scope principal ainda mantém o controlo da variável.
– CONSIDERED_RECYCLED – A variável é considerada como reciclada.
RECYCLE – É necessário reciclar a variável no scope principal.

Para cada scope (Metodo, if, while, Lambda, for etc):
0.1. Definir scope principal como sendo essa scope;
1. Se uma variável for utilizada numa inner scope (Metodo, if, while, Lambda, for etc)
1.1 A variável foi reciclada e o inner scope não é um lambda:
1.1.1 A variável foi reinicializada após ser reciclada.
→ CONSIDERED_CONTROLED
→ CONSIDERED_RECYCLED
1.1.2 Senão:
→ CONSIDERED_RECYCLED
1.2 A variável utilizada num Lambda (inclui o caso em que é reciclada dentro do lambda):
→ LOST_OWNERSHIP
→ CONSIDERED_RECYCLED
1.3 A variável foi retornada ou enviada para um método:
→ LOST_OWNERSHIP
→ CONSIDERED_RECYCLED (ainda que em certas condições se pudesse colocar, no caso de um “if” com um return da variável por exemplo podiamos recyclar a seguir ao if)
1.4 Senão:
→ CONSIDERED_CONTROLED
RECYCLE
2. Se uma variável não for utilizada numa inner scope:
2.1 A variável foi retornada ou enviada para um método na scope principal:
→ LOST_OWNERSHIP
→ CONSIDERED_RECYCLED
2.2 Senão
→ CONSIDERED_CONTROLED
RECYCLE

Clone this wiki locally