You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/08/30 07:30:32 UTC
[09/12] git commit: [flex-falcon] [refs/heads/develop] -
[IMPROVEMENT] More robust ancestry check for needsEventDispatcher
[IMPROVEMENT] More robust ancestry check for needsEventDispatcher
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/26cd027c
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/26cd027c
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/26cd027c
Branch: refs/heads/develop
Commit: 26cd027c595f5fc852277fda886f1d608ba35412
Parents: 7842b1e
Author: greg-dove <gr...@gmail.com>
Authored: Mon Aug 29 13:29:03 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Mon Aug 29 13:30:12 2016 +1200
----------------------------------------------------------------------
.../internal/definitions/ClassDefinitionBase.java | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/26cd027c/compiler/src/main/java/org/apache/flex/compiler/internal/definitions/ClassDefinitionBase.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/internal/definitions/ClassDefinitionBase.java b/compiler/src/main/java/org/apache/flex/compiler/internal/definitions/ClassDefinitionBase.java
index f8a63ea..60d8725 100644
--- a/compiler/src/main/java/org/apache/flex/compiler/internal/definitions/ClassDefinitionBase.java
+++ b/compiler/src/main/java/org/apache/flex/compiler/internal/definitions/ClassDefinitionBase.java
@@ -278,7 +278,7 @@ public abstract class ClassDefinitionBase extends TypeDefinitionBase implements
{
IClassDefinition baseClass = resolveBaseClass(project);
- if (baseClass != null)
+ while (baseClass != null)
{
if (baseClass.isInstanceOf(iEventDispatcher, project))
{
@@ -287,12 +287,14 @@ public abstract class ClassDefinitionBase extends TypeDefinitionBase implements
return false;
}
if (baseClass.needsEventDispatcher(project)) {
- //recursive check back to the lowest level base class that needs Bindable support
- //If the base class needs implicit Bindable support, then this sub-class will inherit its
+ //check the base class for 'needs Bindable support'
+ //If the base class needs implicit Bindable implementation,
+ //then this sub-class will inherit its
//compiler-generated implementation, so this sub-class does not 'need' it
return false;
}
-
+ //check the full ancestor chain
+ baseClass = baseClass.resolveBaseClass(project);
}
InterfaceDefinition[] interfs = resolveImplementedInterfaces(project, null, false);