You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by gr...@apache.org on 2020/06/29 04:38:05 UTC

[royale-compiler] branch develop updated: Fix for an issue that was observed only with IDE integration (false positive DuplicateFunctionDefinition problem)

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

gregdove 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 454123f  Fix for an issue that was observed only with IDE integration (false positive DuplicateFunctionDefinition problem)
454123f is described below

commit 454123fe3a74af8ed5a73be634d1000760a84ba3
Author: greg-dove <gr...@gmail.com>
AuthorDate: Mon Jun 29 16:36:27 2020 +1200

    Fix for an issue that was observed only with IDE integration (false positive DuplicateFunctionDefinition problem)
---
 .../compiler/internal/as/codegen/ClassDirectiveProcessor.java      | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/as/codegen/ClassDirectiveProcessor.java b/compiler/src/main/java/org/apache/royale/compiler/internal/as/codegen/ClassDirectiveProcessor.java
index 2f45c11..281a973 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/as/codegen/ClassDirectiveProcessor.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/as/codegen/ClassDirectiveProcessor.java
@@ -1006,6 +1006,13 @@ class ClassDirectiveProcessor extends DirectiveProcessor
                     for (int i=0;i< others.getSize(); i++) {
                         IDefinition other = others.getDefinition(i);
                         if (other == func) continue;
+                        //ignore code-gen Bindable setters if we are checking against the original setter
+                        if ((func instanceof SyntheticBindableSetterDefinition && other instanceof ISetterDefinition)
+                                || (other instanceof SyntheticBindableSetterDefinition && func instanceof ISetterDefinition)
+                                && (func.getNode().equals(other.getNode()))
+                            ) {
+                            continue;
+                        }
                         if (other.getNamespaceReference().isLanguageNamespace()) {
                             if (!SemanticUtils.isGetterSetterPair(func, other, classScope.getProject())) {
                                 boolean issueProblem = true;