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.
This commit is contained in:
parent
6eebdbc495
commit
6324c3e054
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user