private static void DecodeGlobalSuppressMessageAttributes(Compilation compilation, ISymbol symbol, ISymbol suppressMessageAttribute, GlobalSuppressions globalSuppressions, ConcurrentDictionary <SyntaxTree, WarningStateMap> localSuppressionsBySyntaxTree) { Debug.Assert(symbol is IAssemblySymbol || symbol is IModuleSymbol); var attributeInstances = symbol.GetAttributes().Where(a => a.AttributeClass == suppressMessageAttribute); foreach (var instance in attributeInstances) { SuppressMessageInfo info; if (!TryDecodeSuppressMessageAttributeData(instance, out info)) { continue; } // Decode Scope string scopeString = info.Scope != null?info.Scope.ToLowerInvariant() : null; TargetScope scope; if (SuppressMessageScopeTypes.TryGetValue(scopeString, out scope)) { if ((scope == TargetScope.Module || scope == TargetScope.None) && info.Target == null) { // This suppression is applies to the entire compilation globalSuppressions.AddCompilationWideSuppression(info.Id); continue; } } else { // Invalid value for scope continue; } // Decode Target if (info.Target == null) { continue; } foreach (var target in ResolveTargetSymbols(compilation, info.Target, scope)) { globalSuppressions.AddGlobalSymbolSuppression(target, info.Id); AddSuppressionToSyntaxTrees(info.Id, target, localSuppressionsBySyntaxTree); } } }
private static void DecodeGlobalSuppressMessageAttributes( Compilation compilation, ISymbol symbol, GlobalSuppressions globalSuppressions, IEnumerable <AttributeData> attributes ) { foreach (var instance in attributes) { SuppressMessageInfo info; if (!TryDecodeSuppressMessageAttributeData(instance, out info)) { continue; } if (TryGetTargetScope(info, out TargetScope scope)) { if ( (scope == TargetScope.Module || scope == TargetScope.None) && info.Target == null ) { // This suppression is applies to the entire compilation globalSuppressions.AddCompilationWideSuppression(info); continue; } } else { // Invalid value for scope continue; } // Decode Target if (info.Target == null) { continue; } foreach (var target in ResolveTargetSymbols(compilation, info.Target, scope)) { globalSuppressions.AddGlobalSymbolSuppression(target, info); } } }
private static void DecodeGlobalSuppressMessageAttributes(Compilation compilation, ISymbol symbol, GlobalSuppressions globalSuppressions, IEnumerable <AttributeData> attributes) { foreach (AttributeData instance in attributes) { if (!TryDecodeSuppressMessageAttributeData(instance, out SuppressMessageInfo info)) { continue; } string scopeString = info.Scope != null?info.Scope.ToLowerInvariant() : null; if (s_suppressMessageScopeTypes.TryGetValue(scopeString, out TargetScope scope)) { if ((scope == TargetScope.Module || scope == TargetScope.None) && info.Target == null) { // This suppression is applies to the entire compilation globalSuppressions.AddCompilationWideSuppression(info); continue; } } else { // Invalid value for scope continue; } // Decode Target if (info.Target == null) { continue; } foreach (ISymbol target in ResolveTargetSymbols(compilation, info.Target, scope)) { globalSuppressions.AddGlobalSymbolSuppression(target, info); } } }
private static void DecodeGlobalSuppressMessageAttributes(Compilation compilation, ISymbol symbol, ISymbol suppressMessageAttribute, GlobalSuppressions globalSuppressions) { Debug.Assert(symbol is IAssemblySymbol || symbol is IModuleSymbol); var attributeInstances = symbol.GetAttributes().Where(a => a.AttributeClass == suppressMessageAttribute); foreach (var instance in attributeInstances) { SuppressMessageInfo info; if (!TryDecodeSuppressMessageAttributeData(instance, out info)) { continue; } string scopeString = info.Scope != null ? info.Scope.ToLowerInvariant() : null; TargetScope scope; if (SuppressMessageScopeTypes.TryGetValue(scopeString, out scope)) { if ((scope == TargetScope.Module || scope == TargetScope.None) && info.Target == null) { // This suppression is applies to the entire compilation globalSuppressions.AddCompilationWideSuppression(info.Id); continue; } } else { // Invalid value for scope continue; } // Decode Target if (info.Target == null) { continue; } foreach (var target in ResolveTargetSymbols(compilation, info.Target, scope)) { globalSuppressions.AddGlobalSymbolSuppression(target, info.Id); } } }
private static void DecodeGlobalSuppressMessageAttributes(Compilation compilation, ISymbol symbol, GlobalSuppressions globalSuppressions, IEnumerable<AttributeData> attributes) { foreach (var instance in attributes) { SuppressMessageInfo info; if (!TryDecodeSuppressMessageAttributeData(instance, out info)) { continue; } string scopeString = info.Scope != null ? info.Scope.ToLowerInvariant() : null; TargetScope scope; if (s_suppressMessageScopeTypes.TryGetValue(scopeString, out scope)) { if ((scope == TargetScope.Module || scope == TargetScope.None) && info.Target == null) { // This suppression is applies to the entire compilation globalSuppressions.AddCompilationWideSuppression(info); continue; } } else { // Invalid value for scope continue; } // Decode Target if (info.Target == null) { continue; } foreach (var target in ResolveTargetSymbols(compilation, info.Target, scope)) { globalSuppressions.AddGlobalSymbolSuppression(target, info); } } }