You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by jo...@apache.org on 2019/11/20 22:37:24 UTC

[royale-compiler] branch develop updated (bd5ecbf -> 65ceadb)

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

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


    from bd5ecbf  pom.xml: restoring JGit in compiler to fix CI release process
     new e395861  added strict-identifier-names compiler option
     new 65ceadb  strict-identifier-names is lenient by default for Royale, but strict for other SDKs using Royale for code intelligence (since their compilers will be strict)

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../royale/compiler/config/Configuration.java      |  22 +++
 .../royale/compiler/projects/ICompilerProject.java |   5 +
 .../src/test/config/compile-as-config.xml          |   1 +
 .../royale/compiler/clients/JSConfiguration.java   |  10 ++
 .../compiler/internal/parsing/as/BaseASParser.java |  11 +-
 .../internal/parsing/as/ConfigProcessor.java       |   6 +
 .../internal/parsing/as/StreamingASTokenizer.java  |  37 ++--
 .../compiler/internal/projects/ASCProject.java     |   6 +
 .../compiler/internal/projects/RoyaleProject.java  |  15 ++
 .../projects/RoyaleProjectConfigurator.java        |   2 +
 .../compiler/internal/units/ASCompilationUnit.java |   1 +
 compiler/src/test/config/compile-as-config.xml     |   3 +-
 compiler/src/test/java/as/ASKeywordTests.java      | 188 +++++++++++++++++----
 ...n_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |  26 +--
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |  16 +-
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...n_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 .../tools/debugger/expression/DebuggerUtil.java    |   2 +-
 26 files changed, 277 insertions(+), 74 deletions(-)
 rename compiler/src/test/resources/swfdumps/{as_ASKeywordTests_ASKeyword_as_member_expression_swfdump.xml => as_ASKeywordTests_ASKeyword_As_asMemberExpression_andStrictIdentifierNamesDisabled_swfdump.xml} (100%)
 rename compiler/src/test/resources/swfdumps/{as_ASKeywordTests_ASKeyword_as_method_name_swfdump.xml => as_ASKeywordTests_ASKeyword_As_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml} (100%)
 rename compiler/src/test/resources/swfdumps/{as_ASKeywordTests_ASKeyword_as_property_name_swfdump.xml => as_ASKeywordTests_ASKeyword_As_asPropertyName_andStrictIdentifierNamesDisabled_swfdump.xml} (100%)
 rename compiler/src/test/resources/swfdumps/{as_ASKeywordTests_ASKeyword_as_variable_name_swfdump.xml => as_ASKeywordTests_ASKeyword_As_asVariableName_andStrictIdentifierNamesDisabled_swfdump.xml} (85%)
 rename compiler/src/test/resources/swfdumps/{as_ASKeywordTests_ASKeyword_Default_as_method_name_swfdump.xml => as_ASKeywordTests_ASKeyword_Default_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml} (100%)
 rename compiler/src/test/resources/swfdumps/{as_ASKeywordTests_ASKeyword_default_as_variable_name_swfdump.xml => as_ASKeywordTests_ASKeyword_Default_asVariableName_andStrictIdentifierNamesDisabled_swfdump.xml} (91%)
 rename compiler/src/test/resources/swfdumps/{as_ASKeywordTests_ASKeyword_for_as_method_name_swfdump.xml => as_ASKeywordTests_ASKeyword_For_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml} (100%)
 rename compiler/src/test/resources/swfdumps/{as_ASKeywordTests_ASKeyword_Get_as_getter_name_swfdump.xml => as_ASKeywordTests_ASKeyword_Get_asGetterName_andStrictIdentifierNamesDisabled_swfdump.xml} (100%)
 rename compiler/src/test/resources/swfdumps/{as_ASKeywordTests_ASKeyword_Get_as_member_expression_name_swfdump.xml => as_ASKeywordTests_ASKeyword_Get_asMemberExpression_andStrictIdentifierNamesDisabled_swfdump.xml} (100%)
 rename compiler/src/test/resources/swfdumps/{as_ASKeywordTests_ASKeyword_Get_as_method_name_swfdump.xml => as_ASKeywordTests_ASKeyword_Get_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml} (100%)
 rename compiler/src/test/resources/swfdumps/{as_ASKeywordTests_ASKeyword_include_as_variable_name_swfdump.xml => as_ASKeywordTests_ASKeyword_Include_asVariableName_andStrictIdentifierNamesDisabled_swfdump.xml} (100%)
 rename compiler/src/test/resources/swfdumps/{as_ASKeywordTests_ASKeyword_Namespace_as_method_name_swfdump.xml => as_ASKeywordTests_ASKeyword_Namespace_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml} (100%)


[royale-compiler] 01/02: added strict-identifier-names compiler option

Posted by jo...@apache.org.
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

View the commit online:
https://github.com/apache/royale-compiler/commit/e395861e17280f74e9dd1b878b13ef812194df65

commit e395861e17280f74e9dd1b878b13ef812194df65
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Wed Nov 20 13:56:52 2019 -0800

    added strict-identifier-names compiler option
    
    If set to true, the compiler will treat keywords and reserved words used as identifier names as errors, similar to other ActionScript compilers, like the one in the Flex SDK. We previously made this name parsing more lenient without adding an option to make it strict again.
---
 .../royale/compiler/config/Configuration.java      |  23 +++
 .../royale/compiler/projects/ICompilerProject.java |   5 +
 .../compiler/internal/parsing/as/BaseASParser.java |  11 +-
 .../internal/parsing/as/ConfigProcessor.java       |   6 +
 .../internal/parsing/as/StreamingASTokenizer.java  |  37 ++--
 .../compiler/internal/projects/ASCProject.java     |   6 +
 .../compiler/internal/projects/RoyaleProject.java  |  15 ++
 .../projects/RoyaleProjectConfigurator.java        |   2 +
 .../compiler/internal/units/ASCompilationUnit.java |   1 +
 compiler/src/test/java/as/ASKeywordTests.java      | 188 +++++++++++++++++----
 ...n_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |  26 +--
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |  16 +-
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...n_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 ...e_andStrictIdentifierNamesDisabled_swfdump.xml} |   0
 .../tools/debugger/expression/DebuggerUtil.java    |   2 +-
 23 files changed, 265 insertions(+), 73 deletions(-)

diff --git a/compiler-common/src/main/java/org/apache/royale/compiler/config/Configuration.java b/compiler-common/src/main/java/org/apache/royale/compiler/config/Configuration.java
index 3817b3e..857d43b 100644
--- a/compiler-common/src/main/java/org/apache/royale/compiler/config/Configuration.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/config/Configuration.java
@@ -1552,6 +1552,29 @@ public class Configuration
     }
 
     //
+    // 'compiler.strict-identifier-names' option
+    //
+
+    private boolean strictIdentifierNames = false;
+
+    public boolean getCompilerStrictIdentifierNames()
+    {
+        return strictIdentifierNames;
+    }
+
+    /**
+     * Whether the compiler will enforce strict identifier naming. If enabled,
+     * certain keywords and reserved words cannot be used as identifier names.
+     */
+    @Config
+    @Mapping({ "compiler", "strict-identifier-names" })
+    @RoyaleOnly
+    public void setCompilerStrictIdentifierNames(ConfigurationValue cv, boolean allow)
+    {
+        this.strictIdentifierNames = allow;
+    }
+
+    //
     // 'compiler.actionscript-file-encoding' option
     //
 
diff --git a/compiler-common/src/main/java/org/apache/royale/compiler/projects/ICompilerProject.java b/compiler-common/src/main/java/org/apache/royale/compiler/projects/ICompilerProject.java
index 00042f9..0cbd0b5 100644
--- a/compiler-common/src/main/java/org/apache/royale/compiler/projects/ICompilerProject.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/projects/ICompilerProject.java
@@ -281,5 +281,10 @@ public interface ICompilerProject
       * @return True if private constructors are allowed.
       */
      boolean getAllowPrivateConstructors();
+     
+     /**
+      * @return True if strict identifier naming is enforced.
+      */
+     boolean getStrictIdentifierNames();
 
 }
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/BaseASParser.java b/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/BaseASParser.java
index 62bdaee..de180fb 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/BaseASParser.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/BaseASParser.java
@@ -191,7 +191,7 @@ abstract class BaseASParser extends LLkParser implements IProblemReporter
      */
     public static FileNode parseFile(IFileSpecification spec, IFileSpecificationGetter fileSpecGetter)
     {
-        return parseFile(spec, fileSpecGetter, EnumSet.of(PostProcessStep.CALCULATE_OFFSETS), EMPTY_CONFIGURATION, true);
+        return parseFile(spec, fileSpecGetter, EnumSet.of(PostProcessStep.CALCULATE_OFFSETS), EMPTY_CONFIGURATION, true, false);
     }
 
     /**
@@ -214,9 +214,10 @@ abstract class BaseASParser extends LLkParser implements IProblemReporter
             IFileSpecificationGetter fileSpecGetter,
             EnumSet<PostProcessStep> postProcess,
             IProjectConfigVariables variables,
-            boolean followIncludes)
+            boolean followIncludes,
+            boolean strictIdentifierNames)
     {
-        return parseFile(spec, fileSpecGetter, postProcess, variables, followIncludes, true, Collections.<String> emptyList(), DeferFunctionBody.DISABLED, null, null);
+        return parseFile(spec, fileSpecGetter, postProcess, variables, followIncludes, true, strictIdentifierNames, Collections.<String> emptyList(), DeferFunctionBody.DISABLED, null, null);
     }
 
     /**
@@ -247,6 +248,7 @@ abstract class BaseASParser extends LLkParser implements IProblemReporter
             IProjectConfigVariables variables,
             boolean followIncludes,
             boolean allowEmbeds,
+            boolean strictIdentifierNames,
             List<String> includedFiles,
             DeferFunctionBody deferFunctionBody,
             IASProject flashProject,
@@ -267,7 +269,8 @@ abstract class BaseASParser extends LLkParser implements IProblemReporter
                     spec,
                     includeHandler,
                     followIncludes,
-                    includedFiles);
+                    includedFiles,
+                    strictIdentifierNames);
 
             final IRepairingTokenBuffer buffer = new StreamingTokenBuffer(tokenizer);
 
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/ConfigProcessor.java b/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/ConfigProcessor.java
index 89fcd51..ada8f94 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/ConfigProcessor.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/ConfigProcessor.java
@@ -176,6 +176,12 @@ public class ConfigProcessor
             // TODO Auto-generated method stub
             return false;
         }
+
+        @Override
+        public boolean getStrictIdentifierNames() {
+            // TODO Auto-generated method stub
+            return false;
+        }
     }
 
     /**
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/StreamingASTokenizer.java b/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/StreamingASTokenizer.java
index abd84c7..93b67f5 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/StreamingASTokenizer.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/StreamingASTokenizer.java
@@ -183,6 +183,13 @@ public class StreamingASTokenizer implements ASTokenTypes, IASTokenizer, Closeab
          * Flag indicating we follow include statements, including their tokens
          */
         public boolean followIncludes = true;
+
+        /**
+         * Flag indicating if identifier naming is strictly enforced to consider
+         * keywords or reserved words invalid, or if it's more lenient, like
+         * newer ECMAScript versions introduced after ActionScript 3.
+         */
+        public boolean strictIdentifierNames = false;
     }
 
     private Reader reader;
@@ -259,13 +266,6 @@ public class StreamingASTokenizer implements ASTokenTypes, IASTokenizer, Closeab
     private final HashMap<String, String> stringPool;
 
     /**
-     * Indicates if identifier naming is strictly enforced to exclude keywords
-     * or reserved words, or if it's more lenient, like newer ECMAScript
-     * versions introduced after ActionScript 3.
-     */
-    public boolean strictIdentifiers = false;
-
-    /**
      * You should probably not use this constructor. There is a lot of code that
      * uses this constructor, but that code should be updated to use one of the
      * static create methods below.
@@ -362,11 +362,13 @@ public class StreamingASTokenizer implements ASTokenTypes, IASTokenizer, Closeab
             final IFileSpecification fileSpec,
             final IncludeHandler includeHandler,
             final boolean followIncludes,
-            final List<String> includedFiles)
+            final List<String> includedFiles,
+            final boolean strictIdentifierNames)
             throws FileNotFoundException
     {
         final StreamingASTokenizer tokenizer = create(fileSpec, includeHandler);
         tokenizer.setFollowIncludes(followIncludes);
+        tokenizer.setStrictIdentifierNames(strictIdentifierNames);
 
         final ImmutableList.Builder<ASToken> imaginaryTokensBuilder =
                 new ImmutableList.Builder<ASToken>();
@@ -557,6 +559,11 @@ public class StreamingASTokenizer implements ASTokenTypes, IASTokenizer, Closeab
         config.followIncludes = followIncludes;
     }
 
+    public void setStrictIdentifierNames(boolean value)
+    {
+        config.strictIdentifierNames = value;
+    }
+
     /**
      * Closes the underlying reader
      */
@@ -813,7 +820,7 @@ public class StreamingASTokenizer implements ASTokenTypes, IASTokenizer, Closeab
                     return retVal;
                 case TOKEN_KEYWORD_INCLUDE:
                 {
-                    if (!strictIdentifiers && lastToken != null)
+                    if (!config.strictIdentifierNames && lastToken != null)
                     {
                         int lastTokenType = lastToken.getType();
                         switch (lastTokenType)
@@ -1004,7 +1011,7 @@ public class StreamingASTokenizer implements ASTokenTypes, IASTokenizer, Closeab
                         consume(1);
                         return retVal;
                     }
-                    if (!strictIdentifiers && lastToken != null)
+                    if (!config.strictIdentifierNames && lastToken != null)
                     {
                         int lastTokenType = lastToken.getType();
                         switch (lastTokenType)
@@ -1048,11 +1055,11 @@ public class StreamingASTokenizer implements ASTokenTypes, IASTokenizer, Closeab
                     // if this isn't "default xml namespace" then
                     // see if it is the default case in a switch
                     // otherwise, assume it is an identiferName
-                    else if (!strictIdentifiers &&
+                    else if (!config.strictIdentifierNames &&
                             maybeXML != null && 
                             maybeXML.getType() != TOKEN_COLON)
                         retVal.setType(TOKEN_IDENTIFIER);
-                    else if (!strictIdentifiers && lastToken != null)
+                    else if (!config.strictIdentifierNames && lastToken != null)
                     {
                         int lastTokenType = lastToken.getType();
                         switch (lastTokenType)
@@ -1207,7 +1214,7 @@ public class StreamingASTokenizer implements ASTokenTypes, IASTokenizer, Closeab
                 case TOKEN_KEYWORD_AS:
                 case TOKEN_KEYWORD_IN:
                 case TOKEN_KEYWORD_IS:
-                    if(!strictIdentifiers)
+                    if(!config.strictIdentifierNames)
                     {
                         if (lastToken != null)
                         {
@@ -1230,7 +1237,7 @@ public class StreamingASTokenizer implements ASTokenTypes, IASTokenizer, Closeab
                     }
                     // and fall through
                 case TOKEN_KEYWORD_DELETE:
-                    if(!strictIdentifiers)
+                    if(!config.strictIdentifierNames)
                     {
                         ASToken nextToken = LT(1);
                         if (nextToken != null)
@@ -1280,7 +1287,7 @@ public class StreamingASTokenizer implements ASTokenTypes, IASTokenizer, Closeab
                 case TOKEN_KEYWORD_RETURN:
                 case TOKEN_KEYWORD_THROW:
                 case TOKEN_KEYWORD_NEW:
-                    if (!strictIdentifiers && lastToken != null)
+                    if (!config.strictIdentifierNames && lastToken != null)
                     {
                         int lastTokenType = lastToken.getType();
                         switch (lastTokenType)
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/projects/ASCProject.java b/compiler/src/main/java/org/apache/royale/compiler/internal/projects/ASCProject.java
index f542cf3..f37c32d 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/projects/ASCProject.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/projects/ASCProject.java
@@ -98,4 +98,10 @@ public class ASCProject extends CompilerProject implements IASCProject
 		// TODO Auto-generated method stub
 		return false;
 	}
+
+	@Override
+	public boolean getStrictIdentifierNames() {
+		// TODO Auto-generated method stub
+		return false;
+	}
 }
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProject.java b/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProject.java
index 3db86f5..1c8dd1c 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProject.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProject.java
@@ -2499,6 +2499,21 @@ public class RoyaleProject extends ASProject implements IRoyaleProject, ICompile
     	allowPrivateConstructors = allow;
     }
 
+    private boolean strictIdentifierNames = false;
+    
+    /**
+     * Indicates if strict identifier names are enforced.
+     */
+    @Override
+    public boolean getStrictIdentifierNames()
+    {
+    	return strictIdentifierNames;
+    }
+    public void setStrictIdentifierNames(boolean enabled)
+    {
+    	strictIdentifierNames = enabled;
+    }
+
 	@Override
 	public boolean isPlatformRule(ICSSRule rule) {
 		return true;
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProjectConfigurator.java b/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProjectConfigurator.java
index b8a34be..56d2265 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProjectConfigurator.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProjectConfigurator.java
@@ -267,6 +267,8 @@ public class RoyaleProjectConfigurator extends Configurator
             project.setAllowImportAliases(configuration.getCompilerAllowImportAliases());
             project.setAllowAbstractClasses(configuration.getCompilerAllowAbstractClasses());
             project.setAllowPrivateConstructors(configuration.getCompilerAllowPrivateConstructors());
+
+            project.setStrictIdentifierNames(configuration.getCompilerStrictIdentifierNames());
             
             project.setSwfDebugfileAlias(configuration.getSwfDebugfileAlias());
             if (configuration.getSwfDebugfileAlias() != null)
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/units/ASCompilationUnit.java b/compiler/src/main/java/org/apache/royale/compiler/internal/units/ASCompilationUnit.java
index b8266a1..31465ef 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/units/ASCompilationUnit.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/units/ASCompilationUnit.java
@@ -309,6 +309,7 @@ public class ASCompilationUnit extends CompilationUnitBase
                 this.getProject().getProjectConfigVariables(),
                 true,
                 this.getProject().isAssetEmbeddingSupported(),
+                this.getProject().getStrictIdentifierNames(),
                 includedFiles,
                 deferFunctionBody,
                 flashProject,
diff --git a/compiler/src/test/java/as/ASKeywordTests.java b/compiler/src/test/java/as/ASKeywordTests.java
index a325d89..b6914c6 100644
--- a/compiler/src/test/java/as/ASKeywordTests.java
+++ b/compiler/src/test/java/as/ASKeywordTests.java
@@ -19,6 +19,7 @@
 
 package as;
 
+import org.junit.Assert;
 import org.junit.Test;
 
 /**
@@ -60,7 +61,7 @@ public class ASKeywordTests extends ASFeatureTestsBase
     }
 
     @Test
-    public void ASKeyword_Namespace_as_method_name()
+    public void ASKeyword_Namespace_asMethodName_andStrictIdentifierNamesDisabled()
     {
         String[] imports = new String[]
         {
@@ -80,11 +81,62 @@ public class ASKeywordTests extends ASFeatureTestsBase
             "assertEqual('method named namespace', foo, 'as');",
         };
         String source = getAS(imports, declarations, testCode, new String[0]);
-        compileAndRun(source);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=false"
+        };
+        compileAndRun(source, false, false, false, options);
+    }
+
+    @Test
+    public void ASKeyword_Default_asVariableName_andStrictIdentifierNamesDisabled()
+    {
+        String[] imports = new String[]
+        {
+        };
+        String[] declarations = new String[]
+        {
+                "public var default:String;",
+        };
+        String[] testCode = new String[]
+        {
+                "this.default = 'bar';",
+                "assertEqual('variable named default', this.default, 'bar');",
+        };
+        String source = getAS(imports, declarations, testCode, new String[0]);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=false"
+        };
+        compileAndRun(source, false, false, false, options);
+    }
+
+    @Test
+    public void ASKeyword_Default_asVariableName_andStrictIdentifierNamesEnabled()
+    {
+        String[] imports = new String[]
+        {
+        };
+        String[] declarations = new String[]
+        {
+                "public var default:String;",
+        };
+        String[] testCode = new String[]
+        {
+                "this.default = 'bar';",
+                "assertEqual('variable named default', this.default, 'bar');",
+        };
+        String source = getAS(imports, declarations, testCode, new String[0]);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=true"
+        };
+        compileAndExpectErrors(source, false, false, false, options,
+            "Expected IDENTIFIER but got 'default'\n");
     }
 
     @Test
-    public void ASKeyword_Default_as_method_name()
+    public void ASKeyword_Default_asMethodName_andStrictIdentifierNamesDisabled()
     {
         String[] imports = new String[]
         {
@@ -104,11 +156,15 @@ public class ASKeywordTests extends ASFeatureTestsBase
             "assertEqual('method named default', foo, 'as');",
         };
         String source = getAS(imports, declarations, testCode, new String[0]);
-        compileAndRun(source);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=false"
+        };
+        compileAndRun(source, false, false, false, options);
     }
 
     @Test
-    public void ASKeyword_for_as_method_name()
+    public void ASKeyword_For_asMethodName_andStrictIdentifierNamesDisabled()
     {
         String[] imports = new String[]
         {
@@ -128,11 +184,15 @@ public class ASKeywordTests extends ASFeatureTestsBase
                 "assertEqual('method named default', foo, 'as');",
         };
         String source = getAS(imports, declarations, testCode, new String[0]);
-        compileAndRun(source);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=false"
+        };
+        compileAndRun(source, false, false, false, options);
     }
 
     @Test
-    public void ASKeyword_Get_as_method_name()
+    public void ASKeyword_Get_asMethodName_andStrictIdentifierNamesDisabled()
     {
         String[] imports = new String[]
         {
@@ -152,11 +212,15 @@ public class ASKeywordTests extends ASFeatureTestsBase
             "assertEqual('method named get', foo, 'as');",
         };
         String source = getAS(imports, declarations, testCode, new String[0]);
-        compileAndRun(source);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=false"
+        };
+        compileAndRun(source, false, false, false, options);
     }
 
     @Test
-    public void ASKeyword_Get_as_getter_name()
+    public void ASKeyword_Get_asGetterName_andStrictIdentifierNamesDisabled()
     {
         String[] imports = new String[]
         {
@@ -176,11 +240,15 @@ public class ASKeywordTests extends ASFeatureTestsBase
             "assertEqual('getter named get', foo, 'as');",
         };
         String source = getAS(imports, declarations, testCode, new String[0]);
-        compileAndRun(source);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=false"
+        };
+        compileAndRun(source, false, false, false, options);
     }
 
     @Test
-    public void ASKeyword_Get_as_member_expression_name()
+    public void ASKeyword_Get_asMemberExpression_andStrictIdentifierNamesDisabled()
     {
         String[] imports = new String[]
         {
@@ -200,11 +268,15 @@ public class ASKeywordTests extends ASFeatureTestsBase
             "assertEqual('getter named get', foo, 'as');",
         };
         String source = getAS(imports, declarations, testCode, new String[0]);
-        compileAndRun(source);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=false"
+        };
+        compileAndRun(source, false, false, false, options);
     }
 
     @Test
-    public void ASKeyword_as_method_name()
+    public void ASKeyword_As_asMethodName_andStrictIdentifierNamesDisabled()
     {
         String[] imports = new String[]
         {
@@ -224,11 +296,15 @@ public class ASKeywordTests extends ASFeatureTestsBase
             "assertEqual('method named as', foo, 'as');",
         };
         String source = getAS(imports, declarations, testCode, new String[0]);
-        compileAndRun(source);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=false"
+        };
+        compileAndRun(source, false, false, false, options);
     }
 
     @Test
-    public void ASKeyword_as_property_name()
+    public void ASKeyword_As_asPropertyName_andStrictIdentifierNamesDisabled()
     {
         String[] imports = new String[]
         {
@@ -249,11 +325,15 @@ public class ASKeywordTests extends ASFeatureTestsBase
             "assertEqual('property named as', as, 'bar');",
         };
         String source = getAS(imports, declarations, testCode, new String[0]);
-        compileAndRun(source);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=false"
+        };
+        compileAndRun(source, false, false, false, options);
     }
     
     @Test
-    public void ASKeyword_as_variable_name()
+    public void ASKeyword_As_asVariableName_andStrictIdentifierNamesDisabled()
     {
         String[] imports = new String[]
         {
@@ -264,34 +344,66 @@ public class ASKeywordTests extends ASFeatureTestsBase
         };
         String[] testCode = new String[]
         {
-        	"as = 'bar';",
-            "assertEqual('variable named as', as, 'bar');",
+        	"this.as = 'bar';",
+            "assertEqual('variable named as', this.as, 'bar');",
         };
         String source = getAS(imports, declarations, testCode, new String[0]);
-        compileAndRun(source);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=false"
+        };
+        compileAndRun(source, false, false, false, options);
     }
 
     @Test
-    public void ASKeyword_default_as_variable_name()
+    public void ASKeyword_As_asVariableName_andStrictIdentifierNamesEnabled()
     {
         String[] imports = new String[]
         {
         };
         String[] declarations = new String[]
         {
-                "public var default:String;",
+                "public var as:String;",
         };
         String[] testCode = new String[]
         {
-                "default = 'bar';",
-                "assertEqual('variable named default', default, 'bar');",
+                "this.as = 'bar';",
+                "assertEqual('variable named as', this.as, 'bar');",
         };
         String source = getAS(imports, declarations, testCode, new String[0]);
-        compileAndRun(source);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=true"
+        };
+        compileAndExpectErrors(source, false, false, false, options,
+            "Expected IDENTIFIER but got 'as'\n");
     }
 
     @Test
-    public void ASKeyword_include_as_variable_name()
+    public void ASKeyword_As_asMemberExpression_andStrictIdentifierNamesDisabled()
+    {
+        String[] imports = new String[]
+        {
+        };
+        String[] declarations = new String[]
+        {
+            "public var as:String;",
+        };
+        String[] testCode = new String[]
+        {
+        	"this.as = 'bar';",
+            "assertEqual('variable named as', this.as, 'bar');",
+        };
+        String source = getAS(imports, declarations, testCode, new String[0]);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=false"
+        };
+        compileAndRun(source, false, false, false, options);
+    }
+
+    @Test
+    public void ASKeyword_Include_asVariableName_andStrictIdentifierNamesDisabled()
     {
         String[] imports = new String[]
         {
@@ -306,26 +418,38 @@ public class ASKeywordTests extends ASFeatureTestsBase
                 "assertEqual('variable named include', this.include, 'bar');",
         };
         String source = getAS(imports, declarations, testCode, new String[0]);
-        compileAndRun(source);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=false"
+        };
+        compileAndRun(source, false, false, false, options);
     }
 
     @Test
-    public void ASKeyword_as_member_expression()
+    public void ASKeyword_Include_asVariableName_andStrictIdentifierNamesEnabled()
     {
         String[] imports = new String[]
         {
         };
         String[] declarations = new String[]
         {
-            "public var as:String;",
+                "public var include:String;",
         };
         String[] testCode = new String[]
         {
-        	"this.as = 'bar';",
-            "assertEqual('variable named as', this.as, 'bar');",
+                "this.include = 'bar';",
+                "assertEqual('variable named include', this.include, 'bar');",
         };
         String source = getAS(imports, declarations, testCode, new String[0]);
-        compileAndRun(source);
+        String[] options = new String[]
+        {
+            "-strict-identifier-names=true"
+        };
+        compileAndExpectErrors(source, false, false, false, options,
+            //not sure why there are three errors here, but not on others, like default and as
+            "Expected IDENTIFIER but got 'include'\n" +
+            "Expected IDENTIFIER but got 'include'\n" +
+            "Expected IDENTIFIER but got 'include'\n");
     }
 
     @Test
diff --git a/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_as_member_expression_swfdump.xml b/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_As_asMemberExpression_andStrictIdentifierNamesDisabled_swfdump.xml
similarity index 100%
rename from compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_as_member_expression_swfdump.xml
rename to compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_As_asMemberExpression_andStrictIdentifierNamesDisabled_swfdump.xml
diff --git a/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_as_method_name_swfdump.xml b/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_As_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml
similarity index 100%
rename from compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_as_method_name_swfdump.xml
rename to compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_As_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml
diff --git a/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_as_property_name_swfdump.xml b/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_As_asPropertyName_andStrictIdentifierNamesDisabled_swfdump.xml
similarity index 100%
rename from compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_as_property_name_swfdump.xml
rename to compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_As_asPropertyName_andStrictIdentifierNamesDisabled_swfdump.xml
diff --git a/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_as_variable_name_swfdump.xml b/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_As_asVariableName_andStrictIdentifierNamesDisabled_swfdump.xml
similarity index 85%
rename from compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_as_variable_name_swfdump.xml
rename to compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_As_asVariableName_andStrictIdentifierNamesDisabled_swfdump.xml
index 4269b0c..2636ecf 100644
--- a/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_as_variable_name_swfdump.xml
+++ b/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_As_asVariableName_andStrictIdentifierNamesDisabled_swfdump.xml
@@ -69,21 +69,21 @@ public class %0 extends Object
     //  max_regs     2            
     //  scope_depth  0            
     //  max_scope    1            
-    //  code_length  21           
+    //  code_length  20           
     bb0
       succs=[]
-      0       getlocal0                              
-      1       pushscope                              
-      2       pushstring      "bar"                  
-      3       findproperty    as                     
-      4       swap                                   
-      5       setproperty     as                     
-      6       findpropstrict  assertEqual            
-      7       pushstring      "variable named as"    
-      8       getlex          as                     
-      9       pushstring      "bar"                  
-      10      callpropvoid                           
-      11      returnvoid                             
+      0       getlocal0                                   
+      1       pushscope                                   
+      2       getlocal0                                   
+      3       pushstring      "bar"                       
+      4       setproperty     as                          
+      5       findpropstrict  assertEqual                 
+      6       pushstring      "variable named as"         
+      7       getlocal0                                   
+      8       getproperty     as                          
+      9       pushstring      "bar"                       
+      10      callpropvoid                                
+      11      returnvoid                                  
   }
 
   private function assertEqual(String,*,*):void
diff --git a/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Default_as_method_name_swfdump.xml b/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Default_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml
similarity index 100%
rename from compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Default_as_method_name_swfdump.xml
rename to compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Default_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml
diff --git a/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_default_as_variable_name_swfdump.xml b/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Default_asVariableName_andStrictIdentifierNamesDisabled_swfdump.xml
similarity index 91%
rename from compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_default_as_variable_name_swfdump.xml
rename to compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Default_asVariableName_andStrictIdentifierNamesDisabled_swfdump.xml
index 1b2f154..2e94dc3 100644
--- a/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_default_as_variable_name_swfdump.xml
+++ b/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Default_asVariableName_andStrictIdentifierNamesDisabled_swfdump.xml
@@ -69,18 +69,18 @@ public class %0 extends Object
     //  max_regs     2            
     //  scope_depth  0            
     //  max_scope    1            
-    //  code_length  21           
+    //  code_length  20           
     bb0
       succs=[]
       0       getlocal0                                   
       1       pushscope                                   
-      2       pushstring      "bar"                       
-      3       findproperty    default                     
-      4       swap                                        
-      5       setproperty     default                     
-      6       findpropstrict  assertEqual                 
-      7       pushstring      "variable named default"    
-      8       getlex          default                     
+      2       getlocal0                                   
+      3       pushstring      "bar"                       
+      4       setproperty     default                     
+      5       findpropstrict  assertEqual                 
+      6       pushstring      "variable named default"    
+      7       getlocal0                                   
+      8       getproperty     default                     
       9       pushstring      "bar"                       
       10      callpropvoid                                
       11      returnvoid                                  
diff --git a/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_for_as_method_name_swfdump.xml b/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_For_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml
similarity index 100%
rename from compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_for_as_method_name_swfdump.xml
rename to compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_For_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml
diff --git a/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Get_as_getter_name_swfdump.xml b/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Get_asGetterName_andStrictIdentifierNamesDisabled_swfdump.xml
similarity index 100%
rename from compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Get_as_getter_name_swfdump.xml
rename to compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Get_asGetterName_andStrictIdentifierNamesDisabled_swfdump.xml
diff --git a/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Get_as_member_expression_name_swfdump.xml b/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Get_asMemberExpression_andStrictIdentifierNamesDisabled_swfdump.xml
similarity index 100%
rename from compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Get_as_member_expression_name_swfdump.xml
rename to compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Get_asMemberExpression_andStrictIdentifierNamesDisabled_swfdump.xml
diff --git a/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Get_as_method_name_swfdump.xml b/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Get_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml
similarity index 100%
rename from compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Get_as_method_name_swfdump.xml
rename to compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Get_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml
diff --git a/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_include_as_variable_name_swfdump.xml b/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Include_asVariableName_andStrictIdentifierNamesDisabled_swfdump.xml
similarity index 100%
rename from compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_include_as_variable_name_swfdump.xml
rename to compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Include_asVariableName_andStrictIdentifierNamesDisabled_swfdump.xml
diff --git a/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Namespace_as_method_name_swfdump.xml b/compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Namespace_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml
similarity index 100%
rename from compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Namespace_as_method_name_swfdump.xml
rename to compiler/src/test/resources/swfdumps/as_ASKeywordTests_ASKeyword_Namespace_asMethodName_andStrictIdentifierNamesDisabled_swfdump.xml
diff --git a/debugger/src/main/java/flash/tools/debugger/expression/DebuggerUtil.java b/debugger/src/main/java/flash/tools/debugger/expression/DebuggerUtil.java
index 6c07e10..319ba43 100644
--- a/debugger/src/main/java/flash/tools/debugger/expression/DebuggerUtil.java
+++ b/debugger/src/main/java/flash/tools/debugger/expression/DebuggerUtil.java
@@ -55,7 +55,7 @@ public class DebuggerUtil
     	IWorkspace workspace = new Workspace();
         DebuggerUtil.InMemoryFileSpecification imfs = new DebuggerUtil.InMemoryFileSpecification(code);
         EnumSet<PostProcessStep> empty = EnumSet.noneOf(PostProcessStep.class);
-        IASNode exprAST = ASParser.parseFile(imfs, workspace, empty, null, false, false, new ArrayList<String>(), null, null, null);
+        IASNode exprAST = ASParser.parseFile(imfs, workspace, empty, null, false, false, false, new ArrayList<String>(), null, null, null);
 
         // Have to create a fake ScopedBlockNode so the expression can do things
         // like resolve, which means it has to be able to find a scope.


[royale-compiler] 02/02: strict-identifier-names is lenient by default for Royale, but strict for other SDKs using Royale for code intelligence (since their compilers will be strict)

Posted by jo...@apache.org.
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

View the commit online:
https://github.com/apache/royale-compiler/commit/65ceadba0698c55e57f64a011b8f4c66a63a8b0a

commit 65ceadba0698c55e57f64a011b8f4c66a63a8b0a
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Wed Nov 20 14:36:00 2019 -0800

    strict-identifier-names is lenient by default for Royale, but strict for other SDKs using Royale for code intelligence (since their compilers will be strict)
---
 .../java/org/apache/royale/compiler/config/Configuration.java  |  7 +++----
 compiler-externc/src/test/config/compile-as-config.xml         |  1 +
 .../org/apache/royale/compiler/clients/JSConfiguration.java    | 10 ++++++++++
 compiler/src/test/config/compile-as-config.xml                 |  3 ++-
 4 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/compiler-common/src/main/java/org/apache/royale/compiler/config/Configuration.java b/compiler-common/src/main/java/org/apache/royale/compiler/config/Configuration.java
index 857d43b..10717b3 100644
--- a/compiler-common/src/main/java/org/apache/royale/compiler/config/Configuration.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/config/Configuration.java
@@ -1555,7 +1555,7 @@ public class Configuration
     // 'compiler.strict-identifier-names' option
     //
 
-    private boolean strictIdentifierNames = false;
+    private boolean strictIdentifierNames = true;
 
     public boolean getCompilerStrictIdentifierNames()
     {
@@ -1568,10 +1568,9 @@ public class Configuration
      */
     @Config
     @Mapping({ "compiler", "strict-identifier-names" })
-    @RoyaleOnly
-    public void setCompilerStrictIdentifierNames(ConfigurationValue cv, boolean allow)
+    public void setCompilerStrictIdentifierNames(ConfigurationValue cv, boolean strict)
     {
-        this.strictIdentifierNames = allow;
+        this.strictIdentifierNames = strict;
     }
 
     //
diff --git a/compiler-externc/src/test/config/compile-as-config.xml b/compiler-externc/src/test/config/compile-as-config.xml
index a62119a..726ee2e 100644
--- a/compiler-externc/src/test/config/compile-as-config.xml
+++ b/compiler-externc/src/test/config/compile-as-config.xml
@@ -30,6 +30,7 @@
             <path-element>generated-sources/externc/typedefs</path-element>
         </source-path>
         
+        <strict-identifier-names>false</strict-identifier-names>
         <warn-no-constructor>false</warn-no-constructor>
     </compiler>
     
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/clients/JSConfiguration.java b/compiler-jx/src/main/java/org/apache/royale/compiler/clients/JSConfiguration.java
index 47b4a66..938a9f3 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/clients/JSConfiguration.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/clients/JSConfiguration.java
@@ -56,9 +56,19 @@ public class JSConfiguration extends Configuration
 {
     public JSConfiguration()
     {
+        //for Royale projects, we want to make some changes to the compiler
+        //defaults. we do that here in JSConfiguration instead of Configuration.
+        //despite its name, JSConfiguration is used for SWF compilation too.
+
+        //we try to keep the defaults of the Configuration base class backwards
+        //compatible with other compilers, like the one in the Flex SDK. this
+        //policy helps IDEs to use the Royale compiler for code intelligence
+        //with other SDKs without requiring the IDEs to "undo" Royale's changes
+        //to defaults.
         setCompilerAllowAbstractClasses(null, true);
         setCompilerAllowPrivateConstructors(null, true);
         setCompilerAllowImportAliases(null, true);
+        setCompilerStrictIdentifierNames(null, false);
     }
 
     //
diff --git a/compiler/src/test/config/compile-as-config.xml b/compiler/src/test/config/compile-as-config.xml
index 70e6874..afcc084 100644
--- a/compiler/src/test/config/compile-as-config.xml
+++ b/compiler/src/test/config/compile-as-config.xml
@@ -28,7 +28,8 @@
         <external-library-path>
             <path-element>../../compiler-externc/target/js.swc</path-element>
         </external-library-path>
-        
+
+        <strict-identifier-names>false</strict-identifier-names>
         <warn-no-constructor>false</warn-no-constructor>
     </compiler>