diff options
author | Emil Renner Berthing <esmil@mailme.dk> | 2020-10-03 10:42:57 +0200 |
---|---|---|
committer | Emil Renner Berthing <esmil@mailme.dk> | 2020-10-22 11:40:56 +0200 |
commit | 6324c3e05499a31c5a80ad58f030e693f459f294 (patch) | |
tree | d0f6c03319962d5e9156dc828b3f58cef8fcfe21 /py | |
parent | 6eebdbc495a52d1965d7e9255816db310041f96a (diff) | |
download | micropython-6324c3e05499a31c5a80ad58f030e693f459f294.tar.gz micropython-6324c3e05499a31c5a80ad58f030e693f459f294.zip |
py/scope: Name and use id_kind_type_t.
The function scope_find_or_add_id used to take a scope_kind_t enum and
save it in an uint8_t. Saving an enum in a uint8_t is fine, but
everywhere this function is called it is not actually given a
scope_kind_t but an anonymous enum instead. Let's give this enum a name
and use that as the argument type.
This doesn't change the generated code, but is a C type mismatch that
unfortunately doesn't show up unless you enable -Wenum-conversion.
Diffstat (limited to 'py')
-rw-r--r-- | py/scope.c | 2 | ||||
-rw-r--r-- | py/scope.h | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/py/scope.c b/py/scope.c index 073c2a38c2..98e02fb53f 100644 --- a/py/scope.c +++ b/py/scope.c @@ -72,7 +72,7 @@ void scope_free(scope_t *scope) { m_del(scope_t, scope, 1); } -id_info_t *scope_find_or_add_id(scope_t *scope, qstr qst, scope_kind_t kind) { +id_info_t *scope_find_or_add_id(scope_t *scope, qstr qst, id_info_kind_t kind) { id_info_t *id_info = scope_find(scope, qst); if (id_info != NULL) { return id_info; diff --git a/py/scope.h b/py/scope.h index b52d98ea1c..edf164c4ad 100644 --- a/py/scope.h +++ b/py/scope.h @@ -29,14 +29,14 @@ #include "py/parse.h" #include "py/emitglue.h" -enum { +typedef enum { ID_INFO_KIND_UNDECIDED, ID_INFO_KIND_GLOBAL_IMPLICIT, ID_INFO_KIND_GLOBAL_EXPLICIT, ID_INFO_KIND_LOCAL, // in a function f, written and only referenced by f ID_INFO_KIND_CELL, // in a function f, read/written by children of f ID_INFO_KIND_FREE, // in a function f, belongs to the parent of f -}; +} id_info_kind_t; enum { ID_FLAG_IS_PARAM = 0x01, @@ -92,7 +92,7 @@ typedef struct _scope_t { scope_t *scope_new(scope_kind_t kind, mp_parse_node_t pn, qstr source_file, mp_uint_t emit_options); void scope_free(scope_t *scope); -id_info_t *scope_find_or_add_id(scope_t *scope, qstr qstr, scope_kind_t kind); +id_info_t *scope_find_or_add_id(scope_t *scope, qstr qstr, id_info_kind_t kind); id_info_t *scope_find(scope_t *scope, qstr qstr); id_info_t *scope_find_global(scope_t *scope, qstr qstr); void scope_check_to_close_over(scope_t *scope, id_info_t *id); |