This commit is contained in:
Dima Granetchi
2014-12-08 21:36:11 +02:00
parent e571f8e364
commit 9eb1aee780
+7 -11
View File
@@ -188,15 +188,13 @@ class BindExt {
if (field.field != null) { if (field.field != null) {
fields.push( { field:field.field, bindable:field.error == null, e:field.e } ); fields.push( { field:field.field, bindable:field.error == null, e:field.e } );
end = false; end = false;
} else if (field.error != null) { } else if (field.error != null) switch (prevField.e.expr) {
switch (prevField.e.expr) { case ECall(e, params):
case ECall(e, params): field = Bind.checkField(e);
field = Bind.checkField(e); if (field.field == null) throw new FatalError('${e.toString()} is not bindable.', expr.pos);
if (field.field == null) throw new FatalError('${e.toString()} is not bindable.', expr.pos); else fields.push( { e:field.e, field:field.field, params:params, bindable:field.error == null } );
else fields.push( { e:field.e, field:field.field, params:params, bindable:field.error == null } ); end = false;
end = false; case _:
case _:
}
} }
else if (field.e == null) { else if (field.e == null) {
throw new FatalError('${prevField.e.toString()} is not bindable.', prevField.e.pos); throw new FatalError('${prevField.e.toString()} is not bindable.', prevField.e.pos);
@@ -287,7 +285,6 @@ class BindExt {
$ { BindMacros.bindingSignalProvider.getClassFieldBindExpr(macro n, prev.field, prevListenerNameExpr ) }); $ { BindMacros.bindingSignalProvider.getClassFieldBindExpr(macro n, prev.field, prevListenerNameExpr ) });
} }
var callPrev = macro $prevListenerNameExpr($a { prev.params != null ? [] : [macro o != null ? o.$fieldName : null, macro n != null ? n.$fieldName : null] } ); var callPrev = macro $prevListenerNameExpr($a { prev.params != null ? [] : [macro o != null ? o.$fieldName : null, macro n != null ? n.$fieldName : null] } );
//fieldListenerBody.push(macro trace(Std.string(o) + " -> " + Std.string(n)));
fieldListenerBody.push(callPrev); fieldListenerBody.push(callPrev);
if (field.params != null) { if (field.params != null) {
@@ -304,7 +301,6 @@ class BindExt {
${BindMacros.bindingSignalProvider.getClassFieldUnbindExpr(macro o, prev.field, prevListenerNameExpr )} ${BindMacros.bindingSignalProvider.getClassFieldUnbindExpr(macro o, prev.field, prevListenerNameExpr )}
); );
} }
fieldListener = macro function $listenerName (o:Null<$type>, n:Null<$type>):Void $b { fieldListenerBody }; fieldListener = macro function $listenerName (o:Null<$type>, n:Null<$type>):Void $b { fieldListenerBody };
} }