slint/internal/compiler/tests/syntax/lookup/dashes.slint
Olivier Goffart 12393e21bd
syntax_tests: allow to update tests, and don't use a regexp (#8589)
* syntax_tests: allow to "bless" tests, and don't use a regexp

A regexp was used at the beginning because I thought we would want to
allow error to contains things that were not predictable or that would
often change. But this is not the case¹. It is better to actually test
for the full error message

¹ well actually it was the case for path, but there is another substitution to 
 `📂` for the manifest directory

* syntax_tests: Bless the tests

* syntax_tests: Manual adjust after bless

Because there used to be comments on the same line of the message which
bless don't support

* Fix error message with path on windows

 - The debug implementation of path make double slash, that's not what
   we want to show the user
 - normalize paths to use `/` so the test passes
2025-06-02 16:47:33 +02:00

41 lines
1.9 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
export Xxx := Rectangle {
// ^warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
my-rect := Rectangle {
border-width: 44px;
}
property <length> x1: my-rect.width;
property <length> x2: my-rect.width-1px;
// ^error{Element 'Rectangle' does not have a property 'width-1px'. Use space before the '-' if you meant a subtraction}
property <length> x3: my_rect.border-width;
property <length> x4: my_rect.border_width-1px;
// ^error{Element 'Rectangle' does not have a property 'border_width-1px'. Use space before the '-' if you meant a subtraction}
property <{a-b: string, d-c: string, e_f: string, xx: { hello: int, world: int }}> obj: {a_b: "hello", d-c: "world", e-f: "!"};
property<int> t1: -obj.xx-42;
// ^error{Cannot access the field 'xx-42'. Use space before the '-' if you meant a subtraction}
property<int> t2: -obj.xx.hello-world;
// ^error{Cannot access the field 'hello-world'. Use space before the '-' if you meant a subtraction}
property<int> t3: x-4;
// ^error{Unknown unqualified identifier 'x-4'. Use space before the '-' if you meant a subtraction}
// the following did not mean subtraction:
property<int> t4: foo-bar;
// ^error{Unknown unqualified identifier 'foo-bar'}
property<int> t5: x_y;
// ^error{Unknown unqualified identifier 'x_y'}
property<int> t6: obj.a-bc;
// ^error{Cannot access the field 'a-bc'}
property<int> t7: obj.xx.obj-4;
// ^error{Cannot access the field 'obj-4'}
}