|
@@ -2563,8 +2563,14 @@ void GDScriptAnalyzer::reduce_call(GDScriptParser::CallNode *p_call, bool p_is_a
|
|
|
parser->push_warning(p_call, GDScriptWarning::RETURN_VALUE_DISCARDED, p_call->function_name);
|
|
|
}
|
|
|
|
|
|
- if (is_static && !base_type.is_meta_type && !(callee_type != GDScriptParser::Node::SUBSCRIPT && parser->current_function != nullptr && parser->current_function->is_static)) {
|
|
|
- parser->push_warning(p_call, GDScriptWarning::STATIC_CALLED_ON_INSTANCE, p_call->function_name, base_type.to_string());
|
|
|
+ if (is_static && !base_type.is_meta_type && !(is_self && parser->current_function != nullptr && parser->current_function->is_static)) {
|
|
|
+ String caller_type = String(base_type.native_type);
|
|
|
+
|
|
|
+ if (caller_type.is_empty()) {
|
|
|
+ caller_type = base_type.to_string();
|
|
|
+ }
|
|
|
+
|
|
|
+ parser->push_warning(p_call, GDScriptWarning::STATIC_CALLED_ON_INSTANCE, p_call->function_name, caller_type);
|
|
|
}
|
|
|
#endif // DEBUG_ENABLED
|
|
|
|