Repository: VKCOM/noverify
Pull request #830 (2020-12-03 13:30:48)

linter: added handling of in_array and array_search functions


Patch:
diff --git a/src/cmd/embeddedrules/rules.go b/src/cmd/embeddedrules/rules.go
index 7be4b60..bde7072 100644
--- a/src/cmd/embeddedrules/rules.go
+++ b/src/cmd/embeddedrules/rules.go
@@ -77,7 +77,7 @@ func (fi bindataFileInfo) Sys() interface{} {
 	return nil
 }
 
-var _embeddedrulesRulesPhp = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x98\x4b\x6f\xe3\x36\x10\x80\xef\xfe\x15\x63\x43\xeb\xd8\x5e\xdb\xea\xa2\xb7\x3c\xb7\xed\xa9\xc0\xa2\x01\xb6\xd8\x53\xb1\xb1\x29\x69\x64\x71\x23\x93\x2a\x49\x25\x56\xa3\xfc\xf7\x82\x94\x14\xeb\x69\x4b\x69\x03\xc4\xb0\x87\xe4\x7c\xf3\x22\x87\xd2\xf5\x5d\x14\x44\xa3\x91\xbd\x58\x8c\x60\x01\x9f\x19\xa7\x4c\x46\xe8\x2a\xca\x19\xfc\xf2\xe5\x8b\x11\x86\x94\x29\x14\x90\xfd\x79\x54\x12\x27\xc4\x11\x2c\xec\xe3\x32\x97\xef\xf7\xc8\x14\x7c\xc5\x88\x0b\x05\x0a\x05\x23\x22\x01\x3c\x44\x02\xa5\xa4\x9c\x49\x50\x01\x51\xe0\x12\x06\x0e\x82\xa4\xfb\x28\xa4\x3e\x45\x6f\x6d\x96\x3b\xe8\x73\x81\x00\xd6\x01\xee\xf4\xc7\x25\x58\x89\x19\x20\x7e\x06\xd6\x03\xb9\xd0\x1e\xf9\x31\xcb\xec\xcb\x31\x7f\x66\xda\x92\xd9\x1c\x5e\x46\x00\xc6\x26\xd0\xab\xf7\x24\x71\x10\x5c\x1e\x87\x1e\x08\x8c\x42\xe2\x22\xa8\x00\xdf\xcc\x7b\xa6\x2a\x80\x1f\xb1\x54\x60\xb9\x9c\x79\xf9\x2a\x95\x44\x08\x0e\xe7\x61\x49\x6a\x8f\x20\xfb\x05\x77\xa0\x44\x8c\x70\x09\x3e\x09\x25\x5e\x8d\x4e\x00\x9f\x05\x55\x08\x44\xc2\x76\xa6\xd5\xcd\x8d\x82\x6d\x99\x02\xe3\xff\x97\x53\x84\xa9\x80\xf8\xf4\x50\x0a\x9d\x11\x45\xb1\x40\xb0\x0e\x47\x5a\x29\xe4\x03\x28\x77\x2d\x94\xbb\x82\xa2\xf5\x52\x29\x51\xcd\xac\xc3\xbc\xac\xfe\xb5\xb3\x62\x22\xae\x90\x29\x4a\x42\xe0\x11\x0a\x62\xd2\x1b\x09\x74\xd1\x43\xe6\xa2\xd6\x16\xa3\x6c\x14\xcb\x14\xac\x3d\x91\x8f\x70\x73\x03\x3f\x5d\x81\x6d\xeb\x2f\x01\x91\x10\xd0\x5d\x80\xa2\xac\x40\x05\x84\xc1\xb4\x52\x53\xb3\xa3\x82\xb9\xd1\x50\x2d\xae\xe3\xe2\xa2\xae\x6c\xf8\x83\x2b\xbc\x84\x67\xd4\xd5\xa4\xad\xde\x96\x6c\x18\xdf\xe8\x90\xe8\x00\x91\x86\xe5\x80\x4f\xc8\x32\x15\xd4\x07\xfa\xb6\x0f\x5c\x12\xef\x02\x95\xd5\xe1\x56\x57\x84\x1b\xa0\xfb\x78\x1f\x6d\xf3\xdd\xa2\x7f\x49\x70\xb8\x0a\xb2\xb0\x98\x2a\xb1\x6d\xd0\x53\x25\x98\xaa\x02\x2a\x81\x71\x05\x04\x76\x9c\x7b\xc5\x34\xf0\xb9\x00\x87\xaa\x67\x2a\xf1\x18\xd1\xf9\xda\x2c\xcf\x74\x64\x81\xa7\x6c\x07\x5b\xca\x9e\x48\x48\xbd\x4c\xed\x52\xef\x5a\x74\x15\x7a\xc0\xe2\xbd\x83\x02\x7c\x1e\x33\xcf\xec\x88\x2d\x50\x99\xad\xd6\x48\x63\x63\x80\x61\xe4\xc7\xe1\x12\x1c\x74\x49\x2c\xb3\x0d\x26\x38\x57\xc0\x7d\xf3\x3d\x12\xdc\x09\x71\xaf\xed\x3c\x86\x25\x33\x04\x7e\x2f\x83\x81\x08\x04\x02\x02\x65\x1c\xe6\xab\x89\x5a\xe7\x25\x09\x9f\x9f\x89\x60\xda\xda\x33\x29\xce\xaa\x8f\xb0\x64\x83\x7f\x6f\x1c\xaa\x08\xf3\x2e\x4d\xfa\x00\xac\x8d\x5e\x6c\x6d\x74\xca\x36\x57\x85\x68\xfa\x26\xd7\xa2\xd7\x3a\x6e\xdc\x17\xc7\xda\x78\xe3\x0e\xde\xb8\x93\x77\x33\xc0\xbf\x9f\xdb\x1c\xec\xf4\xf0\x84\x8b\x03\x7c\x6c\x61\x8e\xbb\x98\xe3\x12\x73\x58\x1a\xd3\x7a\x1a\xb9\x68\x64\x31\x2d\xf3\xd2\xff\x92\xc5\xb4\x91\xc5\x0a\x6e\xdc\x81\x7b\x77\x12\xd3\x46\x12\x6b\xee\x75\xfa\xf7\xde\x1c\xa6\xcd\x1c\xd6\x5c\xec\xf4\xf1\x88\xec\x3e\xbd\x89\x94\x74\xc7\xb4\xa4\x77\x9f\xbf\xd1\x1f\x1f\x4d\x57\xa8\x35\xfa\x8f\x37\xb9\xb4\x74\x18\x67\x80\xfb\xe8\x4c\x8b\xaf\xf4\x28\xa3\xa7\xd6\xa3\x8c\xac\xbb\x13\x96\x8c\xea\x4b\x59\xb5\x50\x56\x3d\x28\xab\x41\x94\x45\x0b\x65\xd1\x83\xb2\x18\x44\xb1\x5b\x28\x76\x0f\x8a\x3d\x88\xf2\xa1\x85\xf2\xa1\x07\xe5\xc3\x20\xca\xb4\x85\x32\xed\x41\x99\x0e\xa2\xa4\x2d\x94\xb4\x07\x25\x1d\x44\x79\x68\xa1\x3c\xf4\xa0\x3c\x0c\xa2\x5c\x5f\xb7\x60\x32\xe1\x19\xce\xf5\xf5\x20\xd0\xed\x6d\x0b\x28\x13\x9e\x01\xdd\xde\x0e\x02\xad\x5b\x38\xeb\x1e\x98\xf5\xc0\xbb\x70\x0b\x26\x13\x9e\xe1\x98\x1b\x73\xcf\x5b\xb1\xef\xaf\x9c\x64\xc5\x19\xc2\x9e\x4a\x45\x1e\x1b\xb7\x61\xf2\x97\xcb\x63\xa6\x66\x16\x99\x7f\xaf\x1e\xa9\xa5\x91\xd5\xa7\xef\xd5\x83\x95\xfb\xfe\xaf\xc9\xa7\xc6\xb1\x5a\xb4\x15\x7d\x79\x23\x4e\x98\x80\x7e\x02\x64\x1e\x7a\xa0\x38\xe8\x5b\x9e\xd1\xb8\xfa\x64\xae\xbb\x0c\x28\xf3\xf0\x50\x0a\x00\xd4\xb0\xb0\x02\x0d\x2e\xdc\x2f\x9b\x5a\x8b\xf3\x59\xb0\xa4\xff\x20\xf7\xcf\x91\xb3\x59\xad\xe8\xe3\xd0\xf7\x53\xa1\x97\xb1\x8c\xa8\x4b\x79\xac\xef\xa5\xbb\x38\xeb\x6d\x5c\x78\x28\xaa\x71\x97\x4a\x44\x5c\xce\x2e\xec\x8b\x25\x58\x72\x5e\x89\x7c\x3e\x66\xc9\x25\x5c\xd8\x17\xf3\x5a\x4b\x13\x3b\x79\xaf\xf5\x75\x07\xbf\xc8\xbe\x09\x83\xcb\x85\x40\x57\x41\x40\x12\xa9\x88\xfb\x08\xfa\x9a\xcf\x10\xbd\x10\xeb\x16\xbe\xb9\xab\xfb\x7d\x31\x7f\x93\xcd\x2d\x9a\x7e\x61\xdb\xcb\xc4\x0d\x88\x98\xbc\x2e\xc1\x7a\x99\x2c\x26\xaf\xf3\xab\x62\x98\x9e\x19\x3f\xbd\x3e\x76\xa4\x12\x9b\x3c\xcf\x2f\x13\xa9\xea\x73\x5e\x3b\x12\xdf\xea\x74\xfe\xf4\x6e\x12\xa4\xfd\x96\xb1\xf3\x43\xcb\xbb\x1c\x8f\x04\xee\x36\xf9\xa2\x99\xb5\x59\x82\xf9\x6f\x9a\x31\xdc\x84\x0c\xaf\x84\x9e\x78\x2a\xec\xda\xfb\x7c\x49\x29\xe4\x6d\x36\x75\xc5\xb7\x31\x77\x32\x79\x7f\x00\x3d\x0c\xe9\x9e\xea\xb2\xec\x61\x3f\x1e\xa2\x90\x7b\x39\xb8\xc5\xc0\x5e\xbb\x26\x96\x64\x87\xfa\x31\xae\xf1\x18\x5a\x3b\xb9\xa8\x0f\x33\x8b\xca\x6f\x5f\xbf\xe8\xe6\xfb\x84\x82\xfa\xc9\x1c\xd6\xeb\x75\x65\x2f\x95\x67\x35\xa6\x95\xb6\x55\x4e\xbb\x8f\x64\xe7\xbe\xfa\x26\xd1\x83\x69\xcd\x2e\x2e\x80\x3f\xa1\xc8\x5e\xfc\xe4\x4f\xd1\x72\x09\x11\x8a\x80\x44\x52\x33\xa9\x7c\x3b\x8c\xee\x6a\xf7\x8a\xe9\xf1\xac\x2f\xbd\x3d\x3a\x34\x45\x49\xb9\x07\xb4\x5c\x35\x2a\x26\xa6\xc3\x4c\x4c\xd3\x13\x26\xa6\xe9\xbb\x4c\x4c\xcf\x34\x28\x97\x84\xe1\xe0\xb7\x7c\x94\x6d\x88\x10\x24\x99\x59\x8f\x4b\x30\xdf\x36\x8f\x98\xc8\x99\xa5\x02\x2a\x57\xb7\x1e\x51\x64\x5e\x3d\x48\xdf\x26\x6d\xf0\x40\xa5\x92\x66\x65\x79\x7a\xb5\x06\xb4\x55\x67\x5e\x0a\xfe\x66\x3a\x79\x6e\x61\xa2\x9b\x4b\x0b\x03\x93\x25\x58\x5a\x79\xa9\xbd\x9c\x99\x66\x5e\x7d\x1d\xfd\xd3\x43\x65\x0f\xc9\xdc\x6c\x9f\x7f\x03\x00\x00\xff\xff\xe2\x8d\x2a\x7e\x75\x15\x00\x00")
+var _embeddedrulesRulesPhp = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x98\xdf\x6f\xdb\x38\x12\xc7\xdf\x03\xe4\x7f\x18\x1b\xaa\x63\xa7\xb6\x75\x45\xdf\x92\x38\xe9\x5d\x9f\x0e\x28\x2e\x40\x0f\x7d\x5a\xb4\x0e\x25\x8d\x2c\x36\x32\xa9\x25\xa9\xc4\xda\x28\xff\xfb\x82\xa2\x24\xcb\x12\xfd\x43\x4d\xb7\x40\x1d\x7b\x34\xe4\xe7\xcb\x19\x92\x43\xf1\xe6\x2e\x89\x92\xf3\xb3\xf3\x33\xf7\xf2\xf2\xfc\x0c\x2e\xe1\x13\xe3\x94\xc9\x04\x7d\x45\x39\x83\x7f\x7f\xf9\x62\xac\x31\x65\x0a\x05\x98\x7f\x01\x95\xc4\x8b\x51\x3f\x71\x77\xda\xfa\x7c\xbd\x46\xa6\xe0\x2b\x26\x5c\x28\x50\x28\x18\x11\x19\xe0\x26\x11\x28\x25\xe5\x4c\x82\x8a\x88\x02\x9f\x30\xf0\x10\x24\x5d\x27\x31\x0d\x29\x06\x73\xd3\xde\xc3\x90\x0b\x04\x70\x36\x70\xa7\x3f\xae\xc0\xc9\xcc\x13\x12\x1a\xbc\x7e\x52\x59\xdd\xf3\xb3\x30\x65\x46\x68\x89\xfa\xbf\xe9\x31\x1b\x4f\xe0\xe5\xfc\x0c\xc0\x28\x03\xdd\xc3\x9a\x64\x1e\x82\xcf\xd3\x38\x00\x81\x49\x4c\x7c\x04\x15\x61\x2d\xf2\x99\xaa\x08\x7e\xa6\x52\x81\xe3\x73\x16\x54\xcd\x54\x96\x20\x78\x9c\xc7\x4d\xb3\xab\xff\x14\xbf\xe1\x0e\x94\x48\x11\xae\x20\x24\xb1\xc4\x6b\x1d\x8e\x03\xd8\x67\x41\x15\x02\x91\xf0\x30\xd6\x7d\x4e\x8a\x3e\x1e\x76\x58\x30\xf8\x07\x68\x55\xd8\x6a\x54\x48\x37\xcd\x58\x16\xb6\x24\x15\x08\xce\xa6\x09\x6d\xe4\xa1\x1f\xec\xce\x06\xbb\xab\x61\x45\xef\x54\x4a\x54\x63\x67\x33\xd9\x81\xbc\x1e\x9a\x51\x09\x57\xc8\x14\x25\x31\xf0\x04\x05\x29\x52\x9f\x08\xf4\x31\x40\xe6\xa3\xee\x31\x45\xd9\x9d\x4c\x23\x70\xd6\x44\x3e\xc2\x62\x01\xff\xba\x06\xd7\xd5\x5f\x22\x22\x21\xa2\xab\x08\x45\xb3\x07\x15\x11\x06\xa3\xdd\x39\x37\xde\xf6\x30\x29\xba\x68\x4f\xbe\x6d\xfb\x7a\xde\xb9\xf0\x3f\xae\xf0\x0a\x9e\x51\x4f\x36\x2d\xfd\xa1\xa1\x63\xb0\xd0\xe1\xd1\xc1\x22\x1d\xf9\x80\x4f\xc8\xca\x3e\x68\x08\xb4\x5e\x2d\x3e\x49\x57\x91\x32\xf3\xf4\x41\x4f\x15\x3f\x42\xff\xf1\x3e\x79\x28\xd7\x94\xfe\x25\xc1\xe3\x2a\x32\xc1\x31\xd3\xc7\x75\x41\xfb\x4a\x28\x26\x1c\x50\x09\x8c\x2b\x20\xb0\xe2\x3c\xa8\xfc\x20\xe4\x02\x3c\xaa\x9e\xa9\xc4\x6d\x60\x27\x73\xd3\xbe\xec\xc5\x64\x80\xb2\x15\x3c\x50\xf6\x44\x62\x1a\x98\x8e\xa7\x7a\x79\xa3\xaf\x30\x00\x96\xae\x3d\x14\x10\xf2\x94\x05\xc5\x9a\x79\x00\x2a\xcb\xe6\x9a\x5a\xe8\x8c\x30\x4e\xc2\x34\x9e\x82\x87\x3e\x49\xa5\x59\x84\x82\x73\x05\x3c\x2c\xbe\x27\x82\x7b\x31\xae\xb5\xd4\x6d\x6c\x4a\x2d\xf0\xdf\x26\x1a\x88\x40\x20\x20\x50\xa6\x71\xd9\x9c\xa8\x79\x3d\x4f\xe1\xd3\x33\x11\x4c\x2b\x3e\x92\xee\x72\x3e\x12\x96\x2d\xf1\xcf\xa5\x47\x15\x61\xc1\x95\x49\x24\x80\xb3\xd4\xcd\x9d\xa5\x4e\xde\xf2\xba\xb6\x8d\xea\x07\x85\xed\xb5\xc3\x1c\x9c\xcc\x64\x56\xe8\x60\x1f\x74\x70\x00\xba\xe8\x33\xd2\x8f\xd6\xa1\xee\x1f\xeb\xc1\xc1\xf6\x19\xad\x0d\x3c\xd8\x0b\x1e\xec\x80\x7b\xe6\x36\xef\xe4\x96\x8b\x6e\x6a\xf3\x1d\x6a\xfe\xb6\xd4\xe6\xdd\xd4\xee\x32\x07\xfb\x98\x6f\xc8\x6c\xde\xcd\x6c\x7b\xa0\xfb\x47\xfa\xeb\x89\xcd\x2d\x89\x6d\x0f\x76\xff\x68\x9b\xdc\x83\xdb\x3e\x91\x92\xae\x98\xb6\x9c\x7e\x80\x58\xe8\x8f\xf7\xa6\xa6\xb4\x4e\x10\xef\x17\x95\xb9\xb9\x8b\x1b\xc8\x7d\x72\xf4\xec\xb0\x53\xe9\x8a\xbe\xda\x95\xae\x30\x1e\x2c\xab\x4d\x75\xa7\xc3\x66\x36\xd8\xec\x34\xd8\xac\x2f\xec\xd2\x06\xbb\x3c\x0d\x76\xd9\x17\xe6\xda\x60\xee\x69\x30\xb7\x2f\xec\x9d\x0d\xf6\xee\x34\xd8\xbb\xbe\xb0\x91\x0d\x36\x3a\x0d\x36\xea\x0b\xcb\x6d\xb0\xfc\x34\x58\xde\x17\xf6\xc3\x06\xfb\x71\x1a\xec\x47\x5f\xd8\xcd\x8d\x8d\x66\xac\xc7\x71\x37\x37\x7d\x79\xb7\xb7\x36\x9e\xb1\x1e\xe7\xdd\xde\xf6\xe5\xcd\x6d\xb8\xf9\x69\xb4\x79\xff\xe3\xb9\x8d\x66\xac\xc7\x71\xc5\x39\xbe\xc7\x49\x3d\x0c\x67\x5e\x36\xe3\x0c\x61\x4d\xa5\x22\x8f\xdd\x13\x3a\xf9\xc3\xe7\x29\x53\x63\x87\x4c\xbe\xb7\x76\xeb\xc6\xa3\xd9\x87\xef\xed\x3d\x9b\x87\xe1\x7f\xb2\x0f\x96\x1d\xbb\xaa\x5f\xfa\x30\x49\xbc\x38\x03\xfd\xfe\xca\x02\x0c\x40\x71\xd0\xa7\xce\xa2\xd7\xd9\x87\xe2\x0c\xce\x80\xb2\x00\x37\xcd\x70\x40\x8b\x0d\x33\x28\xe8\x75\x2c\x9a\x92\xbb\xb1\x3f\x8a\x97\xf4\x2f\xe4\xe1\x51\xbe\x71\xdb\x23\x60\xfb\xf0\xfb\xb1\x6c\xc8\x54\x26\xd4\xa7\x3c\xd5\x67\xe6\x55\x6a\x2a\x29\x17\x01\x8a\x56\x2a\xa4\x12\x09\x97\xe3\x0b\xf7\x62\x0a\x8e\x9c\xec\x26\xa3\x7c\xe8\xc8\x29\x5c\xb8\x17\x93\x4e\x01\x15\x2b\x79\xaf\xfb\x3c\x94\x8f\x6a\x5a\x14\x31\xf1\xb9\x10\xe8\x2b\x88\x48\x26\x15\xf1\x1f\x41\xbf\x8c\x30\xc4\x20\xc6\xb6\xce\xc6\xd0\xf5\x61\xa3\x6a\xb1\x34\xde\xf5\x89\xa3\x92\xf8\x32\xf4\x23\x22\x86\xaf\x53\x70\x5e\x86\x97\xc3\xd7\xc9\x75\xfd\x9c\x1e\x73\x38\xd2\x43\xea\x49\x25\x96\x65\xf6\x5f\x86\x52\x75\x9c\x5e\xf7\xcf\x07\xeb\xf0\xcb\xeb\x88\x22\x61\x3a\x02\x32\xf5\x7e\x6a\xfb\xfe\x10\x24\x02\x57\xcb\xb2\xd9\xd8\x59\x4e\xa1\xf8\x6f\x11\xf3\x2b\x3a\x8c\x06\x25\xb4\xe3\xe1\x2c\xe8\x40\x94\x8d\x9a\x19\xb0\x29\xdb\x1b\xed\x8e\xf3\x70\xf8\xb6\x68\x06\x18\xd3\x35\xd5\x33\xf6\xa4\x71\xe0\x26\x89\x79\x50\xe2\x6d\x3a\x4f\x5d\x58\xa9\x24\x2b\xd4\x6f\xa1\x9d\x37\xe9\xf6\x7e\x47\x43\x18\x3b\x54\x7e\xfb\xfa\x45\x57\xf8\x27\x14\x34\xcc\x26\x30\x9f\xcf\x77\x97\x5b\xd3\xad\xeb\xd7\x5c\x79\x25\xf1\x3e\x91\x07\x96\xde\x37\x89\x01\x8c\x5a\xea\xb8\x00\xfe\x84\xc2\xdc\x70\x95\xd7\x01\x72\x0a\x09\x8a\x88\x24\x52\x73\xa9\xac\x37\xaf\xbb\xf6\x29\x66\xd4\xa8\x17\x8d\x8b\xb2\x8d\xc5\x96\xed\x16\x12\xfb\xc9\x66\x47\x6a\xde\x4f\x6a\x9e\x1f\x92\x9a\xe7\xbf\x2c\x35\x3f\xa1\xda\xf9\x24\x8e\xfb\x5f\x73\x52\xb6\x24\x42\x90\x6c\xec\x3c\x4e\xa1\xf8\xb6\x7c\xc4\x4c\x8e\x1d\x15\x51\x39\xbb\x0d\x88\x22\x93\xd6\x16\x5c\x7b\x2d\x71\x43\xa5\x92\x45\xd3\xa6\x7f\x7b\x6a\x68\x65\x47\x6f\x45\x3f\x17\x87\x84\x52\x67\xa6\x6b\x94\x85\x83\xd9\x14\x9c\x02\xd0\xa8\x52\xc7\xfc\xcc\x45\xdf\x76\x9c\xfa\x61\x73\xa4\x64\x72\x74\x89\x31\xae\x66\x7a\x15\xfb\x6a\x86\x8c\xa7\xab\x08\x7c\xbe\x4e\x88\xa0\xd2\xb2\xb2\x2a\xd2\xf0\x39\x22\x6a\x68\xa9\x61\x16\x8f\x69\x71\xa9\xda\x89\x9c\x61\x7e\x5e\xd7\x2f\x84\xdb\xc0\xed\x4c\x56\xc6\x59\xa9\xaf\x21\x0c\xc6\xba\xca\x2f\x16\x8b\x49\xd5\xc0\x35\x5f\xcc\x0b\x7a\x4a\xe2\x7a\xc3\xdc\xde\x44\x68\x19\xd7\x5b\x63\x71\xd5\xbb\x7d\x49\x6e\x7a\x56\xd7\xbf\x95\xb5\xf8\xbd\xc7\x97\xa5\x71\xdc\x30\xea\x9f\x3b\x9e\xe5\xfe\x7a\x7c\x74\xe5\x56\x7a\x68\x90\xe5\x3a\x2a\x3d\xcb\xd5\xd5\xb5\x67\xad\xa0\x14\x47\xcb\xc5\x76\x4b\xe8\x1f\xe9\x81\x3d\xd2\x8c\x2b\x7b\xb4\x07\xf6\x68\x0f\xba\x11\x1c\xec\x8b\xb6\xdd\xd7\x16\xed\xc1\x6f\x8c\xf6\xe0\xed\xd1\x76\x36\xe6\x02\xfa\x70\xb0\x3f\x8a\xa0\xae\x9a\xba\xaa\x55\x0b\x07\xd6\xa9\x54\x7a\x5b\x2b\x02\xf6\x1c\x21\xab\x34\xb2\x55\x89\x94\x7b\x84\x78\x2d\x21\xdb\x7d\xc1\xd3\xa5\x7f\xd2\x4f\x90\xd9\x46\x24\x12\xe1\x47\xbf\x51\x54\xb3\xdb\x86\xb0\xd7\xf3\xb3\xbf\x03\x00\x00\xff\xff\xa4\x4e\x82\x0b\x2c\x1b\x00\x00")
 
 func embeddedrulesRulesPhpBytes() ([]byte, error) {
 	return bindataRead(
@@ -193,8 +193,8 @@ type bintree struct {
 }
 
 var _bintree = &bintree{nil, map[string]*bintree{
-	"embeddedrules": &bintree{nil, map[string]*bintree{
-		"rules.php": &bintree{embeddedrulesRulesPhp, map[string]*bintree{}},
+	"embeddedrules": {nil, map[string]*bintree{
+		"rules.php": {embeddedrulesRulesPhp, map[string]*bintree{}},
 	}},
 }}
 
diff --git a/src/cmd/embeddedrules/rules.php b/src/cmd/embeddedrules/rules.php
index 52d11aa..540e4a0 100644
--- a/src/cmd/embeddedrules/rules.php
+++ b/src/cmd/embeddedrules/rules.php
@@ -274,3 +274,60 @@ function callSimplify() {
    */
   in_array($key, array_keys($a));
 }
+
+/**
+ * @comment Report not-strict-enough comparisons.
+ * @before  in_array("what", $s)
+ * @after   in_array("what", $s, true)
+ */
+function strictCmp() {
+    /**
+     * @warning non-strict comparison (use ===)
+     */
+    any_equal: {
+        $_ == true;
+        true == $_;
+        $_ == false;
+        false == $_;
+        $_ == null;
+        null == $_;
+    }
+
+    /**
+     * @warning non-strict string comparison (use ===)
+     * @type string $x
+     * @type string $y
+     */
+     $x == $y;
+
+    /**
+     * @warning non-strict comparison (use !==)
+     */
+    any_not_equal: {
+        $_ != true;
+        true != $_;
+        $_ != false;
+        false != $_;
+        $_ != null;
+        null != $_;
+    }
+
+    /**
+     * @warning non-strict string comparison (use !==)
+     * @type string $x
+     * @type string $y
+     */
+    $x != $y;
+
+    /**
+     * @warning 3rd argument of in_array must be true when comparing strings
+     * @type string $b
+     */
+    in_array($b, $_);
+
+    /**
+     * @warning 3rd argument of array_search must be true when comparing strings
+     * @type string $b
+     */
+    array_search($b, $_);
+}
diff --git a/src/linter/block_linter.go b/src/linter/block_linter.go
index 85e87a0..23e93ee 100644
--- a/src/linter/block_linter.go
+++ b/src/linter/block_linter.go
@@ -88,11 +88,9 @@ func (b *blockLinter) enterNode(n ir.Node) {
 	case *ir.PowExpr:
 		b.checkBinaryVoidType(n.Left, n.Right)
 	case *ir.EqualExpr:
-		b.checkStrictCmp(n, n.Left, n.Right)
 		b.checkBinaryVoidType(n.Left, n.Right)
 		b.checkBinaryDupArgsNoFloat(n, n.Left, n.Right)
 	case *ir.NotEqualExpr:
-		b.checkStrictCmp(n, n.Left, n.Right)
 		b.checkBinaryVoidType(n.Left, n.Right)
 		b.checkBinaryDupArgsNoFloat(n, n.Left, n.Right)
 	case *ir.IdenticalExpr:
@@ -223,33 +221,6 @@ func (b *blockLinter) checkBinaryDupArgs(n, left, right ir.Node) {
 	}
 }
 
-func (b *blockLinter) checkStrictCmp(n ir.Node, left, right ir.Node) {
-	needsStrictCmp := func(n ir.Node) bool {
-		c, ok := n.(*ir.ConstFetchExpr)
-		if !ok {
-			return false
-		}
-		nm := c.Constant
-		return nm.Value == "true" || nm.Value == "false" || nm.Value == "null"
-	}
-
-	var badNode ir.Node
-	switch {
-	case needsStrictCmp(left):
-		badNode = left
-	case needsStrictCmp(right):
-		badNode = right
-	}
-	if badNode != nil {
-		suggest := "==="
-		if _, ok := n.(*ir.NotEqualExpr); ok {
-			suggest = "!=="
-		}
-		b.report(n, LevelWarning, "strictCmp", "non-strict comparison with %s (use %s)",
-			irutil.FmtNode(badNode), suggest)
-	}
-}
-
 // checkVoidType reports if node has void type
 func (b *blockLinter) checkVoidType(n ir.Node) {
 	if b.walker.exprType(n).Is("void") {
diff --git a/src/linter/report.go b/src/linter/report.go
index 20b32b7..e22b100 100644
--- a/src/linter/report.go
+++ b/src/linter/report.go
@@ -525,15 +525,6 @@ $foo = new foo();`,
 $foo = new Foo();`,
 		},
 
-		{
-			Name:     "strictCmp",
-			Default:  true,
-			Quickfix: false,
-			Comment:  `Report non-strict comparison with false/true/null.`,
-			Before:   `$result == null`,
-			After:    `$result === null`,
-		},
-
 		{
 			Name:     "paramClobber",
 			Default:  true,


Test patch:
diff --git a/src/tests/checkers/basic_test.go b/src/tests/checkers/basic_test.go
index b83cfdc..4424d54 100644
--- a/src/tests/checkers/basic_test.go
+++ b/src/tests/checkers/basic_test.go
@@ -127,43 +127,6 @@ function f3() {
 	test.RunAndMatch()
 }
 
-func TestStrictCmp(t *testing.T) {
-	test := linttest.NewSuite(t)
-	test.AddFile(`<?php
-function f($x) {
-  $_ = ($x == false);
-  $_ = (false == $x);
-  $_ = ($x == true);
-  $_ = (true == $x);
-  $_ = ($x == null);
-  $_ = (null == $x);
-  return true;
-}
-
-$_ = (f(0) != false);
-$_ = (false != f(0));
-$_ = (f(0) != true);
-$_ = (true != f(0));
-$_ = (f(0) != null);
-$_ = (null != f(0));
-`)
-	test.Expect = []string{
-		`non-strict comparison with false (use ===)`,
-		`non-strict comparison with false (use ===)`,
-		`non-strict comparison with false (use !==)`,
-		`non-strict comparison with false (use !==)`,
-		`non-strict comparison with true (use ===)`,
-		`non-strict comparison with true (use ===)`,
-		`non-strict comparison with true (use !==)`,
-		`non-strict comparison with true (use !==)`,
-		`non-strict comparison with null (use ===)`,
-		`non-strict comparison with null (use ===)`,
-		`non-strict comparison with null (use !==)`,
-		`non-strict comparison with null (use !==)`,
-	}
-	test.RunAndMatch()
-}
-
 func TestRedundantGlobal(t *testing.T) {
 	test := linttest.NewSuite(t)
 	test.AddFile(`<?php
diff --git a/src/tests/golden/testdata/embeddedrules/golden.txt b/src/tests/golden/testdata/embeddedrules/golden.txt
index 1efdc6d..4880a73 100644
--- a/src/tests/golden/testdata/embeddedrules/golden.txt
+++ b/src/tests/golden/testdata/embeddedrules/golden.txt
@@ -124,6 +124,54 @@ WARNING precedence: === has higher precedence than | at testdata/embeddedrules/p
 WARNING precedence: !== has higher precedence than | at testdata/embeddedrules/precedence.php:24
   $_ = $x | $mask !== 0;
        ^^^^^^^^^^^^^^^^
+WARNING strictCmp: non-strict comparison (use ===) at testdata/embeddedrules/strictCmp.php:6
+  $_ = ($x == false);
+        ^^^^^^^^^^^
+WARNING strictCmp: non-strict comparison (use ===) at testdata/embeddedrules/strictCmp.php:7
+  $_ = (false == $x);
+        ^^^^^^^^^^^
+WARNING strictCmp: non-strict comparison (use ===) at testdata/embeddedrules/strictCmp.php:8
+  $_ = ($x == true);
+        ^^^^^^^^^^
+WARNING strictCmp: non-strict comparison (use ===) at testdata/embeddedrules/strictCmp.php:9
+  $_ = (true == $x);
+        ^^^^^^^^^^
+WARNING strictCmp: non-strict comparison (use ===) at testdata/embeddedrules/strictCmp.php:10
+  $_ = ($x == null);
+        ^^^^^^^^^^
+WARNING strictCmp: non-strict comparison (use ===) at testdata/embeddedrules/strictCmp.php:11
+  $_ = (null == $x);
+        ^^^^^^^^^^
+WARNING strictCmp: 3rd argument of in_array must be true when comparing strings at testdata/embeddedrules/strictCmp.php:25
+  $_ = in_array("str", $a);
+       ^^^^^^^^^^^^^^^^^^^
+WARNING strictCmp: 3rd argument of in_array must be true when comparing strings at testdata/embeddedrules/strictCmp.php:26
+  $_ = in_array(retString(), $a);
+       ^^^^^^^^^^^^^^^^^^^^^^^^^
+WARNING strictCmp: 3rd argument of array_search must be true when comparing strings at testdata/embeddedrules/strictCmp.php:27
+  $_ = array_search("str", $a);
+       ^^^^^^^^^^^^^^^^^^^^^^^
+WARNING strictCmp: 3rd argument of array_search must be true when comparing strings at testdata/embeddedrules/strictCmp.php:28
+  $_ = array_search(retString(), $a);
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+WARNING strictCmp: non-strict comparison (use !==) at testdata/embeddedrules/strictCmp.php:15
+$_ = (nonStrictComparison(0) != false);
+      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+WARNING strictCmp: non-strict comparison (use !==) at testdata/embeddedrules/strictCmp.php:16
+$_ = (false != nonStrictComparison(0));
+      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+WARNING strictCmp: non-strict comparison (use !==) at testdata/embeddedrules/strictCmp.php:17
+$_ = (nonStrictComparison(0) != true);
+      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+WARNING strictCmp: non-strict comparison (use !==) at testdata/embeddedrules/strictCmp.php:18
+$_ = (true != nonStrictComparison(0));
+      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+WARNING strictCmp: non-strict comparison (use !==) at testdata/embeddedrules/strictCmp.php:19
+$_ = (nonStrictComparison(0) != null);
+      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+WARNING strictCmp: non-strict comparison (use !==) at testdata/embeddedrules/strictCmp.php:20
+$_ = (null != nonStrictComparison(0));
+      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 MAYBE   ternarySimplify: could rewrite as `(bool)$x` at testdata/embeddedrules/ternarySimplify.php:6
     sink($x ? true : false);
          ^^^^^^^^^^^^^^^^^
diff --git a/src/tests/golden/testdata/embeddedrules/strictCmp.php b/src/tests/golden/testdata/embeddedrules/strictCmp.php
new file mode 100644
index 0000000..9f959a1
--- /dev/null
+++ b/src/tests/golden/testdata/embeddedrules/strictCmp.php
@@ -0,0 +1,43 @@
+<?php
+/** @return string */
+function retString() { return ""; }
+
+function nonStrictComparison($x) {
+  $_ = ($x == false);
+  $_ = (false == $x);
+  $_ = ($x == true);
+  $_ = (true == $x);
+  $_ = ($x == null);
+  $_ = (null == $x);
+  return true;
+}
+
+$_ = (nonStrictComparison(0) != false);
+$_ = (false != nonStrictComparison(0));
+$_ = (nonStrictComparison(0) != true);
+$_ = (true != nonStrictComparison(0));
+$_ = (nonStrictComparison(0) != null);
+$_ = (null != nonStrictComparison(0));
+
+function nonStrictArraySearch() {
+  $a = [];
+
+  $_ = in_array("str", $a);
+  $_ = in_array(retString(), $a);
+  $_ = array_search("str", $a);
+  $_ = array_search(retString(), $a);
+}
+
+function nonStrictArraySearchGood() {
+  $a = [];
+
+  $_ = in_array("str", $a, true);
+  $_ = in_array(retString(), $a, true);
+  $_ = in_array(10, $a);
+  $_ = in_array(true, $a);
+
+  $_ = array_search("str", $a, true);
+  $_ = array_search(retString(), $a, true);
+  $_ = array_search(10, $a, true);
+  $_ = array_search(true, $a, true);
+}
diff --git a/src/tests/golden/testdata/flysystem/golden.txt b/src/tests/golden/testdata/flysystem/golden.txt
index eb971de..3bfe64b 100644
--- a/src/tests/golden/testdata/flysystem/golden.txt
+++ b/src/tests/golden/testdata/flysystem/golden.txt
@@ -7,6 +7,9 @@ MAYBE   regexpSimplify: May re-write '/^total [0-9]*$/' as '/^total \d*$/' at te
 MAYBE   ternarySimplify: could rewrite as `$mkdirError['message'] ?? ''` at testdata/flysystem/src/Adapter/Local.php:111
                 $errorMessage = isset($mkdirError['message']) ? $mkdirError['message'] : '';
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+WARNING strictCmp: 3rd argument of in_array must be true when comparing strings at testdata/flysystem/src/Adapter/Local.php:324
+        if (in_array($mimetype, ['application/octet-stream', 'inode/x-empty', 'application/x-empty'])) {
+            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 WARNING phpdocRef: line 8: @see tag refers to unknown symbol League\Flysystem\ReadInterface::readStream at testdata/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php:19
     public function readStream($path)
                     ^^^^^^^^^^
diff --git a/src/tests/golden/testdata/parsedown/golden.txt b/src/tests/golden/testdata/parsedown/golden.txt
index f9f1fe4..88f20a0 100644
--- a/src/tests/golden/testdata/parsedown/golden.txt
+++ b/src/tests/golden/testdata/parsedown/golden.txt
@@ -7,6 +7,9 @@ MAYBE   regexpSimplify: May re-write '/^>[ ]?+(.*+)/' as '/^> ?+(.*+)/' at testd
 MAYBE   regexpSimplify: May re-write '/^>[ ]?+(.*+)/' as '/^> ?+(.*+)/' at testdata/parsedown/parsedown.php:774
         if ($Line['text'][0] === '>' and preg_match('/^>[ ]?+(.*+)/', $Line['text'], $matches))
                                                     ^^^^^^^^^^^^^^^^
+WARNING strictCmp: 3rd argument of in_array must be true when comparing strings at testdata/parsedown/parsedown.php:840
+            if (in_array($element, $this->textLevelElements))
+                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 MAYBE   regexpSimplify: May re-write '/^\[(.+?)\]:[ ]*+<?(\S+?)>?(?:[ ]+["\'(](.+)["\')])?[ ]*+$/' as '/^\[(.+?)\]: *+<?(\S+?)>?(?: +["'(](.+)["')])? *+$/' at testdata/parsedown/parsedown.php:875
             and preg_match('/^\[(.+?)\]:[ ]*+<?(\S+?)>?(?:[ ]+["\'(](.+)["\')])?[ ]*+$/', $Line['text'], $matches)
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -34,6 +37,9 @@ INFO    undefined: Variable might have not been defined: text at testdata/parsed
 MAYBE   ternarySimplify: could rewrite as `$Element['autobreak'] ?? isset($Element['name'])` at testdata/parsedown/parsedown.php:1786
             $autoBreakNext = (isset($Element['autobreak'])
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+WARNING strictCmp: 3rd argument of in_array must be true when comparing strings at testdata/parsedown/parsedown.php:1807
+        if ( ! in_array('', $lines)
+               ^^^^^^^^^^^^^^^^^^^^
 INFO    unused: Variable val is unused (use $_ to ignore this inspection) at testdata/parsedown/parsedown.php:1882
             foreach ($Element['attributes'] as $att => $val)
                                                        ^^^^
diff --git a/src/tests/golden/testdata/twitter-api-php/golden.txt b/src/tests/golden/testdata/twitter-api-php/golden.txt
index d2ca0fb..3588437 100644
--- a/src/tests/golden/testdata/twitter-api-php/golden.txt
+++ b/src/tests/golden/testdata/twitter-api-php/golden.txt
@@ -1,9 +1,15 @@
 INFO    unused: Variable key is unused (use $_ to ignore this inspection) at testdata/twitter-api-php/TwitterAPIExchange.php:122
         foreach ($array as $key => &$value)
                            ^^^^
+WARNING strictCmp: 3rd argument of in_array must be true when comparing strings at testdata/twitter-api-php/TwitterAPIExchange.php:207
+        if (!in_array(strtolower($requestMethod), array('post', 'get', 'put', 'delete')))
+             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 INFO    phpdocType: use bool type instead of boolean on line 4 at testdata/twitter-api-php/TwitterAPIExchange.php:274
     public function performRequest($return = true, $curlOptions = array())
                     ^^^^^^^^^^^^^^
+WARNING strictCmp: 3rd argument of in_array must be true when comparing strings at testdata/twitter-api-php/TwitterAPIExchange.php:286
+        if (in_array(strtolower($this->requestMethod), array('put', 'delete')))
+            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 INFO    phpdocType: use int type instead of integer on line 4 at testdata/twitter-api-php/TwitterAPIExchange.php:406
     public function getHttpStatusCode()
                     ^^^^^^^^^^^^^^^^^
diff --git a/src/tests/rules/rules_test.go b/src/tests/rules/rules_test.go
index 41a91a9..c95e32a 100644
--- a/src/tests/rules/rules_test.go
+++ b/src/tests/rules/rules_test.go
@@ -157,22 +157,6 @@ $x && $x;
  */
 explode("", ${"*"});
 
-/**
- * @name strictCmp
- * @warning 3rd argument of in_array must be true when comparing strings
- * @type string $needle
- */
-in_array($needle, $_);
-
-/**
- * @name strictCmp
- * @warning strings must be compared using '===' operator
- * @type string $x
- * @or
- * @type string $y
- */
-$x == $y;
-
 /**
  * @name falseCmp
  * @maybe did you meant to compare an object with null?
@@ -228,10 +212,6 @@ function f($x, $y) {
 
   $str = 'x';
   $int = 1;
-  $_ = in_array('x', $x);    // Bad
-  $_ = in_array($str, $x);   // Bad
-  $_ = in_array('x', $x, 1); // Good
-  $_ = in_array($int, $x);   // Good
 
   $_ = $str == '1';  // Bad
   $_ = '1' == $str;  // Bad
@@ -278,11 +258,6 @@ $_ = implode($s, $i); // BAD: string, int
 		`duplicated sub-expressions inside boolean expression`,
 		`suspicious order of stripos function arguments`,
 		`don't call explode with empty delimiter`,
-		`3rd argument of in_array must be true when comparing strings`,
-		`3rd argument of in_array must be true when comparing strings`,
-		`strings must be compared using '===' operator`,
-		`strings must be compared using '===' operator`,
-		`strings must be compared using '===' operator`,
 		`did you meant to compare an object with null?`,
 		`did you meant to compare an object with null?`,
 		`did you meant to compare an object with null?`,