Materialize extension variable polarity in error type reporting

This commit is contained in:
Ayaz Hafiz 2022-10-25 15:30:19 -05:00
parent 3c15ff4694
commit 4d48ea7c2f
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
12 changed files with 277 additions and 126 deletions

View file

@ -1,7 +1,10 @@
use roc_can::{abilities::SpecializationLambdaSets, module::ExposedByModule};
use roc_error_macros::internal_error;
use roc_module::symbol::{IdentIds, Symbol};
use roc_types::subs::{instantiate_rigids, Subs, Variable};
use roc_types::{
subs::{instantiate_rigids, Subs, Variable},
types::Polarity,
};
use crate::DERIVED_SYNTH;
@ -69,7 +72,13 @@ impl Env<'_> {
pub fn unify(&mut self, left: Variable, right: Variable) {
use roc_unify::unify::{unify, Env, Mode, Unified};
let unified = unify(&mut Env::new(self.subs), left, right, Mode::EQ);
let unified = unify(
&mut Env::new(self.subs),
left,
right,
Mode::EQ,
Polarity::OF_PATTERN,
);
match unified {
Unified::Success {