Reflector 9.3 has been released
This contains support for the following C# 7.0 features:
These are considered beta functionality at present - please let us know if you have any issues.
Fixes
You can download this through Check for Updates or from here: http://download.red-gate.com//checkforupdates/ReflectorInstaller/ReflectorInstaller_9.3.0.217.exe.
Visual Studio 2017 users will need to install (or update) through the Visual Studio gallery.
- Tuples
- Out variables
- Pattern Matching
- Deconstruction
- Discards
- Literals
- Throw Expressions
These are considered beta functionality at present - please let us know if you have any issues.
Fixes
- RP-4058 - (VsPackage): on F12 Jump, find proper declaration based on metadata line
You can download this through Check for Updates or from here: http://download.red-gate.com//checkforupdates/ReflectorInstaller/ReflectorInstaller_9.3.0.217.exe.
Visual Studio 2017 users will need to install (or update) through the Visual Studio gallery.
Have you visited our Help Centre?
Tagged:
Comments
However, the "Welcome to" popup when launching the new version now displays a "mixed content" warning:
version
System.ComponentModel.InvalidEnumArgumentException
at Reflector.Disassembler.Helper.HiddenAttributesCollection.ParseVersion(String version)
at Reflector.Disassembler.Helper.HiddenAttributesCollection.<>c.<CreateInstance>b__0_1(Dictionary`2 dict, ICustomAttributeCollection attributes, String version)
at Reflector.Disassembler.Helper.HiddenAttributesCollection.HelpC`2.Filter(ICustomAttributeCollection attributes, String version)
at Reflector.Disassembler.Helper.FilterIrrelevant(ICustomAttributeCollection attributes, String version)
at Reflector.Application.Languages.CSharpLanguage.LanguageWriter.WriteCustomAttributeList(ICustomAttributeProvider value, IFormatter formatter, String target, HashSet`1 hide)
at Reflector.Application.Languages.CSharpLanguage.LanguageWriter.WriteMethodDeclaration(IMethodDeclaration value)
at Reflector.Application.UserInterface.DisassemblerWindow.Render(Boolean expandTypes, Boolean expandMethods)
Invalid expression stack size during null coalescing expression translation.
System.InvalidOperationException
at Reflector.Disassembler.Translator.DecodeNullCoalescingExpressionOrStatement()
at Reflector.Disassembler.Translator.DecodeDuplicateStatement(Int32 offset)
at Reflector.Disassembler.Translator.DecodeStatement(Int32 end)
at Reflector.Disassembler.Translator.DecodeBlockStatement(Int32 offset, Int32 end)
at Reflector.Disassembler.Translator.TranslateMethodDeclaration(IMethodDeclaration mD, IMethodBody mB, Boolean handleExpressionStack)
at Reflector.Disassembler.Translator.TranslateMethodDeclaration(IMethodDeclaration mD, IMethodBody mB)
at Reflector.Disassembler.Disassembler.TransformMethodDeclaration(IMethodDeclaration value)
at Reflector.Application.Translator.TranslateMethodDeclaration(IMethodDeclaration value)
at Reflector.Application.UserInterface.DisassemblerWindow.Render(Boolean expandTypes, Boolean expandMethods)
The actual code of that method is
DoenaSoft.TVJunkie.MainForm
bool UserIsCorrectAndContainsDate(User user) => user?.UserName == "DJ Doena" && user?.Watches?.Any(WatchesContainsDate) == true;
PS: this throws the same error
bool EntryContainsUserWithWatchedDate(FileEntry entry) => entry?.Users?.Any(UserIsCorrectAndContainsDate) == true;
System.InvalidOperationException: Invalid expression stack size during null coalescing expression translation.
at Reflector.Disassembler.Translator.DecodeNullCoalescingExpressionOrStatement()
at Reflector.Disassembler.Translator.DecodeDuplicateStatement(Int32 offset)
at Reflector.Disassembler.Translator.DecodeStatement(Int32 end)
at Reflector.Disassembler.Translator.DecodeBlockStatement(Int32 offset, Int32 end)
at Reflector.Disassembler.Translator.DecodeTryCatchFinallyStatement(IExceptionHandler current)
at Reflector.Disassembler.Translator.DecodeBlockStatement(Int32 offset, Int32 end)
at Reflector.Disassembler.Translator.TranslateMethodDeclaration(IMethodDeclaration mD, IMethodBody mB, Boolean handleExpressionStack)
at Reflector.Disassembler.Translator.TranslateMethodDeclaration(IMethodDeclaration mD, IMethodBody mB)
at Reflector.Disassembler.Disassembler.TransformMethodDeclaration(IMethodDeclaration value)
at Reflector.CodeModel.Visitor.Transformer.TransformMethodDeclarationCollection(IMethodDeclarationCollection methods)
at Reflector.Disassembler.Disassembler.TransformTypeDeclaration(ITypeDeclaration value)
at Reflector.Application.Translator.TranslateTypeDeclaration(ITypeDeclaration value, Boolean memberDeclarationList, Boolean methodDeclarationBody)
at Reflector.Application.FileDisassembler.WriteTypeDeclaration(ITypeDeclaration typeDeclaration, String sourceFile, ILanguageWriterConfiguration languageWriterConfiguration)
void RaiseEvent(string attribute)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(attribute));
}
Error is:
Block statement count of zero during condition expression translation.
Reflector.Disassembler.Translator+ExpressionHandlingException
at Reflector.Disassembler.Translator.DecodeConditionExpression(Int32 offset, Boolean& failureCase)
at Reflector.Disassembler.Translator.DecodeStatement(Int32 end)
at Reflector.Disassembler.Translator.DecodeBlockStatement(Int32 offset, Int32 end)
at Reflector.Disassembler.Translator.DecodeNullCoalescingExpressionOrStatement()
at Reflector.Disassembler.Translator.DecodeDuplicateStatement(Int32 offset)
at Reflector.Disassembler.Translator.DecodeStatement(Int32 end)
at Reflector.Disassembler.Translator.DecodeBlockStatement(Int32 offset, Int32 end)
at Reflector.Disassembler.Translator.TranslateMethodDeclaration(IMethodDeclaration mD, IMethodBody mB, Boolean handleExpressionStack)
at Reflector.Disassembler.Translator.TranslateMethodDeclaration(IMethodDeclaration mD, IMethodBody mB)
at Reflector.Disassembler.Disassembler.TransformMethodDeclaration(IMethodDeclaration value)
at Reflector.Application.Translator.TranslateMethodDeclaration(IMethodDeclaration value)
at Reflector.Application.UserInterface.DisassemblerWindow.Render(Boolean expandTypes, Boolean expandMethods)
Code can be found here: http://doena-soft.de/tmp/SubControls.zip in SubControls.MainWindowViewModel.RaiseEvent(string attribute)
Your previous reported problems are going to form part of a large piece of work I'm afraid, and its unlikely to be a quick fix. I will also just point out that any fixes are unlikely to go into v9 as well, unfortunately.
The above has been fixed in 10.0.1.374.