diff options
author | Chia-Hsiang Cheng <gary.chiahsiang.cheng@gmail.com> | 2023-08-13 17:27:37 +0800 |
---|---|---|
committer | Chia-Hsiang Cheng <88014292+garychia@users.noreply.github.com> | 2023-09-26 16:47:17 +0800 |
commit | ceda13720bea46d2471eea5be03ced3282ee2063 (patch) | |
tree | 5a30fcd3a1b1d04326900aa72aebe69debca101d /modules/gdscript/gdscript_analyzer.cpp | |
parent | 7e67b496ff7e35f66b88adcbdd5b252d01739cbb (diff) | |
download | redot-engine-ceda13720bea46d2471eea5be03ced3282ee2063.tar.gz |
Check if any global script class is shadowed by a variable
Diffstat (limited to 'modules/gdscript/gdscript_analyzer.cpp')
-rw-r--r-- | modules/gdscript/gdscript_analyzer.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/modules/gdscript/gdscript_analyzer.cpp b/modules/gdscript/gdscript_analyzer.cpp index 92050154b5..469c52dc9d 100644 --- a/modules/gdscript/gdscript_analyzer.cpp +++ b/modules/gdscript/gdscript_analyzer.cpp @@ -5036,7 +5036,11 @@ void GDScriptAnalyzer::is_shadowing(GDScriptParser::IdentifierNode *p_identifier parser->push_warning(p_identifier, GDScriptWarning::SHADOWED_GLOBAL_IDENTIFIER, p_context, name, "built-in function"); return; } else if (ClassDB::class_exists(name)) { - parser->push_warning(p_identifier, GDScriptWarning::SHADOWED_GLOBAL_IDENTIFIER, p_context, name, "global class"); + parser->push_warning(p_identifier, GDScriptWarning::SHADOWED_GLOBAL_IDENTIFIER, p_context, name, "native class"); + return; + } else if (ScriptServer::is_global_class(name)) { + String class_path = ScriptServer::get_global_class_path(name).get_file(); + parser->push_warning(p_identifier, GDScriptWarning::SHADOWED_GLOBAL_IDENTIFIER, p_context, name, vformat(R"(global class defined in "%s")", class_path)); return; } else if (GDScriptParser::get_builtin_type(name) != Variant::VARIANT_MAX) { parser->push_warning(p_identifier, GDScriptWarning::SHADOWED_GLOBAL_IDENTIFIER, p_context, name, "built-in type"); |