From 9244819bbcbd90d034d7d1c6ddac6678e8782b94 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 13 Jun 2020 22:23:11 +0200 Subject: [PATCH] Simplify ExpressionBuilder.ConvertField.IsUnambiguousAccess by renaming it to ExpressionBuilder.ConvertField.IsAmbiguousAccess --- ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs b/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs index 47cc8c7ff4..5fbea1ac1d 100644 --- a/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs @@ -256,20 +256,19 @@ ExpressionWithResolveResult ConvertField(IField field, ILInstruction targetInstr bool targetCasted = false; var targetResolveResult = requireTarget ? target.ResolveResult : null; - bool IsUnambiguousAccess(out MemberResolveResult result) + bool IsAmbiguousAccess(out MemberResolveResult result) { if (targetResolveResult == null) { result = resolver.ResolveSimpleName(field.Name, EmptyList.Instance, isInvocationTarget: false) as MemberResolveResult; - return !(result == null || result.IsError || !result.Member.Equals(field, NormalizeTypeVisitor.TypeErasure)); } else { var lookup = new MemberLookup(resolver.CurrentTypeDefinition, resolver.CurrentTypeDefinition.ParentModule); - result = lookup.Lookup(target.ResolveResult, field.Name, EmptyList.Instance, false) as MemberResolveResult; - return !(result == null || result.IsError || !result.Member.Equals(field, NormalizeTypeVisitor.TypeErasure)); + result = lookup.Lookup(target.ResolveResult, field.Name, EmptyList.Instance, isInvocation: false) as MemberResolveResult; } + return result == null || result.IsError || !result.Member.Equals(field, NormalizeTypeVisitor.TypeErasure); } MemberResolveResult mrr; - while (!IsUnambiguousAccess(out mrr)) { + while (IsAmbiguousAccess(out mrr)) { if (!requireTarget) { requireTarget = true; targetResolveResult = target.ResolveResult; @@ -281,6 +280,7 @@ bool IsUnambiguousAccess(out MemberResolveResult result) break; } } + if (mrr == null) { mrr = new MemberResolveResult(target.ResolveResult, field); }