The checker wasn't prepared to see the dealloc message sent to the class itself rather than to an instance, as if it was +dealloc.
Additionally, it wasn't prepared for pure-unknown or undefined self values; the new guard covers that as well, but it is annoying to test because both kinds of values shouldn't really appear and we generally want to get rid of all of them (by modeling unknown values with symbols and by warning on use of undefined values before they are used).
The CHECK: directive for FileCheck at the end of the test looks useless, so i removed it.