internal void VisitTypeGenericNode(TypeGenericNode node) { Visit(node.TypeIdentifier); Visit(node.OpenParanthesis); Visit(node.GenericParameters); Visit(node.CloseParanthesis); }
protected virtual void VisitGenericTypeParameters(TypeGenericNode node) { if (node == null) { return; } node.TypeParameters?.ForEach(t => VisitTypeParameter(t)); node.TypeConstraints.ForEach(t => VisitTypeConstraint(t)); }
protected void AppendTypeGeneric(TypeGenericNode node) { if (node == null) { return; } AppendTypeParameters(node.TypeParameters); AppendTypeConstraints(node.TypeConstraints); }
protected void WalkTypeGenericNode(TypeGenericNode node) { if (node == null) { return; } switch (node) { case InterfaceNode i: VisitInterfaceNode(i); break; case TypeStructClassNode sc: VisitTypeStructClassNode(sc); break; } VisitGenericTypeParameters(node); }
protected virtual void VisitTypeGenericNode(TypeGenericNode node) { WalkTypeGenericNode(node); }
protected override void VisitGenericTypeParameters(TypeGenericNode node) { }