示例#1
0
        internal AttributeUsageInfo(StarkAttributeTargets validTargets, bool allowMultiple, bool inherited)
        {
            // NOTE: VB allows AttributeUsageAttribute with no valid target, i.e. <AttributeUsageAttribute(0)>, and doesn't generate any diagnostics.
            // We use PackedAttributeUsage.Initialized field to differentiate between uninitialized AttributeUsageInfo and initialized AttributeUsageInfo with no valid targets.
            _flags = (PackedAttributeUsage)validTargets | PackedAttributeUsage.Initialized;

            if (allowMultiple)
            {
                _flags |= PackedAttributeUsage.AllowMultiple;
            }

            if (inherited)
            {
                _flags |= PackedAttributeUsage.Inherited;
            }
        }
示例#2
0
        private static string GetErrorDisplayNameResourceId(StarkAttributeTargets target)
        {
            switch (target)
            {
            case StarkAttributeTargets.Assembly: return(nameof(CodeAnalysisResources.Assembly));

            case StarkAttributeTargets.Class: return(nameof(CodeAnalysisResources.Class1));

            case StarkAttributeTargets.Constructor: return(nameof(CodeAnalysisResources.Constructor));

            case StarkAttributeTargets.Delegate: return(nameof(CodeAnalysisResources.Delegate1));

            case StarkAttributeTargets.Enum: return(nameof(CodeAnalysisResources.Enum1));

            case StarkAttributeTargets.Event: return(nameof(CodeAnalysisResources.Event1));

            case StarkAttributeTargets.Field: return(nameof(CodeAnalysisResources.Field));

            case StarkAttributeTargets.GenericParameter: return(nameof(CodeAnalysisResources.TypeParameter));

            case StarkAttributeTargets.Interface: return(nameof(CodeAnalysisResources.Interface1));

            case StarkAttributeTargets.Func: return(nameof(CodeAnalysisResources.Func));

            case StarkAttributeTargets.StaticFunc: return(nameof(CodeAnalysisResources.StaticFunc));

            case StarkAttributeTargets.ExternFunc: return(nameof(CodeAnalysisResources.ExternFunc));

            case StarkAttributeTargets.ExternStaticFunc: return(nameof(CodeAnalysisResources.ExternStaticFunc));

            case StarkAttributeTargets.Module: return(nameof(CodeAnalysisResources.Module));

            case StarkAttributeTargets.Parameter: return(nameof(CodeAnalysisResources.Parameter));

            case StarkAttributeTargets.Property: return(nameof(CodeAnalysisResources.Property));

            case StarkAttributeTargets.ReturnValue: return(nameof(CodeAnalysisResources.Return1));

            case StarkAttributeTargets.Struct: return(nameof(CodeAnalysisResources.Struct1));

            default:
                throw ExceptionUtilities.UnexpectedValue(target);
            }
        }