CHECKPOINT: Everything builds again.

This commit is contained in:
2024-06-03 20:36:31 -07:00
parent afff04259c
commit 88d128df9f
39 changed files with 1514 additions and 1129 deletions

View File

@@ -1,6 +1,6 @@
use crate::eval::PrimitiveType;
use crate::ir::{
Expression, Primitive, Program, TopLevel, Type, TypeWithVoid, Value, ValueOrRef, Variable,
Expression, Name, Primitive, Program, TopLevel, Type, TypeWithVoid, Value, ValueOrRef,
};
use crate::syntax::Location;
use crate::util::scoped_map::ScopedMap;
@@ -216,8 +216,9 @@ impl ProgramTree {
}
let current = Program {
items,
functions: HashMap::new(),
type_definitions: HashMap::new(),
body: unimplemented!(),
};
ProgramTree { _rng: rng, current }
@@ -284,7 +285,7 @@ impl ExpressionTree {
fn generate_random_expression(
rng: &mut TestRng,
env: &mut ScopedMap<Variable, Type>,
env: &mut ScopedMap<Name, Type>,
) -> Expression<Type> {
match EXPRESSION_TYPE_FREQUENCIES[EXPRESSION_TYPE_DISTRIBUTION.sample(rng)].0 {
ExpressionType::Atomic => Expression::Atomic(generate_random_valueref(rng, env, None)),
@@ -401,10 +402,7 @@ fn generate_random_expression(
}
}
fn generate_random_binding(
rng: &mut TestRng,
env: &mut ScopedMap<Variable, Type>,
) -> Expression<Type> {
fn generate_random_binding(rng: &mut TestRng, env: &mut ScopedMap<Name, Type>) -> Expression<Type> {
let name = generate_random_name(rng);
let expr = generate_random_expression(rng, env);
let ty = expr.type_of();
@@ -414,7 +412,7 @@ fn generate_random_binding(
fn generate_random_valueref(
rng: &mut TestRng,
env: &mut ScopedMap<Variable, Type>,
env: &mut ScopedMap<Name, Type>,
target_type: Option<PrimitiveType>,
) -> ValueOrRef<Type> {
let mut bindings = env.bindings();
@@ -458,9 +456,9 @@ fn generate_random_valueref(
}
}
fn generate_random_name(rng: &mut TestRng) -> Variable {
fn generate_random_name(rng: &mut TestRng) -> Name {
let start = rng.gen_range('a'..='z');
crate::ir::gensym(&format!("{}", start))
Name::gensym(start)
}
fn generate_random_argument_type(rng: &mut TestRng) -> Type {