Skip to content

Commit 0774b74

Browse files
committed
Allow for shortcut to get feature flags from the expression directly assuming it as a file
1 parent efdb89a commit 0774b74

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/llvm_backend_expr.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -282,10 +282,16 @@ gb_internal lbValue lb_emit_unary_arith(lbProcedure *p, TokenKind op, lbValue x,
282282

283283
return res;
284284
}
285-
gb_internal u64 lb_get_file_feature_flags(lbProcedure *p) {
285+
gb_internal u64 lb_get_file_feature_flags(lbProcedure *p, Ast *expr = nullptr) {
286286
AstFile *file = nullptr;
287287

288-
if (p->body && p->body->file()) {
288+
if (expr != nullptr) {
289+
file = expr->file();
290+
}
291+
292+
if (file != nullptr) {
293+
// it is now set
294+
} else if (p->body && p->body->file()) {
289295
file = p->body->file();
290296
} else if (p->type_expr && p->type_expr->file()) {
291297
file = p->type_expr->file();
@@ -3812,7 +3818,7 @@ gb_internal lbValue lb_build_unary_and(lbProcedure *p, Ast *expr) {
38123818

38133819
bool do_type_check = true;
38143820
if (build_context.no_type_assert) {
3815-
u64 feature_flags = lb_get_file_feature_flags(p);
3821+
u64 feature_flags = lb_get_file_feature_flags(p, ue_expr);
38163822
if ((feature_flags & OptInFeatureFlag_ForceTypeAssert) == 0) {
38173823
do_type_check = false;
38183824
}

0 commit comments

Comments
 (0)