internal override IEnumerable <AttributeData> GetCustomAttributesToEmit(CommonModuleCompilationState compilationState)
        {
            // [param]
            if (IsParams)
            {
                yield return(DeclaringCompilation.CreateParamsAttribute());
            }

            // [Nullable(1)] - does not return null
            if (HasNotNull && Type.IsReferenceType)
            {
                yield return(DeclaringCompilation.CreateNullableAttribute(NullableContextUtils.NotAnnotatedAttributeValue));
            }

            // [DefaultValue]
            if (DefaultValueField != null)
            {
                yield return(DeclaringCompilation.CreateDefaultValueAttribute(ContainingType, DefaultValueField));
            }

            //
            foreach (var attr in GetAttributes())
            {
                yield return(attr);
            }
        }
Beispiel #2
0
        internal override IEnumerable <AttributeData> GetCustomAttributesToEmit(CommonModuleCompilationState compilationState)
        {
            // params
            if (IsParams)
            {
                yield return(DeclaringCompilation.CreateParamsAttribute());
            }

            // TODO: preserve [NotNull]

            // [DefaultValue]
            if (DefaultValueField != null)
            {
                yield return(DeclaringCompilation.CreateDefaultValueAttribute(ContainingType, DefaultValueField));
            }

            //
            yield break;
        }
Beispiel #3
0
        internal override IEnumerable <AttributeData> GetCustomAttributesToEmit(CommonModuleCompilationState compilationState)
        {
            // params
            if (IsParams)
            {
                yield return(DeclaringCompilation.CreateParamsAttribute());
            }

            // TODO: preserve [NotNull]

            // [DefaultValue]
            if (this.Initializer is BoundArrayEx arr)
            {
                yield return(DeclaringCompilation.CreateDefaultValueAttribute(_container, arr));
            }

            //
            yield break;
        }
Beispiel #4
0
        internal override IEnumerable <AttributeData> GetCustomAttributesToEmit(CommonModuleCompilationState compilationState)
        {
            // [param]
            if (IsParams)
            {
                yield return(DeclaringCompilation.CreateParamsAttribute());
            }

            // [NotNull]
            if (IsNotNull && Type.IsReferenceType)
            {
                yield return(DeclaringCompilation.CreateNotNullAttribute());
            }

            // [DefaultValue]
            if (this.Initializer is BoundArrayEx arr)
            {
                yield return(DeclaringCompilation.CreateDefaultValueAttribute(Routine, arr));
            }

            //
            yield break;
        }
        internal override IEnumerable <AttributeData> GetCustomAttributesToEmit(CommonModuleCompilationState compilationState)
        {
            // [param]
            if (IsParams)
            {
                yield return(DeclaringCompilation.CreateParamsAttribute());
            }

            // [NotNull]
            if (IsNotNull && Type.IsReferenceType)
            {
                yield return(DeclaringCompilation.CreateNotNullAttribute());
            }

            // [DefaultValue]
            if (DefaultValueField != null)
            {
                yield return(DeclaringCompilation.CreateDefaultValueAttribute(ContainingType, DefaultValueField));
            }

            //
            yield break;
        }