Explorar el Código

Merge pull request #94327 from HolonProduction/underscore_identifier

GDScript: Restore support for `Token::UNDERSCORE` in identifiers
Rémi Verschelde hace 1 año
padre
commit
c2b91e2986

+ 3 - 1
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);

+ 15 - 0
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)

+ 1 - 0
modules/gdscript/tests/scripts/runtime/features/single_underscore_node_name.out

@@ -0,0 +1 @@
+GDTEST_OK