summaryrefslogtreecommitdiff
path: root/modules/gdscript/gdscript_parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'modules/gdscript/gdscript_parser.h')
-rw-r--r--modules/gdscript/gdscript_parser.h30
1 files changed, 16 insertions, 14 deletions
diff --git a/modules/gdscript/gdscript_parser.h b/modules/gdscript/gdscript_parser.h
index d4efab173b..d092a2a5e9 100644
--- a/modules/gdscript/gdscript_parser.h
+++ b/modules/gdscript/gdscript_parser.h
@@ -131,7 +131,7 @@ public:
ClassNode *class_type = nullptr;
MethodInfo method_info; // For callable/signals.
- HashMap<StringName, int> enum_values; // For enums.
+ HashMap<StringName, int64_t> enum_values; // For enums.
_FORCE_INLINE_ bool is_set() const { return kind != UNRESOLVED; }
_FORCE_INLINE_ bool has_no_type() const { return type_source == UNDETECTED; }
@@ -469,7 +469,7 @@ public:
EnumNode *parent_enum = nullptr;
int index = -1;
bool resolved = false;
- int value = 0;
+ int64_t value = 0;
int line = 0;
int leftmost_column = 0;
int rightmost_column = 0;
@@ -578,19 +578,19 @@ public:
return m_enum->get_datatype();
case ENUM_VALUE: {
// Always integer.
- DataType type;
- type.type_source = DataType::ANNOTATED_EXPLICIT;
- type.kind = DataType::BUILTIN;
- type.builtin_type = Variant::INT;
- return type;
+ DataType out_type;
+ out_type.type_source = DataType::ANNOTATED_EXPLICIT;
+ out_type.kind = DataType::BUILTIN;
+ out_type.builtin_type = Variant::INT;
+ return out_type;
}
case SIGNAL: {
- DataType type;
- type.type_source = DataType::ANNOTATED_EXPLICIT;
- type.kind = DataType::BUILTIN;
- type.builtin_type = Variant::SIGNAL;
+ DataType out_type;
+ out_type.type_source = DataType::ANNOTATED_EXPLICIT;
+ out_type.kind = DataType::BUILTIN;
+ out_type.builtin_type = Variant::SIGNAL;
// TODO: Add parameter info.
- return type;
+ return out_type;
}
case GROUP: {
return DataType();
@@ -786,6 +786,7 @@ public:
LOCAL_VARIABLE,
LOCAL_ITERATOR, // `for` loop iterator.
LOCAL_BIND, // Pattern bind.
+ MEMBER_SIGNAL,
MEMBER_VARIABLE,
MEMBER_CONSTANT,
INHERITED_VARIABLE,
@@ -1054,12 +1055,12 @@ public:
HashMap<StringName, int> locals_indices;
FunctionNode *parent_function = nullptr;
- ForNode *parent_for = nullptr;
IfNode *parent_if = nullptr;
bool has_return = false;
bool has_continue = false;
bool has_unreachable_code = false; // Just so warnings aren't given more than once per block.
+ bool is_loop = false;
bool has_local(const StringName &p_name) const;
const Local &get_local(const StringName &p_name) const;
@@ -1216,13 +1217,14 @@ private:
bool can_break = false;
bool can_continue = false;
bool is_continue_match = false; // Whether a `continue` will act on a `match`.
- bool is_ignoring_warnings = false;
List<bool> multiline_stack;
ClassNode *head = nullptr;
Node *list = nullptr;
List<ParserError> errors;
+
#ifdef DEBUG_ENABLED
+ bool is_ignoring_warnings = false;
List<GDScriptWarning> warnings;
HashSet<String> ignored_warnings;
HashSet<uint32_t> ignored_warning_codes;