diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index a7a1c076be4..7cc23601405 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -3301,7 +3301,11 @@ GDScriptParser::ExpressionNode *GDScriptParser::parse_call(ExpressionNode *p_pre IdentifierNode *identifier = parse_identifier(); call->callee = identifier; call->function_name = identifier->name; - consume(GDScriptTokenizer::Token::PARENTHESIS_OPEN, R"(Expected "(" after function name.)"); + if (!consume(GDScriptTokenizer::Token::PARENTHESIS_OPEN, R"(Expected "(" after function name.)")) { + pop_multiline(); + complete_extents(call); + return nullptr; + } } } else { call->callee = p_previous_operand; diff --git a/modules/gdscript/tests/scripts/completion/common/invalid_super_call_1.cfg b/modules/gdscript/tests/scripts/completion/common/invalid_super_call_1.cfg new file mode 100644 index 00000000000..cd0153fb78b --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/common/invalid_super_call_1.cfg @@ -0,0 +1,5 @@ +[output] +include=[ + ; GDScript: class_a.notest.gd + {"display": "func_of_a()"}, +] diff --git a/modules/gdscript/tests/scripts/completion/common/invalid_super_call_1.gd b/modules/gdscript/tests/scripts/completion/common/invalid_super_call_1.gd new file mode 100644 index 00000000000..443df9fb874 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/common/invalid_super_call_1.gd @@ -0,0 +1,7 @@ +extends "res://completion/class_a.notest.gd" + +func test(): + super.➡ + + if true: + pass diff --git a/modules/gdscript/tests/scripts/completion/common/invalid_super_call_2.cfg b/modules/gdscript/tests/scripts/completion/common/invalid_super_call_2.cfg new file mode 100644 index 00000000000..cd0153fb78b --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/common/invalid_super_call_2.cfg @@ -0,0 +1,5 @@ +[output] +include=[ + ; GDScript: class_a.notest.gd + {"display": "func_of_a()"}, +] diff --git a/modules/gdscript/tests/scripts/completion/common/invalid_super_call_2.gd b/modules/gdscript/tests/scripts/completion/common/invalid_super_call_2.gd new file mode 100644 index 00000000000..de5c4b16d82 --- /dev/null +++ b/modules/gdscript/tests/scripts/completion/common/invalid_super_call_2.gd @@ -0,0 +1,7 @@ +extends "res://completion/class_a.notest.gd" + +func test(): + super.f➡ + + if true: + pass