Add mermaid serialization of the trie from graph based typechecking #15144
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If the dependency graph from graph-based typechecking is serialized, let's also dump the trie used in the algorithm.
Example from Fantomas.Core:
classDiagram class root root <|-- ns_Microsoft class ns_Microsoft { .NETStandard,Version=v2.0.AssemblyAttributes.fs(0) } ns_Microsoft <|-- ns_BuildSettings class ns_BuildSettings { .NETStandard,Version=v2.0.AssemblyAttributes.fs(0) } root <|-- ns_FSharp class ns_FSharp { Fantomas.Core.AssemblyInfo.fs(1) } root <|-- ns_Fantomas class ns_Fantomas { AssemblyInfo.fs(2) ISourceTextExtensions.fsi(3) RangeHelpers.fsi(5) Utils.fsi(7) FormatConfig.fs(9) SyntaxOak.fs(10) ASTTransformer.fsi(11) Version.fs(13) Queue.fs(14) Trivia.fsi(15) Defines.fsi(17) CodeFormatterTypes.fs(19) Context.fsi(20) CodePrinter.fsi(22) MultipleDefineCombinations.fsi(24) CodeFormatterImpl.fsi(26) Validation.fsi(28) Selection.fsi(30) CodeFormatter.fsi(32) } ns_Fantomas <|-- ns_Core class ns_Core { FormatConfig.fs[9] Queue.fs[14] Defines.fsi[17] CodeFormatterTypes.fs[19] CodeFormatter.fsi[32] AssemblyInfo.fs(2) ISourceTextExtensions.fsi(3) RangeHelpers.fsi(5) Utils.fsi(7) SyntaxOak.fs(10) ASTTransformer.fsi(11) Version.fs(13) Trivia.fsi(15) Context.fsi(20) CodePrinter.fsi(22) MultipleDefineCombinations.fsi(24) CodeFormatterImpl.fsi(26) Validation.fsi(28) Selection.fsi(30) } ns_Core <|-- mod_AssemblyVersionInformation class mod_AssemblyVersionInformation { AssemblyInfo.fs[2] } ns_Core <|-- mod_ISourceTextExtensions class mod_ISourceTextExtensions { ISourceTextExtensions.fsi[3] } ns_Core <|-- mod_RangeHelpers class mod_RangeHelpers { RangeHelpers.fsi[5] } ns_Core <|-- mod_RangePatterns class mod_RangePatterns { RangeHelpers.fsi[5] } ns_Core <|-- mod_String class mod_String { Utils.fsi[7] } ns_Core <|-- mod_List class mod_List { Utils.fsi[7] } ns_Core <|-- mod_Async class mod_Async { Utils.fsi[7] } ns_Core <|-- mod_Continuation class mod_Continuation { Utils.fsi[7] } ns_Core <|-- mod_SyntaxOak class mod_SyntaxOak { SyntaxOak.fs[10] } ns_Core <|-- mod_ASTTransformer class mod_ASTTransformer { ASTTransformer.fsi[11] } ns_Core <|-- mod_Version class mod_Version { Version.fs[13] } ns_Core <|-- mod_Queue class mod_Queue { Queue.fs[14] } ns_Core <|-- mod_Trivia class mod_Trivia { Trivia.fsi[15] } ns_Core <|-- mod_Defines class mod_Defines { Defines.fsi[17] } ns_Core <|-- mod_Context class mod_Context { Context.fsi[20] } ns_Core <|-- mod_CodePrinter class mod_CodePrinter { CodePrinter.fsi[22] } ns_Core <|-- mod_MultipleDefineCombinations class mod_MultipleDefineCombinations { MultipleDefineCombinations.fsi[24] } ns_Core <|-- mod_CodeFormatterImpl class mod_CodeFormatterImpl { CodeFormatterImpl.fsi[26] } ns_Core <|-- mod_Validation class mod_Validation { Validation.fsi[28] } ns_Core <|-- mod_Selection class mod_Selection { Selection.fsi[30] }