summaryrefslogtreecommitdiff
path: root/vala/valaobjecttype.vala
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2008-10-11 11:03:30 +0000
committerJürg Billeter <juergbi@src.gnome.org>2008-10-11 11:03:30 +0000
commitbdbb1c75d3db6897c257785f3dc710985f4b7f92 (patch)
tree8f13d50fc6cc14b80f6839d8c74794771b74b7cf /vala/valaobjecttype.vala
parente46d2467e0c9178286500c620f4973fe57a62382 (diff)
downloadvala-bdbb1c75d3db6897c257785f3dc710985f4b7f92.tar.gz
Support chaining constructors using `base' and `this'
2008-10-11 Jürg Billeter <j@bitron.ch> * vala/valaclass.vala: * vala/valacreationmethod.vala: * vala/valainterfacewriter.vala: * vala/valaobjecttype.vala: * vala/valasemanticanalyzer.vala: * vala/valastruct.vala: * gobject/valaccodeinvocationexpressionbinding.vala: * gobject/valaccodemethodbinding.vala: * gobject/valagidlwriter.vala: Support chaining constructors using `base' and `this' svn path=/trunk/; revision=1829
Diffstat (limited to 'vala/valaobjecttype.vala')
-rw-r--r--vala/valaobjecttype.vala27
1 files changed, 27 insertions, 0 deletions
diff --git a/vala/valaobjecttype.vala b/vala/valaobjecttype.vala
index 953b4883b..a8aa9dd04 100644
--- a/vala/valaobjecttype.vala
+++ b/vala/valaobjecttype.vala
@@ -71,4 +71,31 @@ public class Vala.ObjectType : ReferenceType {
return type_symbol.is_subtype_of (obj_target_type.type_symbol);
}
+
+ public override bool is_invokable () {
+ var cl = type_symbol as Class;
+ if (cl != null && cl.default_construction_method != null) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public override DataType? get_return_type () {
+ var cl = type_symbol as Class;
+ if (cl != null && cl.default_construction_method != null) {
+ return cl.default_construction_method.return_type;
+ } else {
+ return null;
+ }
+ }
+
+ public override Gee.List<FormalParameter>? get_parameters () {
+ var cl = type_symbol as Class;
+ if (cl != null && cl.default_construction_method != null) {
+ return cl.default_construction_method.get_parameters ();
+ } else {
+ return null;
+ }
+ }
}