mirror of
				https://github.com/slint-ui/slint.git
				synced 2025-11-03 21:24:17 +00:00 
			
		
		
		
	Also properly error out when the number of arguments to a callback alias is not correct Fixes #7806
		
			
				
	
	
		
			38 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
// Copyright © SixtyFPS GmbH <info@slint.dev>
 | 
						|
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
 | 
						|
 | 
						|
Sub := Rectangle {
 | 
						|
    callback compute(int) -> int;
 | 
						|
    callback compute_alias <=> compute;
 | 
						|
}
 | 
						|
 | 
						|
export Xxx := Rectangle {
 | 
						|
 | 
						|
    foo := Rectangle {
 | 
						|
        callback hello(int) -> int;
 | 
						|
    }
 | 
						|
 | 
						|
    callback colr <=> foo.background;
 | 
						|
//  ^error{Binding to callback 'colr' must bind to another callback}
 | 
						|
    property propr <=> foo.hello;
 | 
						|
//  ^error{Could not infer type of property 'propr'}
 | 
						|
 | 
						|
    callback loop1 <=> loop2;
 | 
						|
    callback loop3 <=> loop1;
 | 
						|
//                     ^error{Unknown unqualified identifier 'loop1'}
 | 
						|
//  ^^error{Binding to callback 'loop3' must bind to another callback}
 | 
						|
    callback loop2 <=> loop3;
 | 
						|
 | 
						|
    Sub {
 | 
						|
        compute_alias(a, b, c) => {
 | 
						|
//      ^error{'compute-alias' only has 1 arguments, but 3 were provided}
 | 
						|
            debug(b);
 | 
						|
//                ^error{Unknown unqualified identifier 'b'}
 | 
						|
            return "hello";
 | 
						|
//          ^error{Cannot convert string to int}
 | 
						|
        }
 | 
						|
 | 
						|
        callback x <=> compute_alias;
 | 
						|
//               ^error{Cannot declare callback 'x' when a property with the same name exists}
 | 
						|
    }
 | 
						|
}
 |