public override void Fix(IInspectionResult result, IRewriteSession rewriteSession) { if (!(result is IWithInspectionResultProperties <(IParseTreeAnnotation Annotation, string AttributeName, IReadOnlyList <string> AttributeValues)> resultProperties)) { return; } var declaration = result.Target; var(parseTreeAnnotation, attributeBaseName, attributeValues) = resultProperties.Properties; var attributeName = declaration.DeclarationType.HasFlag(DeclarationType.Module) ? attributeBaseName : Attributes.MemberAttributeName(attributeBaseName, declaration.IdentifierName); if (!(parseTreeAnnotation.Annotation is IAttributeAnnotation attributeAnnotation)) { var message = $"Tried to adjust values of attribute {attributeName} to values of non-attribute annotation {parseTreeAnnotation.Annotation.Name} in component {declaration.QualifiedModuleName}."; Logger.Warn(message); Debug.Fail(message); return; } var attributeValuesFromAnnotation = attributeAnnotation.AttributeValues(parseTreeAnnotation); _attributesUpdater.UpdateAttribute(rewriteSession, declaration, attributeName, attributeValuesFromAnnotation, oldValues: attributeValues); }
public override void Fix(IInspectionResult result, IRewriteSession rewriteSession) { var declaration = result.Target; IAttributeAnnotation annotation = result.Properties.Annotation; IReadOnlyList <string> attributeValues = result.Properties.AttributeValues; var attributeName = declaration.DeclarationType.HasFlag(DeclarationType.Module) ? annotation.Attribute : $"{declaration.IdentifierName}.{annotation.Attribute}"; _attributesUpdater.UpdateAttribute(rewriteSession, declaration, attributeName, annotation.AttributeValues, attributeValues); }
public override void Fix(IInspectionResult result, IRewriteSession rewriteSession) { var declaration = result.Target; IParseTreeAnnotation annotationInstance = result.Properties.Annotation; Debug.Assert(annotationInstance.Annotation is IAttributeAnnotation); IAttributeAnnotation annotation = (IAttributeAnnotation)annotationInstance.Annotation; IReadOnlyList <string> attributeValues = result.Properties.AttributeValues; var attribute = annotation.Attribute(annotationInstance); var attributeName = declaration.DeclarationType.HasFlag(DeclarationType.Module) ? attribute : $"{declaration.IdentifierName}.{attribute}"; _attributesUpdater.UpdateAttribute(rewriteSession, declaration, attributeName, annotation.AttributeValues(annotationInstance), oldValues: attributeValues); }