Remove FunctionDefinition's default constructor (#735)

This opens up a path for switching `int line_num` to a `Location loc`, which I want to do for tracking filenames of code. But I don't think we should have a default constructor on `Location` to avoid mistakes, and switching FunctionDefinition to an arena alloc seems more consistent anyways.
This commit is contained in:
Jon Meow
2021-08-12 09:52:32 -07:00
committed by GitHub
parent aebfa7dac9
commit d3c7ca3131
5 changed files with 20 additions and 19 deletions
@@ -26,11 +26,13 @@ static void AddIntrinsics(std::list<const Declaration*>* fs) {
global_arena->New<IntrinsicExpression>(
IntrinsicExpression::IntrinsicKind::Print),
false);
auto* print = global_arena->New<FunctionDeclaration>(FunctionDefinition(
-1, "Print", std::vector<GenericBinding>(),
global_arena->New<TuplePattern>(-1, print_fields),
global_arena->New<ExpressionPattern>(global_arena->New<TupleLiteral>(-1)),
/*is_omitted_return_type=*/false, print_return));
auto* print = global_arena->New<FunctionDeclaration>(
global_arena->New<FunctionDefinition>(
-1, "Print", std::vector<GenericBinding>(),
global_arena->New<TuplePattern>(-1, print_fields),
global_arena->New<ExpressionPattern>(
global_arena->New<TupleLiteral>(-1)),
/*is_omitted_return_type=*/false, print_return));
fs->insert(fs->begin(), print);
}