From: Juerg Billeter Date: Mon, 17 Sep 2007 18:42:27 +0000 (+0000) Subject: switch object creation expression to external visitor X-Git-Tag: VALA_0_1_4~33 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bf34312b9604ddd58478b8b5e1aa4868f0aa2eea;p=thirdparty%2Fvala.git switch object creation expression to external visitor 2007-09-17 Juerg Billeter * vala/valacodevisitor.vala, vala/valamemorymanager.vala, vala/valaobjectcreationexpression.vala, vala/valasemanticanalyzer.vala, vala/valasymbolresolver.vala, gobject/valacodegenerator.vala: switch object creation expression to external visitor svn path=/trunk/; revision=615 --- diff --git a/ChangeLog b/ChangeLog index 83beef1c5..6a3e90f06 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-09-17 Jürg Billeter + + * vala/valacodevisitor.vala, vala/valamemorymanager.vala, + vala/valaobjectcreationexpression.vala, + vala/valasemanticanalyzer.vala, vala/valasymbolresolver.vala, + gobject/valacodegenerator.vala: switch object creation expression to + external visitor + 2007-09-17 Jürg Billeter * vala/valacodevisitor.vala, vala/valainvocationexpression.vala, diff --git a/gobject/valacodegenerator.vala b/gobject/valacodegenerator.vala index 0f2815db3..cd9a7c421 100644 --- a/gobject/valacodegenerator.vala +++ b/gobject/valacodegenerator.vala @@ -2411,7 +2411,9 @@ public class Vala.CodeGenerator : CodeVisitor { } } - public override void visit_end_object_creation_expression (ObjectCreationExpression! expr) { + public override void visit_object_creation_expression (ObjectCreationExpression! expr) { + expr.accept_children (this); + CCodeExpression instance = null; CCodeFunctionCall creation_call = null; diff --git a/vala/valacodevisitor.vala b/vala/valacodevisitor.vala index a55203310..1b3e5a26b 100644 --- a/vala/valacodevisitor.vala +++ b/vala/valacodevisitor.vala @@ -500,20 +500,11 @@ public abstract class Vala.CodeVisitor : Object { } /** - * Visit operation called at beginning of object creation - * expressions. + * Visit operation called for object creation expressions. * * @param expr an object creation expression */ - public virtual void visit_begin_object_creation_expression (ObjectCreationExpression! expr) { - } - - /** - * Visit operation called at end of object creation expressions. - * - * @param expr an object creation expression - */ - public virtual void visit_end_object_creation_expression (ObjectCreationExpression! expr) { + public virtual void visit_object_creation_expression (ObjectCreationExpression! expr) { } /** diff --git a/vala/valamemorymanager.vala b/vala/valamemorymanager.vala index 4b6246388..efb6c9ac5 100644 --- a/vala/valamemorymanager.vala +++ b/vala/valamemorymanager.vala @@ -241,7 +241,9 @@ public class Vala.MemoryManager : CodeVisitor { } } - public override void visit_end_object_creation_expression (ObjectCreationExpression! expr) { + public override void visit_object_creation_expression (ObjectCreationExpression! expr) { + expr.accept_children (this); + if (!(expr.symbol_reference is Invokable)) { return; } diff --git a/vala/valaobjectcreationexpression.vala b/vala/valaobjectcreationexpression.vala index 1968d60e4..6ad10cccd 100644 --- a/vala/valaobjectcreationexpression.vala +++ b/vala/valaobjectcreationexpression.vala @@ -97,6 +97,10 @@ public class Vala.ObjectCreationExpression : Expression { } public override void accept (CodeVisitor! visitor) { + visitor.visit_object_creation_expression (this); + } + + public override void accept_children (CodeVisitor! visitor) { if (type_reference != null) { type_reference.accept (visitor); } @@ -105,8 +109,6 @@ public class Vala.ObjectCreationExpression : Expression { member_name.accept (visitor); } - visitor.visit_begin_object_creation_expression (this); - foreach (Expression arg in argument_list) { arg.accept (visitor); } @@ -114,8 +116,6 @@ public class Vala.ObjectCreationExpression : Expression { foreach (MemberInitializer init in object_initializer) { init.accept (visitor); } - - visitor.visit_end_object_creation_expression (this); } public override void replace (CodeNode! old_node, CodeNode! new_node) { diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala index 46fec8b42..1fd77ac16 100644 --- a/vala/valasemanticanalyzer.vala +++ b/vala/valasemanticanalyzer.vala @@ -1846,7 +1846,9 @@ public class Vala.SemanticAnalyzer : CodeVisitor { expr.static_type = expr.inner.static_type; } - public override void visit_end_object_creation_expression (ObjectCreationExpression! expr) { + public override void visit_object_creation_expression (ObjectCreationExpression! expr) { + expr.accept_children (this); + DataType type = null; if (expr.type_reference == null) { diff --git a/vala/valasymbolresolver.vala b/vala/valasymbolresolver.vala index 0d10e1668..4113a2fc2 100644 --- a/vala/valasymbolresolver.vala +++ b/vala/valasymbolresolver.vala @@ -339,6 +339,10 @@ public class Vala.SymbolResolver : CodeVisitor { expr.accept_children (this); } + public override void visit_object_creation_expression (ObjectCreationExpression! expr) { + expr.accept_children (this); + } + public override void visit_assignment (Assignment! a) { a.accept_children (this); }