@@ -1087,6 +1087,13 @@ impl Evaluation {
1087
1087
if bases. len ( ) != 1 {
1088
1088
return AnalyzeAstResult :: from_only_diagnostics ( diagnostics) ;
1089
1089
}
1090
+ let parent_file_or_func = parent. clone ( ) . borrow ( ) . parent_file_or_function ( ) . as_ref ( ) . unwrap ( ) . upgrade ( ) . unwrap ( ) ;
1091
+ let is_in_validation = match parent_file_or_func. borrow ( ) . typ ( ) . clone ( ) {
1092
+ SymType :: FILE | SymType :: PACKAGE ( _) | SymType :: FUNCTION => {
1093
+ parent_file_or_func. borrow ( ) . build_status ( BuildSteps :: VALIDATION ) == BuildStatus :: IN_PROGRESS
1094
+ } ,
1095
+ _ => { false }
1096
+ } ;
1090
1097
let value = Evaluation :: expr_to_str ( session, & sub. slice , parent. clone ( ) , max_infer, & mut diagnostics) ;
1091
1098
diagnostics. extend ( value. 1 ) ;
1092
1099
if let Some ( value) = value. 0 {
@@ -1105,6 +1112,7 @@ impl Evaluation {
1105
1112
context. as_mut ( ) . unwrap ( ) . insert ( S ! ( "args" ) , ContextValue :: STRING ( value) ) ;
1106
1113
let old_range = context. as_mut ( ) . unwrap ( ) . remove ( & S ! ( "range" ) ) ;
1107
1114
context. as_mut ( ) . unwrap ( ) . insert ( S ! ( "range" ) , ContextValue :: RANGE ( sub. slice . range ( ) ) ) ;
1115
+ context. as_mut ( ) . unwrap ( ) . insert ( S ! ( "is_in_validation" ) , ContextValue :: BOOLEAN ( is_in_validation) ) ;
1108
1116
let hook_result = hook ( session, & get_item_eval. symbol , context, & mut diagnostics, Some ( parent. clone ( ) ) ) ;
1109
1117
if let Some ( hook_result) = hook_result {
1110
1118
match hook_result {
@@ -1119,6 +1127,7 @@ impl Evaluation {
1119
1127
}
1120
1128
}
1121
1129
context. as_mut ( ) . unwrap ( ) . remove ( & S ! ( "args" ) ) ;
1130
+ context. as_mut ( ) . unwrap ( ) . remove ( & S ! ( "is_in_validation" ) ) ;
1122
1131
context. as_mut ( ) . unwrap ( ) . insert ( S ! ( "range" ) , old_range. unwrap ( ) ) ;
1123
1132
}
1124
1133
}
0 commit comments