slint/internal/compiler/tests/syntax/expressions/minmax.slint
Olivier Goffart f31cefdea9
Fix min/max/clamp in presence of percentages
We were not properly converting the first argument

Fixes #7118
2024-12-16 18:44:55 +01:00

33 lines
1.3 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
global Plop := {
property <int> x: max;
// ^error{Builtin function must be called}
}
export SuperSimple := Rectangle {
property <int> a: max + max() + max(45, "hello");
// ^error{Builtin function must be called}
// ^^error{Needs at least one argument}
// ^^^error{Invalid argument type}
property <length> b: max(41px, 41phx);
property <string> c: max("a", "b");
// ^error{Invalid argument type}
property <int> d: min + min() + min(45, "hello");
// ^error{Builtin function must be called}
// ^^error{Needs at least one argument}
// ^^^error{Invalid argument type}
property <length> e: min(41px, 41phx);
property <string> f: min("a", "b");
// ^error{Invalid argument type}
property <int> g: min(42, 42, 42cm);
// ^error{Cannot convert float to length}
// ^^error{Cannot convert float to length}
property <int> h: min(42, 42 + 1) + max(1px , 2phx);
// ^error{Cannot convert float to length}
}