So, the terrible thing is, if you compile to swf8 or DHTML, you _will_ get an intelligible warning. But, in swf9/10, we "know" the type declarations are enforced, so we dispense with the warning. Perhaps the simplest fix is to have the debug version of the code _not_ declare the argument types so the debug warnings worked the same on all platforms?
Maybe I'll just do that while the idea is fresh in my head... On 2010-04-06, at 11:13, P T Withington wrote: > Already filed as: > > http://jira.openlaszlo.org/jira/browse/LPP-7344 > > Guess we should raise the priority on that! > > On 2010-04-06, at 10:25, Henry Minsky wrote: > >> Hmm, I wonder if there is anything better that the compiler or runtime can >> do to warn about >> constraints that cannot work. >> >> The runtime error you were seeing was a clue, maybe we can make a beefed up >> check in the >> constraint execution code in debug mode to try and help flag cases where >> the constraint >> is ill-formed. >> >> >> >> On Tue, Apr 6, 2010 at 10:10 AM, Roger Yarrow <[email protected]> wrote: >> >>> Thanks everyone for the prompt replies. With lots of commenting out >>> sections and trial/error, I found the problematic constraint. I had a >>> constraint inside a class that was based upon an array. The array is defined >>> in the class such as this: >>> >>> <attribute name="range_array" type="expression" value="$once{new >>> Array()}"/> >>> >>> The constraint was like this: >>> >>> <view visible="${classroot.range_array.length>1}"> >>> >>> This was the point of failure. To resolve, I made an attribute that held >>> the current value of the array's length. I then modified the constraint to >>> use this attribute value instead, and it works! Problem solved! >>> >>> >>> >>> On Tue, Apr 6, 2010 at 1:33 AM, Max Carlson <[email protected]> wrote: >>> >>>> Wow - congratulations on the port! >>>> >>>> I'd suggest running in debug mode with backtrace enabled. Then, you can >>>> click on the errors and see exactly what's causing them. If it's something >>>> in our code you can click the bug report button and use that to submit a >>>> report to http://jira.openlaszlo.org/ so we can get it fixed for you. >>>> >>>> Let me know what you find! >>>> >>>> Regards, >>>> Max Carlson >>>> OpenLaszlo.org >>>> >>>> >>>> On 4/5/10 8:33 PM, Roger Yarrow wrote: >>>> >>>>> Hi, >>>>> >>>>> I have a large app (18000+ lines) that I migrated from 4.1.1 swf8 to >>>>> 4.7.1 swf9. I have it all working (finally!) with debug=true. When >>>>> debug=true, the application will compile and execute but I get about a >>>>> handful of errors like this: >>>>> >>>>> ERROR @core/LzNode.lzs˜1518: TypeError: Error #1034: Type Coercion >>>>> failed: cannot convert [...@2c2b5821 to LzEventable. >>>>> ERROR @core/LzNode.lzs˜1518: TypeError: Error #1034: Type Coercion >>>>> failed: cannot convert [...@b297f59 to LzEventable. >>>>> ERROR @core/LzNode.lzs˜1518: TypeError: Error #1034: Type Coercion >>>>> failed: cannot convert [...@c91ec11 to LzEventable. >>>>> ERROR @core/LzNode.lzs˜1518: TypeError: Error #1034: Type Coercion >>>>> failed: cannot convert [...@a6610b1 to LzEventable. >>>>> >>>>> The errors are during initialization as I have lots of views/classes >>>>> being instantiated in a variety of ways. >>>>> >>>>> When I attempt to deploy the app using debug=false, it will not fully >>>>> execute. Adobe Flash (debugger version) pops up with errors such as: >>>>> >>>>> TypeError: Error #1034: Type Coercion failed: cannot convert [...@1d6a2661 >>>>> to .LzEventable. >>>>> at LzNode/applyConstraintMethod() >>>>> at LzNode/applyConstraintExpr() >>>>> at LzNode/__LZresolveReferences() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZclearPreventInit() >>>>> at LzState/apply() >>>>> at LzState/$lzc$set_applied() >>>>> at LzEventable/setAttribute() >>>>> at MethodInfo-2268() >>>>> at LzNode/applyConstraintMethod() >>>>> at LzNode/applyConstraintExpr() >>>>> at LzNode/__LZresolveReferences() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZinstantiationDone() >>>>> at LzView/__LZinstantiationDone() >>>>> at LzInstantiatorService/makeSomeViews() >>>>> at LzInstantiatorService/checkQ() >>>>> at >>>>> Function/http://adobe.com/AS3/2006/builtin::call()<http://adobe.com/AS3/2006/builtin::call%28%29> >>>>> at LzEvent/sendEvent() >>>>> at LzIdleKernel$/__update() >>>>> >>>>> And: >>>>> >>>>> TypeError: Error #1034: Type Coercion failed: cannot convert [...@1fc27079 >>>>> to .LzEventable. >>>>> at LzNode/applyConstraintMethod() >>>>> at LzNode/applyConstraintExpr() >>>>> at LzNode/__LZresolveReferences() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZclearPreventInit() >>>>> at LzState/apply() >>>>> at LzState/$lzc$set_applied() >>>>> at LzEventable/setAttribute() >>>>> at MethodInfo-2286() >>>>> at LzNode/applyConstraintMethod() >>>>> at LzNode/applyConstraintExpr() >>>>> at LzNode/__LZresolveReferences() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZcallInit() >>>>> at LzNode/__LZinstantiationDone() >>>>> at LzView/__LZinstantiationDone() >>>>> at LzInstantiatorService/makeSomeViews() >>>>> at LzInstantiatorService/createImmediate() >>>>> at LzNode/createChildren() >>>>> at LzNode() >>>>> at LzView() >>>>> at $lzc$class_generic_widget() >>>>> at $lzc$class_countdown_timer() >>>>> at $lzc$class_m3107/reload() >>>>> at $lzc$class_m3100/show_desktop() >>>>> at $lzc$class_m1974/clearMessage() >>>>> at >>>>> Function/http://adobe.com/AS3/2006/builtin::call()<http://adobe.com/AS3/2006/builtin::call%28%29> >>>>> at LzDelegate/execute() >>>>> at MethodInfo-437() >>>>> at >>>>> Function/http://adobe.com/AS3/2006/builtin::apply()<http://adobe.com/AS3/2006/builtin::apply%28%29> >>>>> at LzTimeKernelClass/timerHandler() >>>>> at flash.utils::Timer/_timerDispatch() >>>>> at flash.utils::Timer/tick() >>>>> >>>>> The nature of the errors (Error #1034) are the same so I'm assuming they >>>>> are one in the same. When debug=true, Flash can "handle" the error and >>>>> allows my app to execute normally. When debug=false, it cannot handle >>>>> the error and the app dies during instantiation and executes but only >>>>> "halfway" alive. >>>>> >>>>> How do I figure out where the problem is? I looked in core/LzNode and >>>>> the problem area is related to applyConstraintMethod, so I'm guessing I >>>>> have a constraint going haywire somewhere. Perhaps a constraint is >>>>> based upon a view not yet instantiated? How do I "dig deeper" to find >>>>> out where the issue is? >>>>> >>>>> I am desperate here... if I have to, I can just deploy using a >>>>> debug=true and hide the debug window. Obviously, I'd rather not do that. >>>>> >>>>> Thanks!! >>>>> >>>>> - Roger >>>>> >>>> >>> >> >> >> -- >> Henry Minsky >> Software Architect >> [email protected] >
