State checking for extending abstract classes
まだ誰も着手していません。
評価
調査の方向性
URLConnectionRefinements アノテーション、URLExt、および Testurl の例を使って報告を再現します。まず、URLExt に対してメソッドが呼び出されたときに、java.net.URLConnection から継承された状態リファインメントがどのようにチェックされるかを追跡します。オブジェクトが接続済み状態にまだ到達していないため、setDoInput(false) は受け入れられ、getContent() は拒否されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Currently, reusing state refinements from an abstract superclass in a concrete class is not fully implemented, and gives an error like the one below.
Example for abstract class java.net.URLConnection:
@ExternalRefinementsFor("java.net.URLConnection")
@StateSet({"setup", "connected"})
public interface URLConnectionRefinements {
@StateRefinement(to="setup(this)")
public void URLConnection(URL url);
@StateRefinement(from="setup(this)")
public void setDoInput(boolean doinput);
@StateRefinement(from="setup(this)", to="connected(this)")
public void connect();
@StateRefinement(from="connected(this)")
public Object getContent();
}
Extended in class URLExt:
class URLExt extends URLConnection{
public URLExt(URL url){
super(url);
}
@Override
public void connect() throws IOException {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'connect'");
}
}```
Tested in:
```java
class Testurl {
void test() throws URISyntaxException, IOException {
URLExt u = new URLExt(new URI("http://example.com").toURL());
u.setDoInput(false); // should not be an error but it is
u.getContent(); // should be an error
}
}
- 主要言語
- Java
- スター
- 67
- フォーク
- 36
- 平均マージ
- 10日 18時間
- マージ済み PR(30日)
- 3
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
liquid-java/liquidjava のほかの issue
-
enhancement
liquid-java/liquidjava#240 · 担当者 1 名 ·
-
enhancement ide
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
liquid-java/liquidjava#206 ·
-
tests
難易度 2/5 1〜3時間 初心者へのやさしさ 25/100
liquid-java/liquidjava#198 ·
-
tests
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
liquid-java/liquidjava#197 ·
-
tests
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
liquid-java/liquidjava#196 · コメント 2 件 ·
liquid-java/liquidjava の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
-
Two open-case totals on one screen: the Programs tile says 15,858 and the nav badge says 15,868 オープンbug frontend maui-pilot
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
objectionary/eo-graphs#74 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100