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