From 228ee2d0268b16c3e9c705b2ceae99aa9fe327f7 Mon Sep 17 00:00:00 2001 From: Dima Granetchi Date: Mon, 24 Nov 2014 22:29:25 +0200 Subject: [PATCH] stop override this var --- src/bindx/BindxExt.hx | 11 +++++------ test.hxml | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/bindx/BindxExt.hx b/src/bindx/BindxExt.hx index a2f9c59..af26fce 100644 --- a/src/bindx/BindxExt.hx +++ b/src/bindx/BindxExt.hx @@ -137,17 +137,15 @@ class BindExt { case _: macro if (!init) { var v:Null<$type> = null; try { v = $expr; } catch (e:Dynamic) { }; $i{zeroListener}(null, v); }; } - var base = [ - (macro var init:Bool = true), - ]; - var init = [ macro function $fieldListenerName(?from:Dynamic, ?to:Dynamic) $callListener, macro function $methodListenerName() $callListener ]; + init = [macro var init:Bool = true].concat(chain.init).concat(init).concat(chain.bind); + var res = macro (function ($zeroListener):Void->Void - $b { base.concat(chain.init).concat(init).concat(chain.bind).concat([macro init = false, macro $i{methodListenerName}(), macro return function ():Void $b { chain.unbind }]) } + $b { init.concat([macro init = false, macro $i{methodListenerName}(), macro return function ():Void $b { chain.unbind }]) } )($listener); trace(new Printer().printExpr(res)); @@ -294,7 +292,8 @@ class BindExt { throw new bindx.Error("Chain is not bindable.", pos); var zeroName = res.zeroName = zeroListener.f.e.toString(); - res.init.unshift(macro var $zeroName = $i{zeroName}); + if (zeroName != "this") + res.init.unshift(macro var $zeroName = $i{zeroName}); // TODO: local var res.bind.push(BindMacros.bindingSignalProvider.getClassFieldBindExpr(macro $i{zeroName}, zeroListener.f.field, zeroListener.l )); diff --git a/test.hxml b/test.hxml index e926eb4..44c4599 100644 --- a/test.hxml +++ b/test.hxml @@ -2,7 +2,7 @@ -cp src -cp test -D dump=pretty --neko bin/test.n +--interp -lib buddy -D reporter=buddy.reporting.TravisHxReporter -D console_log \ No newline at end of file