|
@@ -1473,11 +1473,16 @@ static bool _guess_expression_type(GDScriptParser::CompletionContext &p_context,
|
|
if (callee_type == GDScriptParser::Node::IDENTIFIER || call->is_super) {
|
|
if (callee_type == GDScriptParser::Node::IDENTIFIER || call->is_super) {
|
|
// Simple call, so base is 'self'.
|
|
// Simple call, so base is 'self'.
|
|
if (p_context.current_class) {
|
|
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 {
|
|
} else {
|
|
break;
|
|
break;
|
|
}
|
|
}
|