- Added async overloads of a number of methods which accepted a
Func
. Since these methods rely onValueTask
, they are not available on anything older than .NET Standard 2.1.
- A new CI build system based on GitHub Actions.
- Removed an unused dependency on
System.Reflection.Emit
.
- Sawmill and its various sibling packages are now strong named.
- Provided implementations of
IRewriter
are no longer sealed. - Symbol packages are now shipped as
snupkg
files.
- Fixed a bug in
SpanFactory
IRewriter
andIRewritable
have been substantially redesigned, as outlined in https://www.benjamin.pizza/posts/2019-10-04-rewriting-irewritable.html- Removed
RewriteChildren
from the interface - Added
CountChildren
- Changed signature of
GetChildren
. It now takes aSpan
to copy the children into (and returnsvoid
) - Changed signature of
SetChildren
. It now takes aReadOnlySpan
to copy the children from (instead of aChildren<T>
)
- Removed
- Renamed
DefaultRewriteChildren
toRewriteChildren
ChildrenInContext
now returns an array (instead of aChildren<T>
)- The function passed to
Fold
now takes aSpan
of children instead of an array and its parameters have been switched - Added C#8 nullability checks
- Updated dependencies for various subpackages (
Sawmill.Microsoft.CodeAnalysis
etc) - Performance improvements across the board
GetChildren
extension method which returns an array (to replace theGetChildren
formerly on the interface)SpanFunc
delegate type declaration
Children<T>
andNumberOfChildren
Sawmill.Analyzers