eslint-plugin-react-hooks version: 4.2.0

## Steps To Reproduce

I know it shouldn't exist in production code, but it's annoying while editing some files.

```js
import React, { useEffect } from "react";

const App = () => {
  useEffect(); // <-
  return null;
};

export default App;
```

Link to code example: https://codesandbox.io/s/polished-sun-3wr27?file=/src/App.js

## The current behavior

ESLint crashed.

```
TypeError: Cannot read property 'type' of undefined
```

## The expected behavior

ESLint doesn't crash but reports an error instead.
if (node.type === 'Identifier' || node.type === 'JSXIdentifier') {
    const result = node.name;
    if (optionalChains) {
      
      optionalChains.set(result, false);
    }
    return result;
  } else if (node.type === 'MemberExpression' && !node.computed) {
    const object = analyzePropertyChain(node.object, optionalChains);
    const property = analyzePropertyChain(node.property, null);
    const result = `${object}.${property}`;
    markNode(node, optionalChains, result);
    return result;
  } else if (node.type === 'OptionalMemberExpression' && !node.computed) {
    const object = analyzePropertyChain(node.object, optionalChains);
    const property = analyzePropertyChain(node.property, null);
    const result = `${object}.${property}`;
    markNode(node, optionalChains, result);
    return result;
  } else if (node.type === 'ChainExpression' && !node.computed) {
    const expression = node.expression;
    const object = analyzePropertyChain(expression.object, optionalChains);
    const property = analyzePropertyChain(expression.property, null);
    const result = `${object}.${property}`;
    markNode(expression, optionalChains, result);
    return result;
  } else {
    throw new Error(`Unsupported node type: ${node.type}`);