diff --git a/include/tvm/relay/type.h b/include/tvm/relay/type.h
index 2bb9b307027066ec16b23bec10adc31664dafc89..5d8eca0370136a500a2127007088a95af81dc2df 100644
--- a/include/tvm/relay/type.h
+++ b/include/tvm/relay/type.h
@@ -161,6 +161,7 @@ class IncompleteTypeNode : public TypeNode {
 
   void VisitAttrs(tvm::AttrVisitor* v) final {
     v->Visit("kind", &kind);
+    v->Visit("span", &span);
   }
 
   TVM_DLL static IncompleteType make(TypeVarNode::Kind kind);
@@ -243,7 +244,10 @@ class TupleTypeNode : public TypeNode {
 
   TupleTypeNode() {}
 
-  void VisitAttrs(tvm::AttrVisitor* v) final { v->Visit("fields", &fields); }
+  void VisitAttrs(tvm::AttrVisitor* v) final {
+    v->Visit("fields", &fields);
+    v->Visit("span", &span);
+  }
 
   TVM_DLL static TupleType make(tvm::Array<Type> fields);
 
@@ -361,6 +365,7 @@ class TypeRelationNode : public TypeConstraintNode {
     v->Visit("args", &args);
     v->Visit("num_inputs", &num_inputs);
     v->Visit("attrs", &attrs);
+    v->Visit("span", &span);
   }
 
   TVM_DLL static TypeRelation make(TypeRelationFn func,