mirror of
https://github.com/roc-lang/roc.git
synced 2025-10-03 08:34:33 +00:00
21 lines
600 B
Rust
21 lines
600 B
Rust
use crate::solve::{self, Solved};
|
|
use crate::subs::{Content, Subs, Variable};
|
|
use crate::types::{Constraint, Problem};
|
|
use roc_collections::all::{MutMap, SendMap};
|
|
|
|
pub fn infer_expr(
|
|
subs: Subs,
|
|
problems: &mut Vec<Problem>,
|
|
constraint: &Constraint,
|
|
expr_var: Variable,
|
|
) -> (Content, Solved<Subs>) {
|
|
let env = solve::Env {
|
|
aliases: MutMap::default(),
|
|
vars_by_symbol: SendMap::default(),
|
|
};
|
|
let (solved, _) = solve::run(&env, problems, subs, constraint);
|
|
|
|
let content = solved.inner().get_without_compacting(expr_var).content;
|
|
|
|
(content, solved)
|
|
}
|