From 5ab43ca1926ee5b61062d699e269bbcb9f4859ac Mon Sep 17 00:00:00 2001 From: Dima Granetchi Date: Wed, 31 Dec 2014 22:42:28 +0200 Subject: [PATCH] interfaces inheritance --- haxelib.json | 4 ++-- src/bindx/BindMacros.hx | 8 ++++---- test/InheritanceTest.hx | 3 ++- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/haxelib.json b/haxelib.json index f79a99b..92d0a88 100644 --- a/haxelib.json +++ b/haxelib.json @@ -5,8 +5,8 @@ "tags": ["bind", "binding", "bindings", "cross"], "description": "Powerful and fast macro-based data binding engine inspired by Flex Bindings with easy-to-use syntax.", "classPath": "src", - "version": "2.0.1", - "releasenote": "haxe night build support, fix interfaces processing", + "version": "2.1.0", + "releasenote": "interface fields support @:bindable meta", "contributors": [ "deep" ] diff --git a/src/bindx/BindMacros.hx b/src/bindx/BindMacros.hx index 530aeea..71e7da3 100644 --- a/src/bindx/BindMacros.hx +++ b/src/bindx/BindMacros.hx @@ -43,6 +43,9 @@ class BindMacros { var fields = Context.getBuildFields(); + var meta = classType.bindableMeta(); + if (meta != null) injectBindableMeta(fields, meta); + if (classType.isInterface) { for (f in fields) { for (m in f.meta) if (m.name == MetaUtils.BINDABLE_META) { @@ -50,11 +53,8 @@ class BindMacros { Context.warning('Interface doesn\'t support @:bindable meta params', m.pos); } } - return null; + return fields; } - - var meta = classType.bindableMeta(); - if (meta != null) injectBindableMeta(fields, meta); var interfaceFields = getBindableFieldsFromInterfaces(classType); diff --git a/test/InheritanceTest.hx b/test/InheritanceTest.hx index 884b4a1..94c1aac 100644 --- a/test/InheritanceTest.hx +++ b/test/InheritanceTest.hx @@ -40,8 +40,9 @@ class InheritanceTest extends BuddySuite { } } +@:bindable interface IIBindable extends IBindable { - @:bindable + var i(default, set):Int; }