Commit 869d74f
authored
Rollup merge of #139990 - jswrenn:no-nfas, r=tmiasko
transmutability: remove NFA intermediate representation
Prior to this commit, the transmutability analysis used an intermediate NFA representation of type layout. We then determinized this representation into a DFA, upon which we ran the core transmutability analysis. Unfortunately, determinizing NFAs is expensive. In this commit, we avoid NFAs entirely by observing that Rust `union`s are the only source of nondeterminism and that it is comparatively cheap to compute the DFA union of DFAs.
We also implement Graphviz DOT debug formatting of DFAs.
Fixes rust-lang/project-safe-transmute#23
Fixes rust-lang/project-safe-transmute#24
r? ``@compiler-errors``File tree
0 file changed
+0
-0
lines changed0 file changed
+0
-0
lines changed
0 commit comments