mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
Fix gdscript analyzer error when instantiating EditorPlugins.
Editor code is not instantiable outside of the editor
(1d14c054a1/core/object/class_db.cpp (L369)
).
This is fine for editor plugins and the like, but the GDScript analyzer
balks at it, causing F5 runs to fail: #73525.
Instead, we really just want to know if the type is abstract - so add
a new ClassDB method to check that and nothing else.
Update core/object/class_db.cpp
Apply code review comments
Co-Authored-By: Bryce <1522777+baptr@users.noreply.github.com>
This commit is contained in:
parent
e6448ca0aa
commit
810fcc7431
3 changed files with 17 additions and 1 deletions
|
@ -5180,7 +5180,7 @@ bool GDScriptAnalyzer::get_function_signature(GDScriptParser::Node *p_source, bo
|
|||
if (!class_exists(base_native)) {
|
||||
push_error(vformat("Native class %s used in script doesn't exist or isn't exposed.", base_native), p_source);
|
||||
return false;
|
||||
} else if (p_is_constructor && !ClassDB::can_instantiate(base_native)) {
|
||||
} else if (p_is_constructor && ClassDB::is_abstract(base_native)) {
|
||||
if (p_base_type.kind == GDScriptParser::DataType::CLASS) {
|
||||
push_error(vformat(R"(Class "%s" cannot be constructed as it is based on abstract native class "%s".)", p_base_type.class_type->fqcn.get_file(), base_native), p_source);
|
||||
} else if (p_base_type.kind == GDScriptParser::DataType::SCRIPT) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue