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)))))); } }
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)); }