fix a few bugs in the CallNonFunctionProblem logic

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

Branch: refs/heads/develop
Commit: ced58cc231ea1784cefb30511609df1cbad02d91
Parents: aeabcbc
Author: Alex Harui <[email protected]>
Authored: Tue Aug 23 22:01:40 2016 -0700
Committer: Alex Harui <[email protected]>
Committed: Tue Aug 23 22:02:00 2016 -0700

----------------------------------------------------------------------
 .../compiler/internal/semantics/MethodBodySemanticChecker.java     | 1 +
 .../org/apache/flex/compiler/internal/tree/as/IdentifierNode.java  | 2 ++
 2 files changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ced58cc2/compiler/src/main/java/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java
----------------------------------------------------------------------
diff --git 
a/compiler/src/main/java/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java
 
b/compiler/src/main/java/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java
index 04eb040..43999de 100644
--- 
a/compiler/src/main/java/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java
+++ 
b/compiler/src/main/java/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java
@@ -855,6 +855,7 @@ public class MethodBodySemanticChecker
             VariableDefinition varDef = (VariableDefinition)def;
             IDefinition varType = varDef.resolveType(project);
             if (varType == null || // Null here means the ANY_TYPE
+                    varType.equals(project.getBuiltinType(BuiltinType.CLASS)) 
||
                     
varType.equals(project.getBuiltinType(BuiltinType.FUNCTION)) ||
                     varType.equals(project.getBuiltinType(BuiltinType.OBJECT)) 
||
                     
varType.equals(project.getBuiltinType(BuiltinType.ANY_TYPE)))

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ced58cc2/compiler/src/main/java/org/apache/flex/compiler/internal/tree/as/IdentifierNode.java
----------------------------------------------------------------------
diff --git 
a/compiler/src/main/java/org/apache/flex/compiler/internal/tree/as/IdentifierNode.java
 
b/compiler/src/main/java/org/apache/flex/compiler/internal/tree/as/IdentifierNode.java
index da50f5d..3642c05 100644
--- 
a/compiler/src/main/java/org/apache/flex/compiler/internal/tree/as/IdentifierNode.java
+++ 
b/compiler/src/main/java/org/apache/flex/compiler/internal/tree/as/IdentifierNode.java
@@ -1036,6 +1036,8 @@ public class IdentifierNode extends ExpressionNodeBase 
implements IIdentifierNod
 
     public boolean isLegacyCodegen(ICompilerProject project)
     {
+        if (!(project instanceof FlexProject))
+            return false;
         final Integer compatibilityVersion = 
((FlexProject)project).getCompatibilityVersion();
         if (compatibilityVersion == null)
             return false;

Reply via email to