- bumped cecilifier version to 2.00.0
- added support for default expression/literal
- improved handling of (U)IntPtr/pointer literals
- introduced type to represent tests ignored due to a known issue
- added option to run ilverify on cecilified assemblies in integration tests (#36)
- adds ref fields support
- improved default literal expression handling
- added support for implicit object creation
- added support for abstract static interface methods (#120)
- updated .Net to 7.0
- added support for basic recursive patterns in IsPatternExpression (#115)
- added support for 'IsPatternExpressionSyntax' (part of #115)
- added support for 'is' operator
- shows IL opcode summary when mouse hovers an opcode in cecilified code
- added support for collection initializer (#203)
- added support for declaring ref structs
- added support for default expression/literal
-
improved handling of struct instantiation assigned to/returned as interface/object (#228)
-
Correctly set
initonly
for synthetic main method in top level statements (part of #227) -
Logic that decides whether a method needs to be called virtually or non-virtually (#225)
-
Body of field like events not being marked as
InitOnly
(#226) -
Added missing mappings for a bunch of compound assignment operators
-
Recursive generic type parameter constraint order (#218)
-
NRE when code contains references to inner types of outer generic ones (#216)
-
crash during resolution of non generic inner type of a generic outer type (#216)
-
non-capturing lambda handling in top-level code (#210)
-
lambda body not being processed in some scenarios (#209)
-
Implicitly typed arrays initialization (#204)
-
Exception when instantiating type parameters (#202)
-
Generic type parameters handling in top level methods (#200)
-
add explicit interface method implementation to 'Override' property (#217)
-
4423a72 ensures that StructLayout attribute is respected
- bumped cecilifier version to 1.70.0
- type declaration are sorted before being processed to avoid intermixed code by processing types before its dependents.
- do not load implicit 'this' for static property access (#187)
- fixed forward type references to type parameters assuming type is extern (#188)
- change code to copy .runtimeconfig.json file when running the cecilified code (#189)
- fixed NRE when handling explicit delegate instantiation (#190)
- fixed TypeAttributes for static top level/inner types (#191)
- fixed forward type references in field declarations assuming type is extern (#196)
- fixed compound assignment handling (#197)
- bumped cecilifier version to 1.50.0
- updated testing section of README.md
- support for covariant properties (#179)
- support for covariant return methods (#179)
- support for using statement (#177)
- support for modulus operator (%)
- static automatic properties being handled as instance ones (#183)
- forwarded field references generating invalid code (#182)
- forwarded attribute usage (#180)
- handling of attributes in type parameters (#181)
- bumped cecilifier version to 1.40.0
- updated Monaco editor to 0.32.1
- avoids redundant assignment to type's base type property when not necessary
- fully qualifies type names when resolving external types (#174)
- specifies correct type (text) when sending back json contents through the websocket.
- optimizes CecilifierExtensions.PascalCase() method to minimize gc allocations
- moves delegate method attributes constants to Constants.CommonCecilConstants
- removes some code duplication by reusing AddDelegateMethod() instead of more low-level ones
- gets rid of some allocations by resorting to ReadOnlySpan and StringBuilder
- gets rid of some allocations by moving UsageVisitor to a singleton
- comment to instruction that loads pre-computed span size
- basic support for adding inline comments when emitting CIL instructions
- support for stackalloc in nested expressions
- support for specifying assemblies to be referenced when cecilifying code snippets.
- generated code for property/method access on type parameter (#170)
- inner delegate declaration being ignored (#156)
- static fields/properties not being initialized if class do not have a static constructor (#167)
- locals declared in lambda expressions (#176)
- locals declared in property/event accessors (#175)
- bumped cecilifier version to 1.30.0
- new releases notification mechanism
- Updated projects to compile to C# 10 targeting .Net 6.0
- Initialize MethodDefinition instances with final return type whenever possible to minimize noise.
- Changed approach to avoid generate code referencing 'System.Private.CoreLib.dll'
- Improved assembly comparison by checking field references in instruction operands.
- Improved support for System.Range (#140)
- Improved handling of System.Indexer variables and IndexExpressions used with arrays/Spans (related to #143, #136)
- Improved stackalloc handling (#134, #135)
- Bug reporter
- Script to make it easier to update version information in Cecilifier projects.
- Added support for showing latest issues fixed on staging
- Added support for local functions (#124)
- Added support for operators !=, >= and <= (#79)
- Added support for typeof operator (#89)
- Generic methods references uses wrong type parameter (#91)
- Fixed issue with async method calls relying on .Result
- Fixed handling of statement contents used in comments
- Fixed nested enum declaration being ignored (issue #116)
- Fixed handling of delegate equality comparison (issue #113)
- Fixed potential name clash due to usage of simple names instead of fully qualified names in variable registration (#126)
- Fixed exception being thrown if code have access to fields defined in referenced assemblies (#128)
- Fixed bug causing open generic types to be handled as closed types in some scenarios
- Fixed WebSocket connection closing prematurely by lowering ping interval to meet timings in nginx.
- Fixed incorrect Ldlen instruction when retrieving the length of a Span (instead calls Span<>.get_Length) (#143)
- Fixed exception if stackalloc for non primitives is used with non constant dimension (#135)
- Fixed exception upon assignment to method/property returning by ref (#136)
- Fixed field assignment in member access expressions (#130)
- Fixed Span.Slice() not being called when indexer is passed a System.Range.(#140)
- Fixed assignment to System.Index missing op_Implicit(Int32) call (#139)
- Fixed field value being passed instead of its address (#142)
- Fixed missing Ldind and Ldflda/Ldsflda in some scenarios (#141 & #142)
- bumped cecilifier version to 1.22.0
- added support for const fields
- added support for DllImportAttribute / extern methods
- added support for simple string interpolation
- added support for nameof expression (issue #95)
- added support for operator overloading
- added support for user conversion operators
- added coverage for a couple of box scenarios
- fixed issue of setting static state by constructor when overriding formatting options
- skip balanced stloc0/ldloc0 when comparing assemblies (test infrastructure)
- fixed exception being thrown upon local variable being passed as an argument to a method call that is, itself, used as an argument to another method call (issue #110)
- bumped cecilifier version to 1.21.0
- Mapping from
snippet
<->cecilified code
allowing users to more easily correlate which parts of thesnippet
code corresponds to which parts of thececilified code
and vice-versa.
- d4c7cea do not pretend all field references are accessing 'this' (issue #104)
- bumped cecilifier version to 1.20.0 (I had messed up with versioning last time setting it to 1.2.0 instead of 1.20.0)
- cleanup previously messed up merge conflicts markers in this file :)
- Replaced most ILProcessor.Create()/Append() calls with ILProcessor.Emit() to reduce noise and make cecilified code easier to read.
- support for non-capturing lambdas converted to Func<>/Action<> (issue #101)
- support for cast operator (issue #88)
- added PR template
- added CODEOWNERS file
- fixed release notes mechanism
- initialization of doubles crashing (issue #97)
- bump cecilifier version to 1.2.0
- improved assembly comparison to check name of type parameters (testing)
- improved access modifier handling
- removed some code duplication
- updated Microsoft.CodeAnalysis.CSharp from version 3.10.0-3.final to 4.0.0-2.final
- updated Mono.Cecil from version 0.11.3 to 0.11.4
- support for bitwise (|, &, ^) / logical operators (&&, ||)
- introduced ITypeResolver.Bcl property to represent the code to resolve common BCL types.
- fixed gist not working due to use of async
- fixed multiple issues with generic/inner type instantiation (issues #84 and #85)
- fixed missing box instruction on some ValueType instantiation (#86)
- improved handling of inner types of generic outer types (issue #76)
- fixed code to emit ldsfld opcode when accessing static fields (issue #83)
- fixed implicit private static field declaration
- fixed crash upon static field assignment (issue #82)
- fixed name formatting not taking prefix/casing into account for some element kinds (#90)
- bump cecilifier version to 1.13.0
- fixed a couple of ref parameter issues
- updated Microsoft.CodeAnalysis.CSharp to version 3.10.0-3.final
- updated Mono.Cecil to version 0.11.3
- updated Newtonsoft.Json to version 13.0.1
- changed release notes UI.
- support for out variables
- support for ref return
- support for local ref
- code coverage
- bump cecilifier version to 1.12.0
- Redesigned site
- Added standard csharp code instead of blank content.
- Replaced CodeMirror with Monaco editor.
- switched to net5.0
- fix error reporting on discord channel
- fix volatile field handling
- do not quote (') zipped project file.
- improved support for generics in general
- updated Mono.Cecil & Microsoft.CodeAnalysis.CSharp nuget libs to latest
- fixed generated code for delegate initialization / calling
- basic support for Range/Index
- support for switch statements
- set assembly entry point with Main() method from first class one is defined
- array/indexers support
- better comments on each generated code section
- report errors on discord channel
- a lot of other stuff that has not been reported since March/2019 :(
- Support for for statements
- fixed type resolution crashing in some scenarios
- wrong opcode being generated for some types
- Support for instantiating single dimensional arrays
- call instruction emitted with invalid target in some scenarios
- fixed calls to overloaded methods/ctors always being resolved to the first member processed.
- take operands of various instructions (eg, call/calli/callvirt) into account when comparing assemblies.
- Support access of generic static/instance methods.