summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog20
-rw-r--r--ccode/valaccodenode.vala2
-rw-r--r--ccode/valaccodewriter.vala2
-rw-r--r--compiler/valacompiler.vala2
-rw-r--r--gee/arraylist.vala4
-rw-r--r--gee/hashmap.vala10
-rw-r--r--gee/hashset.vala4
-rw-r--r--gee/iterable.vala2
-rw-r--r--gee/iterator.vala2
-rw-r--r--gee/list.vala2
-rw-r--r--gee/map.vala2
-rw-r--r--gee/readonlycollection.vala4
-rw-r--r--gee/readonlylist.vala4
-rw-r--r--gee/readonlymap.vala2
-rw-r--r--gee/readonlyset.vala4
-rw-r--r--gobject/valaccodecompiler.vala2
-rw-r--r--gobject/valacodegenerator.vala2
-rw-r--r--gobject/valacodegeneratorclass.vala12
-rw-r--r--gobject/valadbusbindingprovider.vala2
-rw-r--r--gobject/valatyperegisterfunction.vala2
-rw-r--r--tests/test-002.vala2
-rw-r--r--tests/test-003.vala2
-rw-r--r--tests/test-004.vala2
-rw-r--r--tests/test-005.vala2
-rw-r--r--tests/test-006.vala2
-rw-r--r--tests/test-007.vala2
-rw-r--r--tests/test-008.vala2
-rw-r--r--tests/test-009.vala2
-rw-r--r--tests/test-010.vala2
-rw-r--r--tests/test-011.vala2
-rw-r--r--tests/test-012.vala2
-rw-r--r--tests/test-013.vala2
-rw-r--r--tests/test-014.vala2
-rw-r--r--tests/test-015.vala2
-rw-r--r--tests/test-016.vala2
-rw-r--r--tests/test-017.vala4
-rw-r--r--tests/test-018.vala4
-rw-r--r--tests/test-019.vala2
-rw-r--r--tests/test-020.vala2
-rw-r--r--tests/test-021.vala2
-rw-r--r--tests/test-022.vala2
-rw-r--r--tests/test-023.vala2
-rw-r--r--tests/test-024.vala4
-rw-r--r--tests/test-025.vala2
-rw-r--r--tests/test-026.vala2
-rw-r--r--tests/test-027.vala2
-rw-r--r--tests/test-028.vala2
-rw-r--r--tests/test-029.vala2
-rw-r--r--tests/test-030.vala2
-rw-r--r--tests/test-031.vala2
-rw-r--r--tests/test-032.vala2
-rw-r--r--tests/test-033.vala2
-rw-r--r--tests/test-034.vala6
-rw-r--r--tests/test-035.vala2
-rw-r--r--tests/testenchant.vala2
-rw-r--r--vala/valabindingprovider.vala2
-rw-r--r--vala/valacodecontext.vala2
-rw-r--r--vala/valacodenode.vala2
-rw-r--r--vala/valacodevisitor.vala2
-rw-r--r--vala/valascope.vala2
-rw-r--r--vala/valasemanticanalyzer.vala7
-rw-r--r--vala/valasourcefile.vala2
-rw-r--r--vala/valasourcefilecycle.vala2
-rw-r--r--vala/valasourcereference.vala4
-rw-r--r--vala/valasymbolresolver.vala18
-rw-r--r--vapigen/valavapigen.vala2
66 files changed, 108 insertions, 103 deletions
diff --git a/ChangeLog b/ChangeLog
index 945ec2f29..f799ebac1 100644
--- 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>
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 ()]