Remove all Source{} smell from tests

Switch all remaining AST stack allocations in tests to using create<T>() which will automatically inject the current Source as the first parameter.

Most remaining uses of Source{} in the codebase are places where we need to fix.

Bug: tint:396
Change-Id: I24655800b50d6ad52e682a7339022972e9b354d9
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/36380
Commit-Queue: Ben Clayton <bclayton@google.com>
Commit-Queue: David Neto <dneto@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
diff --git a/src/writer/spirv/builder_function_decoration_test.cc b/src/writer/spirv/builder_function_decoration_test.cc
index 00b64a5..d3b50fa 100644
--- a/src/writer/spirv/builder_function_decoration_test.cc
+++ b/src/writer/spirv/builder_function_decoration_test.cc
@@ -39,11 +39,11 @@
 using BuilderTest = TestHelper;
 
 TEST_F(BuilderTest, FunctionDecoration_Stage) {
-  auto* func = Func(
-      "main", {}, ty.void_, ast::StatementList{},
-      ast::FunctionDecorationList{
-          create<ast::StageDecoration>(Source{}, ast::PipelineStage::kVertex),
-      });
+  auto* func =
+      Func("main", {}, ty.void_, ast::StatementList{},
+           ast::FunctionDecorationList{
+               create<ast::StageDecoration>(ast::PipelineStage::kVertex),
+           });
 
   ASSERT_TRUE(b.GenerateFunction(func)) << b.error();
   EXPECT_EQ(DumpInstructions(b.entry_points()),
@@ -65,7 +65,7 @@
 
   auto* func = Func("main", {}, ty.void_, ast::StatementList{},
                     ast::FunctionDecorationList{
-                        create<ast::StageDecoration>(Source{}, params.stage),
+                        create<ast::StageDecoration>(params.stage),
                     });
 
   ASSERT_TRUE(b.GenerateFunction(func)) << b.error();
@@ -91,11 +91,11 @@
   ast::type::F32 f32;
   ast::type::Void void_type;
 
-  auto* func = Func(
-      "main", {}, ty.void_, ast::StatementList{},
-      ast::FunctionDecorationList{
-          create<ast::StageDecoration>(Source{}, ast::PipelineStage::kVertex),
-      });
+  auto* func =
+      Func("main", {}, ty.void_, ast::StatementList{},
+           ast::FunctionDecorationList{
+               create<ast::StageDecoration>(ast::PipelineStage::kVertex),
+           });
 
   auto* v_in = Var("my_in", ast::StorageClass::kInput, ty.f32);
   auto* v_out = Var("my_out", ast::StorageClass::kOutput, ty.f32);
@@ -132,19 +132,17 @@
 }
 
 TEST_F(BuilderTest, FunctionDecoration_Stage_WithUsedInterfaceIds) {
-  auto* func = Func(
-      "main", {}, ty.void_,
-      ast::StatementList{create<ast::AssignmentStatement>(
-                             Source{}, Expr("my_out"), Expr("my_in")),
-                         create<ast::AssignmentStatement>(
-                             Source{}, Expr("my_wg"), Expr("my_wg")),
-                         // Add duplicate usages so we show they don't get
-                         // output multiple times.
-                         create<ast::AssignmentStatement>(
-                             Source{}, Expr("my_out"), Expr("my_in"))},
-      ast::FunctionDecorationList{
-          create<ast::StageDecoration>(Source{}, ast::PipelineStage::kVertex),
-      });
+  auto* func =
+      Func("main", {}, ty.void_,
+           ast::StatementList{
+               create<ast::AssignmentStatement>(Expr("my_out"), Expr("my_in")),
+               create<ast::AssignmentStatement>(Expr("my_wg"), Expr("my_wg")),
+               // Add duplicate usages so we show they don't get
+               // output multiple times.
+               create<ast::AssignmentStatement>(Expr("my_out"), Expr("my_in"))},
+           ast::FunctionDecorationList{
+               create<ast::StageDecoration>(ast::PipelineStage::kVertex),
+           });
 
   auto* v_in = Var("my_in", ast::StorageClass::kInput, ty.f32);
   auto* v_out = Var("my_out", ast::StorageClass::kOutput, ty.f32);
@@ -187,11 +185,11 @@
 }
 
 TEST_F(BuilderTest, FunctionDecoration_ExecutionMode_Fragment_OriginUpperLeft) {
-  auto* func = Func(
-      "main", {}, ty.void_, ast::StatementList{},
-      ast::FunctionDecorationList{
-          create<ast::StageDecoration>(Source{}, ast::PipelineStage::kFragment),
-      });
+  auto* func =
+      Func("main", {}, ty.void_, ast::StatementList{},
+           ast::FunctionDecorationList{
+               create<ast::StageDecoration>(ast::PipelineStage::kFragment),
+           });
 
   ASSERT_TRUE(b.GenerateExecutionModes(func, 3)) << b.error();
   EXPECT_EQ(DumpInstructions(b.execution_modes()),
@@ -200,11 +198,11 @@
 }
 
 TEST_F(BuilderTest, FunctionDecoration_ExecutionMode_WorkgroupSize_Default) {
-  auto* func = Func(
-      "main", {}, ty.void_, ast::StatementList{},
-      ast::FunctionDecorationList{
-          create<ast::StageDecoration>(Source{}, ast::PipelineStage::kCompute),
-      });
+  auto* func =
+      Func("main", {}, ty.void_, ast::StatementList{},
+           ast::FunctionDecorationList{
+               create<ast::StageDecoration>(ast::PipelineStage::kCompute),
+           });
 
   ASSERT_TRUE(b.GenerateExecutionModes(func, 3)) << b.error();
   EXPECT_EQ(DumpInstructions(b.execution_modes()),
@@ -213,12 +211,12 @@
 }
 
 TEST_F(BuilderTest, FunctionDecoration_ExecutionMode_WorkgroupSize) {
-  auto* func = Func(
-      "main", {}, ty.void_, ast::StatementList{},
-      ast::FunctionDecorationList{
-          create<ast::WorkgroupDecoration>(Source{}, 2u, 4u, 6u),
-          create<ast::StageDecoration>(Source{}, ast::PipelineStage::kCompute),
-      });
+  auto* func =
+      Func("main", {}, ty.void_, ast::StatementList{},
+           ast::FunctionDecorationList{
+               create<ast::WorkgroupDecoration>(2u, 4u, 6u),
+               create<ast::StageDecoration>(ast::PipelineStage::kCompute),
+           });
 
   ASSERT_TRUE(b.GenerateExecutionModes(func, 3)) << b.error();
   EXPECT_EQ(DumpInstructions(b.execution_modes()),
@@ -227,17 +225,17 @@
 }
 
 TEST_F(BuilderTest, FunctionDecoration_ExecutionMode_MultipleFragment) {
-  auto* func1 = Func(
-      "main1", {}, ty.void_, ast::StatementList{},
-      ast::FunctionDecorationList{
-          create<ast::StageDecoration>(Source{}, ast::PipelineStage::kFragment),
-      });
+  auto* func1 =
+      Func("main1", {}, ty.void_, ast::StatementList{},
+           ast::FunctionDecorationList{
+               create<ast::StageDecoration>(ast::PipelineStage::kFragment),
+           });
 
-  auto* func2 = Func(
-      "main2", {}, ty.void_, ast::StatementList{},
-      ast::FunctionDecorationList{
-          create<ast::StageDecoration>(Source{}, ast::PipelineStage::kFragment),
-      });
+  auto* func2 =
+      Func("main2", {}, ty.void_, ast::StatementList{},
+           ast::FunctionDecorationList{
+               create<ast::StageDecoration>(ast::PipelineStage::kFragment),
+           });
 
   ASSERT_TRUE(b.GenerateFunction(func1)) << b.error();
   ASSERT_TRUE(b.GenerateFunction(func2)) << b.error();