It's more or less the same duplication as in the toDt methods as it extracts their referenced TypeInfo. Both semantic3 and toDt might use common implementation for groups of classes with the referenced type in some overridable method but it could also complicate the codee and add boilerplate.