From add912f079317ce2b215afba13b440441226dcb4 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Wed, 17 Jan 2018 10:14:21 +0100 Subject: [PATCH] vala: Move inner-type lists from Class/Interface up to ObjectTypeSymbol Inner-types are classes, structs, enums and delegates --- vala/valaclass.vala | 98 ++++-------------------------------------- vala/valainterface.vala | 98 ++++-------------------------------------- vala/valaobjecttypesymbol.vala | 82 +++++++++++++++++++++++++++++++++++ 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 constants = new ArrayList (); - // inner types - private List classes = new ArrayList (); - private List structs = new ArrayList (); - private List enums = new ArrayList (); - private List delegates = new ArrayList (); - - /** - * Returns a copy of the list of classes. - * - * @return list of classes - */ - public List get_classes () { - return classes; - } - - /** - * Returns a copy of the list of structs. - * - * @return list of structs - */ - public List get_structs () { - return structs; - } - - /** - * Returns a copy of the list of enums. - * - * @return list of enums - */ - public List get_enums () { - return enums; - } - - /** - * Returns a copy of the list of delegates. - * - * @return list of delegates - */ - public List 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 constants = new ArrayList (); private List virtuals = new ArrayList (); - // inner types - private List classes = new ArrayList (); - private List structs = new ArrayList (); - private List enums = new ArrayList (); - private List delegates = new ArrayList (); - - /** - * Returns a copy of the list of classes. - * - * @return list of classes - */ - public List get_classes () { - return classes; - } - - /** - * Returns a copy of the list of structs. - * - * @return list of structs - */ - public List get_structs () { - return structs; - } - - /** - * Returns a copy of the list of enums. - * - * @return list of enums - */ - public List get_enums () { - return enums; - } - - /** - * Returns a copy of the list of delegates. - * - * @return list of delegates - */ - public List 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 properties = new ArrayList (); private List signals = new ArrayList (); + // inner types + private List classes = new ArrayList (); + private List structs = new ArrayList (); + private List enums = new ArrayList (); + private List delegates = new ArrayList (); + 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 get_classes () { + return classes; + } + + /** + * Returns the list of structs. + * + * @return list of structs + */ + public List get_structs () { + return structs; + } + + /** + * Returns the list of enums. + * + * @return list of enums + */ + public List get_enums () { + return enums; + } + + /** + * Returns the list of delegates. + * + * @return list of delegates + */ + public List 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 -- 2.11.4.GIT