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 2015/09/17 08:24:20 UTC

git commit: [flex-falcon] [refs/heads/develop] - allow both a class in the 'goog' package called 'events' and classes in the 'goog.events' package. Before this change, goog.events.fireListener didn't resolve because it always assumed that 'goog.events'

Repository: flex-falcon
Updated Branches:
  refs/heads/develop 6be387f1e -> 0cbb5ae00


allow both a class in the 'goog' package called 'events' and classes in the 'goog.events' package.  Before this change, goog.events.fireListener didn't resolve because it always assumed that 'goog.events' was a package.  Now it will also try to see if goog.events is a class with a fireListener method on it.


Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/0cbb5ae0
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/0cbb5ae0
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/0cbb5ae0

Branch: refs/heads/develop
Commit: 0cbb5ae00cc39b92b8f12f9c50c17bb39f01814f
Parents: 6be387f
Author: Alex Harui <ah...@apache.org>
Authored: Wed Sep 16 23:25:00 2015 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Wed Sep 16 23:25:00 2015 -0700

----------------------------------------------------------------------
 .../flex/compiler/internal/tree/as/IdentifierNode.java  | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/0cbb5ae0/compiler/src/org/apache/flex/compiler/internal/tree/as/IdentifierNode.java
----------------------------------------------------------------------
diff --git a/compiler/src/org/apache/flex/compiler/internal/tree/as/IdentifierNode.java b/compiler/src/org/apache/flex/compiler/internal/tree/as/IdentifierNode.java
index 42f379b..f1d9e46 100644
--- a/compiler/src/org/apache/flex/compiler/internal/tree/as/IdentifierNode.java
+++ b/compiler/src/org/apache/flex/compiler/internal/tree/as/IdentifierNode.java
@@ -348,6 +348,7 @@ public class IdentifierNode extends ExpressionNodeBase implements IIdentifierNod
         }
 
         boolean isMemberRef = isMemberRef();
+        boolean wasMemberRef = isMemberRef;
 
         if (isMemberRef && baseIsPackage())
         {
@@ -380,8 +381,17 @@ public class IdentifierNode extends ExpressionNodeBase implements IIdentifierNod
         {
             if (qualifier == null)
                 result = asScope.findProperty(project, name, getDependencyType(), isTypeRef());
-            else
+            else {
                 result = asScope.findPropertyQualified(project, qualifier, name, getDependencyType(), isTypeRef());
+                if (result == null && wasMemberRef && baseIsPackage())
+                {
+                    // if we get here it was because there is a memberaccessexpression like "a.b.foo"
+                    // that did not resolve because a.b is a package but foo isn't a class.  There is a chance that
+                    // "a" by itself is a package and there is a class "b" with a member called "foo" so
+                    // look for that
+                    result = resolveMemberRef(project, asScope, name, null);
+                }
+            }
         }
 
         return result;