[vala] girparser: support return_void metadata argument
- From: Evan Nemerson <evann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala] girparser: support return_void metadata argument
- Date: Wed, 28 May 2014 20:22:18 +0000 (UTC)
commit beff49b10b7101154fd99620940034fec0d4bb02
Author: Evan Nemerson <evan nemerson com>
Date: Sun May 25 19:39:48 2014 -0700
girparser: support return_void metadata argument
This allows us to generate backwards compatible signatures for
functions with a void return value and a single out param for a struct
from metadata files instead of resorting to *-custom.vala.
vala/valagirparser.vala | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
---
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
index b99cd51..d60dffb 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -78,7 +78,8 @@ public class Vala.GirParser : CodeVisitor {
INSTANCE_IDX,
EXPERIMENTAL,
FLOATING,
- TYPE_ID;
+ TYPE_ID,
+ RETURN_VOID;
public static ArgumentType? from_string (string name) {
var enum_class = (EnumClass) typeof(ArgumentType).class_ref ();
@@ -3440,8 +3441,10 @@ public class Vala.GirParser : CodeVisitor {
if (last_param.param.variable_type is UnresolvedType) {
var st = resolve_symbol (node.parent, ((UnresolvedType)
last_param.param.variable_type).unresolved_symbol) as Struct;
if (st != null && !st.is_simple_type () &&
!last_param.param.variable_type.nullable) {
- last_param.keep = false;
- return_type = last_param.param.variable_type.copy ();
+ if (!node.metadata.get_bool
(ArgumentType.RETURN_VOID, false)) {
+ last_param.keep = false;
+ return_type =
last_param.param.variable_type.copy ();
+ }
}
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]