34 std::unique_ptr<Expression>
index)
42 std::unique_ptr<Expression>
base,
43 std::unique_ptr<Expression>
index);
46 static std::unique_ptr<Expression>
Make(
const Context& context,
48 std::unique_ptr<Expression>
base,
49 std::unique_ptr<Expression>
index);
56 std::unique_ptr<Expression>&
base() {
60 const std::unique_ptr<Expression>&
base()
const {
64 std::unique_ptr<Expression>&
index() {
68 const std::unique_ptr<Expression>&
index()
const {
89 std::unique_ptr<Expression> fBase;
90 std::unique_ptr<Expression> fIndex;
std::unique_ptr< Expression > clone() const
Expression(Position pos, Kind kind, const Type *type)
const Type & type() const
std::string description() const final
static std::unique_ptr< Expression > Make(const Context &context, Position pos, std::unique_ptr< Expression > base, std::unique_ptr< Expression > index)
const std::unique_ptr< Expression > & base() const
std::unique_ptr< Expression > & base()
static constexpr Kind kIRNodeKind
static std::unique_ptr< Expression > Convert(const Context &context, Position pos, std::unique_ptr< Expression > base, std::unique_ptr< Expression > index)
static const Type & IndexType(const Context &context, const Type &type)
std::unique_ptr< Expression > & index()
IndexExpression(const Context &context, Position pos, std::unique_ptr< Expression > base, std::unique_ptr< Expression > index)
const std::unique_ptr< Expression > & index() const
std::unique_ptr< Expression > clone(Position pos) const override