summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
authorEmil Renner Berthing <esmil@mailme.dk>2020-10-03 10:42:57 +0200
committerEmil Renner Berthing <esmil@mailme.dk>2020-10-22 11:40:56 +0200
commit6324c3e05499a31c5a80ad58f030e693f459f294 (patch)
treed0f6c03319962d5e9156dc828b3f58cef8fcfe21 /py
parent6eebdbc495a52d1965d7e9255816db310041f96a (diff)
downloadmicropython-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.c2
-rw-r--r--py/scope.h6
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);