diff --git a/compiler/solve/src/solve.rs b/compiler/solve/src/solve.rs index 9376fcab70..316fb0a6d5 100644 --- a/compiler/solve/src/solve.rs +++ b/compiler/solve/src/solve.rs @@ -841,7 +841,7 @@ fn type_to_variable( result } Erroneous(problem) => { - let content = Content::Structure(FlatType::Erroneous(problem.clone())); + let content = Content::Structure(FlatType::Erroneous(Box::new(problem.clone()))); register(subs, rank, pools, content) } diff --git a/compiler/solve/tests/solve_expr.rs b/compiler/solve/tests/solve_expr.rs index 55cbeef6c9..7b2250d85f 100644 --- a/compiler/solve/tests/solve_expr.rs +++ b/compiler/solve/tests/solve_expr.rs @@ -4499,6 +4499,6 @@ mod solve_expr { std::mem::size_of::(), ); - assert_eq!(query, (40, 96, 80, 72, 64)) + assert_eq!(query, (40, 80, 64, 56, 64)) } } diff --git a/compiler/types/src/solved_types.rs b/compiler/types/src/solved_types.rs index d75bb0e0d6..94f7821954 100644 --- a/compiler/types/src/solved_types.rs +++ b/compiler/types/src/solved_types.rs @@ -465,7 +465,7 @@ impl SolvedType { } EmptyRecord => SolvedType::EmptyRecord, EmptyTagUnion => SolvedType::EmptyTagUnion, - Erroneous(problem) => SolvedType::Erroneous(problem.clone()), + Erroneous(problem) => SolvedType::Erroneous(*problem.clone()), } } } diff --git a/compiler/types/src/subs.rs b/compiler/types/src/subs.rs index 0baa5252e7..d44664e575 100644 --- a/compiler/types/src/subs.rs +++ b/compiler/types/src/subs.rs @@ -627,7 +627,7 @@ pub enum FlatType { TagUnion(MutMap>, Variable), FunctionOrTagUnion(TagName, Symbol, Variable), RecursiveTagUnion(Variable, MutMap>, Variable), - Erroneous(Problem), + Erroneous(Box), EmptyRecord, EmptyTagUnion, } @@ -1242,7 +1242,7 @@ fn flat_type_to_err_type( } Erroneous(problem) => { - state.problems.push(problem); + state.problems.push(*problem); ErrorType::Error }