예제 #1
0
 public static LocalDeclarationStatementSyntax LocalDeclaration(TypeSyntax type, SyntaxToken identifier, ExpressionSyntax initializer = null)
 {
     if (initializer == null)
     {
         return(SF.LocalDeclarationStatement(SF.VariableDeclaration(type, SF.SingletonSeparatedList(SF.VariableDeclarator(identifier)))));
     }
     else
     {
         return(SF.LocalDeclarationStatement(SF.VariableDeclaration(type, SF.SingletonSeparatedList(SF.VariableDeclarator(identifier)
                                                                                                    .WithInitializer(SF.EqualsValueClause(initializer))))));
     }
 }
예제 #2
0
        private static MethodDeclarationSyntax GenerateSetupMethod(IMethodSymbol methodSymbol, string setupMethodName, string delegateTypeName,
                                                                   INamedTypeSymbol stubbedInterface,
                                                                   ClassDeclarationSyntax stub)
        {
            SyntaxKind visibility = RoslynUtils.GetVisibilityKeyword(stubbedInterface);
            MethodDeclarationSyntax methodDclr = SF.MethodDeclaration(SF.ParseTypeName(stub.Identifier.Text), setupMethodName)
                                                 .AddModifiers(SF.Token(visibility)).WithSemicolonToken(SF.Token(SyntaxKind.SemicolonToken))
                                                 .AddParameterListParameters(
                SF.Parameter(SF.Identifier("del")).WithType(SF.ParseTypeName(delegateTypeName)),
                SF.Parameter(SF.Identifier("count")).WithType(SF.ParseTypeName("int")).WithDefault(SF.EqualsValueClause(SF.ParseExpression("Times.Forever"))),
                SF.Parameter(SF.Identifier("overwrite")).WithType(SF.ParseTypeName("bool")).WithDefault(SF.EqualsValueClause(SF.ParseExpression("false")))
                )
                                                 .WithBody(SF.Block(
                                                               SF.ParseStatement("_stubs.SetMethodStub(del, count, overwrite);\n"),
                                                               SF.ParseStatement("return this;\n")
                                                               ))
                                                 .WithSemicolonToken(SF.Token(SyntaxKind.None));

            return(RoslynUtils.CopyGenericConstraints(methodSymbol, methodDclr));
        }