Browse Source

Simplify ExpressionBuilder.ConvertField.IsUnambiguousAccess by renaming it to ExpressionBuilder.ConvertField.IsAmbiguousAccess

pull/2044/head
Siegfried Pammer 5 years ago
parent
commit
3e4091442d
  1. 10
      ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs

10
ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs

@ -256,20 +256,19 @@ namespace ICSharpCode.Decompiler.CSharp
bool targetCasted = false; bool targetCasted = false;
var targetResolveResult = requireTarget ? target.ResolveResult : null; var targetResolveResult = requireTarget ? target.ResolveResult : null;
bool IsUnambiguousAccess(out MemberResolveResult result) bool IsAmbiguousAccess(out MemberResolveResult result)
{ {
if (targetResolveResult == null) { if (targetResolveResult == null) {
result = resolver.ResolveSimpleName(field.Name, EmptyList<IType>.Instance, isInvocationTarget: false) as MemberResolveResult; result = resolver.ResolveSimpleName(field.Name, EmptyList<IType>.Instance, isInvocationTarget: false) as MemberResolveResult;
return !(result == null || result.IsError || !result.Member.Equals(field, NormalizeTypeVisitor.TypeErasure));
} else { } else {
var lookup = new MemberLookup(resolver.CurrentTypeDefinition, resolver.CurrentTypeDefinition.ParentModule); var lookup = new MemberLookup(resolver.CurrentTypeDefinition, resolver.CurrentTypeDefinition.ParentModule);
result = lookup.Lookup(target.ResolveResult, field.Name, EmptyList<IType>.Instance, false) as MemberResolveResult; result = lookup.Lookup(target.ResolveResult, field.Name, EmptyList<IType>.Instance, isInvocation: false) as MemberResolveResult;
return !(result == null || result.IsError || !result.Member.Equals(field, NormalizeTypeVisitor.TypeErasure));
} }
return result == null || result.IsError || !result.Member.Equals(field, NormalizeTypeVisitor.TypeErasure);
} }
MemberResolveResult mrr; MemberResolveResult mrr;
while (!IsUnambiguousAccess(out mrr)) { while (IsAmbiguousAccess(out mrr)) {
if (!requireTarget) { if (!requireTarget) {
requireTarget = true; requireTarget = true;
targetResolveResult = target.ResolveResult; targetResolveResult = target.ResolveResult;
@ -281,6 +280,7 @@ namespace ICSharpCode.Decompiler.CSharp
break; break;
} }
} }
if (mrr == null) { if (mrr == null) {
mrr = new MemberResolveResult(target.ResolveResult, field); mrr = new MemberResolveResult(target.ResolveResult, field);
} }

Loading…
Cancel
Save