aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src/compiler.app.src
diff options
context:
space:
mode:
authorJohn Högberg <[email protected]>2019-01-25 10:31:36 +0100
committerJohn Högberg <[email protected]>2019-01-28 15:33:01 +0100
commite026dd28a850a2ce2b95207515b1bc5cb2bb0d50 (patch)
tree1e2248ffde9979c51d06e4c7ff3fe3b12adbcb28 /lib/compiler/src/compiler.app.src
parent1ea703443fa0bbc3aade0bb61fc96b2f0cf6b84c (diff)
downloadotp-e026dd28a850a2ce2b95207515b1bc5cb2bb0d50.tar.gz
otp-e026dd28a850a2ce2b95207515b1bc5cb2bb0d50.tar.bz2
otp-e026dd28a850a2ce2b95207515b1bc5cb2bb0d50.zip
beam_validator: Refactor type management
Our current type management (based on set_type_reg etc) is rather error-prone, often requiring special cases on a per-instruction basis. This commit replaces nearly all ad-hoc mechanisms with more general abstractions: * assign - Moves a term. * create_term - Creates a new term. * extract_term - Extracts a term from another, maintaining fragility as required. * update_type - Adds more type information about a register. * type_test - Helper function for type tests that subtracts on failure and meets on success.
Diffstat (limited to 'lib/compiler/src/compiler.app.src')
0 files changed, 0 insertions, 0 deletions