This seems to happen when
1. I take a component as a prop
2. I use that component as a JSX constructor in a hook

Minimal repro:
```jsx
export const Foo = ({ Component }) => {
  React.useEffect(() => {
    console.log(<Component />);
  }, []);
};
```

```
    "eslint-plugin-react-hooks": "^4.1.1",
```


---

Interestingly, this does NOT cause the error:
```jsx
export const Foo = ({ component }) => {
  React.useEffect(() => {
    const Component = component;
    console.log(<Component />);
  }, []);
};
```
}
}
/**
 * Mark a node as either optional or required.
 * Note: If the node argument is an OptionalMemberExpression, it doesn't necessarily mean it is optional.
 * It just means there is an optional member somewhere inside.
 * This particular node might still represent a required member, so check .optional field.
 */
function markNode(node, optionalChains, result) {
  if (optionalChains) {
    if (node.optional) {
      
      if (!optionalChains.has(result)) {
        
        optionalChains.set(result, true);
      }
    } else {
      
      optionalChains.set(result, false);
    }
  }
}
/**
 * Assuming () means the passed node.
 * (foo) -> 'foo'
 * foo(.)bar -> 'foo.bar'
 * foo.bar(.)baz -> 'foo.bar.baz'
 * Otherwise throw.
 */
function analyzePropertyChain(node, optionalChains) {