This is an automated email from the ASF dual-hosted git repository. joshtynjala pushed a commit to branch fix/super-signature-checks in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
commit 52db10e509a5367e0f53801b7254da0b31a932fa Author: Josh Tynjala <[email protected]> AuthorDate: Wed Oct 9 13:08:47 2024 -0700 MethodBodySemanticChecker: fix method name in CallUndefinedMethodProblem when method name starts with @ symbol for an attribute --- .../internal/semantics/MethodBodySemanticChecker.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/semantics/MethodBodySemanticChecker.java b/compiler/src/main/java/org/apache/royale/compiler/internal/semantics/MethodBodySemanticChecker.java index 9b4b342f6..7f9a0073a 100644 --- a/compiler/src/main/java/org/apache/royale/compiler/internal/semantics/MethodBodySemanticChecker.java +++ b/compiler/src/main/java/org/apache/royale/compiler/internal/semantics/MethodBodySemanticChecker.java @@ -134,6 +134,7 @@ import org.apache.royale.compiler.internal.tree.as.PackageNode; import org.apache.royale.compiler.internal.tree.as.ParameterNode; import org.apache.royale.compiler.internal.tree.as.ScopedBlockNode; import org.apache.royale.compiler.internal.tree.as.TernaryOperatorNode; +import org.apache.royale.compiler.internal.tree.as.UnaryOperatorAtNode; import org.apache.royale.compiler.internal.tree.as.VariableNode; import org.apache.royale.compiler.internal.tree.as.VectorLiteralNode; import org.apache.royale.compiler.internal.tree.mxml.MXMLDocumentNode; @@ -2233,7 +2234,17 @@ public class MethodBodySemanticChecker MemberAccessExpressionNode mae = (MemberAccessExpressionNode)nameNode; IExpressionNode rightNode = mae.getRightOperandNode(); if (rightNode.getNodeID() == ASTNodeID.IdentifierID) + { methodName = ((IdentifierNode)rightNode).getName(); + } + else if (rightNode.getNodeID() == ASTNodeID.Op_AtID) + { + UnaryOperatorAtNode atNode = (UnaryOperatorAtNode) rightNode; + if (atNode.getOperandNode().getNodeID() == ASTNodeID.IdentifierID) + { + methodName = "@" + ((IdentifierNode)atNode.getOperandNode()).getName(); + } + } } assert methodName != null; addProblem(new CallUndefinedMethodProblem(
