Daniel Grunwald
d8c8a75c2e
Fix #1154 : Decompilation of fixed statement when pointer variable is unused
7 years ago
Daniel Grunwald
ab157b2fc0
Add TypeSystemOptions.Uncached.
7 years ago
Daniel Grunwald
b750a30be4
Fix MethodUsesAnalyzer.
7 years ago
Daniel Grunwald
de3ffa2851
Adjust ILSpy to type system changes.
7 years ago
Daniel Grunwald
b396d203bd
Merge IDecompilerTypeSystem with ICompilation.
7 years ago
Daniel Grunwald
1f3916d554
Use the resolve methods in MetadataModule, and remove the wrappers in DecompilerTypeSystem.
7 years ago
Daniel Grunwald
c54632e7cb
Fix some type system bugs.
7 years ago
Daniel Grunwald
107fe5eb1c
Eliminate SpecializingDecompilerTypeSystem and use GenericContext instead.
7 years ago
Daniel Grunwald
fdc109eebd
Fix NullReferenceException in TypeSystemAstBuilder when attribute argument decoding fails.
7 years ago
Siegfried Pammer
463494e3fa
Delete files not included in ILSpy.csproj from the repository.
7 years ago
Siegfried Pammer
dccd0052dc
Merge XmlDocKeyProvider.cs into IdStringProvider.cs
7 years ago
Siegfried Pammer
b6e88c4bbb
Handle EnumUnderlyingTypeResolveException in CustomAttribute.DecodeValue()
7 years ago
Daniel Grunwald
4580eab7ab
Disable ref inline assignments.
...
This increases the chances that we'll avoid CS8174: A declaration of a by-reference variable must have an initializer.
7 years ago
Daniel Grunwald
7ee686cb67
Allow splitting a variable even if it has its address taken and stored in a ref-local.
...
The currently implementation is somewhat minimal and only works in a very limited set of circumstances:
* the ref local is single-assignment
* the ref local is initialized directly with 'ldloca target; stloc ref_local',
not a derived pointer (e.g. 'ldloca target; ldflda F; stloc ref_local').
* all uses of the ref_local are immediately consuming the address
This improves variable splitting cases where the compiler re-uses a stack slot containing a reference,
e.g. in some cases of '?.' on Nullable<T>.
7 years ago
Daniel Grunwald
796612209d
Fix #1147 : Use C# 7.3 syntax for ref reassignment.
7 years ago
Daniel Grunwald
3b46776c5e
Rename IAssembly -> IModule.
...
While support for multi-module assemblies isn't fully working yet; it is clear at this point that we want
to treat each module in a multi-module assembly separately for the purposes of the type system.
7 years ago
Daniel Grunwald
33ef82f75c
Fix #1082 : Add support for compound assignment with string.Concat().
...
Currently only supports the binary overloads of string.Concat().
7 years ago
Daniel Grunwald
d166101387
Allow splitting variables that have their address taken.
...
This works if all addresses are immediately used in calls (as common with method calls on value-type,
which take 'this' by-reference); as long as the call doesn't return the reference again.
Closes #1136 .
7 years ago
Daniel Grunwald
b149238777
Introduce IType.IsByRefLike.
7 years ago
Siegfried Pammer
6d1792652b
Fix #1178 : Ignore PDB load errors.
7 years ago
Siegfried Pammer
2e5ed08be4
Add information about debug info source to ILSpy UI.
7 years ago
Siegfried Pammer
8335615842
Add IDebugInfoProvider.Description property
7 years ago
Siegfried Pammer
29277eb94c
Add EnumUnderlyingTypeResolveException to TypeProvider.
7 years ago
Siegfried Pammer
20ccd51948
Fix bug in SwitchOnStringTransform.SimplifyCascadingIfStatements: Do not eliminate unrelated stores right before the start of the switch.
7 years ago
Siegfried Pammer
cb0629448d
CSharpDecompiler.GetCodeMappingInfo: Add support for async and yield fsms.
7 years ago
Siegfried Pammer
27cf62d710
Move CodeMappingInfo to Decompiler.
7 years ago
Siegfried Pammer
e3dd2f6d86
LookupIndexers should ignore explicit interface implementations.
7 years ago
Siegfried Pammer
ce855885b1
Implement new declsec parser in ReflectionDisassembler + added unit tests.
7 years ago
Siegfried Pammer
716eade5a6
Add missing "method" keyword to method definition tokens in ldtoken instruction.
7 years ago
Siegfried Pammer
d3d7dda7e4
Rework WriteSecurityDeclarationArgument to make sure it produces output, that can be reassembled.
7 years ago
Siegfried Pammer
01e374fd4f
Add EnumUnderlyingTypeResolveException and clean up exceptions in ReflectionDisassembler: use BadImageFormatException for any unexpected values.
7 years ago
Siegfried Pammer
1e9424c7bd
CSharpLanguage.DecompileAssembly: Move initialization of type system into assembly load lock.
7 years ago
Siegfried Pammer
529a61a117
Fix bug in DecompilerTypeSystem initialization, causing assemblies being added multiple times.
7 years ago
Siegfried Pammer
bf8bd6b597
Add missing ApplyAttributesToType in MetadataAssembly.ResolveMethodSpecification.
7 years ago
Daniel Grunwald
d63a37dcda
Allow comparing metadata entities across compilations.
7 years ago
Siegfried Pammer
19b4aa043c
Fix #1201 : Still getting error: "System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection."
7 years ago
Siegfried Pammer
68123fc6b3
Fix build.
7 years ago
Siegfried Pammer
f3a8128693
Forgot some changes.
7 years ago
Siegfried Pammer
78dab4f44b
Cleanup
7 years ago
Siegfried Pammer
1d18a83a15
Fix NRE in AssemblyNameReference
7 years ago
Siegfried Pammer
911fd83c39
Use more appropriate exception types where possible.
7 years ago
Siegfried Pammer
f40743994b
Remove EventDefinition.DecodeSignature
7 years ago
Siegfried Pammer
4540b93e19
Use ArgumentOutOfRangeException or BadImageFormatException in switch-default sections.
7 years ago
Siegfried Pammer
b5191c169b
Implement TextOutputWithRollback to allow rolling back output of security declarations we could not parse due to missing enum types.
7 years ago
Siegfried Pammer
51c62353bd
Replace exception with assertion in DelegateConstruction.
7 years ago
Siegfried Pammer
d862a5f17d
Prevent exceptions in ModuleReferenceTreeNode if AssemblyFile entry cannot be found.
7 years ago
Siegfried Pammer
2359b09d9b
DecompilerTypeSystem: Do not load modules that contain no metadata.
7 years ago
Siegfried Pammer
89544864bf
Provide better exceptions and messages in case of errors.
7 years ago
Siegfried Pammer
bc97127d9d
Reorganize extension methods + remove unused/obsolete.
7 years ago
Siegfried Pammer
0377f406f8
Remove some NotImplementedExceptions/NotSupportedExceptions
7 years ago