I’ve got problems to isolate the problem into a very big project with many linked sources. After hours inspecting and commenting lines of code trying to figure out the reason why flex gave me an “internal error” I found the problem.
This very simple script was crashing the flex compiler if using the 3.5.0 sdk ( revision 3.5.0.12683 ).
Fortunately the 4.0.0 compiler works fine. At the end it seems to be the combination of “+” and “-” and the ternary operator.
package { import flash.display.Sprite; public class ternary_test extends Sprite { public function ternary_test() { var n: Number = 0; var d: int = 3; var k: int = 5; var j: int = 10; n = 1 + ( -( d == 0 ? k : j ) ); trace( "n=" + n ); } } }
will cause the compiler to crash with the following stack trace:
compile: [mxmlc] Loading configuration file /Applications/Adobe Flash Builder 4 Plug-in/sdks/3.5.0/frameworks/flex-config.xml [mxmlc] Error: null [mxmlc] java.lang.NullPointerException [mxmlc] at macromedia.asc.semantics.ConstantEvaluator.evaluate(ConstantEvaluator.java:1290) [mxmlc] at macromedia.asc.parser.UnaryExpressionNode.evaluate(UnaryExpressionNode.java:51) [mxmlc] at macromedia.asc.semantics.ConstantEvaluator.evaluate(ConstantEvaluator.java:2153) [mxmlc] at macromedia.asc.parser.ListNode.evaluate(ListNode.java:44) [mxmlc] at macromedia.asc.semantics.ConstantEvaluator.evaluate(ConstantEvaluator.java:1497) [mxmlc] at macromedia.asc.parser.BinaryExpressionNode.evaluate(BinaryExpressionNode.java:56) [mxmlc] at macromedia.asc.semantics.ConstantEvaluator.evaluate(ConstantEvaluator.java:2124) [mxmlc] at macromedia.asc.parser.ArgumentListNode.evaluate(ArgumentListNode.java:45)...