Ignore fixmes when doing Errors.try_
Summary:
`Errors.try_` and its kin cause subtle (and non-subtle) problems everywhere they are used. This fixes one subtle problem where fixmes could be applied to an error, but since it was in a `try_` we never actually recorded its application. Since saved state was unaware of the fixme application, it didn't think it needed to re-typecheck dependent files even though the fixme hid an error there. So when the fixme was removed, hack wouldn't notice the now-unhidden error.
The fix is to ignore fixme applications while in a `try_`. If we're discarding the error anyways, people shouldn't be able to fixme them. And since we can't apply fixmes, we don't need to juggle saved state. This also has the added benefit of moving a few errors closer to the expression that causes them, as well as eliminating some bad behavior where a fixme could impact errors in another file.
Reviewed By: vassilmladenov
Differential Revision:
D18336759
fbshipit-source-id:
796c604fc5b5d92405332efebdfe725a03827be4