summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBojidar Marinov <bojidar.marinov.bg@gmail.com>2017-11-08 22:17:08 +0200
committerBojidar Marinov <bojidar.marinov.bg@gmail.com>2017-11-08 22:17:08 +0200
commitb7fd065f5c067c80a59433ac0a214899ce5bfbac (patch)
tree0d504cad2d9c635815e6239c4967e54bd6a3fc41
parent5fb359d8b1d58061af2d64b304dc0e62c9228efc (diff)
Fix crash when guessing type of variable declared to itself
Fixes #10972
-rw-r--r--modules/gdscript/gd_editor.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/modules/gdscript/gd_editor.cpp b/modules/gdscript/gd_editor.cpp
index d9b10ff3fa..de8e35c406 100644
--- a/modules/gdscript/gd_editor.cpp
+++ b/modules/gdscript/gd_editor.cpp
@@ -1060,7 +1060,7 @@ static bool _guess_identifier_type_in_block(GDCompletionContext &context, int p_
}
//use the last assignment, (then backwards?)
- if (last_assign) {
+ if (last_assign && last_assign_line != p_line) {
return _guess_expression_type(context, last_assign, last_assign_line, r_type);
}
@@ -1194,6 +1194,8 @@ static bool _guess_identifier_type(GDCompletionContext &context, int p_line, con
r_type = _get_type_from_pinfo(context._class->variables[i]._export);
return true;
} else if (context._class->variables[i].expression) {
+ if (p_line <= context._class->variables[i].line)
+ return false;
bool rtype = _guess_expression_type(context, context._class->variables[i].expression, context._class->variables[i].line, r_type);
if (rtype && r_type.type != Variant::NIL)