liquid-java / liquid-java/liquidjava

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

オープン
#41 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

enhancement future
主要言語
Java
スター
67
フォーク
36
平均マージ
10日 18時間
マージ済み PR(30日)
3

説明

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:

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

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

ソースファイルやテストは指定されていません。まず既存のrefinement処理と、LiquidHaskellがリストのrefinementをどのように扱うかを調べ、次にリストのSMT-LIBへの変換とIntegerのintへのアンボックス化を調査してください。LinkedListの例が10を受け入れ、-100を拒否すれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
compilers
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。