Ejemplo n.º 1
0
        private static EqualsValueClauseSyntax GenerateEqualsValue(IFieldSymbol field)
        {
            if (field.HasConstantValue)
            {
                var canUseFieldReference = field.Type != null && !field.Type.Equals(field.ContainingType);
                return(SyntaxFactory.EqualsValueClause(ExpressionGenerator.GenerateExpression(field.Type, field.ConstantValue, canUseFieldReference)));
            }

            return(null);
        }
Ejemplo n.º 2
0
 private static ExpressionSyntax GenerateEqualsValueClauseWorker(
     IParameterSymbol parameter,
     object value
     )
 {
     return(ExpressionGenerator.GenerateExpression(
                parameter.Type,
                value,
                canUseFieldReference: true
                ));
 }
Ejemplo n.º 3
0
        private static AttributeArgumentListSyntax GenerateAttributeArgumentList(AttributeData attribute)
        {
            if (attribute.ConstructorArguments.Length == 0 && attribute.NamedArguments.Length == 0)
            {
                return(null);
            }

            var arguments = new List <AttributeArgumentSyntax>();

            arguments.AddRange(attribute.ConstructorArguments.Select(c =>
                                                                     SyntaxFactory.AttributeArgument(ExpressionGenerator.GenerateExpression(c))));

            arguments.AddRange(attribute.NamedArguments.Select(kvp =>
                                                               SyntaxFactory.AttributeArgument(
                                                                   SyntaxFactory.NameEquals(SyntaxFactory.IdentifierName(kvp.Key)), null,
                                                                   ExpressionGenerator.GenerateExpression(kvp.Value))));

            return(SyntaxFactory.AttributeArgumentList(SyntaxFactory.SeparatedList(arguments)));
        }