language: Change extern type syntax

Use a '$' instead of a '.' to indicate a type provided in application
code.

The reason for the change is to have a consistent "extern" symbol that
isn't widely used elsewhere and isn't ambiguous in expressions.
This commit is contained in:
James Westman 2022-12-25 16:11:17 -06:00
parent be284de879
commit 0b402db4d5
No known key found for this signature in database
GPG key ID: CE2DBA0ADB654EA6
11 changed files with 41 additions and 13 deletions

View file

@ -0,0 +1,5 @@
using Gtk 4.0;
.MyClass {
prop: typeof(.MyOtherClass);
}

View file

@ -0,0 +1,2 @@
3,1,8,Use the '$' extern syntax introduced in blueprint 0.8.0
4,16,13,Use the '$' extern syntax introduced in blueprint 0.8.0

View file

@ -7,5 +7,5 @@ Gio.ListStore {
}
Gio.ListStore {
item-type: typeof(.MyObject);
item-type: typeof($MyObject);
}

View file

@ -1,7 +1,7 @@
using Gtk 4.0;
.MyComponent component {
.MyComponent2 {
$MyComponent component {
$MyComponent2 {
flags-value: a | b;
}
}

View file

@ -1,7 +1,7 @@
using Gtk 4.0;
.MyComponent component {
.MyComponent2 {
$MyComponent component {
$MyComponent2 {
flags-value: "a|b";
}
}

View file

@ -236,6 +236,7 @@ class TestSamples(unittest.TestCase):
self.assert_sample_error("two_templates")
self.assert_sample_error("uint")
self.assert_sample_error("using_invalid_namespace")
self.assert_sample_error("warn_old_extern")
self.assert_sample_error("widgets_in_non_size_group")
def test_decompiler(self):