docs: private boolean matches(TypeCastTree tree, VisitorState state) {
      Type treeType = ASTHelpers.getType(tree.getType());
  
      // If the cast isn't narrowing to an int then don't implicate it in the bug pattern.
      if (treeType.getTag() != TypeTag.INT) {
        return false;
      }
  
      // The expression should be a subtract but remove parentheses.
      ExpressionTree expression = ASTHelpers.stripParentheses(tree.getExpression());
      if (expression.getKind() != Kind.MINUS) {
        return false;
      }
  
      // Ensure the expression type is wider and signed (ie a long) than the cast type ignoring
      // boxing.
      Type expressionType = getTypeOfSubtract((BinaryTree) expression, state);
      TypeTag expressionTypeTag = state.getTypes().unboxedTypeOrType(expressionType).getTag();
      return (expressionTypeTag == TypeTag.LONG);
    }