From: Luca Bruno Date: Tue, 3 Jan 2012 11:37:00 +0000 (+0100) Subject: Resolve symbols during transformation X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fbb1a05a1c29f4b78fd67f64b93d03d1d63fda03;p=thirdparty%2Fvala.git Resolve symbols during transformation --- diff --git a/codegen/valagvarianttransformer.vala b/codegen/valagvarianttransformer.vala index a48189d6b..7d9b8a6ab 100644 --- a/codegen/valagvarianttransformer.vala +++ b/codegen/valagvarianttransformer.vala @@ -270,6 +270,9 @@ public class Vala.GVariantTransformer : CodeTransformer { b.add_expression (call); } b.add_return (expression (@"$builder.end ()")); + + b.pop_method (); + check (m); } var call = (MethodCall) expression (m.name+"()"); @@ -286,7 +289,7 @@ public class Vala.GVariantTransformer : CodeTransformer { var builderinit = expression (@"new GLib.VariantBuilder (new GLib.VariantType (\"$(get_type_signature (type))\"))"); var builder = b.add_temp_declaration (null, builderinit); - var for_each = expression (@"ht.for_each ((k,v) => $builder.add (\"{?*}\", k, v))"); + var for_each = expression (@"ht.for_each ((k,v) => { GLib.Variant k1 = k; GLib.Variant v1 = v; $builder.add (\"{?*}\", k, v); })"); b.add_expression (for_each); b.add_return (expression (@"$builder.end ()")); diff --git a/vala/valacodetransformer.vala b/vala/valacodetransformer.vala index ec2d6b6c2..12dfe7479 100644 --- a/vala/valacodetransformer.vala +++ b/vala/valacodetransformer.vala @@ -45,6 +45,7 @@ public class Vala.CodeTransformer : CodeVisitor { } public void check (CodeNode node) { + node.accept (context.resolver); if (!node.check (context)) { return; }