slint/internal/compiler/tests/syntax/lookup/two_way_binding_infer.slint
Olivier Goffart 57e9b5b796 Don't panic when an unresolved alias has a binding
Fixes #3085

When there are both a binding and a two way binding, we must keep the
two way binding in our bindings map. Otherwise type inference will not
work
2023-07-14 14:13:48 +02:00

32 lines
1.2 KiB
Text

// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.1 OR LicenseRef-Slint-commercial
export X := Rectangle {
property infer_loop <=> infer_loop2;
// ^error{Could not infer type of property 'infer-loop'}
property infer_loop2 <=> infer_loop3;
// ^error{Could not infer type of property 'infer-loop2'}
property infer_loop3 <=> infer_loop;
// ^error{Could not infer type of property 'infer-loop3'}
// ^^error{Unknown unqualified identifier 'infer_loop'}
property infer_error <=> r.infer_error;
// ^error{Could not infer type of property 'infer-error'}
r := Rectangle {
property infer_error <=> 0;
// ^error{The expression in a two way binding must be a property reference}
// ^^error{Could not infer type of property 'infer-error'}
}
property auto_background <=> background;
property <string> alias_to_background <=> auto_background;
// ^error{The property does not have the same type as the bound property}
property abc <=> self.opacity;
abc: "eee";
// ^error{Duplicated property binding}
}