diff --git a/ruby/ext/google/protobuf_c/ruby-upb.h b/ruby/ext/google/protobuf_c/ruby-upb.h
index cb0cbdf..455352d 100755
--- a/ruby/ext/google/protobuf_c/ruby-upb.h
+++ b/ruby/ext/google/protobuf_c/ruby-upb.h
@@ -506,10 +506,6 @@
   const char* data;
   size_t size;
 } upb_StringView;
-// LINT.ThenChange(
-//  GoogleInternalName0,
-//  //depot/google3/third_party/upb/bits/golang/accessor.go:map_go_string
-// )
 
 #ifdef __cplusplus
 extern "C" {
@@ -531,6 +527,12 @@
   return a.size == b.size && memcmp(a.data, b.data, a.size) == 0;
 }
 
+// LINT.ThenChange(
+//  GoogleInternalName0,
+//  //depot/google3/third_party/upb/bits/golang/accessor.go:map_go_string,
+//  //depot/google3/third_party/upb/bits/typescript/string_view.ts
+// )
+
 #ifdef __cplusplus
 } /* extern "C" */
 #endif
@@ -632,9 +634,11 @@
 
 typedef struct upb_Arena upb_Arena;
 
+// LINT.IfChange(struct_definition)
 typedef struct {
   char *ptr, *end;
 } _upb_ArenaHead;
+// LINT.ThenChange(//depot/google3/third_party/upb/bits/typescript/arena.ts)
 
 #ifdef __cplusplus
 extern "C" {
@@ -1084,6 +1088,7 @@
 
 // Must be last.
 
+// LINT.IfChange(struct_definition)
 struct upb_MiniTableField {
   uint32_t number;
   uint16_t offset;
@@ -1242,6 +1247,8 @@
   return upb_FieldType_SizeLg2((upb_FieldType)f->UPB_PRIVATE(descriptortype));
 }
 
+// LINT.ThenChange(//depot/google3/third_party/upb/bits/typescript/mini_table_field.ts)
+
 #ifdef __cplusplus
 } /* extern "C" */
 #endif
@@ -1388,6 +1395,7 @@
 // upb_MiniTable represents the memory layout of a given upb_MessageDef.
 // The members are public so generated code can initialize them,
 // but users MUST NOT directly read or write any of its members.
+// LINT.IfChange(minitable_struct_definition)
 struct upb_MiniTable {
   const union upb_MiniTableSub* UPB_PRIVATE(subs);
   const struct upb_MiniTableField* UPB_ONLYBITS(fields);
@@ -1408,6 +1416,7 @@
   // of flexible array members is a GNU extension, not in C99 unfortunately.
   _upb_FastTable_Entry UPB_PRIVATE(fasttable)[];
 };
+// LINT.ThenChange(//depot/google3/third_party/upb/bits/typescript/mini_table.ts)
 
 #ifdef __cplusplus
 extern "C" {
@@ -2832,7 +2841,6 @@
   size_t size;                   // The number of elements in the array.
   size_t UPB_PRIVATE(capacity);  // Allocated storage. Measured in elements.
 };
-// LINT.ThenChange(GoogleInternalName1)
 
 UPB_INLINE void UPB_PRIVATE(_upb_Array_SetTaggedPtr)(upb_Array* array,
                                                      void* data, size_t lg2) {
@@ -2905,6 +2913,11 @@
   memcpy(arr_data + (i * elem_size), data, elem_size);
 }
 
+// LINT.ThenChange(
+//  GoogleInternalName1,
+//  //depot/google3/third_party/upb/bits/typescript/array.ts
+//)
+
 #ifdef __cplusplus
 } /* extern "C" */
 #endif
@@ -12000,6 +12013,7 @@
 
 typedef struct _upb_MemBlock _upb_MemBlock;
 
+// LINT.IfChange(struct_definition)
 struct upb_Arena {
   _upb_ArenaHead head;
 
@@ -12028,6 +12042,7 @@
   // upb_Arena_SpaceAllocated().
   UPB_ATOMIC(_upb_MemBlock*) blocks;
 };
+// LINT.ThenChange(//depot/google3/third_party/upb/bits/typescript/arena.ts)
 
 UPB_INLINE bool _upb_Arena_IsTaggedRefcount(uintptr_t parent_or_count) {
   return (parent_or_count & 1) == 1;
