You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by jo...@apache.org on 2016/06/08 22:53:33 UTC

git commit: [flex-falcon] [refs/heads/develop] - compiler: include may be used as an identifier

Repository: flex-falcon
Updated Branches:
  refs/heads/develop 9f308a1be -> cf3dd695a


compiler: include may be used as an identifier


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

Branch: refs/heads/develop
Commit: cf3dd695a4225591047399febd4fbe33f255ca05
Parents: 9f308a1
Author: Josh Tynjala <jo...@gmail.com>
Authored: Wed Jun 8 15:53:30 2016 -0700
Committer: Josh Tynjala <jo...@gmail.com>
Committed: Wed Jun 8 15:53:30 2016 -0700

----------------------------------------------------------------------
 .../parsing/as/StreamingASTokenizer.java        | 13 ++++++++++++
 compiler/src/test/java/as/ASKeywordTests.java   | 21 ++++++++++++++++++++
 2 files changed, 34 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/cf3dd695/compiler/src/main/java/org/apache/flex/compiler/internal/parsing/as/StreamingASTokenizer.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/internal/parsing/as/StreamingASTokenizer.java b/compiler/src/main/java/org/apache/flex/compiler/internal/parsing/as/StreamingASTokenizer.java
index 1c90e94..2db5d17 100644
--- a/compiler/src/main/java/org/apache/flex/compiler/internal/parsing/as/StreamingASTokenizer.java
+++ b/compiler/src/main/java/org/apache/flex/compiler/internal/parsing/as/StreamingASTokenizer.java
@@ -805,6 +805,19 @@ public class StreamingASTokenizer implements ASTokenTypes, IASTokenizer, Closeab
                     return retVal;
                 case TOKEN_KEYWORD_INCLUDE:
                 {
+                    if (lastToken != null)
+                    {
+                        int lastTokenType = lastToken.getType();
+                        switch (lastTokenType)
+                        {
+                            case TOKEN_KEYWORD_VAR:
+                            case TOKEN_KEYWORD_FUNCTION:
+                            case TOKEN_RESERVED_WORD_GET:
+                            case TOKEN_RESERVED_WORD_SET:
+                            case TOKEN_OPERATOR_MEMBER_ACCESS:
+                                retVal.setType(TOKEN_IDENTIFIER);
+                        }
+                    }
                     // "followIncludes=false" is usually used for code model
                     // partitioner. They want the "include" token.
                     if (!config.followIncludes)

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/cf3dd695/compiler/src/test/java/as/ASKeywordTests.java
----------------------------------------------------------------------
diff --git a/compiler/src/test/java/as/ASKeywordTests.java b/compiler/src/test/java/as/ASKeywordTests.java
index 8223620..849cbce 100644
--- a/compiler/src/test/java/as/ASKeywordTests.java
+++ b/compiler/src/test/java/as/ASKeywordTests.java
@@ -313,6 +313,27 @@ public class ASKeywordTests extends ASFeatureTestsBase
     }
 
     @Test
+    public void ASKeyword_include_as_variable_name()
+    {
+        // all tests can assume that flash.display.Sprite
+        // flash.system.System and flash.events.Event have been imported
+        String[] imports = new String[]
+        {
+        };
+        String[] declarations = new String[]
+        {
+                "public var include:String;",
+        };
+        String[] testCode = new String[]
+        {
+                "this.include = 'bar';",
+                "assertEqual('variable named include', this.include, 'bar');",
+        };
+        String source = getAS(imports, declarations, testCode, new String[0]);
+        compileAndRun(source);
+    }
+
+    @Test
     public void ASKeyword_as_member_expression()
     {
     	// all tests can assume that flash.display.Sprite