liquid-java / liquid-java/liquidjava
This should not typecheck, but it typechecks
Ouverte
Personne n'a encore pris cette issue.
bug
- Langage dominant
- Java
- Étoiles
- 67
- Forks
- 36
- Merge moyen
- 10 j 18 h
- PR mergées (30 j)
- 3
Description
@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();
}
}
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Utilisez l’extrait Java de l’issue comme cas de reproduction et exécutez le vérificateur de types de LiquidJava dessus. Suivez pourquoi les deux appels à f() sont acceptés malgré le raffinement d’état indiqué, puis vérifiez que le vérificateur rejette cet exemple tout en préservant le comportement de raffinement attendu.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 35/100