Micro-optimize chained plugin by JukkaL · Pull Request #19464 · python/mypy
Avoid using lambdas in the most expensive hooks, since they are slower than direct method calls. Also use if hook is None checks instead of if hook, since the prior is more efficient when compiled.
I used trace logging to look for generic/unoptimized function calls, and it was clear that ChainedPlugin was doing many unoptimized calls that were easy to avoid.
This duplicates some code, but I think it's fine since this code is updated very rarely but the code paths are very hot.
This is a part of a set of micro-optimizations that improve self check performance by ~5.5%.