summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--py/emitnative.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/py/emitnative.c b/py/emitnative.c
index 85eb891d4a..52a05a837a 100644
--- a/py/emitnative.c
+++ b/py/emitnative.c
@@ -1614,14 +1614,11 @@ STATIC void emit_native_store_subscr(emit_t *emit) {
}
STATIC void emit_native_delete_fast(emit_t *emit, qstr qst, mp_uint_t local_num) {
- // TODO implement me!
- // could support for Python types, just set to None (so GC can reclaim it)
- // local is automatically deleted for exception block "as" var, and the message
- // breaks tests.
- //mp_emitter_warning(emit->pass, "Native codegeneration doesn't support deleting local");
- (void)emit;
- (void)qst;
- (void)local_num;
+ // TODO: This is not compliant implementation. We could use MP_OBJ_SENTINEL
+ // to mark deleted vars but then every var would need to be checked on
+ // each access. Very inefficient, so just set value to None to enable GC.
+ emit_native_load_const_tok(emit, MP_TOKEN_KW_NONE);
+ emit_native_store_fast(emit, qst, local_num);
}
STATIC void emit_native_delete_deref(emit_t *emit, qstr qst, mp_uint_t local_num) {