|
|
@ -1583,7 +1583,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver |
|
|
|
var addRR = memberLookup.Lookup(initializedObject, "Add", EmptyList<IType>.Instance, true); |
|
|
|
var addRR = memberLookup.Lookup(initializedObject, "Add", EmptyList<IType>.Instance, true); |
|
|
|
var mgrr = addRR as MethodGroupResolveResult; |
|
|
|
var mgrr = addRR as MethodGroupResolveResult; |
|
|
|
if (mgrr != null) { |
|
|
|
if (mgrr != null) { |
|
|
|
OverloadResolution or = mgrr.PerformOverloadResolution(resolver.Compilation, addArguments, null, false, false, resolver.CheckForOverflow, resolver.conversions); |
|
|
|
OverloadResolution or = mgrr.PerformOverloadResolution(resolver.Compilation, addArguments, null, false, false, false, resolver.CheckForOverflow, resolver.conversions); |
|
|
|
var invocationRR = or.CreateResolveResult(initializedObject); |
|
|
|
var invocationRR = or.CreateResolveResult(initializedObject); |
|
|
|
StoreResult(aie, invocationRR); |
|
|
|
StoreResult(aie, invocationRR); |
|
|
|
ProcessInvocationResult(null, aie.Elements, invocationRR); |
|
|
|
ProcessInvocationResult(null, aie.Elements, invocationRR); |
|
|
@ -2745,7 +2745,9 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
var getEnumeratorMethodGroup = memberLookup.Lookup(expression, "GetEnumerator", EmptyList<IType>.Instance, true) as MethodGroupResolveResult; |
|
|
|
var getEnumeratorMethodGroup = memberLookup.Lookup(expression, "GetEnumerator", EmptyList<IType>.Instance, true) as MethodGroupResolveResult; |
|
|
|
if (getEnumeratorMethodGroup != null) { |
|
|
|
if (getEnumeratorMethodGroup != null) { |
|
|
|
var or = getEnumeratorMethodGroup.PerformOverloadResolution(compilation, new ResolveResult[0]); |
|
|
|
var or = getEnumeratorMethodGroup.PerformOverloadResolution( |
|
|
|
|
|
|
|
compilation, new ResolveResult[0], |
|
|
|
|
|
|
|
allowExtensionMethods: false, allowExpandingParams: false, allowOptionalParameters: false); |
|
|
|
if (or.FoundApplicableCandidate && !or.IsAmbiguous && !or.BestCandidate.IsStatic && or.BestCandidate.IsPublic) { |
|
|
|
if (or.FoundApplicableCandidate && !or.IsAmbiguous && !or.BestCandidate.IsStatic && or.BestCandidate.IsPublic) { |
|
|
|
collectionType = expression.Type; |
|
|
|
collectionType = expression.Type; |
|
|
|
getEnumeratorInvocation = or.CreateResolveResult(expression); |
|
|
|
getEnumeratorInvocation = or.CreateResolveResult(expression); |
|
|
@ -2762,7 +2764,9 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver |
|
|
|
IMethod moveNextMethod = null; |
|
|
|
IMethod moveNextMethod = null; |
|
|
|
var moveNextMethodGroup = memberLookup.Lookup(new ResolveResult(enumeratorType), "MoveNext", EmptyList<IType>.Instance, false) as MethodGroupResolveResult; |
|
|
|
var moveNextMethodGroup = memberLookup.Lookup(new ResolveResult(enumeratorType), "MoveNext", EmptyList<IType>.Instance, false) as MethodGroupResolveResult; |
|
|
|
if (moveNextMethodGroup != null) { |
|
|
|
if (moveNextMethodGroup != null) { |
|
|
|
var or = moveNextMethodGroup.PerformOverloadResolution(compilation, new ResolveResult[0]); |
|
|
|
var or = moveNextMethodGroup.PerformOverloadResolution( |
|
|
|
|
|
|
|
compilation, new ResolveResult[0], |
|
|
|
|
|
|
|
allowExtensionMethods: false, allowExpandingParams: false, allowOptionalParameters: false); |
|
|
|
moveNextMethod = or.GetBestCandidateWithSubstitutedTypeArguments() as IMethod; |
|
|
|
moveNextMethod = or.GetBestCandidateWithSubstitutedTypeArguments() as IMethod; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|