protected virtual void PreviewVisitTypeTemplate(TemplateTypeSymbol t) { switch (t.ItemCount) { default: throw new NotSupportedException(); case 1: VisitTypeTemplate1((TemplateTypeSymbol1)t); break; case 2: VisitTypeTemplate2((TemplateTypeSymbol2)t); break; case 3: VisitTypeTemplate3((TemplateTypeSymbol3)t); break; } }
// protected virtual void PreviewVisitSimpleTypeNonPrimitive(SimpleTypeSymbol t) { //check its base TypeSymbol baseType = t.BaseType; if (baseType == null) { VisitSimpleTypeNoBaseType(t); } else { switch (baseType.TypeSymbolKind) { default: VisitSimpleTypeOtherBase(t); break; case TypeSymbolKind.Template: { TemplateTypeSymbol tt = (TemplateTypeSymbol)baseType; switch (tt.ItemCount) { default: throw new NotSupportedException(); case 1: VisitSimpleTypeBase1(t, (TemplateTypeSymbol1)tt); break; case 2: VisitSimpleTypeBase2(t, (TemplateTypeSymbol2)tt); break; case 3: VisitSimpleTypeBase3(t, (TemplateTypeSymbol3)tt); break; } } break; } } }