This line is formatted funny (a huge amount of space before `query.length === 0`). Also, the `!cachedHints || type.property !== cachedType.property || type.context !== cachedType.context || type.showFunctionType !== cachedType.showFunctionType` construct appears again just a few lines up. Perhaps that should be extracted into a function.