This is the full list of changes I made to Core, which as enough to cause the 
errors when opening my project which uses AsyncTasks.

diff --git 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/AsyncTask.as
 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/AsyncTask.as
index 541b3827be..9b92553de1 100644
--- 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/AsyncTask.as
+++ 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/AsyncTask.as
@@ -136,7 +136,7 @@ package org.apache.royale.utils.async
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.9.6
      */
-    public function done(callback:Function):IAsyncTask{
+    public function done(callback:(task:IAsyncTask)=>void):IAsyncTask{
       if(_status == "complete" || _status == "failed"){
         callback(this);
         return this;
@@ -158,7 +158,7 @@ package org.apache.royale.utils.async
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.9.13
      */
-    public function exec(callback:Function):IAsyncTask
+    public function exec(callback:(task:IAsyncTask)=>void):IAsyncTask
     {
       done(callback);
       run();


diff --git 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/CompoundAsyncTask.as
 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/CompoundAsyncTask.as
index 55a89368ed..4b9871e199 100644
--- 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/CompoundAsyncTask.as
+++ 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/CompoundAsyncTask.as
@@ -184,12 +184,10 @@ package org.apache.royale.utils.async
                 *  @langversion 3.0
                 *  @productversion Royale 0.9.9
                 */
-               public static function 
execute(tasks:Array,callback:Function,failEarly:Boolean=false):void{
+               public static function 
execute(tasks:Array,callback:(task:IAsyncTask)=>void,failEarly:Boolean=false):void{
                        var task:CompoundAsyncTask = new 
CompoundAsyncTask(tasks);
                        task.failEarly = failEarly;
-                       task.done(function():void{
-                               callback(task);
-                       });
+                       task.done(callback);
                        task.run();
                }    
        }


diff --git 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/IAsyncTask.as
 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/IAsyncTask.as
index 9f3565ff14..064c7395b8 100644
--- 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/IAsyncTask.as
+++ 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/IAsyncTask.as
@@ -20,8 +20,8 @@ package org.apache.royale.utils.async
 {
        public interface IAsyncTask
        {
-               function done(callback:Function):IAsyncTask;
-               function exec(callback:Function):IAsyncTask;
+               function done(callback:(task:IAsyncTask)=>void):IAsyncTask;
+               function exec(callback:(task:IAsyncTask)=>void):IAsyncTask;
                function run(data:Object=null):void;
 
                function complete():void;

diff --git 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/SequentialAsyncTask.as
 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/SequentialAsyncTask.as
index d5d8cd60c7..f1b160e606 100644
--- 
a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/SequentialAsyncTask.as
+++ 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/SequentialAsyncTask.as
@@ -83,12 +83,10 @@ package org.apache.royale.utils.async
      *  @langversion 3.0
      *  @productversion Royale 0.9.9
     */
-               public static function 
execute(tasks:Array,callback:Function,failEarly:Boolean=false):void{
+               public static function 
execute(tasks:Array,callback:(task:IAsyncTask)=>void,failEarly:Boolean=false):void{
                        var task:SequentialAsyncTask = new 
SequentialAsyncTask(tasks);
       task.failEarly = failEarly;
-                       task.done(function():void{
-        callback(task);
-      });
+                       task.done(callback);
                        task.run();
                }
   }



> On Jan 27, 2026, at 12:34 AM, Harbs <[email protected]> wrote:
> 
> Still getting errors:
> 
> Unexpected exception 'java.lang.NullPointerException' with message 
> '${exceptionMessage}' at 
> org.apache.royale.compiler.internal.tree.as.FunctionTypeExpressionNode.parseSignature:195
>       
> org.apache.royale.compiler.internal.tree.as.FunctionTypeExpressionNode.createTypeNodeFromParameterDefinition:246
>       
> org.apache.royale.compiler.internal.tree.as.FunctionTypeExpressionNode.createFromFunctionDefinition:157
>       
> org.apache.royale.compiler.internal.semantics.MethodBodySemanticChecker.checkFormalsVsActuals:1180
>       
> org.apache.royale.compiler.internal.semantics.MethodBodySemanticChecker.checkFunctionCall:1474
>       
> org.apache.royale.compiler.internal.as.codegen.ABCGeneratingReducer.reduce_functionAsMemberExpr:3890
>       
> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.action_349:5971
>       
> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.dispatchAction:9331
>       
> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent:40375
>       
> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.dispatchAction:7568
>       
> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent:40375
>       
> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.dispatchAction:10191
>       
> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent:40375
>       org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduce:40352
>       
> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduceSubgoals:40403
>       
> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent:40374
>       org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduce:40352
>       
> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduceSubgoals:40394
>       
> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent:40374
>       org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduce:40352
>       org.apache.royale.compiler.internal.as.codegen.CmcEmitter.burm:40654
>       
> org.apache.royale.compiler.internal.as.codegen.ABCGenerator.generateInstructions:235
>       
> org.apache.royale.compiler.internal.as.codegen.ABCGenerator.generateMethodBodyForFunction:416
>       
> org.apache.royale.compiler.internal.as.codegen.ABCGenerator.generateMethodBodyForFunction:370
>       
> org.apache.royale.compiler.internal.as.codegen.ABCGenerator.generateFunction:272
>       
> org.apache.royale.compiler.internal.as.codegen.ClassDirectiveProcessor.declareFunction:891
>       
> org.apache.royale.compiler.internal.as.codegen.DirectiveProcessor.processNode:218
>       
> org.apache.royale.compiler.internal.as.codegen.DirectiveProcessor.traverse:192
>       
> org.apache.royale.compiler.internal.as.codegen.GlobalDirectiveProcessor.declareClass:462
>       
> org.apache.royale.compiler.internal.as.codegen.DirectiveProcessor.processNode:210
>       
> org.apache.royale.compiler.internal.as.codegen.DirectiveProcessor.traverse:192
>       
> org.apache.royale.compiler.internal.as.codegen.GlobalDirectiveProcessor.declarePackage:488
>       
> org.apache.royale.compiler.internal.as.codegen.DirectiveProcessor.processNode:227
>       
> org.apache.royale.compiler.internal.as.codegen.DirectiveProcessor.traverse:192
>       org.apache.royale.compiler.internal.as.codegen.ABCGenerator.generate:126
>       
> org.apache.royale.compiler.internal.units.ASCompilationUnit.handleABCBytesRequest:412
>       
> org.apache.royale.compiler.internal.units.CompilationUnitBase.processABCBytesRequest:876
>       
> org.apache.royale.compiler.internal.units.CompilationUnitBase$4$1.call:313
>       
> org.apache.royale.compiler.internal.units.CompilationUnitBase$4$1.call:309
>       
> org.apache.royale.compiler.internal.units.requests.RequestMaker$1.call:228
>       
> org.apache.royale.compiler.internal.units.requests.RequestMaker$1.call:222
>       java.util.concurrent.FutureTask.run:264
>       java.util.concurrent.ThreadPoolExecutor.runWorker:1128
>       java.util.concurrent.ThreadPoolExecutor$Worker.run:628
>       java.lang.Thread.run:829
> 
>> On Jan 27, 2026, at 12:14 AM, Harbs <[email protected]> wrote:
>> 
>> Will do. Thanks.
>> 
>>> On Jan 27, 2026, at 12:07 AM, Josh Tynjala <[email protected]> 
>>> wrote:
>>> 
>>> Please try again with the latest compiler commits. It should be fixed now.
>>> 
>>> --
>>> Josh Tynjala
>>> Bowler Hat LLC
>>> https://bowlerhat.dev/
>>> 
>>> 
>>> On Mon, Jan 26, 2026 at 11:34 AM Harbs <[email protected]> wrote:
>>> 
>>>> Cool. Thanks!
>>>> 
>>>>> On Jan 26, 2026, at 8:07 PM, Josh Tynjala <[email protected]>
>>>> wrote:
>>>>> 
>>>>> I'll check it out. Looking at where the exception is thrown, I have a
>>>>> pretty good idea of what is null and how to go about fixing it.
>>>>> 
>>>>> --
>>>>> Josh Tynjala
>>>>> Bowler Hat LLC
>>>>> https://bowlerhat.dev/
>>>>> 
>>>>> 
>>>>> On Mon, Jan 26, 2026 at 9:43 AM Harbs <[email protected]> wrote:
>>>>> 
>>>>>> I wanted to try out the new typed functions and I’m getting lots of
>>>>>> errors. Here’s what I tried:
>>>>>> 
>>>>>> 1. I converted a bunch of function. declarations in Core:
>>>>>> diff --git
>>>>>> 
>>>> a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/object/defineGetter.as
>>>>>> 
>>>> b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/object/defineGetter.as
>>>>>> index 6fb9ce411a..50adfadbbe 100644
>>>>>> ---
>>>>>> 
>>>> a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/object/defineGetter.as
>>>>>> +++
>>>>>> 
>>>> b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/object/defineGetter.as
>>>>>> @@ -28,7 +28,7 @@ package org.apache.royale.utils.object
>>>>>>      *  @royalesuppressexport
>>>>>>      */
>>>>>>  COMPILE::JS
>>>>>> -    public function
>>>>>> defineGetter(obj:Object,prop:String,getterFunction:Function):void
>>>>>> +    public function
>>>> defineGetter(obj:Object,prop:String,getterFunction:()
>>>>>> => *):void
>>>>>>  {
>>>>>>          Object.defineProperty(obj, prop, {"get": getterFunction});
>>>>>>      }
>>>>>> 
>>>>>> 
>>>>>> diff --git
>>>>>> 
>>>> a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/IAsyncTask.as
>>>>>> 
>>>> b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/IAsyncTask.as
>>>>>> index 9f3565ff14..c6b7402a6d 100644
>>>>>> ---
>>>>>> 
>>>> a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/IAsyncTask.as
>>>>>> +++
>>>>>> 
>>>> b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/IAsyncTask.as
>>>>>> @@ -20,8 +20,8 @@ package org.apache.royale.utils.async
>>>>>> {
>>>>>>     public interface IAsyncTask
>>>>>>     {
>>>>>> -               function done(callback:Function):IAsyncTask;
>>>>>> -               function exec(callback:Function):IAsyncTask;
>>>>>> +               function done(callback:(task:IAsyncTask) =>
>>>>>> void):IAsyncTask;
>>>>>> +               function exec(callback:(task:IAsyncTask) =>
>>>>>> void):IAsyncTask;
>>>>>>             function run(data:Object=null):void;
>>>>>> 
>>>>>>             function complete():void;
>>>>>> 
>>>>>> 
>>>>>> diff --git
>>>>>> 
>>>> a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/AsyncTask.as
>>>>>> 
>>>> b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/AsyncTask.as
>>>>>> index 541b3827be..47a71323de 100644
>>>>>> ---
>>>>>> 
>>>> a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/AsyncTask.as
>>>>>> +++
>>>>>> 
>>>> b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/async/AsyncTask.as
>>>>>> @@ -136,7 +136,7 @@ package org.apache.royale.utils.async
>>>>>>   *  @playerversion AIR 2.6
>>>>>>   *  @productversion Royale 0.9.6
>>>>>>   */
>>>>>> -    public function done(callback:Function):IAsyncTask{
>>>>>> +    public function done(callback:(task:IAsyncTask) =>
>>>> void):IAsyncTask{
>>>>>>    if(_status == "complete" || _status == "failed"){
>>>>>>      callback(this);
>>>>>>      return this;
>>>>>> @@ -158,7 +158,7 @@ package org.apache.royale.utils.async
>>>>>>   *  @playerversion AIR 2.6
>>>>>>   *  @productversion Royale 0.9.13
>>>>>>   */
>>>>>> -    public function exec(callback:Function):IAsyncTask
>>>>>> +    public function exec(callback:(task:IAsyncTask) => void):IAsyncTask
>>>>>>  {
>>>>>>    done(callback);
>>>>>>    run();
>>>>>> @@ -200,7 +200,7 @@ package org.apache.royale.utils.async
>>>>>>   * Keep references to event listeners for automatic cleanup
>>>>>>   */
>>>>>>  COMPILE::JS
>>>>>> -    override public function addEventListener(type:String,
>>>>>> handler:Function, useCapture:Boolean = false, scope:Object = null):void
>>>>>> +    override public function addEventListener(type:String,
>>>>>> handler:(ev:Event) => void, useCapture:Boolean = false, scope:Object =
>>>>>> null):void
>>>>>>  {
>>>>>>    super.addEventListener(type,handler,useCapture,scope);
>>>>>>    if(!listeners)
>>>>>> @@ -214,7 +214,7 @@ package org.apache.royale.utils.async
>>>>>>    });
>>>>>>  }
>>>>>>  COMPILE::SWF
>>>>>> -    override public function addEventListener(type:String,
>>>>>> listener:Function, useCapture:Boolean = false, priority:int = 0,
>>>>>> useWeakReference:Boolean = false):void
>>>>>> +    override public function addEventListener(type:String,
>>>>>> listener:(ev:Event) => void, useCapture:Boolean = false, priority:int =
>>>> 0,
>>>>>> useWeakReference:Boolean = false):void
>>>>>>  {
>>>>>>    if(!listeners)
>>>>>>    {
>>>>>> 2. I compiled Core
>>>>>> 3. I opened my project
>>>>>> 4. I got a bunch of:
>>>>>> Unexpected exception 'java.lang.NullPointerException' with message
>>>>>> '${exceptionMessage}' at org.apache.royale.compiler.internal.tree.as
>>>>>> .FunctionTypeExpressionNode.parseSignature:195
>>>>>>     org.apache.royale.compiler.internal.tree.as
>>>>>> .FunctionTypeExpressionNode.createTypeNodeFromParameterDefinition:246
>>>>>>     org.apache.royale.compiler.internal.tree.as
>>>>>> .FunctionTypeExpressionNode.createFromFunctionDefinition:157
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.semantics.MethodBodySemanticChecker.checkFormalsVsActuals:1180
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.semantics.MethodBodySemanticChecker.checkFunctionCall:1474
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.ABCGeneratingReducer.reduce_functionAsMemberExpr:3890
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.action_349:5971
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.dispatchAction:9331
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent:40375
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.dispatchAction:7568
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent:40375
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.dispatchAction:10191
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent:40375
>>>>>> 
>>>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduce:40352
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduceSubgoals:40403
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent:40374
>>>>>> 
>>>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduce:40352
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduceSubgoals:40394
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent:40374
>>>>>> 
>>>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.reduce:40352
>>>>>> 
>>>>>> org.apache.royale.compiler.internal.as.codegen.CmcEmitter.burm:40654
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.ABCGenerator.generateInstructions:235
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.ABCGenerator.generateMethodBodyForFunction:416
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.ABCGenerator.generateMethodBodyForFunction:370
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.ABCGenerator.generateFunction:272
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.ClassDirectiveProcessor.declareFunction:891
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.DirectiveProcessor.processNode:218
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.DirectiveProcessor.traverse:192
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.GlobalDirectiveProcessor.declareClass:462
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.DirectiveProcessor.processNode:210
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.DirectiveProcessor.traverse:192
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.GlobalDirectiveProcessor.declarePackage:488
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.DirectiveProcessor.processNode:227
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.as.codegen.DirectiveProcessor.traverse:192
>>>>>> 
>>>>>> org.apache.royale.compiler.internal.as.codegen.ABCGenerator.generate:126
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.units.ASCompilationUnit.handleABCBytesRequest:412
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.units.CompilationUnitBase.processABCBytesRequest:876
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.units.CompilationUnitBase$4$1.call:313
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.units.CompilationUnitBase$4$1.call:309
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.units.requests.RequestMaker$1.call:228
>>>>>> 
>>>>>> 
>>>> org.apache.royale.compiler.internal.units.requests.RequestMaker$1.call:222
>>>>>>     java.util.concurrent.FutureTask.run:264
>>>>>>     java.util.concurrent.ThreadPoolExecutor.runWorker:1128
>>>>>>     java.util.concurrent.ThreadPoolExecutor$Worker.run:628
>>>>>>     java.lang.Thread.run:829
>>>> 
>>>> 
>> 
> 

Reply via email to