emmylua_code_analysis/semantic/infer/
infer_fail_reason.rs1use emmylua_parser::LuaExpr;
2
3use crate::{LuaDeclId, LuaMemberId, LuaSignatureId};
4
5#[derive(Debug, PartialEq, Eq, Clone)]
6pub enum InferFailReason {
7 None,
8 RecursiveInfer,
9 UnResolveExpr(LuaExpr),
10 UnResolveSignatureReturn(LuaSignatureId),
11 FieldDotFound,
12 UnResolveDeclType(LuaDeclId),
13 UnResolveMemberType(LuaMemberId),
14}
15
16impl InferFailReason {
17 pub fn is_need_resolve(&self) -> bool {
18 match self {
19 InferFailReason::UnResolveExpr(_)
20 | InferFailReason::UnResolveSignatureReturn(_)
21 | InferFailReason::FieldDotFound
22 | InferFailReason::UnResolveDeclType(_)
23 | InferFailReason::UnResolveMemberType(_) => true,
24 _ => false,
25 }
26 }
27}