diff --git a/src/inspector/inspector_test.cc b/src/inspector/inspector_test.cc
index 9e43df5..6a886d8 100644
--- a/src/inspector/inspector_test.cc
+++ b/src/inspector/inspector_test.cc
@@ -2576,9 +2576,7 @@
 [[stage(fragment)]]
 fn via_ptr([[location(0)]] fragUV: vec2<f32>,
         [[location(1)]] fragPosition: vec4<f32>) -> [[location(0)]] vec4<f32> {
-  let t = &myTexture;
-  let s = &mySampler;
-  return textureSample(*t, *s, fragUV) + fragPosition;
+  return textureSample(myTexture, mySampler, fragUV) + fragPosition;
 }
 
 [[stage(fragment)]]
diff --git a/src/resolver/ptr_ref_validation_test.cc b/src/resolver/ptr_ref_validation_test.cc
index 73b1f46..59e7b44 100644
--- a/src/resolver/ptr_ref_validation_test.cc
+++ b/src/resolver/ptr_ref_validation_test.cc
@@ -52,6 +52,34 @@
   EXPECT_EQ(r()->error(), "12:34 error: cannot take the address of expression");
 }
 
+TEST_F(ResolverPtrRefValidationTest, AddressOfHandle) {
+  // [[group(0), binding(0)]] var t: texture_3d<f32>;
+  // &t
+  Global("t", ty.sampled_texture(ast::TextureDimension::k3d, ty.f32()),
+         GroupAndBinding(0u, 0u));
+  auto* expr = AddressOf(Expr(Source{{12, 34}}, "t"));
+  WrapInFunction(expr);
+
+  EXPECT_FALSE(r()->Resolve());
+  EXPECT_EQ(r()->error(),
+            "12:34 error: cannot take the address of expression in handle "
+            "storage class");
+}
+
+TEST_F(ResolverPtrRefValidationTest, IndirectOfAddressOfHandle) {
+  // [[group(0), binding(0)]] var t: texture_3d<f32>;
+  // *&t
+  Global("t", ty.sampled_texture(ast::TextureDimension::k3d, ty.f32()),
+         GroupAndBinding(0u, 0u));
+  auto* expr = Deref(AddressOf(Expr(Source{{12, 34}}, "t")));
+  WrapInFunction(expr);
+
+  EXPECT_FALSE(r()->Resolve());
+  EXPECT_EQ(r()->error(),
+            "12:34 error: cannot take the address of expression in handle "
+            "storage class");
+}
+
 TEST_F(ResolverPtrRefValidationTest, DerefOfLiteral) {
   // *1
 
diff --git a/src/resolver/resolver.cc b/src/resolver/resolver.cc
index a395cd8..b980b96 100644
--- a/src/resolver/resolver.cc
+++ b/src/resolver/resolver.cc
@@ -3384,6 +3384,12 @@
 
     case ast::UnaryOp::kAddressOf:
       if (auto* ref = expr_type->As<sem::Reference>()) {
+        if (ref->StoreType()->UnwrapRef()->is_handle()) {
+          AddError(
+              "cannot take the address of expression in handle storage class",
+              unary->expr()->source());
+          return false;
+        }
         type = builder_->create<sem::Pointer>(
             ref->StoreType(), ref->StorageClass(), ref->Access());
       } else {
