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 > >
