slint/internal/compiler/tests/syntax/basic/linear-gradient.slint
Olivier Goffart 7290049a17 Fix panic parsing invalid linear grandient
If the last position expression is invalid due to an unrelated error,
the code that tries to do the interpolation was panicking with the
message "The last should never be invalid". (Because it assumed that
invalid meant that it was not set, and we added a 100% for that last
one if it wasn't set. But if it is set and invalid, this would error.)
2023-01-27 13:56:48 +01:00

30 lines
1.9 KiB
Text

// Copyright © SixtyFPS GmbH <info@slint-ui.com>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-commercial
export X := Rectangle {
property<brush> g1: @linear-gradient();
// ^error{Expected angle expression}
property<brush> g2: @linear-gradient(to left, blue, red);
// ^error{Angle expression must be an angle followed by a comma}
property<brush> g3: @linear-gradient(0deg, blue, red);
property<brush> g4: @linear-gradient(45deg, blue 45%, red red);
// ^error{Cannot convert color to float}
property<brush> g5: @linear-gradient(128deg, blue 45%, red);
property<brush> g6: @linear-gradient(90deg, blue 45%, red 88%);
property<brush> g7: @linear-gradient(90deg, 42 45%, red 0.3);
// ^error{Cannot convert float to color}
property<brush> g8: @linear-gradient(90deg, blue red green);
// ^error{Cannot convert color to float}
// ^^error{Expected comma}
property<brush> g9: @linear-gradient(0deg blue, blue, red);
// ^error{Angle expression must be an angle followed by a comma}
property<brush> g10: @linear-gradient(90deg, blue 10% red 20%, yellow);
// ^error{Expected comma}
property<brush> g11: @linear-gradient(20deg,);
property<brush> g12: @linear-gradient(2, blue 45%, red 88%);
// ^error{Cannot convert float to angle. Use an unit, or multiply by 1deg to convert explicitly}
property<brush> g13: @linear-gradient(90deg + 0.5turn, true ? blue : red 45%, red 88% + 0.1);
property<brush> g14: @linear-gradient(-128deg, white, blue r);
// ^error{Unknown unqualified identifier 'r'}
}