Decompilation issues (Reflector 9.3)

Assembly mscorlib, Version=4.0.0.0
Class System.Threading.CancellationToken
Property WaitHandle
Accessor get_WaitHandle()
When decompiling for .net 4.6 or .Net 4.7 I see
[__DynamicallyInvokable]
public WaitHandle get_WaitHandle() =>
this.m_source?.WaitHandle;
But when decompiling for .net 4.5 I see the correct variant
[__DynamicallyInvokable]
public WaitHandle get_WaitHandle()
{
if (this.m_source == null)
{
this.InitializeDefaultSource();
}
return this.m_source.WaitHandle;
}

Can this be fixed?

Best regards,
George

Comments

  • GeorgyGeorgy Posts: 3 New member
    Assembly: System, Version=4.0.0.0
    Class: System.Text.RegularExpressions.Match
    Method: NextMatch()
    When decompiling for .Net 4.7 I got exception
    System.NullReferenceException
    â Reflector.Disassembler.Helper.GetExpressionType(IExpression value, ITypeDeclaration declaringType)
    â Reflector.Application.Languages.CSharpLanguage.LanguageWriter.ValueTuplesHelper.TryGetData(IFieldReferenceExpression value, ValueTuplesHelper& result)
    â Reflector.Application.Languages.CSharpLanguage.LanguageWriter.WriteFieldReferenceExpression(IFieldReferenceExpression value, Context context)
    â Reflector.Application.Languages.CSharpLanguage.LanguageWriter.WriteExpression(IExpression value, Context context)
    â Reflector.Application.Languages.CSharpLanguage.LanguageWriter.WriteExpression(IExpression value, IFormatter formatter)
    â Reflector.Application.Languages.CSharpLanguage.LanguageWriter.WriteExpressionList(IExpressionCollection expressions, IFormatter formatter)
    â Reflector.Application.Languages.CSharpLanguage.LanguageWriter.WriteMethodInvokeExpression(IMethodInvokeExpression value, Context context)
    â Reflector.Application.Languages.CSharpLanguage.LanguageWriter.WriteExpression(IExpression value, Context context)
    â Reflector.Application.Languages.CSharpLanguage.LanguageWriter.WriteExpression(IExpression value, IFormatter formatter)
    â Reflector.Application.Languages.CSharpLanguage.LanguageWriter.WriteExpression(IExpression expression)
    â Reflector.Application.Languages.CSharpLanguage.LanguageWriter.WriteMethodBody(IBlockStatement statement, IMethodDeclaration methodDecl, Context context)
    â Reflector.Application.Languages.CSharpLanguage.LanguageWriter.WriteMethodDeclaration(IMethodDeclaration value)
    â Reflector.Application.UserInterface.DisassemblerWindow.Render(Boolean expandTypes, Boolean expandMethods)
    ----
    I do not include message because it is not readable
    Decompiling for .net 4.6 does not generate exception

    Best regards
    George
Sign In or Register to comment.