mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 13:41:03 +00:00 
			
		
		
		
	Allow to extends constant class variable
This commit is contained in:
		
							parent
							
								
									290b32ee57
								
							
						
					
					
						commit
						2004c24a6e
					
				
					 2 changed files with 51 additions and 9 deletions
				
			
		|  | @ -1537,21 +1537,44 @@ Error GDCompiler::_parse_class(GDScript *p_script, GDScript *p_owner, const GDPa | |||
| 					base_class = p->subclasses[base]; | ||||
| 					break; | ||||
| 				} | ||||
| 
 | ||||
| 				if (p->constants.has(base)) { | ||||
| 
 | ||||
| 					base_class = p->constants[base]; | ||||
| 					if (base_class.is_null()) { | ||||
| 						_set_error("Constant not a class: " + base, p_class); | ||||
| 						return ERR_SCRIPT_FAILED; | ||||
| 					} | ||||
| 					break; | ||||
| 				} | ||||
| 
 | ||||
| 				p = p->_owner; | ||||
| 			} | ||||
| 
 | ||||
| 			if (base_class.is_valid()) { | ||||
| 
 | ||||
| 				String ident = base; | ||||
| 
 | ||||
| 				for (int i = 1; i < p_class->extends_class.size(); i++) { | ||||
| 
 | ||||
| 					String subclass = p_class->extends_class[i]; | ||||
| 
 | ||||
| 					ident += ("." + subclass); | ||||
| 
 | ||||
| 					if (base_class->subclasses.has(subclass)) { | ||||
| 
 | ||||
| 						base_class = base_class->subclasses[subclass]; | ||||
| 					} else if (base_class->constants.has(subclass)) { | ||||
| 
 | ||||
| 						Ref<GDScript> base = base_class->constants[subclass]; | ||||
| 						if (base.is_null()) { | ||||
| 							_set_error("Constant not a class: " + ident, p_class); | ||||
| 							return ERR_SCRIPT_FAILED; | ||||
| 						} | ||||
| 						base_class = base; | ||||
| 					} else { | ||||
| 
 | ||||
| 						_set_error("Could not find subclass: " + subclass, p_class); | ||||
| 						_set_error("Could not find subclass: " + ident, p_class); | ||||
| 						return ERR_FILE_NOT_FOUND; | ||||
| 					} | ||||
| 				} | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 sanikoyes
						sanikoyes