1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
From: Rico Tzschichholz <ricotz@ubuntu.com>
Date: Thu, 6 Feb 2020 09:04:39 +0100
Subject: language-support-vala: Support for vala 0.48 API
(cherry picked from commit 56d2487cb26f90fd850d6fab47e0ec33e229ed1c)
---
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 4969429..d94634c 100644
--- a/plugins/language-support-vala/plugin.vala
+++ b/plugins/language-support-vala/plugin.vala
@@ -418,11 +418,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 ());
@@ -567,6 +575,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;
@@ -584,32 +601,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;
|