もうちょっと単純に考える
裏側の理屈はともかくとして、もうちょっと自分が使いやすいように考えてみる。
やりたいこと
- すべてのjava.io.InputStreamは
- close()が呼び出されなければならない (呼び出されないものを探して警告)
単純に書いてみたもの
// すべてのjava.io.InputStreamは stream instanceof java.io.InputStream // 否定 except { // closeが close <: java.io.InputStream#close() // 呼び出されなければならない stream MUST PROCEED close }
要は、表明したいことが
- stream instanceof InputStream => stream.close() が必ず呼び出される
なんだから、この論理式が偽になるところで警告を出せばよいので、
- stream instanceof InputStream => not { stream.close() が必ず呼び出される }
を探せばいい。
ボキャブラリの選択にはかなり気を使わないとダメそう。
もうちょっと考えます。