diff --git a/src/resolver/decoration_validation_test.cc b/src/resolver/decoration_validation_test.cc
index 9786ff6..2808ea0 100644
--- a/src/resolver/decoration_validation_test.cc
+++ b/src/resolver/decoration_validation_test.cc
@@ -778,6 +778,19 @@
 12:34 note: first decoration declared here)");
 }
 
+TEST_F(VariableDecorationTest, LocalVariable) {
+  auto* v = Var("a", ty.f32(),
+                ast::DecorationList{
+                    create<ast::BindingDecoration>(Source{{12, 34}}, 2),
+                });
+
+  WrapInFunction(v);
+
+  EXPECT_FALSE(r()->Resolve());
+  EXPECT_EQ(r()->error(),
+            "12:34 error: decorations are not valid on local variables");
+}
+
 using ConstantDecorationTest = TestWithParams;
 TEST_P(ConstantDecorationTest, IsValid) {
   auto& params = GetParam();
diff --git a/src/resolver/resolver.cc b/src/resolver/resolver.cc
index be8e45a..3eb9629 100644
--- a/src/resolver/resolver.cc
+++ b/src/resolver/resolver.cc
@@ -3366,8 +3366,11 @@
   }
 
   for (auto* deco : var->decorations()) {
-    // TODO(bclayton): Validate decorations
     Mark(deco);
+    if (!deco->Is<ast::InternalDecoration>()) {
+      AddError("decorations are not valid on local variables", deco->source());
+      return false;
+    }
   }
 
   variable_stack_.set(var->symbol(), info);
diff --git a/src/resolver/resolver_test.cc b/src/resolver/resolver_test.cc
index ad14dd3..d84dba8 100644
--- a/src/resolver/resolver_test.cc
+++ b/src/resolver/resolver_test.cc
@@ -864,11 +864,7 @@
   auto* my_var_b = Expr("my_var");
   auto* assign = Assign(my_var_a, my_var_b);
 
-  auto* var = Var("my_var", ty.f32(),
-                  ast::DecorationList{
-                      create<ast::BindingDecoration>(0),
-                      create<ast::GroupDecoration>(0),
-                  });
+  auto* var = Var("my_var", ty.f32());
 
   Func("my_func", ast::VariableList{}, ty.void_(),
        {
@@ -1937,11 +1933,7 @@
                                          ast::UnaryOp::kNot));
 
 TEST_F(ResolverTest, StorageClass_SetsIfMissing) {
-  auto* var = Var("var", ty.i32(),
-                  ast::DecorationList{
-                      create<ast::BindingDecoration>(0),
-                      create<ast::GroupDecoration>(0),
-                  });
+  auto* var = Var("var", ty.i32());
 
   auto* stmt = Decl(var);
   Func("func", ast::VariableList{}, ty.void_(), {stmt}, ast::DecorationList{});
