public static bool TryUpdateLineWithAttribute( SourceAnnotationFile sourceFile, int attributeLineNumber, CompetitionMetricValue metricValue) { var line = sourceFile[attributeLineNumber]; if (!TryUpdateLineCore(line, metricValue, out var newLine)) { return(false); } if (newLine != line) { sourceFile.ReplaceLine(attributeLineNumber, newLine); } return(true); }
public static bool TryInsertAttributeInplace( SourceAnnotationFile sourceCodeFile, int inplaceLineNumber, TargetSourceLines benchmarkMethod, CompetitionMetricValue metricValue) { var line = sourceCodeFile[inplaceLineNumber]; var inplacePosition = line.LastIndexOf(']'); if (inplacePosition < 0) { return(false); } var appendText = GetInplaceAnnotationText(metricValue); line = line.Insert(inplacePosition, appendText); sourceCodeFile.ReplaceLine(inplaceLineNumber, line); var attributeTypeHandle = metricValue.Metric.AttributeType.TypeHandle; benchmarkMethod.AddAttribute(attributeTypeHandle, inplaceLineNumber); return(true); }