Fix deprecation warnings not silenced.

This commit is contained in:
Christoffer Lerno
2026-02-26 03:30:35 +01:00
parent 808ce6d605
commit 1a3cdc01ec
4 changed files with 7 additions and 5 deletions

View File

@@ -62,6 +62,7 @@
- Trying to slice an indexable type leads to misleading error message #2958 - Trying to slice an indexable type leads to misleading error message #2958
- Warn on use of visibility modifiers on methods. #2962 - Warn on use of visibility modifiers on methods. #2962
- Compiler crash using `??` with a `void?` macro #2973 - Compiler crash using `??` with a `void?` macro #2973
- Fix issue when extending a generic type with a method in another module.
## 0.7.9 Change list ## 0.7.9 Change list

View File

@@ -5356,9 +5356,9 @@ FOUND:;
if (decl->decl_kind != DECL_ERASED) vec_add(copied, decl); if (decl->decl_kind != DECL_ERASED) vec_add(copied, decl);
} }
if (stage < ANALYSIS_METHODS_REGISTER) goto EXIT;
FOREACH(Decl *, decl, copied) FOREACH(Decl *, decl, copied)
{ {
if (decl->unit->module->stage < ANALYSIS_METHODS_REGISTER) continue;
if (decl->decl_kind != DECL_FUNC && decl->decl_kind != DECL_MACRO) continue; if (decl->decl_kind != DECL_FUNC && decl->decl_kind != DECL_MACRO) continue;
if (!decl->func_decl.type_parent) continue; if (!decl->func_decl.type_parent) continue;
SemaContext gen_context; SemaContext gen_context;
@@ -5376,9 +5376,9 @@ FOUND:;
} }
} }
} }
if (stage < ANALYSIS_DECLS) goto EXIT;
FOREACH(Decl *, decl, copied) FOREACH(Decl *, decl, copied)
{ {
if (decl->unit->module->stage < ANALYSIS_DECLS) continue;
SemaContext context_gen; SemaContext context_gen;
sema_context_init(&context_gen, decl->unit); sema_context_init(&context_gen, decl->unit);
DynamicScope empty = { .depth = 0 }; DynamicScope empty = { .depth = 0 };
@@ -5392,10 +5392,10 @@ FOUND:;
} }
sema_context_destroy(&context_gen); sema_context_destroy(&context_gen);
} }
if (stage < ANALYSIS_FUNCTIONS) goto EXIT;
if (compiler.context.errors_found) return poisoned_decl; if (compiler.context.errors_found) return poisoned_decl;
FOREACH(Decl *, decl, copied) FOREACH(Decl *, decl, copied)
{ {
if (decl->unit->module->stage < ANALYSIS_FUNCTIONS) continue;
SemaContext context_gen; SemaContext context_gen;
switch (decl->decl_kind) switch (decl->decl_kind)
{ {
@@ -5408,10 +5408,10 @@ FOUND:;
break; break;
} }
} }
if (stage < ANALYSIS_INTERFACE) goto EXIT;
if (compiler.context.errors_found) return poisoned_decl; if (compiler.context.errors_found) return poisoned_decl;
FOREACH(Decl *, decl, copied) FOREACH(Decl *, decl, copied)
{ {
if (decl->unit->module->stage < ANALYSIS_INTERFACE) continue;
SemaContext context_gen; SemaContext context_gen;
switch (decl->decl_kind) switch (decl->decl_kind)
{ {
@@ -5431,7 +5431,6 @@ FOUND:;
sema_context_destroy(&context_gen); sema_context_destroy(&context_gen);
} }
} }
EXIT:;
if (compiler.context.errors_found) return poisoned_decl; if (compiler.context.errors_found) return poisoned_decl;
} }
Decl *symbol = sema_find_generic_instance(context, module, generic, instance, alias->name); Decl *symbol = sema_find_generic_instance(context, module, generic, instance, alias->name);

View File

@@ -11045,6 +11045,7 @@ static inline bool sema_expr_analyse_lambda(SemaContext *context, Type *target_t
} }
else else
{ {
decl->resolve_status = RESOLVE_DONE;
SemaContext lambda_context; SemaContext lambda_context;
sema_context_init(&lambda_context, context->unit); sema_context_init(&lambda_context, context->unit);
if (sema_analyse_function_body(&lambda_context, decl)) if (sema_analyse_function_body(&lambda_context, decl))

View File

@@ -3360,6 +3360,7 @@ bool sema_analyse_function_body(SemaContext *context, Decl *func)
{ {
// Stop if it's already poisoned. // Stop if it's already poisoned.
if (!decl_ok(func)) return false; if (!decl_ok(func)) return false;
ASSERT_SPAN(func, func->resolve_status == RESOLVE_DONE);
if (func->is_body_checked) return true; if (func->is_body_checked) return true;
func->is_body_checked = true; func->is_body_checked = true;
context->generic_instance = func->is_templated ? declptr(func->instance_id) : NULL; context->generic_instance = func->is_templated ? declptr(func->instance_id) : NULL;