liquid-java / liquid-java/liquidjava

Support `LinkedList<@Refined(“x>0”) Integer>`

Aperta
#41 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

enhancement future
Lingua principale
Java
Stelle
67
Fork
36
Merge medio
10g 18h
PR unite (30g)
3

Descrizione

Add support for refining all the items inside a List.
This is a large task with several challenges inside, some of them include:

- supporting list refinements, see how LiquidHaskell handles them;
- how to translate lists to SMT lib;
- unboxing Integer to int.

Small example code:
```java
LinkedList<@Refinement(“x>0”) Integer> li = new ArrayList();
li.add(10); // okay
li.add(-100; // error
```

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Non sono indicati file sorgente o test. Inizia esaminando la gestione esistente dei refinement e il modo in cui LiquidHaskell gestisce i refinement delle liste, quindi analizza la traduzione delle liste in SMT-LIB e l'unboxing di Integer in int. Il lavoro è completato quando l'esempio LinkedList accetta 10 e rifiuta -100.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
compilers
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.