internal void AddTypeReport(TypeMetricsWithMethodMetrics typeMertics)
 {
     if (!typeReports.ContainsKey(typeMertics.Type.FullName))
     {
         typeReports.Add(typeMertics.Type.FullName, typeMertics);
         ShareTheKnowledgeWithMethodsOf(typeMertics);
         CommonKnowledge.UpdateFor(typeMertics.Type);
     }
 }
        private void ShareTheKnowledgeWithMethodsOf(TypeMetricsWithMethodMetrics typeMertics)
        {
            typeMertics.Type.CommonKnowledge = CommonKnowledge;
            foreach (var method in typeMertics.Methods)
            {
                CommonKnowledge.UpdateFor(method);
                method.CommonKnowledge = CommonKnowledge;

                if (!methodToType.ContainsKey(method))
                {
                    methodToType.Add(method, typeMertics.Type);
                }
            }
        }
 internal void AddNamespaceReport(NamespaceMetricsWithTypeMetrics namespaceMertics)
 {
     namespaceReports.Add(namespaceMertics.Namespace.Name, namespaceMertics);
     namespaceMertics.Namespace.CommonKnowledge = CommonKnowledge;
     CommonKnowledge.UpdateFor(namespaceMertics);
 }