summaryrefslogtreecommitdiff
path: root/codegen
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2021-10-25 09:13:51 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2021-10-25 09:15:30 +0200
commit01affa4019bab9c4cc2366cd2224148c1bfb3bea (patch)
treeeb1715d9c17a0d8d05e6d744a35435d6a59a75ea /codegen
parent9c2566584ec7f50715a7490c7d4e112506045585 (diff)
downloadvala-01affa4019bab9c4cc2366cd2224148c1bfb3bea.tar.gz
Revert "Use ErrorType-based collection for CodeNode.get_error_types()"
Unfortunately, it is causing issues with the way the GIR/GIDL parser works. This reverts commit 0751a9e3bf46fc830d3e7ca3d0cfd3ae48846e68.
Diffstat (limited to 'codegen')
-rw-r--r--codegen/valaccodemethodmodule.vala4
-rw-r--r--codegen/valagdbusclientmodule.vala7
-rw-r--r--codegen/valagerrormodule.vala14
3 files changed, 13 insertions, 12 deletions
diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala
index d4f9931ad..840aa14bc 100644
--- a/codegen/valaccodemethodmodule.vala
+++ b/codegen/valaccodemethodmodule.vala
@@ -94,9 +94,9 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule {
}
if (m.has_error_type_parameter ()) {
- var error_types = new ArrayList<ErrorType> ();
+ var error_types = new ArrayList<DataType> ();
m.get_error_types (error_types);
- foreach (var error_type in error_types) {
+ foreach (DataType error_type in error_types) {
generate_type_declaration (error_type, decl_space);
}
diff --git a/codegen/valagdbusclientmodule.vala b/codegen/valagdbusclientmodule.vala
index be102bf55..697b08758 100644
--- a/codegen/valagdbusclientmodule.vala
+++ b/codegen/valagdbusclientmodule.vala
@@ -594,11 +594,12 @@ public class Vala.GDBusClientModule : GDBusModule {
}
// register errors
- var error_types = new ArrayList<ErrorType> ();
+ var error_types = new ArrayList<DataType> ();
m.get_error_types (error_types);
foreach (var error_type in error_types) {
- if (error_type.error_domain != null) {
- ccode.add_expression (new CCodeIdentifier (get_ccode_upper_case_name (error_type.error_domain)));
+ var errtype = (ErrorType) error_type;
+ if (errtype.error_domain != null) {
+ ccode.add_expression (new CCodeIdentifier (get_ccode_upper_case_name (errtype.error_domain)));
}
}
diff --git a/codegen/valagerrormodule.vala b/codegen/valagerrormodule.vala
index 40fee3920..a559a4d00 100644
--- a/codegen/valagerrormodule.vala
+++ b/codegen/valagerrormodule.vala
@@ -203,21 +203,21 @@ public class Vala.GErrorModule : CCodeDelegateModule {
append_local_free (current_symbol, null, current_try);
}
- var error_types = new ArrayList<ErrorType> ();
+ var error_types = new ArrayList<DataType> ();
node.get_error_types (error_types);
bool has_general_catch_clause = false;
if (!is_in_catch) {
- var handled_error_types = new ArrayList<ErrorType> ();
+ var handled_error_types = new ArrayList<DataType> ();
foreach (CatchClause clause in current_try.get_catch_clauses ()) {
// keep track of unhandled error types
- foreach (var node_error_type in error_types) {
+ foreach (DataType node_error_type in error_types) {
if (clause.error_type == null || node_error_type.compatible (clause.error_type)) {
handled_error_types.add (node_error_type);
}
}
- foreach (var handled_error_type in handled_error_types) {
+ foreach (DataType handled_error_type in handled_error_types) {
error_types.remove (handled_error_type);
}
handled_error_types.clear ();
@@ -273,9 +273,9 @@ public class Vala.GErrorModule : CCodeDelegateModule {
// current method can fail, propagate error
CCodeBinaryExpression ccond = null;
- var error_types = new ArrayList<ErrorType> ();
+ var error_types = new ArrayList<DataType> ();
current_method.get_error_types (error_types);
- foreach (var error_type in error_types) {
+ foreach (DataType error_type in error_types) {
// If GLib.Error is allowed we propagate everything
if (error_type.equals (gerror_type)) {
ccond = null;
@@ -284,7 +284,7 @@ public class Vala.GErrorModule : CCodeDelegateModule {
// Check the allowed error domains to propagate
var domain_check = new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY, new CCodeMemberAccess.pointer
- (get_inner_error_cexpression (), "domain"), new CCodeIdentifier (get_ccode_upper_case_name (error_type.error_domain)));
+ (get_inner_error_cexpression (), "domain"), new CCodeIdentifier (get_ccode_upper_case_name (((ErrorType) error_type).error_domain)));
if (ccond == null) {
ccond = domain_check;
} else {