diff options
| -rw-r--r-- | modules/gdscript/gdscript_editor.cpp | 15 | 
1 files changed, 10 insertions, 5 deletions
| diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp index 90dcfa307e..d943974ce4 100644 --- a/modules/gdscript/gdscript_editor.cpp +++ b/modules/gdscript/gdscript_editor.cpp @@ -1473,11 +1473,16 @@ static bool _guess_expression_type(GDScriptParser::CompletionContext &p_context,  					if (callee_type == GDScriptParser::Node::IDENTIFIER || call->is_super) {  						// Simple call, so base is 'self'.  						if (p_context.current_class) { -							base.type.kind = GDScriptParser::DataType::CLASS; -							base.type.type_source = GDScriptParser::DataType::INFERRED; -							base.type.is_constant = true; -							base.type.class_type = p_context.current_class; -							base.value = p_context.base; +							if (call->is_super) { +								base.type = p_context.current_class->base_type; +								base.value = p_context.base; +							} else { +								base.type.kind = GDScriptParser::DataType::CLASS; +								base.type.type_source = GDScriptParser::DataType::INFERRED; +								base.type.is_constant = true; +								base.type.class_type = p_context.current_class; +								base.value = p_context.base; +							}  						} else {  							break;  						} |