Skip to content

Commit daf2ae6

Browse files
committed
Fix signals
1 parent dfb12c7 commit daf2ae6

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

modules/gdscript/gdscript_editor.cpp

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4248,7 +4248,9 @@ static Error _refactor_rename_symbol_match_from_class_loop_nodes(LocalVector<GDS
42484248
_refactor_rename_symbol_add_match(p_path, identifier_node, r_result);
42494249
continue;
42504250
} else if (identifier_node_source_node != nullptr) {
4251-
continue;
4251+
if (identifier_node_source_node->type != p_source_node->type) {
4252+
continue;
4253+
}
42524254
}
42534255

42544256
// Maybe the identifier is in the definition itself of the source, so it doesn't have any source.
@@ -4345,21 +4347,21 @@ static Error _refactor_rename_symbol_match_from_class_loop_nodes(LocalVector<GDS
43454347
if (identifier_node->name != source_node_signal_node->identifier->name) {
43464348
continue;
43474349
}
4348-
GDScriptParser::SignalNode *identifier_signal_node;
4350+
GDScriptParser::SignalNode *identifier_signal_node = nullptr;
43494351
if (identifier_node_source_node) {
4350-
ERR_FAIL_COND_V_MSG(identifier_node_source_node->type != GDScriptParser::Node::SIGNAL, FAILED, "identifier_node_source_node is not of type SIGNAL");
43514352
identifier_signal_node = static_cast<GDScriptParser::SignalNode *>(identifier_node_source_node);
4352-
} else {
4353-
ERR_FAIL_COND_V_MSG(identifier_node_owner->type != GDScriptParser::Node::SIGNAL, FAILED, "identifier_node_owner is not of type SIGNAL");
4354-
identifier_signal_node = static_cast<GDScriptParser::SignalNode *>(identifier_node_owner);
4355-
}
4356-
if (identifier_signal_node != source_node_signal_node) {
4357-
if (identifier_signal_node->current_class->fqcn != source_node_signal_node->current_class->fqcn) {
4358-
continue;
4359-
}
4360-
if (identifier_signal_node->start_line != source_node_signal_node->start_line || identifier_signal_node->start_column != source_node_signal_node->start_column || identifier_signal_node->end_line != source_node_signal_node->end_line || identifier_signal_node->end_column != source_node_signal_node->end_column) {
4353+
} else if (identifier_node_owner) {
4354+
if (identifier_node_owner->type != GDScriptParser::Node::SIGNAL) {
43614355
continue;
43624356
}
4357+
identifier_signal_node = static_cast<GDScriptParser::SignalNode *>(identifier_node_owner);
4358+
} else {
4359+
continue;
4360+
}
4361+
GDScriptParser::ClassNode *identifier_signal_node_owner_class = static_cast<GDScriptParser::ClassNode *>(identifier_signal_node->owner);
4362+
GDScriptParser::ClassNode *source_node_owner_class = static_cast<GDScriptParser::ClassNode *>(source_node_signal_node->owner);
4363+
if (identifier_signal_node_owner_class->fqcn != source_node_owner_class->fqcn) {
4364+
continue;
43634365
}
43644366
_refactor_rename_symbol_add_match(p_path, identifier_node, r_result);
43654367
continue;

0 commit comments

Comments
 (0)