Allow namespace access (mx_internal::foo) to be compiled even if the object doesn't have that property, since it could be on an interface
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/ba7fef9e Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/ba7fef9e Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/ba7fef9e Branch: refs/heads/develop Commit: ba7fef9e3f998104ac043c6ede0ef2c2eefae778 Parents: 90e86c2 Author: Alex Harui <[email protected]> Authored: Thu Oct 24 15:38:27 2013 -0700 Committer: Alex Harui <[email protected]> Committed: Thu Oct 24 15:38:27 2013 -0700 ---------------------------------------------------------------------- .../compiler/internal/semantics/MethodBodySemanticChecker.java | 5 +++++ 1 file changed, 5 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ba7fef9e/compiler/src/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java ---------------------------------------------------------------------- diff --git a/compiler/src/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java b/compiler/src/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java index 4b4fe28..6a96d09 100644 --- a/compiler/src/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java +++ b/compiler/src/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java @@ -117,6 +117,7 @@ import org.apache.flex.compiler.internal.tree.as.LiteralNode; import org.apache.flex.compiler.internal.tree.as.MemberAccessExpressionNode; import org.apache.flex.compiler.internal.tree.as.ModifierNode; import org.apache.flex.compiler.internal.tree.as.ModifiersContainerNode; +import org.apache.flex.compiler.internal.tree.as.NamespaceAccessExpressionNode; import org.apache.flex.compiler.internal.tree.as.NamespaceNode; import org.apache.flex.compiler.internal.tree.as.NodeBase; import org.apache.flex.compiler.internal.tree.as.NumericLiteralNode; @@ -1865,6 +1866,10 @@ public class MethodBodySemanticChecker if ( def == null && utils.definitionCanBeAnalyzed(member) ) { + // if it is foo.mx_internal::someProp, just say it passes + if (member_node.getParent() instanceof NamespaceAccessExpressionNode) + return; + if ( utils.isInaccessible(iNode, member) ) { addProblem(new InaccessiblePropertyReferenceProblem(
