A float ghost crashes the verifier: "Ghost not implemented for type float"
Les mainteneurs répondent en général sous 2 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 72/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- java
- Domaine
- testing-qa
Piste de recherche
Commence par le traitement par défaut de Ghost dans TypeChecker.java, où l’exception signalée est levée, et compare la façon dont les ghosts de type int et boolean obtiennent des valeurs par défaut. Utilise le reproducteur fourni pour vérifier le cas float ; le travail est terminé lorsqu’un ghost de type float obtient une valeur par défaut ou que l’annotation @Ghost signale clairement une erreur en énumérant les types pris en charge.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Declaring a float ghost crashes the verifier when the ghost needs its default value. The result should be either support for the type or a proper error at the @Ghost annotation.
Reproducer:
import liquidjava.specification.Ghost;
import liquidjava.specification.StateRefinement;
@Ghost("float level")
class Tank {
@StateRefinement(to = "true")
public void fill() {}
}
public class Main {
public static void main(String[] args) { Tank t = new Tank(); t.fill(); }
}
Found on main @ f7f366c (also on 1a506fe):
Exception in thread "main" java.lang.RuntimeException:
Error while checking CtConstructorImpl
on null
at (no source position: CtConstructorImpl)
with Ghost not implemented for type float
at liquidjava.processor.refinement_checker.TypeChecker.scan(TypeChecker.java:99)
...
int and boolean ghosts get defaults (0, false); double was not tried. Expected: a default for float too (or a user-facing error naming the supported ghost types).
Found while cataloguing spec forms for co-specification (probe V19 there). Low priority.
- Langage dominant
- Java
- Étoiles
- 71
- Forks
- 37
- Merge moyen
- 1 j 19 h
- PR mergées (30 j)
- 57
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire 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.
Autres issues de liquid-java/liquidjava
-
bug real-world-finding
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
liquid-java/liquidjava#395 ·
Les mainteneurs répondent en général sous 2 jours
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
liquid-java/liquidjava#373 ·
Les mainteneurs répondent en général sous 2 jours
-
External specs: a @StateSet declared later in the file is not found by an interface earlier in itOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 58/100
liquid-java/liquidjava#452 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
liquid-java/liquidjava#451 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 4/5 1-2 jours Accessibilité débutants 58/100
liquid-java/liquidjava#450 ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de liquid-java/liquidjava
Issues similaires
-
breaking change bug needs human review not ready priority medium size S
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
martin-francois/symphony-trello#1193 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Mend: dependency security vulnerability
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 1 jour
-
status: waiting-for-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
spring-projects/spring-framework#37614 ·
Les mainteneurs répondent en général sous 1 jour