Ugh!

That’s what I get for doing this when it’ past my bedtime…

I forgot to pull before I built… 🫠

I’ll try again in the morning...

> On Jan 27, 2026, at 12:41 AM, Harbs <[email protected]> wrote:
> 
> 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