Support path starting with a type

This commit is contained in:
uHOOCCOOHu 2019-09-12 02:01:07 +08:00
parent 2d79a1ad83
commit 4926bed426
No known key found for this signature in database
GPG key ID: CED392DE0C483D00
10 changed files with 210 additions and 127 deletions

View file

@ -8,7 +8,7 @@ use crate::{
diagnostics::{DiagnosticSink, MissingFields, MissingOkInTailExpr},
expr::AstPtr,
name,
path::{PathKind, PathSegment},
path::PathKind,
ty::{ApplicationTy, InferenceResult, Ty, TypeCtor},
Adt, Function, Name, Path,
};
@ -108,14 +108,10 @@ impl<'a, 'b> ExprValidator<'a, 'b> {
None => return,
};
let std_result_path = Path {
kind: PathKind::Abs,
segments: vec![
PathSegment { name: name::STD, args_and_bindings: None },
PathSegment { name: name::RESULT_MOD, args_and_bindings: None },
PathSegment { name: name::RESULT_TYPE, args_and_bindings: None },
],
};
let std_result_path = Path::from_simple_segments(
PathKind::Abs,
vec![name::STD, name::RESULT_MOD, name::RESULT_TYPE],
);
let resolver = self.func.resolver(db);
let std_result_enum = match resolver.resolve_known_enum(db, &std_result_path) {