フロー解析
java.io.InputStream型の値を作り出したら、それに対して.close()が呼び出されない(可能性が少しでもある)ものを探す。っていう妄想。
stream INSTANCEOF java.io.InputStream stream MAY NOT FLOW method WHERE { method.expression HAS stream method.target = #close() }
要は、
- 値が生まれた瞬間にその値の特徴を表明できる (INSTANCEOF, など)
- データフローの可能性を表明できる (MAY NOT, など)
- 確実に同じ値を持っているということを表明できる (HAS)
という3種類でいろいろなことが書けるんじゃね、ということ。