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