Assignment of field to parent field giving error
まだ誰も着手していません。
評価
調査の方向性
提供されている MyStackTest の例から始め、typechecking/LatteTypeChecker.java の 270 行目を調べてください。そこではフィールド読み取りのパスが permV をデリファレンスしています。親フィールドへの代入がどのように処理されるかを追跡し、この入力で NullPointerException が発生しなくなるように回帰ケースを追加または更新して、checker の結果の動作を確認してください。
索引モデルが issue の本文から書いたものです。
説明
Code issuing an error of NullPointerException
import java.util.Iterator;
import specification.Unique;
public class MyStackTest {
@Unique int[] a;
@Unique int size;
private class ReverseArrayIterator implements Iterator<Integer> {
public @Unique int i = size - 1;
//(true >> this.i >= 0 -> return )
@Override
public boolean hasNext() { return i >= 0; }
//(this.i >= 0 >> this.i == old(this.i) - 1)
@Override
public Integer next() { return a[i--]; }
}
}
Error message:
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "context.UniquenessAnnotation.isGreaterEqualThan(context.Uniqueness)" because "permV" is null
at typechecking.LatteTypeChecker.visitCtFieldRead(LatteTypeChecker.java:270)
at spoon.support.reflect.code.CtFieldReadImpl.accept(CtFieldReadImpl.java:18)
at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:194)
at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:184)
at spoon.reflect.visitor.CtScanner.visitCtBinaryOperator(CtScanner.java:312)
at typechecking.LatteTypeChecker.visitCtBinaryOperator(LatteTypeChecker.java:572)
at spoon.support.reflect.code.CtBinaryOperatorImpl.accept(CtBinaryOperatorImpl.java:34)
at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:194)
at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:184)
at spoon.reflect.visitor.CtScanner.visitCtField(CtScanner.java:436)
at spoon.support.reflect.declaration.CtFieldImpl.accept(CtFieldImpl.java:53)
at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:194)
at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:184)
at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:149)
at spoon.reflect.visitor.CtScanner.visitCtClass(CtScanner.java:357)
at typechecking.LatteTypeChecker.visitCtClass(LatteTypeChecker.java:53)
at spoon.support.reflect.declaration.CtClassImpl.accept(CtClassImpl.java:63)
at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:194)
at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:184)
at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:149)
at spoon.reflect.visitor.CtScanner.visitCtClass(CtScanner.java:357)
at typechecking.LatteTypeChecker.visitCtClass(LatteTypeChecker.java:53)
at spoon.support.reflect.declaration.CtClassImpl.accept(CtClassImpl.java:63)
at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:194)
at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:184)
at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:149)
at spoon.reflect.visitor.CtScanner.visitCtPackage(CtScanner.java:679)
at spoon.support.reflect.declaration.CtPackageImpl.accept(CtPackageImpl.java:82)
at typechecking.LatteProcessor.process(LatteProcessor.java:31)
at typechecking.LatteProcessor.process(LatteProcessor.java:1)
at spoon.support.visitor.ProcessingVisitor.scan(ProcessingVisitor.java:72)
at spoon.support.QueueProcessingManager.process(QueueProcessingManager.java:118)
at spoon.support.QueueProcessingManager.process(QueueProcessingManager.java:132)
at api.App.launcher(App.java:90)
at api.App.main(App.java:31)
- 主要言語
- Java
- スター
- 3
- フォーク
- 1
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
liquid-java/latte のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 42/100
liquid-java/latte#26 ·
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
liquid-java/latte#25 ·
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
liquid-java/latte#24 ·
-
Add support for functions in If conditions再び着手できるかも @Pichers が 500 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
liquid-java/latte#22 · 担当者 1 名 ·
-
Fix examples that are commented out再び着手できるかも @CatarinaGamboa が 519 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンbug
liquid-java/latte#17 · 担当者 1 名 ·
liquid-java/latte の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
OpenAPITools/openapi-generator#25014 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
openhab/openhab-core#5847 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
apache/parquet-java#3820 ·
メンテナーはふだん 1 日以内に返信