spirv-reader: better message for unknown SPIR-V type

Change-Id: I56a314d0c4eb1f1dfdb8804024a5824e5456356c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/32940
Commit-Queue: David Neto <dneto@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Auto-Submit: David Neto <dneto@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
diff --git a/src/reader/spirv/parser_impl.cc b/src/reader/spirv/parser_impl.cc
index 7cc274d..7068857 100644
--- a/src/reader/spirv/parser_impl.cc
+++ b/src/reader/spirv/parser_impl.cc
@@ -309,7 +309,8 @@
       break;
   }
 
-  Fail() << "unknown SPIR-V type: " << type_id;
+  Fail() << "unknown SPIR-V type with ID " << type_id << ": "
+         << def_use_mgr_->GetDef(type_id)->PrettyPrint();
   return nullptr;
 }
 
diff --git a/src/reader/spirv/parser_impl_convert_type_test.cc b/src/reader/spirv/parser_impl_convert_type_test.cc
index 3f18da7..5674465 100644
--- a/src/reader/spirv/parser_impl_convert_type_test.cc
+++ b/src/reader/spirv/parser_impl_convert_type_test.cc
@@ -79,7 +79,8 @@
 
   auto* type = p->ConvertType(70);
   EXPECT_EQ(nullptr, type);
-  EXPECT_THAT(p->error(), Eq("unknown SPIR-V type: 70"));
+  EXPECT_THAT(p->error(),
+              Eq("unknown SPIR-V type with ID 70: %70 = OpTypePipe WriteOnly"));
 }
 
 TEST_F(SpvParserTest, ConvertType_Void) {