Beispiel #1
0
        internal static TypeSyntax CreateTypeSyntax(this ITypeSymbol symbol, bool insideCref = false, bool onlyName = false)
        {
            var predefinedType = symbol.SpecialType.ToPredefinedType();

            if (predefinedType != null)
            {
                return(symbol.IsNullable()
                                        ? (TypeSyntax)SyntaxFactory.NullableType(predefinedType)
                                        : predefinedType);
            }
            return(SyntaxNodeExtensions.ConstructNameSyntax(symbol.ToString(), insideCref: insideCref, onlyName: onlyName));
        }
 private BlockSyntax GetCatchBlock(SyntaxTrivia innerBodyTrivia)
 {
     return(Block(
                SingletonList <StatementSyntax>(
                    ReturnStatement()
                    .WithExpression(
                        InvocationExpression(
                            MemberAccessExpression(
                                SyntaxKind.SimpleMemberAccessExpression,
                                _namespaceMetadata.TaskConflict
                                                                                         ? SyntaxNodeExtensions.ConstructNameSyntax("System.Threading.Tasks.Task")
                                                                                         : IdentifierName(nameof(Task)),
                                GenericName(
                                    Identifier("FromException"))
                                .WithTypeArgumentList(
                                    TypeArgumentList(
                                        SingletonSeparatedList(
                                            _retunTypeSyntax == null
                                                                                                                         ? PredefinedType(Token(SyntaxKind.ObjectKeyword))
                                                                                                                         : _retunTypeSyntax.WithoutTrivia())))))
                        .WithArgumentList(
                            ArgumentList(
                                SingletonSeparatedList(
                                    Argument(
                                        IdentifierName("ex"))))))
                    .WithReturnKeyword(Token(TriviaList(innerBodyTrivia), SyntaxKind.ReturnKeyword, TriviaList(Space)))
                    .WithSemicolonToken(Token(TriviaList(), SyntaxKind.SemicolonToken, TriviaList(_transformResult.EndOfLineTrivia)))
                    ))
            .WithOpenBraceToken(Token(TriviaList(_transformResult.LeadingWhitespaceTrivia), SyntaxKind.OpenBraceToken, TriviaList(_transformResult.EndOfLineTrivia)))
            .WithCloseBraceToken(Token(TriviaList(_transformResult.LeadingWhitespaceTrivia), SyntaxKind.CloseBraceToken, TriviaList(_transformResult.EndOfLineTrivia))));
 }