[anjuta/wip/ricotz/vala: 3/4] language-support-vala: Support for vala 0.48 API



commit 56d2487cb26f90fd850d6fab47e0ec33e229ed1c
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Thu Feb 6 09:04:39 2020 +0100

    language-support-vala: Support for vala 0.48 API

 plugins/language-support-vala/plugin.vala | 33 +++++++++++++++++++++++--------
 1 file changed, 25 insertions(+), 8 deletions(-)
---
diff --git a/plugins/language-support-vala/plugin.vala b/plugins/language-support-vala/plugin.vala
index 13d35fec4..718d74cc8 100644
--- a/plugins/language-support-vala/plugin.vala
+++ b/plugins/language-support-vala/plugin.vala
@@ -414,11 +414,19 @@ public class ValaPlugin : Plugin, IAnjuta.Preferences {
                        builder.append_printf ("%s sender", widget.get_full_name ());
 
                        foreach (var param in sig.get_parameters ()) {
+#if VALA_0_48
+                               builder.append_printf (", %s %s", 
param.variable_type.type_symbol.get_full_name (), param.name);
+#else
                                builder.append_printf (", %s %s", param.variable_type.data_type.get_full_name 
(), param.name);
+#endif
                        }
                } else {
                        foreach (var param in sig.get_parameters ()) {
+#if VALA_0_48
+                               builder.append_printf ("%s %s, ", 
param.variable_type.type_symbol.get_full_name (), param.name);
+#else
                                builder.append_printf ("%s %s, ", param.variable_type.data_type.get_full_name 
(), param.name);
+#endif
                        }
 
                        builder.append_printf ("%s sender", widget.get_full_name ());
@@ -563,6 +571,15 @@ public class ValaPlugin : Plugin, IAnjuta.Preferences {
                }
                return matching_symbols;
        }
+
+       inline List<Vala.Symbol> symbol_lookup_inherited_for_type (Vala.DataType data_type, string name, bool 
prefix_match, bool invocation = false) {
+#if VALA_0_48
+               return symbol_lookup_inherited (data_type.type_symbol, name, prefix_match, invocation);
+#else
+               return symbol_lookup_inherited (data_type.data_type, name, prefix_match, invocation);
+#endif
+       }
+
        List<Vala.Symbol> symbol_lookup_inherited (Vala.Symbol? sym, string name, bool prefix_match, bool 
invocation = false) {
                List<Vala.Symbol> result = null;
 
@@ -580,32 +597,32 @@ public class ValaPlugin : Plugin, IAnjuta.Preferences {
                }
                if (invocation && sym is Vala.Method) {
                        var func = (Vala.Method) sym;
-                       result.concat (symbol_lookup_inherited (func.return_type.data_type, name, 
prefix_match));
+                       result.concat (symbol_lookup_inherited_for_type (func.return_type, name, 
prefix_match));
                } else if (sym is Vala.Class) {
                        var cl = (Vala.Class) sym;
                        foreach (var base_type in cl.get_base_types ()) {
-                               result.concat (symbol_lookup_inherited (base_type.data_type, name, 
prefix_match));
+                               result.concat (symbol_lookup_inherited_for_type (base_type, name, 
prefix_match));
                        }
                } else if (sym is Vala.Struct) {
                        var st = (Vala.Struct) sym;
-                       result.concat (symbol_lookup_inherited (st.base_type.data_type, name, prefix_match));
+                       result.concat (symbol_lookup_inherited_for_type (st.base_type, name, prefix_match));
                } else if (sym is Vala.Interface) {
                        var iface = (Vala.Interface) sym;
                        foreach (var prerequisite in iface.get_prerequisites ()) {
-                               result.concat (symbol_lookup_inherited (prerequisite.data_type, name, 
prefix_match));
+                               result.concat (symbol_lookup_inherited_for_type (prerequisite, name, 
prefix_match));
                        }
                } else if (sym is Vala.LocalVariable) {
                        var variable = (Vala.LocalVariable) sym;
-                       result.concat (symbol_lookup_inherited (variable.variable_type.data_type, name, 
prefix_match));
+                       result.concat (symbol_lookup_inherited_for_type (variable.variable_type, name, 
prefix_match));
                } else if (sym is Vala.Field) {
                        var field = (Vala.Field) sym;
-                       result.concat (symbol_lookup_inherited (field.variable_type.data_type, name, 
prefix_match));
+                       result.concat (symbol_lookup_inherited_for_type (field.variable_type, name, 
prefix_match));
                } else if (sym is Vala.Property) {
                        var prop = (Vala.Property) sym;
-                       result.concat (symbol_lookup_inherited (prop.property_type.data_type, name, 
prefix_match));
+                       result.concat (symbol_lookup_inherited_for_type (prop.property_type, name, 
prefix_match));
                } else if (sym is Vala.Parameter) {
                        var fp = (Vala.Parameter) sym;
-                       result.concat (symbol_lookup_inherited (fp.variable_type.data_type, name, 
prefix_match));
+                       result.concat (symbol_lookup_inherited_for_type (fp.variable_type, name, 
prefix_match));
                }
 
                return result;


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