Fix MSVC narrowing warnings in newer MSVC versions.

Bug: dawn:824
Change-Id: I4be68ab47e5aa846583240c1024e286d7ec2e115
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/75073
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/src/resolver/resolver.cc b/src/resolver/resolver.cc
index 65820f9..68ed46d 100644
--- a/src/resolver/resolver.cc
+++ b/src/resolver/resolver.cc
@@ -1565,7 +1565,7 @@
                     [&](const sem::Type* t, size_t i) -> const sem::Parameter* {
                       return builder_->create<sem::Parameter>(
                           nullptr,                   // declaration
-                          i,                         // index
+                          static_cast<uint32_t>(i),  // index
                           t->UnwrapRef(),            // type
                           ast::StorageClass::kNone,  // storage_class
                           ast::Access::kUndefined);  // access
diff --git a/src/writer/append_vector.cc b/src/writer/append_vector.cc
index a7a8728..cad3183 100644
--- a/src/writer/append_vector.cc
+++ b/src/writer/append_vector.cc
@@ -155,14 +155,15 @@
         return expr->Declaration();
       }));
   auto* constructor_target = b->create<sem::TypeConstructor>(
-      packed_sem_ty,
-      utils::Transform(packed,
-                       [&](const tint::sem::Expression* arg,
-                           size_t i) -> const sem::Parameter* {
-                         return b->create<sem::Parameter>(
-                             nullptr, i, arg->Type()->UnwrapRef(),
-                             ast::StorageClass::kNone, ast::Access::kUndefined);
-                       }));
+      packed_sem_ty, utils::Transform(packed,
+                                      [&](const tint::sem::Expression* arg,
+                                          size_t i) -> const sem::Parameter* {
+                                        return b->create<sem::Parameter>(
+                                            nullptr, static_cast<uint32_t>(i),
+                                            arg->Type()->UnwrapRef(),
+                                            ast::StorageClass::kNone,
+                                            ast::Access::kUndefined);
+                                      }));
   auto* constructor_sem = b->create<sem::Call>(
       constructor_ast, constructor_target, packed, statement, sem::Constant{});
   b->Sem().Add(constructor_ast, constructor_sem);