public static TypeDeclarationSyntax WithModifiers(
            this TypeDeclarationSyntax node, SyntaxTokenList modifiers)
        {
            switch (node.CSharpKind())
            {
            case SyntaxKind.ClassDeclaration:
                return(((ClassDeclarationSyntax)node).WithModifiers(modifiers));

            case SyntaxKind.InterfaceDeclaration:
                return(((InterfaceDeclarationSyntax)node).WithModifiers(modifiers));

            case SyntaxKind.StructDeclaration:
                return(((StructDeclarationSyntax)node).WithModifiers(modifiers));
            }

            throw Contract.Unreachable;
        }
        public static TypeDeclarationSyntax WithAttributeLists(
            this TypeDeclarationSyntax node, SyntaxList <AttributeListSyntax> attributes)
        {
            switch (node.CSharpKind())
            {
            case SyntaxKind.ClassDeclaration:
                return(((ClassDeclarationSyntax)node).WithAttributeLists(attributes));

            case SyntaxKind.InterfaceDeclaration:
                return(((InterfaceDeclarationSyntax)node).WithAttributeLists(attributes));

            case SyntaxKind.StructDeclaration:
                return(((StructDeclarationSyntax)node).WithAttributeLists(attributes));
            }

            throw Contract.Unreachable;
        }
        public static TypeDeclarationSyntax WithCloseBraceToken(
            this TypeDeclarationSyntax node, SyntaxToken closeBrace)
        {
            switch (node.CSharpKind())
            {
            case SyntaxKind.ClassDeclaration:
                return(((ClassDeclarationSyntax)node).WithCloseBraceToken(closeBrace));

            case SyntaxKind.InterfaceDeclaration:
                return(((InterfaceDeclarationSyntax)node).WithCloseBraceToken(closeBrace));

            case SyntaxKind.StructDeclaration:
                return(((StructDeclarationSyntax)node).WithCloseBraceToken(closeBrace));
            }

            throw Contract.Unreachable;
        }
        public static TypeDeclarationSyntax AddMembers(
            this TypeDeclarationSyntax node, params MemberDeclarationSyntax[] members)
        {
            switch (node.CSharpKind())
            {
            case SyntaxKind.ClassDeclaration:
                return(((ClassDeclarationSyntax)node).AddMembers(members));

            case SyntaxKind.InterfaceDeclaration:
                return(((InterfaceDeclarationSyntax)node).AddMembers(members));

            case SyntaxKind.StructDeclaration:
                return(((StructDeclarationSyntax)node).AddMembers(members));
            }

            throw Contract.Unreachable;
        }
        public static TypeDeclarationSyntax WithConstraintClauses(
            this TypeDeclarationSyntax node, SyntaxList <TypeParameterConstraintClauseSyntax> constraintClauses)
        {
            switch (node.CSharpKind())
            {
            case SyntaxKind.ClassDeclaration:
                return(((ClassDeclarationSyntax)node).WithConstraintClauses(constraintClauses));

            case SyntaxKind.InterfaceDeclaration:
                return(((InterfaceDeclarationSyntax)node).WithConstraintClauses(constraintClauses));

            case SyntaxKind.StructDeclaration:
                return(((StructDeclarationSyntax)node).WithConstraintClauses(constraintClauses));
            }

            throw Contract.Unreachable;
        }
        public static TypeDeclarationSyntax WithBaseList(
            this TypeDeclarationSyntax node, BaseListSyntax list)
        {
            switch (node.CSharpKind())
            {
            case SyntaxKind.ClassDeclaration:
                return(((ClassDeclarationSyntax)node).WithBaseList(list));

            case SyntaxKind.InterfaceDeclaration:
                return(((InterfaceDeclarationSyntax)node).WithBaseList(list));

            case SyntaxKind.StructDeclaration:
                return(((StructDeclarationSyntax)node).WithBaseList(list));
            }

            throw Contract.Unreachable;
        }
Пример #7
0
        protected static CodeGenerationDestination GetDestination(TypeDeclarationSyntax destination)
        {
            if (destination != null)
            {
                switch (destination.CSharpKind())
                {
                case SyntaxKind.ClassDeclaration:
                    return(CodeGenerationDestination.ClassType);

                case SyntaxKind.InterfaceDeclaration:
                    return(CodeGenerationDestination.InterfaceType);

                case SyntaxKind.StructDeclaration:
                    return(CodeGenerationDestination.StructType);
                }
            }

            return(CodeGenerationDestination.Unspecified);
        }