liquid-java / liquid-java/liquidjava
This should not typecheck, but it typechecks
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Java
- Estrelas
- 67
- Forks
- 36
- Merge médio
- 10d 18h
- PRs com merge (30d)
- 3
Descrição
```
@Ghost("int some_other_ghost")
public class Test2 {
int n = 0;
@StateRefinement(from="some_other_ghost(this) > 0", to="some_other_ghost(this) < 0")
private void f(){}
private void shouldFail(){
f();
f();
}
public static void main(String[] args) {
Test2 t = new Test2();
t.shouldFail();
}
}
```
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Use o snippet de Java na issue como caso de reprodução e execute o verificador de tipos do LiquidJava nele. Rastreie por que as duas chamadas a f() são aceitas apesar do refinamento de estado declarado e, em seguida, verifique se o verificador rejeita este exemplo, preservando o comportamento de refinamento pretendido.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- java
- Domínio
- compilers
- Tipo de issue
- Bug
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Estagnada
- Clareza
- Precisa de esclarecimento
- Facilidade para iniciantes
- 35/100