1b6fe21024
When resolving a `GenericInstanceMethod` for a `privatescope` method that has the same signature as other methods, `MetadataResolver.GetMethod` would incorrectly return the first method with the same name. The fix for this seems to be an optimization opportunity as well. Although I have to admit it feels a little to easy. Please make sure I'm not overlooking some reason why this fix is not safe. A added 2 variations of tests. `PrivateScope` - These tests were fine and passed as is. This is because the instruction operands are MethodDefinitions and therefore didn't need to be resolved by `MetadataResolver` `PrivateScopeGeneric` - This test triggered the bug. |
||
---|---|---|
.yamato | ||
Mono | ||
Mono.Cecil | ||
Mono.Cecil.Cil | ||
Mono.Cecil.Metadata | ||
Mono.Cecil.PE | ||
Mono.Collections.Generic | ||
Mono.Security.Cryptography | ||
Test | ||
rocks | ||
symbols | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
LICENSE.txt | ||
Mono.Cecil.Tests.props | ||
Mono.Cecil.csproj | ||
Mono.Cecil.nunit | ||
Mono.Cecil.nuspec | ||
Mono.Cecil.overrides | ||
Mono.Cecil.props | ||
Mono.Cecil.sln | ||
Mono.Cecil.sln.DotSettings | ||
NetStandard.props | ||
ProjectInfo.cs | ||
README.md | ||
Unity.AssemblyInfo.cs | ||
Unity.snk | ||
appveyor.yml | ||
build.bat | ||
cecil.snk |
README.md
Cecil
This is Unity's fork of Cecil. These are the branches specific to Unity's use of this fork:
unity-master
- the default branch. Builds from this branch should be used in Unity.master
- this branch should track the upstreammaster
branch in https://github.com/jbevain/cecilmaster-legacy
- this is an unused branch that reflectsmaster
before it was switched to track upstream master
Mono.Cecil is a library to generate and inspect programs and libraries in the ECMA CIL form.
To put it simply, you can use Cecil to:
- Analyze .NET binaries using a simple and powerful object model, without having to load assemblies to use Reflection.
- Modify .NET binaries, add new metadata structures and alter the IL code.
Cecil has been around since 2004 and is widely used in the .NET community.
The best way to learn how to use Cecil is to dive into the Cecil.Samples repository. It's a growing collection of samples with the goal of showing how to get things done using Cecil, as IL manipulation can sometime get tricky.
Read about the Cecil development on the development log.
To discuss Cecil, the best place is the mono-cecil Google Group.
Cecil is a project under the benevolent umbrella of the .NET Foundation.