mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 12:21:06 +01:00
Migrate PrimitiveOperator to value semantics (#606)
* Make PrimitiveOperator.arguments a value. * Make operator factory functions take Expressions by value.
This commit is contained in:
@@ -98,7 +98,7 @@ struct Tuple {
|
||||
struct PrimitiveOperator {
|
||||
static constexpr ExpressionKind Kind = ExpressionKind::PrimitiveOp;
|
||||
Operator op;
|
||||
std::vector<const Expression*>* arguments;
|
||||
std::vector<Expression> arguments;
|
||||
};
|
||||
|
||||
struct Call {
|
||||
@@ -142,12 +142,12 @@ struct Expression {
|
||||
-> const Expression*;
|
||||
static auto MakeInt(int line_num, int i) -> const Expression*;
|
||||
static auto MakeBool(int line_num, bool b) -> const Expression*;
|
||||
static auto MakeOp(int line_num, Operator op,
|
||||
std::vector<const Expression*>* args) -> const Expression*;
|
||||
static auto MakeUnOp(int line_num, enum Operator op, const Expression* arg)
|
||||
static auto MakeOp(int line_num, Operator op, std::vector<Expression> args)
|
||||
-> const Expression*;
|
||||
static auto MakeBinOp(int line_num, enum Operator op, const Expression* arg1,
|
||||
const Expression* arg2) -> const Expression*;
|
||||
static auto MakeUnOp(int line_num, enum Operator op, Expression arg)
|
||||
-> const Expression*;
|
||||
static auto MakeBinOp(int line_num, enum Operator op, Expression arg1,
|
||||
Expression arg2) -> const Expression*;
|
||||
static auto MakeCall(int line_num, const Expression* fun,
|
||||
const Expression* arg) -> const Expression*;
|
||||
static auto MakeGetField(int line_num, const Expression* exp,
|
||||
|
||||
Reference in New Issue
Block a user