If you have an abstract value like (Array, TOP) and you filter it against Final then you should get (None, []) - i.e. there does not exist a structure for any value within the abstract value's set, since the abstract value's set is empty. This was causing some annoying ASSERTs. I fixed this issue and added even more ASSERTs to catch it sooner. I tested this against a bunch of websites and it seems to work.
Created attachment 110793 [details] the patch
Created attachment 110795 [details] the patch - revert some debug stuff
Landed in r97334.