[vala/0.50] vala: Report an error if gio-2.0 is missing for DBus support



commit ffec96eff16233ecde86dbde4378dca7befbfcde
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Thu Dec 3 19:44:06 2020 +0100

    vala: Report an error if gio-2.0 is missing for DBus support

 vala/valaclass.vala            |  4 ++++
 vala/valainterface.vala        |  4 ++++
 vala/valaobjecttypesymbol.vala | 13 +++++++++++++
 3 files changed, 21 insertions(+)
---
diff --git a/vala/valaclass.vala b/vala/valaclass.vala
index 3d7fee98c..33e9b113e 100644
--- a/vala/valaclass.vala
+++ b/vala/valaclass.vala
@@ -522,6 +522,10 @@ public class Vala.Class : ObjectTypeSymbol {
                        return !error;
                }
 
+               if (!base.check (context)) {
+                       return false;
+               }
+
                checked = true;
 
                var old_source_file = context.analyzer.current_source_file;
diff --git a/vala/valainterface.vala b/vala/valainterface.vala
index e46b379d1..8da00f446 100644
--- a/vala/valainterface.vala
+++ b/vala/valainterface.vala
@@ -156,6 +156,10 @@ public class Vala.Interface : ObjectTypeSymbol {
                        return !error;
                }
 
+               if (!base.check (context)) {
+                       return false;
+               }
+
                checked = true;
 
                var old_source_file = context.analyzer.current_source_file;
diff --git a/vala/valaobjecttypesymbol.vala b/vala/valaobjecttypesymbol.vala
index c79df83a3..c771f8541 100644
--- a/vala/valaobjecttypesymbol.vala
+++ b/vala/valaobjecttypesymbol.vala
@@ -375,4 +375,17 @@ public abstract class Vala.ObjectTypeSymbol : TypeSymbol {
                        d.accept (visitor);
                }
        }
+
+       public override bool check (CodeContext context) {
+               if (checked) {
+                       return !error;
+               }
+
+               if (!external_package && get_attribute ("DBus") != null && !context.has_package ("gio-2.0")) {
+                       error = true;
+                       Report.error (source_reference, "gio-2.0 package required for DBus support");
+               }
+
+               return !error;
+       }
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]