protected override void ExecuteCore()
        {
            if (Usings.Length == 0)
            {
                Lines = Array.Empty <string>();
                return;
            }

            var usings = Usings.Select(UsingInfo.Read)
                         .OrderBy(static k => k, UsingInfoComparer.Instance)
        public List <string> GenerateLines()
        {
            var ret = new List <string>();

            ret.AddRange(Usings.Select(t => $"using {t};"));
            ret.AddRange(Children.SelectMany(t =>
            {
                var partLines = t.ToLines();
                partLines.Insert(0, "");
                return(partLines);
            }).ToList());

            return(ret);
        }
        private string ResolveFullName(string type)
        {
            if (genericTypes == null)
            {
                genericTypes = GetGenericParametersInContext(Context);
            }

            if (genericTypes.TryGetValue(type.ToString(), out var genericType))
            {
                return(genericType);
            }

            if (Usings == null || KnownTypes == null)
            {
                return(type);
            }

            return(Usings
                   .Select(x => x + "." + type)
                   .FirstOrDefault(x => KnownTypes.Contains(x)) ??
                   type);
        }