don't implicitly derive from GLib.Object in preparation for a more
authorJuerg Billeter <j@bitron.ch>
Thu, 30 Aug 2007 12:33:40 +0000 (12:33 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Thu, 30 Aug 2007 12:33:40 +0000 (12:33 +0000)
2007-08-30  Juerg Billeter  <j@bitron.ch>

* vala/valasymbolresolver.vala, vala/valasemanticanalyzer.vala,
  gobject/valacodegenerator.vala, gobject/valacodegeneratorclass.vala:
  don't implicitly derive from GLib.Object in preparation for a more
  consistent type system

* gee/arraylist.vala, gee/hashmap.vala, gee/hashset.vala,
  gee/iterable.vala, gee/iterator.vala, gee/list.vala, gee/map.vala,
  gee/readonlycollection.vala, gee/readonlylist.vala,
  gee/readonlymap.vala, gee/readonlyset.vala,
  vala/valabindingprovider.vala, vala/valacodecontext.vala,
  vala/valacodenode.vala, vala/valacodevisitor.vala,
  vala/valascope.vala, vala/valasourcefile.vala,
  vala/valasourcefilecycle.vala, vala/valasourcereference.vala,
  ccode/valaccodenode.vala, ccode/valaccodewriter.vala,
  gobject/valaccodecompiler.vala, gobject/valadbusbindingprovider.vala,
  gobject/valatyperegisterfunction.vala, compiler/valacompiler.vala,
  tests/, vapigen/valavapigen.vala: derive all classes from GLib.Object

svn path=/trunk/; revision=536

66 files changed:
ChangeLog
ccode/valaccodenode.vala
ccode/valaccodewriter.vala
compiler/valacompiler.vala
gee/arraylist.vala
gee/hashmap.vala
gee/hashset.vala
gee/iterable.vala
gee/iterator.vala
gee/list.vala
gee/map.vala
gee/readonlycollection.vala
gee/readonlylist.vala
gee/readonlymap.vala
gee/readonlyset.vala
gobject/valaccodecompiler.vala
gobject/valacodegenerator.vala
gobject/valacodegeneratorclass.vala
gobject/valadbusbindingprovider.vala
gobject/valatyperegisterfunction.vala
tests/test-002.vala
tests/test-003.vala
tests/test-004.vala
tests/test-005.vala
tests/test-006.vala
tests/test-007.vala
tests/test-008.vala
tests/test-009.vala
tests/test-010.vala
tests/test-011.vala
tests/test-012.vala
tests/test-013.vala
tests/test-014.vala
tests/test-015.vala
tests/test-016.vala
tests/test-017.vala
tests/test-018.vala
tests/test-019.vala
tests/test-020.vala
tests/test-021.vala
tests/test-022.vala
tests/test-023.vala
tests/test-024.vala
tests/test-025.vala
tests/test-026.vala
tests/test-027.vala
tests/test-028.vala
tests/test-029.vala
tests/test-030.vala
tests/test-031.vala
tests/test-032.vala
tests/test-033.vala
tests/test-034.vala
tests/test-035.vala
tests/testenchant.vala
vala/valabindingprovider.vala
vala/valacodecontext.vala
vala/valacodenode.vala
vala/valacodevisitor.vala
vala/valascope.vala
vala/valasemanticanalyzer.vala
vala/valasourcefile.vala
vala/valasourcefilecycle.vala
vala/valasourcereference.vala
vala/valasymbolresolver.vala
vapigen/valavapigen.vala

index 945ec2f..f799eba 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,25 @@
 2007-08-30  Jürg Billeter  <j@bitron.ch>
 
+       * vala/valasymbolresolver.vala, vala/valasemanticanalyzer.vala,
+         gobject/valacodegenerator.vala, gobject/valacodegeneratorclass.vala:
+         don't implicitly derive from GLib.Object in preparation for a more
+         consistent type system
+
+       * gee/arraylist.vala, gee/hashmap.vala, gee/hashset.vala,
+         gee/iterable.vala, gee/iterator.vala, gee/list.vala, gee/map.vala,
+         gee/readonlycollection.vala, gee/readonlylist.vala,
+         gee/readonlymap.vala, gee/readonlyset.vala,
+         vala/valabindingprovider.vala, vala/valacodecontext.vala,
+         vala/valacodenode.vala, vala/valacodevisitor.vala,
+         vala/valascope.vala, vala/valasourcefile.vala,
+         vala/valasourcefilecycle.vala, vala/valasourcereference.vala,
+         ccode/valaccodenode.vala, ccode/valaccodewriter.vala,
+         gobject/valaccodecompiler.vala, gobject/valadbusbindingprovider.vala,
+         gobject/valatyperegisterfunction.vala, compiler/valacompiler.vala,
+         tests/, vapigen/valavapigen.vala: derive all classes from GLib.Object
+
+2007-08-30  Jürg Billeter  <j@bitron.ch>
+
        * vapi/libnotify.deps: add missing file
 
 2007-08-29  Jürg Billeter  <j@bitron.ch>
index 18240a6..81f1136 100644 (file)
@@ -25,7 +25,7 @@ using GLib;
 /**
  * Represents a node in the C code tree.
  */
-public abstract class Vala.CCodeNode {
+public abstract class Vala.CCodeNode : Object {
        /**
         * The source file name and line number to be presumed for this code
         * node.
index 3e33359..3393983 100644 (file)
@@ -25,7 +25,7 @@ using GLib;
 /**
  * Represents a writer to write C source files.
  */
-public class Vala.CCodeWriter {
+public class Vala.CCodeWriter : Object {
        /**
         * Specifies the file to be written.
         */
index 40a25ee..93ac878 100644 (file)
@@ -22,7 +22,7 @@
 
 using GLib;
 
-class Vala.Compiler {
+class Vala.Compiler : Object {
        static string directory;
        static bool version;
        [NoArrayLength ()]
index 9853bfd..2be04f2 100644 (file)
@@ -27,7 +27,7 @@ using GLib;
 /**
  * Arrays of arbitrary elements which grow automatically as elements are added.
  */
-public class Gee.ArrayList<G> : Iterable<G>, Collection<G>, List<G> {
+public class Gee.ArrayList<G> : Object, Iterable<G>, Collection<G>, List<G> {
        public int size {
                get { return _size; }
        }
@@ -147,7 +147,7 @@ public class Gee.ArrayList<G> : Iterable<G>, Collection<G>, List<G> {
                _items.resize (value);
        }
 
-       private class Iterator<G> : Gee.Iterator<G> {
+       private class Iterator<G> : Object, Gee.Iterator<G> {
                public ArrayList<G> list {
                        set {
                                _list = value;
index 890bc7a..89abb93 100644 (file)
@@ -27,7 +27,7 @@ using GLib;
 /**
  * Hashtable implementation of the Map interface.
  */
-public class Gee.HashMap<K,V> : Map<K,V> {
+public class Gee.HashMap<K,V> : Object, Map<K,V> {
        public int size {
                get { return _nnodes; }
        }
@@ -179,7 +179,7 @@ public class Gee.HashMap<K,V> : Map<K,V> {
                }
        }
 
-       private class KeySet<K,V> : Iterable<K>, Collection<K>, Set<K> {
+       private class KeySet<K,V> : Object, Iterable<K>, Collection<K>, Set<K> {
                public HashMap<K,V> map {
                        set { _map = value; }
                }
@@ -216,7 +216,7 @@ public class Gee.HashMap<K,V> : Map<K,V> {
                }
        }
 
-       private class KeyIterator<K,V> : Iterator<K> {
+       private class KeyIterator<K,V> : Object, Iterator<K> {
                public HashMap<K,V> map {
                        set {
                                _map = value;
@@ -252,7 +252,7 @@ public class Gee.HashMap<K,V> : Map<K,V> {
                }
        }
 
-       private class ValueCollection<K,V> : Iterable<V>, Collection<V> {
+       private class ValueCollection<K,V> : Object, Iterable<V>, Collection<V> {
                public HashMap<K,V> map {
                        set { _map = value; }
                }
@@ -293,7 +293,7 @@ public class Gee.HashMap<K,V> : Map<K,V> {
                }
        }
 
-       private class ValueIterator<K,V> : Iterator<V> {
+       private class ValueIterator<K,V> : Object, Iterator<V> {
                public HashMap<K,V> map {
                        set {
                                _map = value;
index f0bb5f4..c053a1c 100644 (file)
@@ -27,7 +27,7 @@ using GLib;
 /**
  * Hashtable implementation of the Set interface.
  */
-public class Gee.HashSet<G> : Iterable<G>, Collection<G>, Set<G> {
+public class Gee.HashSet<G> : Object, Iterable<G>, Collection<G>, Set<G> {
        public int size {
                get { return _nnodes; }
        }
@@ -158,7 +158,7 @@ public class Gee.HashSet<G> : Iterable<G>, Collection<G>, Set<G> {
                }
        }
 
-       private class Iterator<G> : Gee.Iterator<G> {
+       private class Iterator<G> : Object, Gee.Iterator<G> {
                public HashSet<G> set {
                        set {
                                _set = value;
index 1b3e66d..cb29c66 100644 (file)
@@ -24,7 +24,7 @@
  * Implemented by classes that support a simple iteration over instances of the
  * collection.
  */
-public interface Gee.Iterable<G> {
+public interface Gee.Iterable<G> : GLib.Object {
        /**
         * Returns a Iterator that can be used for simple iteration over a
         * collection.
index a401946..d8c119b 100644 (file)
@@ -24,7 +24,7 @@
  * Implemented by classes that support a simple iteration over instances of the
  * collection.
  */
-public interface Gee.Iterator<G> {
+public interface Gee.Iterator<G> : GLib.Object {
        /**
         * Advances to the next element in the iteration.
         *
index 0ff967b..d49c525 100644 (file)
@@ -23,7 +23,7 @@
 /**
  * Represents a collection of items in a well-defined order.
  */
-public interface Gee.List<G> : GLib.Object, Collection<G> {
+public interface Gee.List<G> : Collection<G> {
        /**
         * Returns the item at the specified index in this list.
         *
index 6dcee69..8c61cbe 100644 (file)
@@ -23,7 +23,7 @@
 /**
  * A map is a generic collection of key/value pairs.
  */
-public interface Gee.Map<K,V> {
+public interface Gee.Map<K,V> : GLib.Object {
        /**
         * The number of items in this map.
         */
index 30a6ea6..c9d21dd 100644 (file)
@@ -25,7 +25,7 @@ using GLib;
 /**
  * Represents a read-only collection of items.
  */
-public class Gee.ReadOnlyCollection<G> : Iterable<G>, Collection<G> {
+public class Gee.ReadOnlyCollection<G> : Object, Iterable<G>, Collection<G> {
        public int size {
                get { return _collection.size; }
        }
@@ -69,7 +69,7 @@ public class Gee.ReadOnlyCollection<G> : Iterable<G>, Collection<G> {
                assert_not_reached ();
        }
 
-       private class Iterator<G> : Gee.Iterator<G> {
+       private class Iterator<G> : Object, Gee.Iterator<G> {
                public bool next () {
                        return false;
                }
index b07fa4a..5aa3eff 100644 (file)
@@ -25,7 +25,7 @@ using GLib;
 /**
  * Represents a read-only collection of items in a well-defined order.
  */
-public class Gee.ReadOnlyList<G> : Iterable<G>, Collection<G>, List<G> {
+public class Gee.ReadOnlyList<G> : Object, Iterable<G>, Collection<G>, List<G> {
        public int size {
                get { return _list.size; }
        }
@@ -97,7 +97,7 @@ public class Gee.ReadOnlyList<G> : Iterable<G>, Collection<G>, List<G> {
                assert_not_reached ();
        }
 
-       class Iterator<G> : Gee.Iterator<G> {
+       class Iterator<G> : Object, Gee.Iterator<G> {
                public bool next () {
                        return false;
                }
index f36c9aa..2136450 100644 (file)
@@ -25,7 +25,7 @@ using GLib;
 /**
  * Represents a read-only collection of key/value pairs.
  */
-public class Gee.ReadOnlyMap<K,V> : Map<K,V> {
+public class Gee.ReadOnlyMap<K,V> : Object, Map<K,V> {
        public int size {
                get { return _map.size; }
        }
index 81db5b3..272f3df 100644 (file)
@@ -25,7 +25,7 @@ using GLib;
 /**
  * Represents a read-only collection of items without duplicates.
  */
-public class Gee.ReadOnlySet<G> : Iterable<G>, Collection<G>, Set<G> {
+public class Gee.ReadOnlySet<G> : Object, Iterable<G>, Collection<G>, Set<G> {
        public int size {
                get { return _set.size; }
        }
@@ -69,7 +69,7 @@ public class Gee.ReadOnlySet<G> : Iterable<G>, Collection<G>, Set<G> {
                assert_not_reached ();
        }
 
-       private class Iterator<G> : Gee.Iterator<G> {
+       private class Iterator<G> : Object, Gee.Iterator<G> {
                public bool next () {
                        return false;
                }
index 7cd6f98..f0273a1 100644 (file)
@@ -25,7 +25,7 @@ using GLib;
 /**
  * Interface to the C compiler.
  */
-public class Vala.CCodeCompiler {
+public class Vala.CCodeCompiler : Object {
        public CCodeCompiler () {
        }
 
index 17067a8..fe8086a 100644 (file)
@@ -97,6 +97,7 @@ public class Vala.CodeGenerator : CodeVisitor {
        TypeReference string_type;
        TypeReference float_type;
        TypeReference double_type;
+       DataType gobject_type;
        DataType gerror_type;
        DataType glist_type;
        DataType gslist_type;
@@ -247,6 +248,7 @@ public class Vala.CodeGenerator : CodeVisitor {
 
                var glib_ns = root_symbol.scope.lookup ("GLib");
                
+               gobject_type = (DataType) glib_ns.scope.lookup ("Object");
                gerror_type = (DataType) glib_ns.scope.lookup ("Error");
                glist_type = (DataType) glib_ns.scope.lookup ("List");
                gslist_type = (DataType) glib_ns.scope.lookup ("SList");
index a8033d9..f911a04 100644 (file)
@@ -94,10 +94,12 @@ public class Vala.CodeGenerator {
                        decl_frag.append (new CCodeTypeDefinition ("struct %s".printf (type_struct.name), new CCodeVariableDeclarator ("%sClass".printf (cl.get_cname ()))));
                }
                decl_frag.append (new CCodeTypeDefinition ("struct %s".printf (instance_priv_struct.name), new CCodeVariableDeclarator ("%sPrivate".printf (cl.get_cname ()))));
-               
-               instance_struct.add_field (cl.base_class.get_cname (), "parent");
-               instance_struct.add_field ("%sPrivate *".printf (cl.get_cname ()), "priv");
-               type_struct.add_field ("%sClass".printf (cl.base_class.get_cname ()), "parent");
+
+               if (cl.is_subtype_of (gobject_type)) {
+                       instance_struct.add_field (cl.base_class.get_cname (), "parent");
+                       instance_struct.add_field ("%sPrivate *".printf (cl.get_cname ()), "priv");
+                       type_struct.add_field ("%sClass".printf (cl.base_class.get_cname ()), "parent");
+               }
 
                if (cl.source_reference.comment != null) {
                        def_frag.append (new CCodeComment (cl.source_reference.comment));
@@ -114,7 +116,7 @@ public class Vala.CodeGenerator {
 
                cl.accept_children (this);
 
-               if (!cl.is_static) {
+               if (cl.is_subtype_of (gobject_type)) {
                        if (class_has_readable_properties (cl) || cl.get_type_parameters ().size > 0) {
                                add_get_property_function (cl);
                        }
index e22c4fc..2318069 100644 (file)
@@ -26,7 +26,7 @@ using Gee;
 /**
  * Dynamic binding provider for DBus objects.
  */
-public class Vala.DBusBindingProvider : BindingProvider {
+public class Vala.DBusBindingProvider : Object, BindingProvider {
        public CodeContext context {
                set {
                        _context = value;
index 57ef2ec..98f9c0d 100644 (file)
@@ -25,7 +25,7 @@ using GLib;
 /**
  * C function to register a type at runtime.
  */
-public abstract class Vala.TypeRegisterFunction {
+public abstract class Vala.TypeRegisterFunction : Object {
        private CCodeFragment declaration_fragment = new CCodeFragment ();
 
        private CCodeFragment definition_fragment = new CCodeFragment ();
index ac7627d..bb93511 100644 (file)
@@ -1,7 +1,7 @@
 using GLib;
 
 namespace Maman {
-       class Bar {
+       class Bar : Object {
                static int main (string[] args) {
                        stdout.printf ("Class in Namespace Test\n");
                        return 0;
index 34b5655..3003273 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Bar {
+class Maman.Bar : Object {
 }
 
 class Maman.SubBar : Bar {
index ac069e5..0545ca2 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Bar {
+class Maman.Bar : Object {
        public void do_action () {
                stdout.printf (" 2");
        }
index e97f42c..7b6a178 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Bar {
+class Maman.Bar : Object {
        public static void do_action () {
                stdout.printf (" 2");
        }
index cb66d9d..af210c9 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Bar {
+class Maman.Bar : Object {
        static int main (string[] args) {
                stdout.printf ("For Test: 1");
 
index a87a8e4..3322abc 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Bar {
+class Maman.Bar : Object {
        public virtual void do_action () {
                stdout.printf (" BAD");
        }
index 4400368..c990234 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Foo {
+class Maman.Foo : Object {
        public int public_base_field = 2;
 }
 
index c653232..74c515c 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Foo {
+class Maman.Foo : Object {
        private int _public_base_property = 2;
        public int public_base_property {
                get {
index c1daa8d..c6297c3 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Bar {
+class Maman.Bar : Object {
        static int main (string[] args) {
                stdout.printf ("Assignment Test: 1");
                
index 332a832..0c3867a 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Bar {
+class Maman.Bar : Object {
        static int main (string[] args) {
                stdout.printf ("Binary Expression Test: 1");
                
index 0705ef7..99e76f2 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Bar {
+class Maman.Bar : Object {
        static int main (string[] args) {
                stdout.printf ("Block Test: 1");
                
index 7820607..6566f93 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Bar {
+class Maman.Bar : Object {
        static int main (string[] args) {
                stdout.printf ("Break Test: 1");
                
index 5ac7f87..feb1e80 100644 (file)
@@ -2,7 +2,7 @@ using GLib;
 
 public static delegate int Maman.ActionCallback ();
 
-class Maman.Bar {
+class Maman.Bar : Object {
        static int do_action () {
                return 2;
        }
index 943abb9..5811d93 100644 (file)
@@ -2,7 +2,7 @@ using GLib;
 
 static delegate int Maman.ActionCallback (int i);
 
-class Maman.Bar {
+class Maman.Bar : Object {
        static int do_action (ActionCallback cb) {
                return cb (1);
        }
index e0ce1f8..3129938 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Bar {
+class Maman.Bar : Object {
        static int main (string[] args) {
                stdout.printf ("Conditional Expression Test: 1");
                
index 58ba607..d269ad6 100644 (file)
@@ -1,10 +1,10 @@
 using GLib;
 
-interface Maman.Ibaz {
+interface Maman.Ibaz : Object {
        public abstract void do_action ();
 }
 
-class Maman.Baz : Ibaz {
+class Maman.Baz : Object, Ibaz {
        public void do_action () {
                stdout.printf (" 2");
        }
index 6081ed4..1bd38dc 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Foo {
+class Maman.Foo : Object {
        public signal void activated (bool b);
 
        public void do_action (bool b) {
@@ -8,7 +8,7 @@ class Maman.Foo {
        }
 }
 
-class Maman.Bar {
+class Maman.Bar : Object {
        void activated (Foo foo, bool b) {
                if (b) {
                        stdout.printf (" BAD");
index bf906a9..7d33072 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Foo {
+class Maman.Foo : Object {
        public void run () {
                stdout.printf (" 2");
                
index 906b787..d69c365 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Foo {
+class Maman.Foo : Object {
        public void run () {
                stdout.printf (" 2");
                
index c2a75be..8a92082 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Foo {
+class Maman.Foo : Object {
        static int main (string[] args) {
                stdout.printf ("String Test: 1");
 
index 59b2cc7..6f7a5cc 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Foo {
+class Maman.Foo : Object {
        public Foo (construct string bar) {
        }
 
index 605f1b5..ac2387e 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Foo {
+class Maman.Foo : Object {
        public void run () {
                foreach (string s in create_list ()) {
                        stdout.printf (" %s", s);
index caef58f..288b242 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Foo {
+class Maman.Foo : Object {
        public signal void activated (int i1, int i2);
 
        public void do_action () {
@@ -8,7 +8,7 @@ class Maman.Foo {
        }
 }
 
-class Maman.Bar {
+class Maman.Bar : Object {
        public void run () {
                stdout.printf (" 2");
                
index f5bfbc6..2d83913 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Bar {
+class Maman.Bar : Object {
        public virtual void do_action () {
                stdout.printf (" 3");
        }
index 2eddf60..2c6ab84 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Bar {
+class Maman.Bar : Object {
        public void do_action () {
                stdout.printf (" 3");
        }
index b539c4d..3b7cd32 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Bar {
+class Maman.Bar : Object {
        public int foo { get; set; }
 
        public void run () {
index 1047e46..09ca122 100644 (file)
@@ -6,7 +6,7 @@ enum Maman.Foo {
        VAL5 = 5
 }
 
-class Maman.Bar {
+class Maman.Bar : Object {
        public void run () {
                stdout.printf (" %d", Foo.VAL2);
 
index 62caf66..966caf8 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Foo {
+class Maman.Foo : Object {
        public int p1 { get; set; }
        public int p2 { get; set; }
        
index e28b4e0..4378576 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Foo {
+class Maman.Foo : Object {
        static void main (string[] args) {
                stdout.printf (
                        "int8: %s...%s\n",
index 5ef4a01..665e94b 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Foo {
+class Maman.Foo : Object {
        const float[] FLOAT_TESTS = { 
                float.EPSILON, 0.0, 1.0, 
                -float.INFINITY,
index 72963a6..17d6bd7 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class Maman.Bar {
+class Maman.Bar : Object {
        public int[] foo_numbers () {
                return new int[3] { 2, 3, 4 };
        }
index 38a24ee..e9e9f54 100644 (file)
@@ -8,7 +8,7 @@ enum Maman.BarError {
        LIST
 }
 
-class Maman.Bar {
+class Maman.Bar : Object {
        public void foo () throws BarError {
                stdout.printf (" 6");
 
index 8000c4e..835863d 100644 (file)
@@ -1,15 +1,15 @@
 using GLib;
 
-class Maman.A {
+class Maman.A : Object {
 }
 
 class Maman.B : A {
 }
 
-class Maman.C {
+class Maman.C : Object {
 }
 
-class Maman.Bar {
+class Maman.Bar : Object {
        static void main () {
                var a = new A ();
                var b = new B ();
index 8e41184..f5230fa 100644 (file)
@@ -1,6 +1,6 @@
 using GLib;
 
-class SwitchTest {
+class SwitchTest : Object {
     static void main () {
         var foo = "Hello World";
         var bar = 0;
index 61c904c..67aa0ec 100644 (file)
@@ -1,7 +1,7 @@
 using Enchant;
 using GLib;
 
-class TestEnchant {
+class TestEnchant : Object {
        static void info (string message) {
                stdout.printf ("INFO: %s\n", message);
        }
index ec1a802..ffec6ac 100644 (file)
@@ -25,7 +25,7 @@ using GLib;
 /**
  * Interface for dynamic binding providers.
  */
-public interface Vala.BindingProvider {
+public interface Vala.BindingProvider : Object {
        /**
         * Return custom binding for the specified member access expression.
         *
index f67a93b..1342cbb 100644 (file)
@@ -26,7 +26,7 @@ using Gee;
 /**
  * The root of the code tree.
  */
-public class Vala.CodeContext {
+public class Vala.CodeContext : Object {
        /**
         * Specifies the name of the library to be built.
         *
index 13aab72..26ffa1b 100644 (file)
@@ -28,7 +28,7 @@ using GLib;
  * Code nodes get created by the parser and are used throughout the whole
  * compilation process.
  */
-public abstract class Vala.CodeNode {
+public abstract class Vala.CodeNode : Object {
        /**
         * Parent of this code node.
         */
index 809fa39..1d5c4fc 100644 (file)
@@ -26,7 +26,7 @@ using GLib;
 /**
  * Abstract code node visitor for traversing source code tree.
  */
-public abstract class Vala.CodeVisitor {
+public abstract class Vala.CodeVisitor : Object {
        /**
         * Visit operation called for source files.
         *
index 6a56104..416fdc4 100644 (file)
@@ -26,7 +26,7 @@ using Gee;
 /**
  * Represents a part of the symbol tree.
  */
-public class Vala.Scope {
+public class Vala.Scope : Object {
        /**
         * The symbol that owns this scope.
         */
index 2c131a6..82b4cf6 100644 (file)
@@ -302,13 +302,6 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
                        }
                }
 
-               if (prereq_class == null) {
-                       /* default to GObject */
-                       var obj_type = new TypeReference ();
-                       obj_type.data_type = object_type;
-                       iface.prepend_prerequisite (obj_type);
-               }
-
                iface.accept_children (this);
 
                current_symbol = current_symbol.parent_symbol;
index 99c8af4..c7302bb 100644 (file)
@@ -26,7 +26,7 @@ using Gee;
 /**
  * Represents a Vala source or VAPI package file.
  */
-public class Vala.SourceFile {
+public class Vala.SourceFile : Object {
        /**
         * The name of this source file.
         */
index 2154dee..95cf499 100644 (file)
@@ -26,7 +26,7 @@ using Gee;
 /**
  * Represents a dependency cycle of source files.
  */
-public class Vala.SourceFileCycle {
+public class Vala.SourceFileCycle : Object {
        /**
         * The members of this source file cycle.
         */
index 71b7c67..1bebbc5 100644 (file)
  *     Jürg Billeter <j@bitron.ch>
  */
 
+using GLib;
+
 /**
  * Represents a reference to a location in a source file.
  */
-public class Vala.SourceReference {
+public class Vala.SourceReference : Object {
        /**
         * The source file to be referenced.
         */
index f726f42..1ffd026 100644 (file)
@@ -32,8 +32,6 @@ public class Vala.SymbolResolver : CodeVisitor {
        Scope current_scope;
        Collection<NamespaceReference> current_using_directives;
        
-       Class object_class;
-       
        /**
         * Resolve symbol names in the specified code context.
         *
@@ -42,13 +40,7 @@ public class Vala.SymbolResolver : CodeVisitor {
        public void resolve (CodeContext! context) {
                root_symbol = context.root;
                current_scope = root_symbol.scope;
-               
-               // TODO: don't require GLib namespace in symbol resolver
-               var glib_ns = root_symbol.scope.lookup ("GLib");
-               if (glib_ns != null) {
-                       object_class = (Class) glib_ns.scope.lookup ("Object");
-               }
-               
+
                context.accept (this);
        }
        
@@ -75,13 +67,7 @@ public class Vala.SymbolResolver : CodeVisitor {
                                cl.base_class = (Class) type.data_type;
                        }
                }
-               if (cl.base_class == null && cl != object_class) {
-                       var object_type = new TypeReference ();
-                       object_type.data_type = object_class;
-                       cl.add_base_type (object_type);
-                       cl.base_class = object_class;
-               }
-       
+
                current_scope = current_scope.parent_scope;
        }
 
index 1343a50..66499bc 100644 (file)
@@ -22,7 +22,7 @@
 
 using GLib;
 
-class Vala.VAPIGen {
+class Vala.VAPIGen : Object {
        static string directory;
        static bool version;
        [NoArrayLength ()]