code: private boolean returnValueNeedsIntCast(Expression arg) {
      ExecutableElement methodElement = TreeUtil.getExecutableElement(arg);
      assert methodElement != null;
  
      if (arg.getParent() instanceof ExpressionStatement) {
        // Avoid "unused return value" warning.
        return false;
      }
  
      String methodName = nameTable.getMethodSelector(methodElement);
      if (methodName.equals("hash") && methodElement.getReturnType().getKind() == TypeKind.INT) {
        return true;
      }
      return false;
    }
docs: Some native objective-c methods are declared to return NSUInteger.