public static bool BuildAndDump(this IUnitSyntaxFactory src, CancellationToken cancellation)
        {
            if (!src.Build(cancellation))
            {
                return(false);
            }

            string?sourceDump = WorkingDirectories.Instance.SourceDump;

            if (sourceDump is not null)
            {
                string hint = src.GetHint();

                try
                {
                    StreamWriter log;

                    Directory.CreateDirectory(sourceDump);

                    using (log = File.CreateText(Path.Combine(sourceDump, hint)))
                    {
                        log.AutoFlush = true;
                        src
                        .Unit !
                        .NormalizeWhitespace(eol: Environment.NewLine)
                        .WriteTo(log);     // nincs overload ami tamogatna a megszakitast
                    }

                    using (log = File.CreateText(Path.Combine(sourceDump, $"{hint}.references")))
                    {
                        log.AutoFlush = true;
                        log.Write
                        (
                            string.Join
                            (
                                Environment.NewLine,
                                src
                                .References
                                .Select(@ref => $"{@ref.Name}: {@ref.Location ?? "NULL"}")
                            ),
                            cancellation: cancellation
                        );
                    }
                }
                #pragma warning disable CA1031 // This method should not throw
                catch {}
                #pragma warning restore CA1031
            }

            return(true);
        }
 public static string GetHint(this IUnitSyntaxFactory src) => $"{src.DefinedClasses.Single()}.cs";
        public static SourceCode GetSourceCode(this IUnitSyntaxFactory src, CancellationToken cancellation)
        {
            src.BuildAndDump(cancellation);

            return(new SourceCode(src.GetHint(), src.Unit !));
        }