| 
									
										
										
										
											2025-06-19 04:53:15 -07:00
										 |  |  | @abstract class A: | 
					
						
							|  |  |  | 	@abstract func get_text_1() -> String | 
					
						
							|  |  |  | 	@abstract func get_text_2() -> String | 
					
						
							| 
									
										
										
										
											2025-05-14 22:52:19 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	# No `UNUSED_PARAMETER` warning. | 
					
						
							| 
									
										
										
										
											2025-06-19 04:53:15 -07:00
										 |  |  | 	@abstract func func_with_param(param: int) -> int | 
					
						
							|  |  |  | 	@abstract func func_with_rest_param(...args: Array) -> int | 
					
						
							|  |  |  | 	@abstract func func_with_semicolon() -> int; | 
					
						
							|  |  |  | 	@abstract func func_1() -> int; @abstract func func_2() -> int | 
					
						
							|  |  |  | 	@abstract func func_without_return_type() | 
					
						
							| 
									
										
										
										
											2025-05-14 22:52:19 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	func print_text_1() -> void: | 
					
						
							|  |  |  | 		print(get_text_1()) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-19 04:53:15 -07:00
										 |  |  | @abstract class B extends A: | 
					
						
							| 
									
										
										
										
											2025-05-14 22:52:19 +03:00
										 |  |  | 	func get_text_1() -> String: | 
					
						
							|  |  |  | 		return "text_1b" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	func print_text_2() -> void: | 
					
						
							|  |  |  | 		print(get_text_2()) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class C extends B: | 
					
						
							|  |  |  | 	func get_text_2() -> String: | 
					
						
							|  |  |  | 		return "text_2c" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	func func_with_param(param: int) -> int: return param | 
					
						
							| 
									
										
										
										
											2025-03-30 12:59:05 +03:00
										 |  |  | 	func func_with_rest_param(...args: Array) -> int: return args.size() | 
					
						
							| 
									
										
										
										
											2025-05-14 22:52:19 +03:00
										 |  |  | 	func func_with_semicolon() -> int: return 0 | 
					
						
							|  |  |  | 	func func_1() -> int: return 0 | 
					
						
							|  |  |  | 	func func_2() -> int: return 0 | 
					
						
							|  |  |  | 	func func_without_return_type(): pass | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-19 04:53:15 -07:00
										 |  |  | @abstract class D extends C: | 
					
						
							|  |  |  | 	@abstract func get_text_1() -> String | 
					
						
							| 
									
										
										
										
											2025-05-14 22:52:19 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	func get_text_2() -> String: | 
					
						
							|  |  |  | 		return super() + " text_2d" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class E extends D: | 
					
						
							|  |  |  | 	func get_text_1() -> String: | 
					
						
							|  |  |  | 		return "text_1e" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func test(): | 
					
						
							|  |  |  | 	var c := C.new() | 
					
						
							|  |  |  | 	c.print_text_1() | 
					
						
							|  |  |  | 	c.print_text_2() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	var e := E.new() | 
					
						
							|  |  |  | 	e.print_text_1() | 
					
						
							|  |  |  | 	e.print_text_2() |