parent
							
								
									7a6491b9b0
								
							
						
					
					
						commit
						093cab6f56
					
				|  | @ -856,10 +856,13 @@ pub fn (mut c Checker) generic_insts_to_concrete() { | |||
| 						} | ||||
| 						typ.is_public = true | ||||
| 						typ.kind = parent.kind | ||||
| 					} | ||||
| 					parent_sym := c.table.get_type_symbol(parent_info.parent_type) | ||||
| 					for method in parent_sym.methods { | ||||
| 						c.table.register_fn_concrete_types(method.name, info.concrete_types) | ||||
| 
 | ||||
| 						parent_sym := c.table.get_type_symbol(parent_info.parent_type) | ||||
| 						for method in parent_sym.methods { | ||||
| 							c.table.register_fn_concrete_types(method.name, info.concrete_types) | ||||
| 						} | ||||
| 					} else { | ||||
| 						util.verror('generic error', 'the number of generic types of struct `$parent.name` is inconsistent with the concrete types') | ||||
| 					} | ||||
| 				} | ||||
| 				ast.Interface { | ||||
|  |  | |||
|  | @ -0,0 +1 @@ | |||
| generic error: the number of generic types of struct `main.Example` is inconsistent with the concrete types | ||||
|  | @ -0,0 +1,11 @@ | |||
| struct Example<T, V> { | ||||
| 	key   T | ||||
| 	value V | ||||
| } | ||||
| 
 | ||||
| fn main() { | ||||
| 	example := Example<string>{ | ||||
| 		key: 'key' | ||||
| 		value: 'value' | ||||
| 	} | ||||
| } | ||||
		Loading…
	
		Reference in New Issue