This is an automated email from the ASF dual-hosted git repository.

joshtynjala pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git


The following commit(s) were added to refs/heads/develop by this push:
     new 1dd1cab  compiler: DynamicAccessNode resolves element type of Vector 
(closes #80)
1dd1cab is described below

commit 1dd1cabe2021ae3a55fc045dd6712bd754a39aff
Author: Josh Tynjala <[email protected]>
AuthorDate: Tue Feb 19 08:48:21 2019 -0800

    compiler: DynamicAccessNode resolves element type of Vector (closes #80)
---
 .../compiler/internal/tree/as/DynamicAccessNode.java       | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git 
a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/DynamicAccessNode.java
 
b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/DynamicAccessNode.java
index 49cad6e..dd974a7 100644
--- 
a/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/DynamicAccessNode.java
+++ 
b/compiler/src/main/java/org/apache/royale/compiler/internal/tree/as/DynamicAccessNode.java
@@ -19,6 +19,8 @@
 
 package org.apache.royale.compiler.internal.tree.as;
 
+import org.apache.royale.compiler.definitions.IAppliedVectorDefinition;
+import org.apache.royale.compiler.definitions.ITypeDefinition;
 import org.apache.royale.compiler.projects.ICompilerProject;
 import org.apache.royale.compiler.tree.ASTNodeID;
 import org.apache.royale.compiler.tree.as.IDynamicAccessNode;
@@ -73,6 +75,18 @@ public class DynamicAccessNode extends 
BinaryOperatorNodeBase implements IDynami
         return true;
     }
     
+    @Override
+    public ITypeDefinition resolveType(ICompilerProject project)
+    {
+        ITypeDefinition leftType = getLeftOperandNode().resolveType(project);
+        if (leftType instanceof IAppliedVectorDefinition)
+        {
+            IAppliedVectorDefinition vectorDef = (IAppliedVectorDefinition) 
leftType;
+            return vectorDef.resolveElementType(project);
+        }
+        return super.resolveType(project);
+    }
+    
     //
     // OperatorNodeBase overrides
     //

Reply via email to