Reflector 9.3 has been released

Russell DRussell D Diamond 4 Posts: 1,131 Diamond 4
edited February 13, 2018 11:11AM in .NET Reflector Previous Versions
This contains support for the following C# 7.0 features:
  • 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

  • RichardDRichardD Bronze 3 Posts: 50 Bronze 3
    The new installer is much better. :)

    However, the "Welcome to" popup when launching the new version now displays a "mixed content" warning:

    zgqnmwlcu6gp.png
  • Russell DRussell D Diamond 4 Posts: 1,131 Diamond 4
    Thanks for the feedback @RichardD - and I'll look into the welcome page to see if we can do anything about it.
    Have you visited our Help Centre?
  • Russell DRussell D Diamond 4 Posts: 1,131 Diamond 4
    This should be fixed in the next release.
    Have you visited our Help Centre?
  • DaiPlusPlusDaiPlusPlus New member Posts: 4 New member
    Since upgrading to version 9.3, the tooltips for all attributes in the disassembly view report the type as `Reflector.Application.Languages.CSharpLanguage+LanguageWriter+Context` instead of the actual selected attribute. Here's a screenshot:

    wlh22pd8dbr3.png
  • Russell DRussell D Diamond 4 Posts: 1,131 Diamond 4
    Thanks, I've raised a bug and will investigate..
    Have you visited our Help Centre?
  • Russell DRussell D Diamond 4 Posts: 1,131 Diamond 4
    Ok this has been fixed and will go out in the new release, which will be early in the new year.
    Have you visited our Help Centre?
  • DJ DoenaDJ Doena Bronze 2 Posts: 17 Bronze 2
    I've tried out the new named tuple feature in C#7 and when I reflect on it, I get the following error:

    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)
  • Russell DRussell D Diamond 4 Posts: 1,131 Diamond 4
    @DJ Doena I'm struggling to reproduce this, can you share your reproduction?
    Have you visited our Help Centre?
  • DJ DoenaDJ Doena Bronze 2 Posts: 17 Bronze 2
    Hi, (un)fortunately no more repro. I've cleared my entire assembly list on the left and then only loaded my new assembly. Now the error is gone. It could have been an assembly that was in the list but didn't exist on the harddrive anymore? Not sure because there were about a dozen assemblies in the list, sorry.
  • Russell DRussell D Diamond 4 Posts: 1,131 Diamond 4
    No apology necessary, if you do ever see it again just let us know and we'll investigate.
    Have you visited our Help Centre?
  • DJ DoenaDJ Doena Bronze 2 Posts: 17 Bronze 2
    edited January 4, 2018 11:43AM
    I have another one

    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;
  • sabrahamsabraham New member Posts: 1 New member
    I get same error as well.
    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)
  • Russell DRussell D Diamond 4 Posts: 1,131 Diamond 4
    Thanks - we're investigating.
    Have you visited our Help Centre?
  • DJ DoenaDJ Doena Bronze 2 Posts: 17 Bronze 2
    edited February 17, 2018 3:11PM
    Found another one. Actual code of method is:

    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)
  • Russell DRussell D Diamond 4 Posts: 1,131 Diamond 4
    Added this to the open case, thanks.
    Have you visited our Help Centre?
  • DJ DoenaDJ Doena Bronze 2 Posts: 17 Bronze 2
    edited March 17, 2018 4:58PM
    @Russell D I was able to repro and record the version issue described above:


  • Russell DRussell D Diamond 4 Posts: 1,131 Diamond 4
    Hmm I can't actually reproduce this in v10 - if you use a v10 trial do you still get the error?

    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.
    Have you visited our Help Centre?
  • Russell DRussell D Diamond 4 Posts: 1,131 Diamond 4
    edited August 2, 2018 8:56AM
    @DJ Doena apologies for the delays, the engine rewrite has been taking a very long time unfortunately.

    The above has been fixed in 10.0.1.374.
    Have you visited our Help Centre?
Sign In or Register to comment.