java/cs target fixes

This commit is contained in:
Dima Granetchi
2015-01-02 15:53:02 +02:00
parent 394015112f
commit d95e2e1423
2 changed files with 7 additions and 14 deletions
+5 -12
View File
@@ -26,7 +26,7 @@ class BindMacros {
*/ */
static public inline var FORCE = "force"; static public inline var FORCE = "force";
static public inline var BINDABLE_FIELDS = "bindableFields"; static public inline var BINDABLE_FIELDS = ":bindableFields";
static var processed:Array<String> = []; static var processed:Array<String> = [];
@@ -55,7 +55,7 @@ class BindMacros {
var a = []; var a = [];
for (f in fields) { for (f in fields) {
for (m in f.meta) if (m.name == MetaUtils.BINDABLE_META) { 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) if (m.params.length > 0)
Context.warning('Interface doesn\'t support @:bindable meta params', m.pos); Context.warning('Interface doesn\'t support @:bindable meta params', m.pos);
} }
@@ -63,7 +63,7 @@ class BindMacros {
var classMeta = classType.meta; var classMeta = classType.meta;
if (classMeta.has(BINDABLE_FIELDS)) if (classMeta.has(BINDABLE_FIELDS))
classMeta.remove(BINDABLE_FIELDS); classMeta.remove(BINDABLE_FIELDS);
classMeta.add(BINDABLE_FIELDS, [macro $v { a } ], classType.pos); classMeta.add(BINDABLE_FIELDS, a, classType.pos);
return fields; return fields;
} }
@@ -94,17 +94,10 @@ class BindMacros {
function iter(t:ClassType) { function iter(t:ClassType) {
var meta = t.meta.get(); var meta = t.meta.get();
var m = meta.find(function (it) return it.name == BINDABLE_FIELDS); var m = meta.find(function (it) return it.name == BINDABLE_FIELDS);
if (m != null && m.params.length > 0) { if (m != null) for (a in m.params) {
var a = m.params[0]; var value = switch a.expr { case EConst(CString(s)): s; case _: null; };
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); interfaceFields.set(value, t);
} }
case _:
}
}
for (it in t.interfaces) iter(it.t.get()); for (it in t.interfaces) iter(it.t.get());
} }
+1 -1
View File
@@ -99,7 +99,7 @@ class BindSignalProvider implements IBindingSignalProvider {
return macro { return macro {
var meta = haxe.rtti.Meta.getFields(std.Type.getClass($expr)); var meta = haxe.rtti.Meta.getFields(std.Type.getClass($expr));
if (meta != null) for (m in std.Reflect.fields(meta)) { if (meta != null) for (m in std.Reflect.fields(meta)) {
var data:Dynamic<String> = std.Reflect.field(meta, m); var data = std.Reflect.field(meta, m);
if (std.Reflect.hasField(data, $v{BIND_SIGNAL_META})) { if (std.Reflect.hasField(data, $v{BIND_SIGNAL_META})) {
var signal:bindx.BindSignal.Signal<Dynamic> = cast Reflect.field($expr, m); var signal:bindx.BindSignal.Signal<Dynamic> = cast Reflect.field($expr, m);
if (signal != null) { if (signal != null) {