private Part CreateObjectTypePart(IObjectModelTypeDeclaration decl) { switch (decl.TypePartKind) { case FSharpPartKind.Class: return(new ClassPart(decl, Builder)); case FSharpPartKind.Interface: return(new InterfacePart(decl, Builder)); case FSharpPartKind.Struct: return(new StructPart(decl, Builder)); default: throw new ArgumentOutOfRangeException(); } }
public override void VisitObjectModelTypeDeclaration(IObjectModelTypeDeclaration decl) { Builder.StartPart(CreateObjectTypePart(decl, false)); ProcessTypeMembers(decl.MemberDeclarations); Builder.EndPart(); }