ilya-klyuchnikov/faba — pull request #35 by ilya-klyuchnikov (2014-10-13 12:44:08+00:00)
Title: Simplest inference of `@Contract(pure=true)`

This simple analysis infers `@Contract(pure=true)` only if the method doesn't have following instructions:

* `PUTFIELD`
* `PUTSTATIC`
* `IASTORE`
* `LASTORE`
* `FASTORE`
* `DASTORE`
* `AASTORE`
* `BASTORE`
* `CASTORE`
* `SASTORE`
* `INVOKEDYNAMIC`
* `INVOKEINTERFACE`

Instructions `INVOKESPECIAL`, `INVOKESTATIC`, `INVOKEVIRTUAL` are processed by transitivity.