|
|
|
|
@ -815,13 +815,13 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
@@ -815,13 +815,13 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
|
|
|
|
|
List<IMember> results = new List<IMember>(); |
|
|
|
|
if (collectionInitializer != null) { |
|
|
|
|
ObjectCreateExpression oce = collectionInitializer.Parent as ObjectCreateExpression; |
|
|
|
|
NamedArgumentExpression nae = collectionInitializer.Parent as NamedArgumentExpression; |
|
|
|
|
MemberInitializerExpression mie = collectionInitializer.Parent as MemberInitializerExpression; |
|
|
|
|
if (oce != null && !oce.IsAnonymousType) { |
|
|
|
|
IReturnType resolvedType = TypeVisitor.CreateReturnType(oce.CreateType, this); |
|
|
|
|
ObjectInitializerCtrlSpaceInternal(results, resolvedType, out isCollectionInitializer); |
|
|
|
|
} |
|
|
|
|
else if (nae != null) { |
|
|
|
|
IMember member = ResolveNamedArgumentExpressionInObjectInitializer(nae); |
|
|
|
|
else if (mie != null) { |
|
|
|
|
IMember member = ResolveMemberInitializerExpressionInObjectInitializer(mie); |
|
|
|
|
if (member != null) { |
|
|
|
|
ObjectInitializerCtrlSpaceInternal(results, member.ReturnType, out isCollectionInitializer); |
|
|
|
|
} |
|
|
|
|
@ -830,11 +830,11 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
@@ -830,11 +830,11 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
|
|
|
|
|
return results; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
IMember ResolveNamedArgumentExpressionInObjectInitializer(NamedArgumentExpression nae) |
|
|
|
|
IMember ResolveMemberInitializerExpressionInObjectInitializer(MemberInitializerExpression mie) |
|
|
|
|
{ |
|
|
|
|
CollectionInitializerExpression parentCI = nae.Parent as CollectionInitializerExpression; |
|
|
|
|
CollectionInitializerExpression parentCI = mie.Parent as CollectionInitializerExpression; |
|
|
|
|
bool tmp; |
|
|
|
|
return ObjectInitializerCtrlSpace(parentCI, out tmp).Find(m => IsSameName(m.Name, nae.Name)); |
|
|
|
|
return ObjectInitializerCtrlSpace(parentCI, out tmp).Find(m => IsSameName(m.Name, mie.Name)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ObjectInitializerCtrlSpaceInternal(List<IMember> results, IReturnType resolvedType, out bool isCollectionInitializer) |
|
|
|
|
@ -1402,8 +1402,8 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
@@ -1402,8 +1402,8 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
|
|
|
|
|
ResolveResult rr = ResolveInternal((expr.Parent as AssignmentExpression).Left, ExpressionContext.Default); |
|
|
|
|
if (rr != null) |
|
|
|
|
return rr.ResolvedType; |
|
|
|
|
} else if (expr.Parent is NamedArgumentExpression) { |
|
|
|
|
IMember m = ResolveNamedArgumentExpressionInObjectInitializer((NamedArgumentExpression)expr.Parent); |
|
|
|
|
} else if (expr.Parent is MemberInitializerExpression) { |
|
|
|
|
IMember m = ResolveMemberInitializerExpressionInObjectInitializer((MemberInitializerExpression)expr.Parent); |
|
|
|
|
if (m != null) |
|
|
|
|
return m.ReturnType; |
|
|
|
|
} else if (expr.Parent is CollectionInitializerExpression) { |
|
|
|
|
|