From: Rico Tzschichholz Date: Tue, 27 Jul 2021 12:34:39 +0000 (+0200) Subject: girparser: Add support for "final" class attribute X-Git-Tag: 0.50.10~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a325e89242b234b5453499bfdf499bfb9402824a;p=thirdparty%2Fvala.git girparser: Add support for "final" class attribute --- diff --git a/tests/Makefile.am b/tests/Makefile.am index 7d7a68da6..71ebe31bd 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -735,6 +735,7 @@ TESTS = \ gir/async-result-pos.test \ gir/async-sync-out.test \ gir/class.test \ + gir/class-final.test \ gir/constant.test \ gir/delegate-alias-without-target.test \ gir/delegate-anonymous.test \ diff --git a/tests/gir/class-final.test b/tests/gir/class-final.test new file mode 100644 index 000000000..51449f3f0 --- /dev/null +++ b/tests/gir/class-final.test @@ -0,0 +1,27 @@ +GIR + +Input: + + + + + + + + + + + + +Output: + +[CCode (cheader_filename = "test.h", type_id = "test_bar_get_type ()")] +public sealed class Bar : Test.Foo { + [CCode (has_construct_function = false)] + protected Bar (); +} +[CCode (cheader_filename = "test.h", type_id = "test_foo_get_type ()")] +public class Foo : GLib.Object { + [CCode (has_construct_function = false)] + protected Foo (); +} diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index ad0dbf69d..3c11f8494 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -2973,7 +2973,7 @@ public class Vala.GirParser : CodeVisitor { if (current.new_symbol) { cl = new Class (current.name, current.source_reference); cl.is_abstract = metadata.get_bool (ArgumentType.ABSTRACT, reader.get_attribute ("abstract") == "1"); - cl.is_sealed = metadata.get_bool (ArgumentType.SEALED, false); + cl.is_sealed = metadata.get_bool (ArgumentType.SEALED, reader.get_attribute ("final") == "1"); if (metadata.has_argument (ArgumentType.TYPE_GET_FUNCTION)) { cl.set_attribute_string ("CCode", "type_get_function", metadata.get_string (ArgumentType.TYPE_GET_FUNCTION)); }