summaryrefslogtreecommitdiff
path: root/vala/valagirparser.vala
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2023-04-16 14:24:25 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2023-04-16 14:24:25 +0200
commit46b5b957df1eca5379774348a13f0a6847cdf7da (patch)
tree833155b46a300958c5ff828b51808b2689099294 /vala/valagirparser.vala
parent98798fe207759a932831ee4f5d4bd36a698e92a6 (diff)
downloadvala-46b5b957df1eca5379774348a13f0a6847cdf7da.tar.gz
girparser: Classes are considered sealed when there were no fields found
Fixes https://gitlab.gnome.org/GNOME/vala/issues/1036
Diffstat (limited to 'vala/valagirparser.vala')
-rw-r--r--vala/valagirparser.vala10
1 files changed, 10 insertions, 0 deletions
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
index 70206da6c..d86e19f16 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -3137,6 +3137,16 @@ public class Vala.GirParser : CodeVisitor {
pop_metadata ();
}
+ // There is no instance field therefore this type might be final/sealed
+ if (first_field && !cl.is_abstract && !(cl.is_opaque || cl.is_sealed)) {
+ if (!cl.is_compact
+ && !metadata.has_argument (ArgumentType.ABSTRACT)
+ && !metadata.has_argument (ArgumentType.COMPACT)
+ && !metadata.has_argument (ArgumentType.SEALED)) {
+ cl.is_sealed = true;
+ }
+ }
+
pop_node ();
end_element ("class");
}