mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-04 07:31:16 +00:00 
			
		
		
		
	Merge pull request #56830 from strank/parent-signals
This commit is contained in:
		
						commit
						79bbe57244
					
				
					 1 changed files with 13 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -294,8 +294,11 @@ GDScriptCodeGenerator::Address GDScriptCompiler::_parse_expression(CodeGen &code
 | 
			
		|||
 | 
			
		||||
			// Try signals and methods (can be made callables).
 | 
			
		||||
			{
 | 
			
		||||
				if (codegen.class_node->members_indices.has(identifier)) {
 | 
			
		||||
					const GDScriptParser::ClassNode::Member &member = codegen.class_node->members[codegen.class_node->members_indices[identifier]];
 | 
			
		||||
				// Search upwards through parent classes:
 | 
			
		||||
				const GDScriptParser::ClassNode *base_class = codegen.class_node;
 | 
			
		||||
				while (base_class != nullptr) {
 | 
			
		||||
					if (base_class->has_member(identifier)) {
 | 
			
		||||
						const GDScriptParser::ClassNode::Member &member = base_class->get_member(identifier);
 | 
			
		||||
						if (member.type == GDScriptParser::ClassNode::Member::FUNCTION || member.type == GDScriptParser::ClassNode::Member::SIGNAL) {
 | 
			
		||||
							// Get like it was a property.
 | 
			
		||||
							GDScriptCodeGenerator::Address temp = codegen.add_temporary(); // TODO: Get type here.
 | 
			
		||||
| 
						 | 
				
			
			@ -305,6 +308,8 @@ GDScriptCodeGenerator::Address GDScriptCompiler::_parse_expression(CodeGen &code
 | 
			
		|||
							return temp;
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					base_class = base_class->base_type.class_type;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				// Try in native base.
 | 
			
		||||
				GDScript *scr = codegen.script;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue