@@ -52,7 +52,7 @@ static IEnumerable<ISymbol> CollectTypeRelatedMembers (ITypeDefinition type)
5252 }
5353 }
5454
55- static IEnumerable < ISymbol > CollectOverloads ( TypeGraph g , IMethod method )
55+ static IEnumerable < ISymbol > CollectOverloads ( IMethod method )
5656 {
5757 return method . DeclaringType
5858 . GetMethods ( m => m . Name == method . Name )
@@ -85,7 +85,7 @@ static IEnumerable<ISymbol> MakeUnique (List<ISymbol> symbols)
8585 /// <returns>The related symbols.</returns>
8686 /// <param name="g">The type graph.</param>
8787 /// <param name="m">The symbol to search</param>
88- public IEnumerable < ISymbol > GetRelatedSymbols ( TypeGraph g , ISymbol m )
88+ public IEnumerable < ISymbol > GetRelatedSymbols ( Lazy < TypeGraph > g , ISymbol m )
8989 {
9090 switch ( m . SymbolKind ) {
9191 case SymbolKind . TypeDefinition :
@@ -103,7 +103,7 @@ public IEnumerable<ISymbol> GetRelatedSymbols(TypeGraph g, ISymbol m)
103103 return GetRelatedSymbols ( g , ( ( IMethod ) m ) . DeclaringTypeDefinition ) ;
104104 List < ISymbol > constructorSymbols = new List < ISymbol > ( ) ;
105105 if ( IncludeOverloads ) {
106- foreach ( var m3 in CollectOverloads ( g , ( IMethod ) m ) ) {
106+ foreach ( var m3 in CollectOverloads ( ( IMethod ) m ) ) {
107107 constructorSymbols . Add ( m3 ) ;
108108 }
109109 }
@@ -122,12 +122,16 @@ public IEnumerable<ISymbol> GetRelatedSymbols(TypeGraph g, ISymbol m)
122122 List < ISymbol > symbols = new List < ISymbol > ( ) ;
123123 if ( ! member . IsExplicitInterfaceImplementation )
124124 symbols . Add ( member ) ;
125- foreach ( var m2 in member . ImplementedInterfaceMembers ) {
126- symbols . AddRange ( GetRelatedSymbols ( g , m2 ) ) ;
125+ if ( GroupForRenaming ) {
126+ foreach ( var m2 in member . ImplementedInterfaceMembers ) {
127+ symbols . AddRange ( GetRelatedSymbols ( g , m2 ) ) ;
128+ }
129+ } else {
130+ symbols . AddRange ( member . ImplementedInterfaceMembers ) ;
127131 }
128132
129133 if ( member . DeclaringType . Kind == TypeKind . Interface ) {
130- var declaringTypeNode = g . GetNode ( member . DeclaringTypeDefinition ) ;
134+ var declaringTypeNode = g . Value . GetNode ( member . DeclaringTypeDefinition ) ;
131135 if ( declaringTypeNode != null ) {
132136 foreach ( var derivedType in declaringTypeNode . DerivedTypes ) {
133137 var mem = SearchMember ( derivedType . TypeDefinition , member ) ;
@@ -141,7 +145,7 @@ public IEnumerable<ISymbol> GetRelatedSymbols(TypeGraph g, ISymbol m)
141145 if ( IncludeOverloads ) {
142146 IncludeOverloads = false ;
143147 if ( member is IMethod ) {
144- foreach ( var m3 in CollectOverloads ( g , ( IMethod ) member ) ) {
148+ foreach ( var m3 in CollectOverloads ( ( IMethod ) member ) ) {
145149 symbols . AddRange ( GetRelatedSymbols ( g , m3 ) ) ;
146150 }
147151 } else if ( member . SymbolKind == SymbolKind . Indexer ) {
0 commit comments