ArchiMetrics.Analysis.ReferenceResolvers.SymbolReferenceResolver.GetSymbolDetails C# (CSharp) Method

GetSymbolDetails() private static method

private static GetSymbolDetails ( SyntaxNode>.KeyValuePair x, Microsoft.CodeAnalysis.SemanticModel model ) : IEnumerable
x SyntaxNode>.KeyValuePair
model Microsoft.CodeAnalysis.SemanticModel
return IEnumerable
		private static IEnumerable<SymbolDetails> GetSymbolDetails(KeyValuePair<ISymbol, SyntaxNode> x, SemanticModel model)
		{
			var containingType = ResolveContainingType(x.Value, model);
			yield return new SymbolDetails(x.Key, new ReferenceLocation(x.Value.GetLocation(), containingType, model));

			var namedType = x.Key as INamedTypeSymbol;
			if (namedType != null && namedType.ConstructedFrom != null && namedType.ConstructedFrom != x.Key)
			{
				yield return new SymbolDetails(namedType.ConstructedFrom, new ReferenceLocation(x.Value.GetLocation(), containingType, model));
			}

			var namedMethod = x.Key as IMethodSymbol;
			if (namedMethod != null && namedMethod.ConstructedFrom != null && namedMethod.ConstructedFrom != x.Key)
			{
				yield return new SymbolDetails(namedMethod, new ReferenceLocation(x.Value.GetLocation(), ResolveContainingType(x.Value, model), model));
			}
		}