diff options
author | Jared Moore <jaredm@svn.gnome.org> | 2008-07-17 02:38:06 +0000 |
---|---|---|
committer | Jared William Moore <jaredm@src.gnome.org> | 2008-07-17 02:38:06 +0000 |
commit | c13f6140d69eaac6dabc864fe6f55133796ff015 (patch) | |
tree | 3d92b48620990e93a287f6b310925c4631128f5c /vapigen | |
parent | ebb4529f104697c10a46f4bca4811b62461773e9 (diff) | |
download | vala-c13f6140d69eaac6dabc864fe6f55133796ff015.tar.gz |
Added 'type_name' metadata to function to override its return type.
2008-07-17 Jared Moore <jaredm@svn.gnome.org>
* vapigen/valagidlparser.vala:
Added 'type_name' metadata to function to override its return type.
* vapi/packages/gtk+-2.0/gtk+-2.0.metadata
Changed gtk_selection_data_get_text to return a string, fixes bug
540663.
* vapi/gtk+-2.0.vapi:
Regenerated.
svn path=/trunk/; revision=1703
Diffstat (limited to 'vapigen')
-rw-r--r-- | vapigen/valagidlparser.vala | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala index 2b39443f2..85de85f96 100644 --- a/vapigen/valagidlparser.vala +++ b/vapigen/valagidlparser.vala @@ -1329,7 +1329,15 @@ public class Vala.GIdlParser : CodeVisitor { m.no_array_length = true; } } else if (nv[0] == "type_name") { - ((UnresolvedType) return_type).unresolved_symbol = new UnresolvedSymbol (null, eval (nv[1])); + var sym = new UnresolvedSymbol (null, eval (nv[1])); + if (return_type is UnresolvedType) { + ((UnresolvedType) return_type).unresolved_symbol = sym; + } else { + // Overwrite old return_type, so "type_name" must be before any + // other return type modifying metadata + m.return_type = return_type = new UnresolvedType.from_symbol (sym, return_type.source_reference); + } + } } else if (nv[0] == "type_arguments") { var type_args = eval (nv[1]).split (","); foreach (string type_arg in type_args) { |