Make known paths use core instead of std

This commit is contained in:
Jonas Schievink 2020-06-11 16:22:31 +02:00
parent 32157d48f4
commit 90331ea035
7 changed files with 52 additions and 48 deletions

View file

@ -226,17 +226,19 @@ impl<'a, 'b> ExprValidator<'a, 'b> {
None => return,
};
let std_result_path = path![std::result::Result];
let core_result_path = path![core::result::Result];
let resolver = self.func.resolver(db.upcast());
let std_result_enum = match resolver.resolve_known_enum(db.upcast(), &std_result_path) {
let core_result_enum = match resolver.resolve_known_enum(db.upcast(), &core_result_path) {
Some(it) => it,
_ => return,
};
let std_result_ctor = TypeCtor::Adt(AdtId::EnumId(std_result_enum));
let core_result_ctor = TypeCtor::Adt(AdtId::EnumId(core_result_enum));
let params = match &mismatch.expected {
Ty::Apply(ApplicationTy { ctor, parameters }) if ctor == &std_result_ctor => parameters,
Ty::Apply(ApplicationTy { ctor, parameters }) if ctor == &core_result_ctor => {
parameters
}
_ => return,
};