Kaynağa Gözat

Fix subclass finding in extend statement for sub-sub classes

lookup was always done on top level script instead of advancing to subclass each time.
this commit changes the lookup to always be at last found subclass
Dani Frank 5 yıl önce
ebeveyn
işleme
8f5e424c66
1 değiştirilmiş dosya ile 4 ekleme ve 4 silme
  1. 4 4
      modules/gdscript/gdscript_parser.cpp

+ 4 - 4
modules/gdscript/gdscript_parser.cpp

@@ -5404,12 +5404,12 @@ void GDScriptParser::_determine_inheritance(ClassNode *p_class, bool p_recursive
 
 
 					ident += ("." + subclass);
 					ident += ("." + subclass);
 
 
-					if (base_script->get_subclasses().has(subclass)) {
+					if (find_subclass->get_subclasses().has(subclass)) {
 
 
-						find_subclass = base_script->get_subclasses()[subclass];
-					} else if (base_script->get_constants().has(subclass)) {
+						find_subclass = find_subclass->get_subclasses()[subclass];
+					} else if (find_subclass->get_constants().has(subclass)) {
 
 
-						Ref<GDScript> new_base_class = base_script->get_constants()[subclass];
+						Ref<GDScript> new_base_class = find_subclass->get_constants()[subclass];
 						if (new_base_class.is_null()) {
 						if (new_base_class.is_null()) {
 							_set_error("Constant isn't a class: " + ident, p_class->line);
 							_set_error("Constant isn't a class: " + ident, p_class->line);
 							return;
 							return;