diff options
66 files changed, 108 insertions, 103 deletions
@@ -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> diff --git a/ccode/valaccodenode.vala b/ccode/valaccodenode.vala index 18240a697..81f1136b6 100644 --- a/ccode/valaccodenode.vala +++ b/ccode/valaccodenode.vala @@ -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. diff --git a/ccode/valaccodewriter.vala b/ccode/valaccodewriter.vala index 3e33359c1..3393983cc 100644 --- a/ccode/valaccodewriter.vala +++ b/ccode/valaccodewriter.vala @@ -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. */ diff --git a/compiler/valacompiler.vala b/compiler/valacompiler.vala index 40a25ee3c..93ac87802 100644 --- a/compiler/valacompiler.vala +++ b/compiler/valacompiler.vala @@ -22,7 +22,7 @@ using GLib; -class Vala.Compiler { +class Vala.Compiler : Object { static string directory; static bool version; [NoArrayLength ()] diff --git a/gee/arraylist.vala b/gee/arraylist.vala index 9853bfd6c..2be04f226 100644 --- a/gee/arraylist.vala +++ b/gee/arraylist.vala @@ -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; diff --git a/gee/hashmap.vala b/gee/hashmap.vala index 890bc7ad9..89abb932e 100644 --- a/gee/hashmap.vala +++ b/gee/hashmap.vala @@ -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; diff --git a/gee/hashset.vala b/gee/hashset.vala index f0bb5f46a..c053a1c82 100644 --- a/gee/hashset.vala +++ b/gee/hashset.vala @@ -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; diff --git a/gee/iterable.vala b/gee/iterable.vala index 1b3e66dd7..cb29c6619 100644 --- a/gee/iterable.vala +++ b/gee/iterable.vala @@ -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. diff --git a/gee/iterator.vala b/gee/iterator.vala index a4019462c..d8c119b6f 100644 --- a/gee/iterator.vala +++ b/gee/iterator.vala @@ -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. * diff --git a/gee/list.vala b/gee/list.vala index 0ff967b47..d49c5256c 100644 --- a/gee/list.vala +++ b/gee/list.vala @@ -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. * diff --git a/gee/map.vala b/gee/map.vala index 6dcee69cf..8c61cbeec 100644 --- a/gee/map.vala +++ b/gee/map.vala @@ -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. */ diff --git a/gee/readonlycollection.vala b/gee/readonlycollection.vala index 30a6ea60f..c9d21ddd9 100644 --- a/gee/readonlycollection.vala +++ b/gee/readonlycollection.vala @@ -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; } diff --git a/gee/readonlylist.vala b/gee/readonlylist.vala index b07fa4aeb..5aa3effed 100644 --- a/gee/readonlylist.vala +++ b/gee/readonlylist.vala @@ -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; } diff --git a/gee/readonlymap.vala b/gee/readonlymap.vala index f36c9aaed..21364501a 100644 --- a/gee/readonlymap.vala +++ b/gee/readonlymap.vala @@ -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; } } diff --git a/gee/readonlyset.vala b/gee/readonlyset.vala index 81db5b3f8..272f3df64 100644 --- a/gee/readonlyset.vala +++ b/gee/readonlyset.vala @@ -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; } diff --git a/gobject/valaccodecompiler.vala b/gobject/valaccodecompiler.vala index 7cd6f9837..f0273a100 100644 --- a/gobject/valaccodecompiler.vala +++ b/gobject/valaccodecompiler.vala @@ -25,7 +25,7 @@ using GLib; /** * Interface to the C compiler. */ -public class Vala.CCodeCompiler { +public class Vala.CCodeCompiler : Object { public CCodeCompiler () { } diff --git a/gobject/valacodegenerator.vala b/gobject/valacodegenerator.vala index 17067a8b3..fe8086aa8 100644 --- a/gobject/valacodegenerator.vala +++ b/gobject/valacodegenerator.vala @@ -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"); diff --git a/gobject/valacodegeneratorclass.vala b/gobject/valacodegeneratorclass.vala index a8033d95e..f911a045f 100644 --- a/gobject/valacodegeneratorclass.vala +++ b/gobject/valacodegeneratorclass.vala @@ -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); } diff --git a/gobject/valadbusbindingprovider.vala b/gobject/valadbusbindingprovider.vala index e22c4fc32..23180699a 100644 --- a/gobject/valadbusbindingprovider.vala +++ b/gobject/valadbusbindingprovider.vala @@ -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; diff --git a/gobject/valatyperegisterfunction.vala b/gobject/valatyperegisterfunction.vala index 57ef2ec23..98f9c0dcd 100644 --- a/gobject/valatyperegisterfunction.vala +++ b/gobject/valatyperegisterfunction.vala @@ -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 (); diff --git a/tests/test-002.vala b/tests/test-002.vala index ac7627de0..bb9351198 100644 --- a/tests/test-002.vala +++ b/tests/test-002.vala @@ -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; diff --git a/tests/test-003.vala b/tests/test-003.vala index 34b5655d2..3003273ed 100644 --- a/tests/test-003.vala +++ b/tests/test-003.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Bar { +class Maman.Bar : Object { } class Maman.SubBar : Bar { diff --git a/tests/test-004.vala b/tests/test-004.vala index ac069e522..0545ca2b1 100644 --- a/tests/test-004.vala +++ b/tests/test-004.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Bar { +class Maman.Bar : Object { public void do_action () { stdout.printf (" 2"); } diff --git a/tests/test-005.vala b/tests/test-005.vala index e97f42cfc..7b6a17867 100644 --- a/tests/test-005.vala +++ b/tests/test-005.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Bar { +class Maman.Bar : Object { public static void do_action () { stdout.printf (" 2"); } diff --git a/tests/test-006.vala b/tests/test-006.vala index cb66d9d05..af210c9c0 100644 --- a/tests/test-006.vala +++ b/tests/test-006.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Bar { +class Maman.Bar : Object { static int main (string[] args) { stdout.printf ("For Test: 1"); diff --git a/tests/test-007.vala b/tests/test-007.vala index a87a8e4c9..3322abcec 100644 --- a/tests/test-007.vala +++ b/tests/test-007.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Bar { +class Maman.Bar : Object { public virtual void do_action () { stdout.printf (" BAD"); } diff --git a/tests/test-008.vala b/tests/test-008.vala index 440036893..c99023437 100644 --- a/tests/test-008.vala +++ b/tests/test-008.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Foo { +class Maman.Foo : Object { public int public_base_field = 2; } diff --git a/tests/test-009.vala b/tests/test-009.vala index c653232fb..74c515c5a 100644 --- a/tests/test-009.vala +++ b/tests/test-009.vala @@ -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 { diff --git a/tests/test-010.vala b/tests/test-010.vala index c1daa8d7d..c6297c3f7 100644 --- a/tests/test-010.vala +++ b/tests/test-010.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Bar { +class Maman.Bar : Object { static int main (string[] args) { stdout.printf ("Assignment Test: 1"); diff --git a/tests/test-011.vala b/tests/test-011.vala index 332a83208..0c3867ab3 100644 --- a/tests/test-011.vala +++ b/tests/test-011.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Bar { +class Maman.Bar : Object { static int main (string[] args) { stdout.printf ("Binary Expression Test: 1"); diff --git a/tests/test-012.vala b/tests/test-012.vala index 0705ef76e..99e76f2bc 100644 --- a/tests/test-012.vala +++ b/tests/test-012.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Bar { +class Maman.Bar : Object { static int main (string[] args) { stdout.printf ("Block Test: 1"); diff --git a/tests/test-013.vala b/tests/test-013.vala index 78206070b..6566f9349 100644 --- a/tests/test-013.vala +++ b/tests/test-013.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Bar { +class Maman.Bar : Object { static int main (string[] args) { stdout.printf ("Break Test: 1"); diff --git a/tests/test-014.vala b/tests/test-014.vala index 5ac7f87fc..feb1e80ec 100644 --- a/tests/test-014.vala +++ b/tests/test-014.vala @@ -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; } diff --git a/tests/test-015.vala b/tests/test-015.vala index 943abb9ca..5811d93d1 100644 --- a/tests/test-015.vala +++ b/tests/test-015.vala @@ -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); } diff --git a/tests/test-016.vala b/tests/test-016.vala index e0ce1f8b7..31299389a 100644 --- a/tests/test-016.vala +++ b/tests/test-016.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Bar { +class Maman.Bar : Object { static int main (string[] args) { stdout.printf ("Conditional Expression Test: 1"); diff --git a/tests/test-017.vala b/tests/test-017.vala index 58ba60748..d269ad659 100644 --- a/tests/test-017.vala +++ b/tests/test-017.vala @@ -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"); } diff --git a/tests/test-018.vala b/tests/test-018.vala index 6081ed40c..1bd38dcec 100644 --- a/tests/test-018.vala +++ b/tests/test-018.vala @@ -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"); diff --git a/tests/test-019.vala b/tests/test-019.vala index bf906a93f..7d330726d 100644 --- a/tests/test-019.vala +++ b/tests/test-019.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Foo { +class Maman.Foo : Object { public void run () { stdout.printf (" 2"); diff --git a/tests/test-020.vala b/tests/test-020.vala index 906b787e8..d69c365e2 100644 --- a/tests/test-020.vala +++ b/tests/test-020.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Foo { +class Maman.Foo : Object { public void run () { stdout.printf (" 2"); diff --git a/tests/test-021.vala b/tests/test-021.vala index c2a75beb1..8a9208270 100644 --- a/tests/test-021.vala +++ b/tests/test-021.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Foo { +class Maman.Foo : Object { static int main (string[] args) { stdout.printf ("String Test: 1"); diff --git a/tests/test-022.vala b/tests/test-022.vala index 59b2cc767..6f7a5cc0e 100644 --- a/tests/test-022.vala +++ b/tests/test-022.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Foo { +class Maman.Foo : Object { public Foo (construct string bar) { } diff --git a/tests/test-023.vala b/tests/test-023.vala index 605f1b5cf..ac2387eb1 100644 --- a/tests/test-023.vala +++ b/tests/test-023.vala @@ -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); diff --git a/tests/test-024.vala b/tests/test-024.vala index caef58f29..288b2427a 100644 --- a/tests/test-024.vala +++ b/tests/test-024.vala @@ -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"); diff --git a/tests/test-025.vala b/tests/test-025.vala index f5bfbc64e..2d83913e7 100644 --- a/tests/test-025.vala +++ b/tests/test-025.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Bar { +class Maman.Bar : Object { public virtual void do_action () { stdout.printf (" 3"); } diff --git a/tests/test-026.vala b/tests/test-026.vala index 2eddf6088..2c6ab84e4 100644 --- a/tests/test-026.vala +++ b/tests/test-026.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Bar { +class Maman.Bar : Object { public void do_action () { stdout.printf (" 3"); } diff --git a/tests/test-027.vala b/tests/test-027.vala index b539c4d4b..3b7cd322d 100644 --- a/tests/test-027.vala +++ b/tests/test-027.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Bar { +class Maman.Bar : Object { public int foo { get; set; } public void run () { diff --git a/tests/test-028.vala b/tests/test-028.vala index 1047e46ce..09ca12256 100644 --- a/tests/test-028.vala +++ b/tests/test-028.vala @@ -6,7 +6,7 @@ enum Maman.Foo { VAL5 = 5 } -class Maman.Bar { +class Maman.Bar : Object { public void run () { stdout.printf (" %d", Foo.VAL2); diff --git a/tests/test-029.vala b/tests/test-029.vala index 62caf660a..966caf898 100644 --- a/tests/test-029.vala +++ b/tests/test-029.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Foo { +class Maman.Foo : Object { public int p1 { get; set; } public int p2 { get; set; } diff --git a/tests/test-030.vala b/tests/test-030.vala index e28b4e03e..4378576f3 100644 --- a/tests/test-030.vala +++ b/tests/test-030.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Foo { +class Maman.Foo : Object { static void main (string[] args) { stdout.printf ( "int8: %s...%s\n", diff --git a/tests/test-031.vala b/tests/test-031.vala index 5ef4a0134..665e94bb9 100644 --- a/tests/test-031.vala +++ b/tests/test-031.vala @@ -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, diff --git a/tests/test-032.vala b/tests/test-032.vala index 72963a6d6..17d6bd78c 100644 --- a/tests/test-032.vala +++ b/tests/test-032.vala @@ -1,6 +1,6 @@ using GLib; -class Maman.Bar { +class Maman.Bar : Object { public int[] foo_numbers () { return new int[3] { 2, 3, 4 }; } diff --git a/tests/test-033.vala b/tests/test-033.vala index 38a24ee99..e9e9f5482 100644 --- a/tests/test-033.vala +++ b/tests/test-033.vala @@ -8,7 +8,7 @@ enum Maman.BarError { LIST } -class Maman.Bar { +class Maman.Bar : Object { public void foo () throws BarError { stdout.printf (" 6"); diff --git a/tests/test-034.vala b/tests/test-034.vala index 8000c4ed1..835863dd5 100644 --- a/tests/test-034.vala +++ b/tests/test-034.vala @@ -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 (); diff --git a/tests/test-035.vala b/tests/test-035.vala index 8e411845f..f5230facb 100644 --- a/tests/test-035.vala +++ b/tests/test-035.vala @@ -1,6 +1,6 @@ using GLib; -class SwitchTest { +class SwitchTest : Object { static void main () { var foo = "Hello World"; var bar = 0; diff --git a/tests/testenchant.vala b/tests/testenchant.vala index 61c904c96..67aa0ecdb 100644 --- a/tests/testenchant.vala +++ b/tests/testenchant.vala @@ -1,7 +1,7 @@ using Enchant; using GLib; -class TestEnchant { +class TestEnchant : Object { static void info (string message) { stdout.printf ("INFO: %s\n", message); } diff --git a/vala/valabindingprovider.vala b/vala/valabindingprovider.vala index ec1a8023c..ffec6ac58 100644 --- a/vala/valabindingprovider.vala +++ b/vala/valabindingprovider.vala @@ -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. * diff --git a/vala/valacodecontext.vala b/vala/valacodecontext.vala index f67a93bdc..1342cbb49 100644 --- a/vala/valacodecontext.vala +++ b/vala/valacodecontext.vala @@ -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. * diff --git a/vala/valacodenode.vala b/vala/valacodenode.vala index 13aab72dc..26ffa1bb1 100644 --- a/vala/valacodenode.vala +++ b/vala/valacodenode.vala @@ -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. */ diff --git a/vala/valacodevisitor.vala b/vala/valacodevisitor.vala index 809fa3948..1d5c4fcb2 100644 --- a/vala/valacodevisitor.vala +++ b/vala/valacodevisitor.vala @@ -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. * diff --git a/vala/valascope.vala b/vala/valascope.vala index 6a5610481..416fdc4ec 100644 --- a/vala/valascope.vala +++ b/vala/valascope.vala @@ -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. */ diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala index 2c131a65b..82b4cf60e 100644 --- a/vala/valasemanticanalyzer.vala +++ b/vala/valasemanticanalyzer.vala @@ -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; diff --git a/vala/valasourcefile.vala b/vala/valasourcefile.vala index 99c8af4c8..c7302bb71 100644 --- a/vala/valasourcefile.vala +++ b/vala/valasourcefile.vala @@ -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. */ diff --git a/vala/valasourcefilecycle.vala b/vala/valasourcefilecycle.vala index 2154deece..95cf49958 100644 --- a/vala/valasourcefilecycle.vala +++ b/vala/valasourcefilecycle.vala @@ -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. */ diff --git a/vala/valasourcereference.vala b/vala/valasourcereference.vala index 71b7c67d8..1bebbc5c8 100644 --- a/vala/valasourcereference.vala +++ b/vala/valasourcereference.vala @@ -20,10 +20,12 @@ * 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. */ diff --git a/vala/valasymbolresolver.vala b/vala/valasymbolresolver.vala index f726f42ab..1ffd026ba 100644 --- a/vala/valasymbolresolver.vala +++ b/vala/valasymbolresolver.vala @@ -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; } diff --git a/vapigen/valavapigen.vala b/vapigen/valavapigen.vala index 1343a50cc..66499bc0e 100644 --- a/vapigen/valavapigen.vala +++ b/vapigen/valavapigen.vala @@ -22,7 +22,7 @@ using GLib; -class Vala.VAPIGen { +class Vala.VAPIGen : Object { static string directory; static bool version; [NoArrayLength ()] |