summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2018-01-17 10:14:21 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2018-01-17 11:06:46 +0100
commitadd912f079317ce2b215afba13b440441226dcb4 (patch)
tree3c90527edb02a9db20e13d81671af84b09924d2d
parentce9af515cd92afa111756d23d353f0e1a0a94e6a (diff)
downloadvala-add912f079317ce2b215afba13b440441226dcb4.tar.gz
vala: Move inner-type lists from Class/Interface up to ObjectTypeSymbol
Inner-types are classes, structs, enums and delegates
-rw-r--r--vala/valaclass.vala98
-rw-r--r--vala/valainterface.vala98
-rw-r--r--vala/valaobjecttypesymbol.vala82
3 files changed, 98 insertions, 180 deletions
diff --git a/vala/valaclass.vala b/vala/valaclass.vala
index b956cd109..c76cf5584 100644
--- a/vala/valaclass.vala
+++ b/vala/valaclass.vala
@@ -102,48 +102,6 @@ public class Vala.Class : ObjectTypeSymbol {
private List<Constant> constants = new ArrayList<Constant> ();
- // inner types
- private List<Class> classes = new ArrayList<Class> ();
- private List<Struct> structs = new ArrayList<Struct> ();
- private List<Enum> enums = new ArrayList<Enum> ();
- private List<Delegate> delegates = new ArrayList<Delegate> ();
-
- /**
- * Returns a copy of the list of classes.
- *
- * @return list of classes
- */
- public List<Class> get_classes () {
- return classes;
- }
-
- /**
- * Returns a copy of the list of structs.
- *
- * @return list of structs
- */
- public List<Struct> get_structs () {
- return structs;
- }
-
- /**
- * Returns a copy of the list of enums.
- *
- * @return list of enums
- */
- public List<Enum> get_enums () {
- return enums;
- }
-
- /**
- * Returns a copy of the list of delegates.
- *
- * @return list of delegates
- */
- public List<Delegate> get_delegates () {
- return delegates;
- }
-
/**
* Specifies the default construction method.
*/
@@ -327,46 +285,6 @@ public class Vala.Class : ObjectTypeSymbol {
}
}
- /**
- * Adds the specified class as an inner class.
- *
- * @param cl a class
- */
- public override void add_class (Class cl) {
- classes.add (cl);
- scope.add (cl.name, cl);
- }
-
- /**
- * Adds the specified struct as an inner struct.
- *
- * @param st a struct
- */
- public override void add_struct (Struct st) {
- structs.add (st);
- scope.add (st.name, st);
- }
-
- /**
- * Adds the specified enum as an inner enum.
- *
- * @param en an enum
- */
- public override void add_enum (Enum en) {
- enums.add (en);
- scope.add (en.name, en);
- }
-
- /**
- * Adds the specified delegate as an inner delegate.
- *
- * @param d a delegate
- */
- public override void add_delegate (Delegate d) {
- delegates.add (d);
- scope.add (d.name, d);
- }
-
public override void add_constructor (Constructor c) {
if (c.binding == MemberBinding.INSTANCE) {
if (constructor != null) {
@@ -419,7 +337,7 @@ public class Vala.Class : ObjectTypeSymbol {
}
/* process enums first to avoid order problems in C code */
- foreach (Enum en in enums) {
+ foreach (Enum en in get_enums ()) {
en.accept (visitor);
}
@@ -467,15 +385,15 @@ public class Vala.Class : ObjectTypeSymbol {
class_destructor.accept (visitor);
}
- foreach (Class cl in classes) {
+ foreach (Class cl in get_classes ()) {
cl.accept (visitor);
}
- foreach (Struct st in structs) {
+ foreach (Struct st in get_structs ()) {
st.accept (visitor);
}
- foreach (Delegate d in delegates) {
+ foreach (Delegate d in get_delegates ()) {
d.accept (visitor);
}
}
@@ -605,7 +523,7 @@ public class Vala.Class : ObjectTypeSymbol {
}
/* process enums first to avoid order problems in C code */
- foreach (Enum en in enums) {
+ foreach (Enum en in get_enums ()) {
en.check (context);
}
@@ -658,15 +576,15 @@ public class Vala.Class : ObjectTypeSymbol {
class_destructor.check (context);
}
- foreach (Class cl in classes) {
+ foreach (Class cl in get_classes ()) {
cl.check (context);
}
- foreach (Struct st in structs) {
+ foreach (Struct st in get_structs ()) {
st.check (context);
}
- foreach (Delegate d in delegates) {
+ foreach (Delegate d in get_delegates ()) {
d.check (context);
}
diff --git a/vala/valainterface.vala b/vala/valainterface.vala
index e2d12085c..c12a6ce90 100644
--- a/vala/valainterface.vala
+++ b/vala/valainterface.vala
@@ -31,48 +31,6 @@ public class Vala.Interface : ObjectTypeSymbol {
private List<Constant> constants = new ArrayList<Constant> ();
private List<Symbol> virtuals = new ArrayList<Symbol> ();
- // inner types
- private List<Class> classes = new ArrayList<Class> ();
- private List<Struct> structs = new ArrayList<Struct> ();
- private List<Enum> enums = new ArrayList<Enum> ();
- private List<Delegate> delegates = new ArrayList<Delegate> ();
-
- /**
- * Returns a copy of the list of classes.
- *
- * @return list of classes
- */
- public List<Class> get_classes () {
- return classes;
- }
-
- /**
- * Returns a copy of the list of structs.
- *
- * @return list of structs
- */
- public List<Struct> get_structs () {
- return structs;
- }
-
- /**
- * Returns a copy of the list of enums.
- *
- * @return list of enums
- */
- public List<Enum> get_enums () {
- return enums;
- }
-
- /**
- * Returns a copy of the list of delegates.
- *
- * @return list of delegates
- */
- public List<Delegate> get_delegates () {
- return delegates;
- }
-
/**
* Creates a new interface.
*
@@ -180,46 +138,6 @@ public class Vala.Interface : ObjectTypeSymbol {
return virtuals;
}
- /**
- * Adds the specified class as an inner class.
- *
- * @param cl a class
- */
- public override void add_class (Class cl) {
- classes.add (cl);
- scope.add (cl.name, cl);
- }
-
- /**
- * Adds the specified struct as an inner struct.
- *
- * @param st a struct
- */
- public override void add_struct (Struct st) {
- structs.add (st);
- scope.add (st.name, st);
- }
-
- /**
- * Adds the specified enum as an inner enum.
- *
- * @param en an enum
- */
- public override void add_enum (Enum en) {
- enums.add (en);
- scope.add (en.name, en);
- }
-
- /**
- * Adds the specified delegate as an inner delegate.
- *
- * @param d a delegate
- */
- public override void add_delegate (Delegate d) {
- delegates.add (d);
- scope.add (d.name, d);
- }
-
public override void accept (CodeVisitor visitor) {
visitor.visit_interface (this);
}
@@ -234,7 +152,7 @@ public class Vala.Interface : ObjectTypeSymbol {
}
/* process enums first to avoid order problems in C code */
- foreach (Enum en in enums) {
+ foreach (Enum en in get_enums ()) {
en.accept (visitor);
}
@@ -258,15 +176,15 @@ public class Vala.Interface : ObjectTypeSymbol {
sig.accept (visitor);
}
- foreach (Class cl in classes) {
+ foreach (Class cl in get_classes ()) {
cl.accept (visitor);
}
- foreach (Struct st in structs) {
+ foreach (Struct st in get_structs ()) {
st.accept (visitor);
}
- foreach (Delegate d in delegates) {
+ foreach (Delegate d in get_delegates ()) {
d.accept (visitor);
}
}
@@ -359,7 +277,7 @@ public class Vala.Interface : ObjectTypeSymbol {
p.check (context);
}
- foreach (Enum en in enums) {
+ foreach (Enum en in get_enums ()) {
en.check (context);
}
@@ -392,15 +310,15 @@ public class Vala.Interface : ObjectTypeSymbol {
}
}
- foreach (Class cl in classes) {
+ foreach (Class cl in get_classes ()) {
cl.check (context);
}
- foreach (Struct st in structs) {
+ foreach (Struct st in get_structs ()) {
st.check (context);
}
- foreach (Delegate d in delegates) {
+ foreach (Delegate d in get_delegates ()) {
d.check (context);
}
diff --git a/vala/valaobjecttypesymbol.vala b/vala/valaobjecttypesymbol.vala
index 6f8415032..ab90322c4 100644
--- a/vala/valaobjecttypesymbol.vala
+++ b/vala/valaobjecttypesymbol.vala
@@ -39,6 +39,12 @@ public abstract class Vala.ObjectTypeSymbol : TypeSymbol {
private List<Property> properties = new ArrayList<Property> ();
private List<Signal> signals = new ArrayList<Signal> ();
+ // inner types
+ private List<Class> classes = new ArrayList<Class> ();
+ private List<Struct> structs = new ArrayList<Struct> ();
+ private List<Enum> enums = new ArrayList<Enum> ();
+ private List<Delegate> delegates = new ArrayList<Delegate> ();
+
public ObjectTypeSymbol (string name, SourceReference? source_reference = null, Comment? comment = null) {
base (name, source_reference, comment);
}
@@ -133,6 +139,82 @@ public abstract class Vala.ObjectTypeSymbol : TypeSymbol {
}
/**
+ * Returns the list of classes.
+ *
+ * @return list of classes
+ */
+ public List<Class> get_classes () {
+ return classes;
+ }
+
+ /**
+ * Returns the list of structs.
+ *
+ * @return list of structs
+ */
+ public List<Struct> get_structs () {
+ return structs;
+ }
+
+ /**
+ * Returns the list of enums.
+ *
+ * @return list of enums
+ */
+ public List<Enum> get_enums () {
+ return enums;
+ }
+
+ /**
+ * Returns the list of delegates.
+ *
+ * @return list of delegates
+ */
+ public List<Delegate> get_delegates () {
+ return delegates;
+ }
+
+ /**
+ * Adds the specified class as an inner class.
+ *
+ * @param cl a class
+ */
+ public override void add_class (Class cl) {
+ classes.add (cl);
+ scope.add (cl.name, cl);
+ }
+
+ /**
+ * Adds the specified struct as an inner struct.
+ *
+ * @param st a struct
+ */
+ public override void add_struct (Struct st) {
+ structs.add (st);
+ scope.add (st.name, st);
+ }
+
+ /**
+ * Adds the specified enum as an inner enum.
+ *
+ * @param en an enum
+ */
+ public override void add_enum (Enum en) {
+ enums.add (en);
+ scope.add (en.name, en);
+ }
+
+ /**
+ * Adds the specified delegate as an inner delegate.
+ *
+ * @param d a delegate
+ */
+ public override void add_delegate (Delegate d) {
+ delegates.add (d);
+ scope.add (d.name, d);
+ }
+
+ /**
* Appends the specified parameter to the list of type parameters.
*
* @param p a type parameter