From d95e2e1423db924f6717d94f6626acddbccbe603 Mon Sep 17 00:00:00 2001 From: Dima Granetchi Date: Fri, 2 Jan 2015 15:53:02 +0200 Subject: [PATCH] java/cs target fixes --- src/bindx/BindMacros.hx | 19 ++++++------------- src/bindx/BindSignal.hx | 2 +- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/src/bindx/BindMacros.hx b/src/bindx/BindMacros.hx index 1e5660c..ed86b5f 100644 --- a/src/bindx/BindMacros.hx +++ b/src/bindx/BindMacros.hx @@ -26,7 +26,7 @@ class BindMacros { */ static public inline var FORCE = "force"; - static public inline var BINDABLE_FIELDS = "bindableFields"; + static public inline var BINDABLE_FIELDS = ":bindableFields"; static var processed:Array = []; @@ -55,7 +55,7 @@ class BindMacros { var a = []; for (f in fields) { for (m in f.meta) if (m.name == MetaUtils.BINDABLE_META) { - a.push(f.name); + a.push(macro $v { f.name } ); if (m.params.length > 0) Context.warning('Interface doesn\'t support @:bindable meta params', m.pos); } @@ -63,7 +63,7 @@ class BindMacros { var classMeta = classType.meta; if (classMeta.has(BINDABLE_FIELDS)) classMeta.remove(BINDABLE_FIELDS); - classMeta.add(BINDABLE_FIELDS, [macro $v { a } ], classType.pos); + classMeta.add(BINDABLE_FIELDS, a, classType.pos); return fields; } @@ -94,16 +94,9 @@ class BindMacros { function iter(t:ClassType) { var meta = t.meta.get(); var m = meta.find(function (it) return it.name == BINDABLE_FIELDS); - if (m != null && m.params.length > 0) { - var a = m.params[0]; - switch a.expr { - case EArrayDecl(values): - for (v in values) { - var value = switch v.expr { case EConst(CString(s)): s; case _: null; }; - interfaceFields.set(value, t); - } - case _: - } + if (m != null) for (a in m.params) { + var value = switch a.expr { case EConst(CString(s)): s; case _: null; }; + interfaceFields.set(value, t); } for (it in t.interfaces) iter(it.t.get()); } diff --git a/src/bindx/BindSignal.hx b/src/bindx/BindSignal.hx index f11bf40..022f38b 100644 --- a/src/bindx/BindSignal.hx +++ b/src/bindx/BindSignal.hx @@ -99,7 +99,7 @@ class BindSignalProvider implements IBindingSignalProvider { return macro { var meta = haxe.rtti.Meta.getFields(std.Type.getClass($expr)); if (meta != null) for (m in std.Reflect.fields(meta)) { - var data:Dynamic = std.Reflect.field(meta, m); + var data = std.Reflect.field(meta, m); if (std.Reflect.hasField(data, $v{BIND_SIGNAL_META})) { var signal:bindx.BindSignal.Signal = cast Reflect.field($expr, m); if (signal != null) {