public override object VisitTypeReference(TypeReference typeReference, object data)
{
while (typeReference.PointerNestingLevel > 0) {
TypeReference tr = new TypeReference(typeReference.Type) {
IsKeyword = typeReference.IsKeyword,
IsGlobal = typeReference.IsGlobal,
};
tr.GenericTypes.AddRange(typeReference.GenericTypes);
typeReference = new TypeReference("Pointer") {
StartLocation = typeReference.StartLocation,
EndLocation = typeReference.EndLocation,
PointerNestingLevel = typeReference.PointerNestingLevel - 1,
GenericTypes = { tr },
RankSpecifier = typeReference.RankSpecifier
};
}
ReplaceCurrentNode(typeReference);
return base.VisitTypeReference(typeReference, data);
}