transform: Fix Manager::Run() with no transforms

If there are transforms added to the manager, then Run() would output an empty module. Fix this.

Bug: tint:390
Bug: tint:389
Change-Id: I439fe7a28816761f3702e304ef130b7a6992ecce
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/35280
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/src/transform/manager.cc b/src/transform/manager.cc
index cbb6ffe..7ba0fb7 100644
--- a/src/transform/manager.cc
+++ b/src/transform/manager.cc
@@ -24,17 +24,21 @@
 
 Transform::Output Manager::Run(ast::Module* module) {
   Output out;
-  for (auto& transform : transforms_) {
-    auto res = transform->Run(module);
-    out.module = std::move(res.module);
-    out.diagnostics.add(std::move(res.diagnostics));
-    if (out.diagnostics.contains_errors()) {
-      return out;
+  if (!transforms_.empty()) {
+    for (auto& transform : transforms_) {
+      auto res = transform->Run(module);
+      out.module = std::move(res.module);
+      out.diagnostics.add(std::move(res.diagnostics));
+      if (out.diagnostics.contains_errors()) {
+        return out;
+      }
+      module = &out.module;
     }
-    module = &out.module;
+  } else {
+    out.module = module->Clone();
   }
 
-  TypeDeterminer td(module);
+  TypeDeterminer td(&out.module);
   if (!td.Determine()) {
     diag::Diagnostic err;
     err.severity = diag::Severity::Error;