Initial type inference impl
This commit is contained in:
+16
-5
@@ -2,6 +2,7 @@ mod declass;
|
||||
mod declosure;
|
||||
mod demutate;
|
||||
mod flatten;
|
||||
mod infer;
|
||||
mod parse;
|
||||
mod regify;
|
||||
|
||||
@@ -9,7 +10,9 @@ use std::process::Command;
|
||||
|
||||
use declass::declass;
|
||||
use declosure::declosure;
|
||||
use demutate::demutate;
|
||||
use flatten::flatten;
|
||||
use infer::infer;
|
||||
use parse::QuickJSBinary;
|
||||
use regify::regify;
|
||||
|
||||
@@ -44,15 +47,23 @@ fn main() {
|
||||
let declassed = declass(reg_fns);
|
||||
println!("{declassed:#?}");
|
||||
|
||||
println!("=== demutate runs ===");
|
||||
for f in &declassed {
|
||||
println!("{}: {:#?}", f.name, demutate::find_object_runs(f));
|
||||
}
|
||||
|
||||
println!("=== after declosure ===");
|
||||
let declosured = declosure(declassed);
|
||||
println!("{declosured:#?}");
|
||||
|
||||
println!("=== after demutate ===");
|
||||
let mut infer_fns = demutate(declosured);
|
||||
println!("{infer_fns:#?}");
|
||||
|
||||
println!("=== after infer ===");
|
||||
if let Some(main_id) = infer_fns.iter().position(|f| f.name == "main") {
|
||||
let ret = infer(main_id, &mut infer_fns);
|
||||
println!("main returns {ret:?}");
|
||||
println!("{infer_fns:#?}");
|
||||
} else {
|
||||
println!("no main");
|
||||
}
|
||||
|
||||
println!("{atoms:#?}");
|
||||
|
||||
/*println!("=== after deprototype ===");
|
||||
|
||||
Reference in New Issue
Block a user