diff options
Diffstat (limited to 'src/type/check.rs')
-rw-r--r-- | src/type/check.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/type/check.rs b/src/type/check.rs index 5ccd0e7..bb88efb 100644 --- a/src/type/check.rs +++ b/src/type/check.rs @@ -510,6 +510,14 @@ impl Type { Ok(r1) }, + (SumType(a1, a2), SumType(b1, b2)) => { + let mut r1 = a1.infer_generics_ctx(b1, ctx.clone())?; + let r2 = a2.infer_generics_ctx(b2, ctx.clone())?; + r1.extend_from_slice(&r2); + r1.extend_from_slice(&ctx); + Ok(r1) + }, + (List(v1), List(v2)) => { let mut res = ctx.clone(); for (t1, t2) in v1.into_iter().zip(v2.into_iter()) { |