private static ITypeHierarchy AnonymizeCodeNames(ITypeHierarchy raw) { if (raw == null) { return(null); } return(new TypeHierarchy { Element = raw.Element.ToAnonymousName(), Extends = AnonymizeCodeNames(raw.Extends), Implements = Sets.NewHashSetFrom(raw.Implements.Select(AnonymizeCodeNames)) }); }
private static CoReTypeName GetClassContext(CoReTypeName classCtx, ITypeHierarchy typeHierarchy) { var wasLambdaCtx = IsLambdaContext(classCtx); if (typeHierarchy.Extends != null) { // TODO @seb: fix analysis and remove check // ReSharper disable once ConditionIsAlwaysTrueOrFalse if (typeHierarchy.Extends.Element != null) { classCtx = typeHierarchy.Extends.Element.ToCoReName(); } } var isLambdaCtx = IsLambdaContext(classCtx); if (wasLambdaCtx && !isLambdaCtx) { return(new CoReTypeName(classCtx + "$Lambda")); } return(classCtx); }