public static void RecordExecutingExpressionWithNullableValueCheck <T>(AssignLogInfo toLog, T?executedValue) where T : struct
 {
     if (executedValue != null || toLog.Value.NodeType == ExpressionType.Constant && toLog.Value.ToConstant().Value == null)
     {
         RecordExecutingExpression(toLog);
     }
 }
 public static void RecordExecutingExpressionWithValueObjectCheck(AssignLogInfo toLog, object executedValue)
 {
     if (executedValue != null)
     {
         RecordExecutingExpression(toLog);
     }
 }
 public static void RecordExecutingExpression(Type converterType, AssignLogInfo toLog)
 {
     if (IsRecording())
     {
         var isExcluded = new Lazy <bool>(() => IsExcludedFromCoverage(toLog));
         instance.recordsCollection.RecordExecutingExpression(converterType, toLog.Path.ToString(), toLog.Value.ToString(), isExcluded);
     }
 }
 private static bool IsExcludedFromCoverage(AssignLogInfo toLog)
 {
     return(toLog.Path.SmashToSmithereens().Concat(toLog.Value.SmashToSmithereens())
            .Any(exp => instance.excludeCriteria.Any(criterion => criterion(exp))));
 }
        public static void RecordCompilingExpression(Type converterType, AssignLogInfo toLog)
        {
            var isExcluded = IsExcludedFromCoverage(toLog);

            instance.recordsCollection.RecordCompilingExpression(converterType, toLog.Path.ToString(), toLog.Value.ToString(), isExcluded);
        }