diff --git a/imm/Imm.cs b/imm/Imm.cs index fc776d1..b16f34d 100644 --- a/imm/Imm.cs +++ b/imm/Imm.cs @@ -219,9 +219,10 @@ public record class Recorded : Versioned, imm.Imm string dbgExp = default ) { - return Process( ( old ) => next, reason, dbgName, dbgPath, dbgLine, dbgExp ); + return ProcessWork( ( old ) => next, reason, dbgName, dbgPath, dbgLine, dbgExp ); } + virtual public T Process( Func fn, string reason = "", [CallerMemberName] string dbgName = "", @@ -230,6 +231,17 @@ public record class Recorded : Versioned, imm.Imm [CallerArgumentExpression("fn")] string dbgExp = default ) + { + return ProcessWork( fn, reason, dbgName, dbgPath, dbgLine, dbgExp ); + } + + virtual public T ProcessWork( Func fn, + string reason, + string dbgName, + string dbgPath, + int dbgLine, + string dbgExp + ) { var orig = ( T )this; @@ -306,7 +318,7 @@ public record class Timed : Recorded, imm.Imm string dbgExp = default ) { - return Process( ( old ) => next, reason, dbgName, dbgPath, dbgLine, dbgExp ); + return ProcessWork( ( old ) => next, reason, dbgName, dbgPath, dbgLine, dbgExp ); } public U ProcessFn( Func fn, @@ -319,7 +331,7 @@ public record class Timed : Recorded, imm.Imm ) where U : T { - return (U)ProcessFn( fn, reason, dbgName, dbgPath, dbgLine, dbgExp ); + return (U)ProcessWork( fn as Func, reason, dbgName, dbgPath, dbgLine, dbgExp ); } override public T Process( Func fn, @@ -330,15 +342,14 @@ public record class Timed : Recorded, imm.Imm [CallerArgumentExpression("fn")] string dbgExp = default ) - => ProcessFn( fn, reason, dbgName, dbgPath, dbgLine, dbgExp ); + => ProcessWork( fn, reason, dbgName, dbgPath, dbgLine, dbgExp ); - public T ProcessFn( Func fn, - string reason = "", - [CallerMemberName] string dbgName = "", - [CallerFilePath] string dbgPath = "", - [CallerLineNumber] int dbgLine = 0, - [CallerArgumentExpression("fn")] - string dbgExp = default + virtual public T ProcessWork( Func fn, + string reason, + string dbgName, + string dbgPath, + int dbgLine, + string dbgExp ) { var orig = ( T )this; diff --git a/ser/XmlFormatter2.cs b/ser/XmlFormatter2.cs index ef93fb1..44f0455 100644 --- a/ser/XmlFormatter2.cs +++ b/ser/XmlFormatter2.cs @@ -954,10 +954,6 @@ namespace lib } - if( typeof(res.Ref).IsAssignableFrom( type ) ) - { - log.info( $"Ref time!" ); - } // THIRD create a new object {