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