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

commit c2484a6b983321341e7cc3f176ca631c63fab7a8
Author: Josh Tynjala <[email protected]>
AuthorDate: Mon Oct 27 15:54:42 2025 -0700

    MXMLScopeBuilder/MXMLFileScope: use a PackageScope as the containing scope 
for a type created with fx:Component
    
    The class inside fx:Component should be able to access internal methods in 
the same package. This improves compatibility with the Flex SDK compiler.
---
 .../compiler/internal/parsing/mxml/MXMLScopeBuilder.java     |  2 +-
 .../royale/compiler/internal/scopes/MXMLFileScope.java       | 12 +++++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git 
a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/mxml/MXMLScopeBuilder.java
 
b/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/mxml/MXMLScopeBuilder.java
index f441c556c..f02d8caa8 100644
--- 
a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/mxml/MXMLScopeBuilder.java
+++ 
b/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/mxml/MXMLScopeBuilder.java
@@ -651,7 +651,7 @@ public class MXMLScopeBuilder
             
             // Add a class definition for the component class to the file 
scope.
             ClassDefinition fxComponentClassDefinition =
-                fileScope.addFXComponent(qname, 
componentTag.getAbsoluteStart(), className, baseClassQName);
+                fileScope.addFXComponent(qname, 
componentTag.getAbsoluteStart(), className, baseClassQName, packageScope);
             fxComponentClassDefinition.setNameLocation(nameStart, nameEnd);
             
             if (className == null)
diff --git 
a/compiler/src/main/java/org/apache/royale/compiler/internal/scopes/MXMLFileScope.java
 
b/compiler/src/main/java/org/apache/royale/compiler/internal/scopes/MXMLFileScope.java
index 4ffb06506..61902e102 100644
--- 
a/compiler/src/main/java/org/apache/royale/compiler/internal/scopes/MXMLFileScope.java
+++ 
b/compiler/src/main/java/org/apache/royale/compiler/internal/scopes/MXMLFileScope.java
@@ -203,6 +203,16 @@ public class MXMLFileScope extends ASFileScope implements 
IXMLNameResolver
                                           int componentTagStart,
                                           String componentClassName,
                                           String componentBaseClassQName)
+    {
+        return addFXComponent(mainClassQName, componentTagStart, 
componentClassName, componentBaseClassQName, this);
+    }
+
+
+    public ClassDefinition addFXComponent(String mainClassQName,
+                                          int componentTagStart,
+                                          String componentClassName,
+                                          String componentBaseClassQName,
+                                          ASScope parentScope)
     {
         // Use the class name specified by the <code>className</code> 
attribute,
         // or generate a unique class name for the new component class,
@@ -227,7 +237,7 @@ public class MXMLFileScope extends ASFileScope implements 
IXMLNameResolver
         addDefinition(fxComponentClassDefinition);
 
         // Create a class scope for the component class.
-        TypeScope classScope = new TypeScope(this, fxComponentClassDefinition);
+        TypeScope classScope = new TypeScope(parentScope, 
fxComponentClassDefinition);
         classScope.setContainingDefinition(fxComponentClassDefinition);
         fxComponentClassDefinition.setContainedScope(classScope);
         fxComponentClassDefinition.setupThisAndSuper();

Reply via email to