Decompilation issues (Reflector 9.3)
Georgy
Posts: 3 New member
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
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
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