Migrate declaration parsing to value semantics (#614)

* Use Expression by value in FunctionDefinition
* Migrate choice declarations to value semantics
* Migrate Declaration parsing to value semantics
This commit is contained in:
Geoff Romer
2021-06-30 13:09:12 -07:00
committed by GitHub
parent 7e70a0335e
commit fa5b9cd553
9 changed files with 90 additions and 81 deletions
@@ -13,16 +13,15 @@ namespace Carbon {
struct FunctionDefinition {
int line_num;
std::string name;
const Expression* param_pattern;
const Expression* return_type;
Expression param_pattern;
Expression return_type;
const Statement* body;
};
auto MakeFunDef(int line_num, std::string name, const Expression* ret_type,
const Expression* param, const Statement* body)
-> FunctionDefinition*;
void PrintFunDef(const FunctionDefinition*);
void PrintFunDefDepth(const FunctionDefinition*, int);
auto MakeFunDef(int line_num, std::string name, Expression ret_type,
Expression param, const Statement* body) -> FunctionDefinition;
void PrintFunDef(const FunctionDefinition&);
void PrintFunDefDepth(const FunctionDefinition&, int);
} // namespace Carbon