in scrooge-generator/src/main/scala/com/twitter/scrooge/frontend/TypeResolver.scala [339:348]
def apply(t: FieldType): FieldType = t match {
case ReferenceType(id) => resolveFieldType(id)
case m @ MapType(k, v, _) => m.copy(keyType = apply(k), valueType = apply(v))
case s @ SetType(e, _) => s.copy(eltType = apply(e))
case l @ ListType(e, _) => l.copy(eltType = apply(e))
case at: AnnotatedFieldType => at.copy(underlying = apply(at.unwrap))
case b: BaseType => b
case e: EnumType => e
case s: StructType => s
}