Releases: adrianoc/cecilifier
December 2025 Update
c3a3445 bumps version to 2.26.0
48533b1 refactor: improve generated code formatting (#350)
789a659 refactor: moves emission of a couple of new lines to improve output formatting (#350)
dc755dc feat: simplify code generation for fields by not keeping track of a BlobBuilder instance (#350)
24a9fb1 feat: better formatting of generated code for generic type instantiation (#350)
3d356f5 feat: improve well known C# type resolution formatting by issuing a single line (#350)
e1530ec feat: enables some complex generic type inheritance (#363)
521d493 feat: generic type inheritance (#363)
65df1dc refactor: removes dead code
73ecf43 some more fixes for generic type inheritance (#358, #363)
b5f92b0 refact: declare base type parameter in IApiDriverDefinitionsFactory.Type() as ITypeSymbol instead of ResolvedType (#363)
2f594b2 feat: fixes generic type reference names missing rank information and enables GenericTypesInheritance tests (#363)
335ce82 test: remove duplicated test (same scenario is tested in SimpleGenericTypeInheritance) (#363)
1edd4bf refactor: remove ITypeResolver.Resolve(string) overload and use overload taking instead (#363)
88d7c04 refactor: add more information in debug strings
5494067 feat: initial implementation for generic type support in SRM (#363)
5745c36 refactor: fix incorrect if expression (#354)
9ef44eb refactor: removes code duplication when defining parameterless constructors (#354)
3d195b7 enables simplest generic tests and apply minimum changes to get them to pass (#363)
November 2025 Update
TL;DR;
- A lot of improvements in System.Reflection.Metadata support
- Fixes Invoke() method not being invoked in implicit event rising (#359)
- Fixes handling of event symbols when visiting nodes representing event raising (#360)
Full list of commits
66b372e bumps version to 2.25.0
448f511 reduces verbosity by caching resolved types (as opposed to re-resolving multiple times)
f48e297 fix usage of attributes with arguments/named arguments on SRM (#358)
7bb4ebf fix: attributes with explicit targets on SRM (#358)
c3f7d89 fix: applying attributes to enum/enum members (#358)
3b1127a fix: ensures Invoke() method is invoked in implicit event rising (#359)
52e0331 fix: handle event symbols when visiting nodes representing event raising (#360)
f7a96c8 refactor: use standard approach to warn users
5520871 refactor: improve forwarded method declaration handling (#360)
0ca5468 refactor: use existing extension method when looking for method variables (#360)
73f600d refactor: minor typos and doc changes
55d7370 test: disable tests for events on SRM
4007e0f feat: remember last used api driver
0dec0c2 feat: takes target API into account when generating .csproj
6918a5d style: improves formatting of generated code on SRM (#350)
c3b6fcb removed some more Mono.Cecil specific code related to event handler processing (#358)
47db860 removes unnecessary generated code (#358)
4b3659b fixes when IlContext is set when defining events (#358)
154c03d reenables integration miscelaneous tests already working on SRM (#358)
f993cc0 reenables integration types tests already working on SRM (#358)
1c422aa reenables integration value type tests already working on SRM (#358)
736c38c reenables integration operators tests already working on SRM (#358)
07d5ea5 reenables integration method tests already working on SRM (#358)
ab278b3 reenables expression tests already working on SRM (#358)
7c72063 code cleanup
6a9f25c improves exception message to make debugging/investigation easier
7517bc0 fixes range expression tests on SRM (#358)
ea2a53c enables post/pre increment tests in SRM (#358)
e4bc8a7 fixes code generation when loading/storing local variables in some scenarios (#358)
b009e28 enables / reorganizes expression tests (#358)
eb13c4a fixes assembly comparer not reporting missing fields (#358)
fca7788 fixes token used as first field/method for types with no fields/methods (#358)
b0af516 fix field constant/initialization handling after adding field references (#358)
7fa7810 fixes variable name for auto property backing field being invalid
60f8f94 ensures fields are emitted in the same order as its parent definition types (#358)
5c0b3b1 fix operand types not being correctly set when emitting instructions in multiple places
e48e060 refactor: change order of tests to match the definition order (#358)
40802d4 refactor: make SystemReflectionMetadataTypeResolver.RsolveForTargetKind() private
e93217c renames parameter to reflect atual type
4269f53 removes left over code used for debugging/investigation
f318334 fixes modulus operator test on SRM (#358)
0181ce4 enables ExpressionsTestCase.TestDoubleLocalVariableInitializationComplex() (#358)
0fb9f1d enables codeblock integration tests on SRM (#358)
ae80482 enable all fields integration tests (#358)
9de6ef5 big refactoring; adss TypeResolutionContext to ITypeResolver.ResolveX() (#358)
283df58 fix typo in test
3c4a838 fixes integration test expectation for tests that were correct in SRM (#358)
e497dcf improves parameter handling in SRM (#358)
673f3e6 fixes ternary operator integration test (#358)
4c7f98f fixes test expectation after changes in string concatanation logic introduced in 7b5d49e (#358)
05db29e explicitly pass ResolveTargetKind in some invocations of ITypeResolver.ResolveAny() (#358)
e792659 enables TestNewPrimitive and TestValueTypeAddress integration tests (#358)
7b5d49e fixes string concatenation through operator + (#358)
68f5002 enables expression integration tests that are passing on SRM (#358)
b1224cb enables partial class integration test (#354)
f7885b9 enables simple readonly struct test (#354)
bb1e4d0 fixes parameter name missing in method definitions (#354)
cddacf5 enable simple value type test and type with static ctor (#354)
58c15d5 adds support for (non generic) interface implementation (#354)
28277fc trying to fix CI; it seems that after .NET 10 release CI image is using that version instead 9.x
c7a1cfa adds support for declaring properties in interface definition (#354)
61c6bae enables/fixes a bunch of simple interface definition (#354)
79352fa enables InnerClassTest and fixes a bunch of problems with order ot type/member/local variables definition (#354)
d24fce6 enables InheritanceTest (base extern type) (#354)
24038eb fixes base ctor registration/resolution for base types and enables InheritanceSameCompilationUnitTest (#354)
65faf2d enables abstract class integration test and fixes accessibility being hardcoded as public on instance ctors (#354)
734f0c3 removes unused method in Mono.Cecil API driver (#354)
44211b8 disables test that depends on setting up .data section in the PE which I am having a hard time (#354)
fc17a3b fixes nested type definition in SRM (#354)
6529e33 moves ParameterSpec type to TypeSystem namespace (#354)
32b57e8 minor refactor
dd60516 abstracts class size/packing size properties and take them into account in SRM (#354)
f9fba2e improves association of fields/methods with its owning type (#354)
075820d removes unused method (#354)
5837e7f fixes nested types declaration in SRM (#354)
c639aa2 adds FieldInitializationData struct to abstract field initializer values and field initialized with data embedded in the binary (#354)
260004a WIP: set field RVA value in SRM (#354)
bd8a901 WIP: fix array SmokeTest for SRM (#354)
0c95452 removes redundant parameter from IApiDriverDefinitionsFactory.Field() overload (#354)
9ee978c changes TypeResolver to accept ResolveTargetKind in all methods (#354)
October 2025 Update 1 (v 2.24.1)
080e19b bumps version to 2.24.1
1ba8e0b fixes code generation for if statements in SRM (#354)
31a2400 use a more descriptive name for a temporary hack method (#354)
3defbe5 improves handling of forwarded member references in SRM (#354)
d16855d expands replacement of strings with ResolvedType (#354)
15b0545 introduces ResolvedType abstraction to enable more detailed information to be passed (#354)
f611e85 enables/fix support for volatile fields
f5208cc enables more field tests that were already working on SRM (#354)
52a4ae4 Use BlobEncoder.Field() instead of FieldSignature() when declaring fields (#354)
0f20832 Limits displaying warning message when targeting SRM once per day
364ea3a Improves naming of variables in code generated when targeting SRM (#350)
October 2025 Update
Experimental support for System.Reflection.Metadata
September 2025 Update
Fixes exception when referencing enum members (#347)
July 2025 Update
8de8e92 fixes handling of ref generic fields (#340)
d1c703e fixes code generated when referening members of generic types (#334)
4784dbc fixes invalid NuGet package when downloading zipped project
70d5925 improves how list of saved snippets are shown
e2fc5a7 reports declaring 'params' parameters of Nullable (and a couple others) as not supported (#336)
a617ead Implements support for declaring/passing 'params' parameters of types IList, ICollection (#301)
4af29e6 reports IEnumerable 'params' as unsupported by cecilifier (#301)
58cb4aa implements declaring/passing 'params' of ReadOnlySpan (#301)
1d92cae fixes handling of inner types in PrivateCorlibFixerMixin
2986fa2 code cleanup: renamed test
36a3192 implements declaring/passing 'params' of Span (#301)
04da8e0 adds handling for 'params' parameters (arrays only) (#335)
390930e adds tests for method declarations with 'params' parameters
May 2025 Update - V2.21
727c881 (origin/staging, staging) warn about 'allow ref structs' and fix 'partial property' features (#318)
122b406 enable nullable in ExpressionVisitor
d09e172 enabling nullable annotations and fixing reported issues in StatementVisitor.cs
4d57fb5 updates couple of .csproj to target .NET 9.0
a3c2745 getting rid of warnings and enable TreatWarningsAsErrors
525f61f configures both csprojs and the cecilifier itself to build with C# 13
b9fa182 update to .NET 9.0
64434d5 display build information in cecilifier's help
e9cbd37 bump version to 2.21.0
April 2025 Update
2e5a08d fixes crash when resolving types in anonymous function expressions declaration (#331)
37e2926 adds tests and fixes for NoCapturedVariableValidator (#320)
ab293d5 add tests for DefaultParameterExtractorVisitor (#320)
e6a6c88 do not publish non-english resource assemblies
11be4fb adds tests to improve code coverage (#320)
93a564e adds disable test for issue #331
39f921d adds tests for TypeSyntaxExtensions (#320)
4611269 Adds disabled test for assignment of inline array stored in a field to a Span (#320)
de80972 Adds 'default' assignment tests for short, ushort and UIntPtr (#320)
1d89ac5 Adds value handling tests for short, ushort and UIntPtr (#320)
b130419 Added tests for loading constants of type short, ushort, IntPtr, UIntPtr (#320)
22af8d7 excludes some types/members from coverage analysis (#320)
3306ec9 removes whats seems to be dead code (#320)
a215598 fixes handling of enum members in TypeDeclarationResolver (#320)
3fa4c94 code cleanup
fc792b2 excludes some types/members from coverage analysis (#320)
5873a1d added simple test for CecilifierDiagnostic class (#320)
95d9764 extract method to improve code coverage report (#320)
a8aa845 ensure we use codecov token when uploading results
cd1cd73 extract method to improve code coverage report (#320)
1445f98 bumps version to 2.20
March 2025 Update
5963e16 better handling of 4xx/5xx server responses when sending assemblies (#327)
196f66d fixes Nullable initialization with null literal (#323)
197f02c change naming of field in PrivateImplementationDetails nested type to match Roslyn naming (#324)
388749b prefixes 'ldelema' instructions with 'readonly' if element type is a generic type parameter (#326)
9676317 reenabled more generic type parameter boxing tests (#263)
cc23e3d reenabled and fixed boxing tests for generic types (#242)
190c3e1 adds github action to check for disabled tests when closing issues (#325)
1205e9b reenabled disabled tests referencing closed issues (#324)
February 2025 Update 1 (Version 2.18)
01f9120 forwarded attribute reference with cycles (#311)
326683f set module architecture (either arm64 or amd64) after the runtime architecture
d072d0e added more generic attribute tests (#311)
fae791c fixes order of generated code when attributes were applied with its short syntax
ec7a009 adds support for null coalescing operator (only ??, not ??=) (#253)
1fd4e2b fixes stack underflow on local functions calls (#322)
eb3f37e Revert "fixes local functions always being handled as static (#271)"
dd4b9f5 bump cecilifier to 2.18.0