From 06e732c3ed85bdbe67702b3778b53c21f8d24c81 Mon Sep 17 00:00:00 2001 From: HolonProduction Date: Sat, 13 Jul 2024 22:20:20 +0200 Subject: [PATCH] GDScript: Restore support for `Token::UNDERSCORE` in identifiers --- modules/gdscript/gdscript_tokenizer.cpp | 4 +++- .../features/single_underscore_node_name.gd | 15 +++++++++++++++ .../features/single_underscore_node_name.out | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 modules/gdscript/tests/scripts/runtime/features/single_underscore_node_name.gd create mode 100644 modules/gdscript/tests/scripts/runtime/features/single_underscore_node_name.out diff --git a/modules/gdscript/gdscript_tokenizer.cpp b/modules/gdscript/gdscript_tokenizer.cpp index 5b1639e2505..404b61fb400 100644 --- a/modules/gdscript/gdscript_tokenizer.cpp +++ b/modules/gdscript/gdscript_tokenizer.cpp @@ -574,7 +574,9 @@ GDScriptTokenizer::Token GDScriptTokenizerText::potential_identifier() { if (len == 1 && _peek(-1) == '_') { // Lone underscore. - return make_token(Token::UNDERSCORE); + Token token = make_token(Token::UNDERSCORE); + token.literal = "_"; + return token; } String name(_start, len); diff --git a/modules/gdscript/tests/scripts/runtime/features/single_underscore_node_name.gd b/modules/gdscript/tests/scripts/runtime/features/single_underscore_node_name.gd new file mode 100644 index 00000000000..b07c40b6da4 --- /dev/null +++ b/modules/gdscript/tests/scripts/runtime/features/single_underscore_node_name.gd @@ -0,0 +1,15 @@ +extends Node + +func test() -> void: + var node1 := Node.new() + node1.name = "_" + var node2 := Node.new() + node2.name = "Child" + var node3 := Node.new() + node3.name = "Child" + + add_child(node1) + node1.add_child(node2) + add_child(node3) + + assert(get_node("_/Child") == $_/Child) diff --git a/modules/gdscript/tests/scripts/runtime/features/single_underscore_node_name.out b/modules/gdscript/tests/scripts/runtime/features/single_underscore_node_name.out new file mode 100644 index 00000000000..d73c5eb7cde --- /dev/null +++ b/modules/gdscript/tests/scripts/runtime/features/single_underscore_node_name.out @@ -0,0 +1 @@ +GDTEST_OK