**Do you want to request a *feature* or report a *bug*?**
bug
**What is the current behavior?**
React hooks linter fails with this piece of code

```js
function useHook() {
  const ref = React.useRef([1, 2, 3]);
  const res = []
  // valid because there are not unexpected returns
  if (ref.current) {
    for (let i = 0; i !== ref.current.length && !ref.current[i]; ++i ) {
      res.push(ref.current[i]);
    }
  }
  React.useLayoutEffect(() => {});
}
```

however a bit more usual for loop is handled as expected
```js
function useHook() {
  const ref = React.useRef([1, 2, 3]);
  const res = []
  if (ref.current) {
    for (let i = 0; i !== ref.current.length; ++i ) {
      res.push(ref.current[i]);
    }
  }
  React.useLayoutEffect(() => {});
}
```

**What is the expected behavior?**

Skip for looks without returns

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**

eslint-plugin-react-hooks 0.0.0
paths = 0;
            for (const nextSegment of segment.nextSegments) {
              paths += countPathsToEnd(nextSegment);
            }
          }
          cache.set(segment.id, paths);
          return paths;
        }
        /**
         * Gets the shortest path length to the start of a code path.
         * For example:
         *
         * ```js
         * function MyComponent() {
         *   if (condition) {
         *      Segment 1
         *   }
         *    Segment 2
         * }
         * ```
         *
         * There is only one path from segment 1 to the code path start. Its
         * length is one so that is the shortest path.
         *
         * There are two paths from segment 2 to the code path start. One
         * through segment 1 with a length of two and another directly to the
         * start with a length of one. The shortest path has a length of one
         * so we would return that.
         */
        function shortestPathLengthToStart(segment) {