How Instruction and ConstExpr derived from Operator?

Hi,

Looking at https://llvm.org/doxygen/classllvm_1_1User.html, I don’t see any hierarchical relationship between Instruction and Operator, and the same is true with ConstExpr and Operator. Then, I am not getting how Operator::getOpcode() will successfully dyn_cast<> Operator either to Instruction or to ConstExpr.

Thanks,