]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Add base_struct property to Struct class, patch by Andreas Brauchli
authorJürg Billeter <j@bitron.ch>
Thu, 12 Feb 2009 16:23:29 +0000 (16:23 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Thu, 12 Feb 2009 16:23:29 +0000 (16:23 +0000)
2009-02-12  Jürg Billeter  <j@bitron.ch>

* vala/valastruct.vala:
* vala/valasymbolresolver.vala:

Add base_struct property to Struct class, patch by Andreas Brauchli

svn path=/trunk/; revision=2436

ChangeLog
vala/valastruct.vala
vala/valasymbolresolver.vala

index 9d28ad23fa52538753a536b9e17c80c7a65ea609..854bbaa830ee0397af22cd4e4de2ea9fed8efb7f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-02-12  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valastruct.vala:
+       * vala/valasymbolresolver.vala:
+
+       Add base_struct property to Struct class, patch by Andreas Brauchli
+
 2009-02-12  Jürg Billeter  <j@bitron.ch>
 
        * vala/valamember.vala:
index 1546af10b2440f0ef49974dc3927ae34a60e30b3..d517aba658d7f05becf469f4f07ba953f0776fe2 100644 (file)
@@ -51,7 +51,7 @@ public class Vala.Struct : TypeSymbol {
        private string destroy_function;
 
        /**
-        * Specifies the base struct.
+        * Specifies the base type.
         */
        public DataType? base_type {
                get {
@@ -63,6 +63,18 @@ public class Vala.Struct : TypeSymbol {
                }
        }
 
+       /**
+        * Specifies the base Struct.
+        */
+       public Struct? base_struct {
+               get {
+                       if (_base_type != null) {
+                               return _base_type.data_type as Struct;
+                       }
+                       return null;
+               }
+       }
+
        /**
         * Specifies the default construction method.
         */
@@ -293,7 +305,7 @@ public class Vala.Struct : TypeSymbol {
         */
        public bool is_boolean_type () {
                if (base_type != null) {
-                       var st = base_type.data_type as Struct;
+                       var st = base_struct;
                        if (st != null && st.is_boolean_type ()) {
                                return true;
                        }
@@ -308,7 +320,7 @@ public class Vala.Struct : TypeSymbol {
         */
        public bool is_integer_type () {
                if (base_type != null) {
-                       var st = base_type.data_type as Struct;
+                       var st = base_struct;
                        if (st != null && st.is_integer_type ()) {
                                return true;
                        }
@@ -323,7 +335,7 @@ public class Vala.Struct : TypeSymbol {
         */
        public bool is_floating_type () {
                if (base_type != null) {
-                       var st = base_type.data_type as Struct;
+                       var st = base_struct;
                        if (st != null && st.is_floating_type ()) {
                                return true;
                        }
@@ -421,7 +433,7 @@ public class Vala.Struct : TypeSymbol {
                if (type_id == null) {
                        if (!has_type_id) {
                                if (base_type != null) {
-                                       var st = base_type.data_type as Struct;
+                                       var st = base_struct;
                                        if (st != null) {
                                                return st.get_type_id ();
                                        }
@@ -445,7 +457,7 @@ public class Vala.Struct : TypeSymbol {
        public override string? get_marshaller_type_name () {
                if (marshaller_type_name == null) {
                        if (base_type != null) {
-                               var st = base_type.data_type as Struct;
+                               var st = base_struct;
                                if (st != null) {
                                        return st.get_marshaller_type_name ();
                                }
@@ -468,7 +480,7 @@ public class Vala.Struct : TypeSymbol {
        public override string? get_get_value_function () {
                if (get_value_function == null) {
                        if (base_type != null) {
-                               var st = base_type.data_type as Struct;
+                               var st = base_struct;
                                if (st != null) {
                                        return st.get_get_value_function ();
                                }
@@ -489,7 +501,7 @@ public class Vala.Struct : TypeSymbol {
        public override string? get_set_value_function () {
                if (set_value_function == null) {
                        if (base_type != null) {
-                               var st = base_type.data_type as Struct;
+                               var st = base_struct;
                                if (st != null) {
                                        return st.get_set_value_function ();
                                }
@@ -522,7 +534,7 @@ public class Vala.Struct : TypeSymbol {
 
                // inherit default value from base type
                if (base_type != null) {
-                       var st = base_type.data_type as Struct;
+                       var st = base_struct;
                        if (st != null) {
                                return st.get_default_value ();
                        }
@@ -553,7 +565,7 @@ public class Vala.Struct : TypeSymbol {
         */
        public bool is_simple_type () {
                if (base_type != null) {
-                       var st = base_type.data_type as Struct;
+                       var st = base_struct;
                        if (st != null && st.is_simple_type ()) {
                                return true;
                        }
index 58af9f14aa09c74a7a39930ac6e69882a5529c3a..35f2eb3bf9d9e09ef69fd8a9b14b2104407f2db9 100644 (file)
@@ -84,7 +84,7 @@ public class Vala.SymbolResolver : CodeVisitor {
                st.accept_children (this);
 
                if (st.base_type != null) {
-                       var base_type = st.base_type.data_type as Struct;
+                       var base_type = st.base_struct;
                        if (base_type != null) {
                                if (base_type.is_subtype_of (st)) {
                                        st.error = true;