interfaces inheritance

This commit is contained in:
Dima Granetchi
2014-12-31 22:42:28 +02:00
parent ffc70136f8
commit 5ab43ca192
3 changed files with 8 additions and 7 deletions
+2 -2
View File
@@ -5,8 +5,8 @@
"tags": ["bind", "binding", "bindings", "cross"], "tags": ["bind", "binding", "bindings", "cross"],
"description": "Powerful and fast macro-based data binding engine inspired by Flex Bindings with easy-to-use syntax.", "description": "Powerful and fast macro-based data binding engine inspired by Flex Bindings with easy-to-use syntax.",
"classPath": "src", "classPath": "src",
"version": "2.0.1", "version": "2.1.0",
"releasenote": "haxe night build support, fix interfaces processing", "releasenote": "interface fields support @:bindable meta",
"contributors": [ "contributors": [
"deep" "deep"
] ]
+4 -4
View File
@@ -43,6 +43,9 @@ class BindMacros {
var fields = Context.getBuildFields(); var fields = Context.getBuildFields();
var meta = classType.bindableMeta();
if (meta != null) injectBindableMeta(fields, meta);
if (classType.isInterface) { if (classType.isInterface) {
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) {
@@ -50,11 +53,8 @@ class BindMacros {
Context.warning('Interface doesn\'t support @:bindable meta params', m.pos); 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); var interfaceFields = getBindableFieldsFromInterfaces(classType);
+2 -1
View File
@@ -40,8 +40,9 @@ class InheritanceTest extends BuddySuite {
} }
} }
@:bindable
interface IIBindable extends IBindable { interface IIBindable extends IBindable {
@:bindable
var i(default, set):Int; var i(default, set):Int;
} }