-
Notifications
You must be signed in to change notification settings - Fork 34
Description
function Foo(mb: MonoBehaviour, bb : boolean) { return (mb && mb.enabled && bb); }
Above UnityScript code causes converter to crash.
Most likely issue with PromoteImplicitBooleanConversionsToExplicitComparisons
Callstack:
Boo.Lang.Compiler.CompilerError : Internal compiler error: Object reference not set to an instance of an object..
----> System.NullReferenceException : Object reference not set to an instance of an object.
at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnError(Node node, Exception error) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\DepthFirstVisitor.cs:line 83
at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\DepthFirstVisitor.cs:line 55
at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\DepthFirstVisitor.cs:line 112
at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection1 collection) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\DepthFirstVisitor.cs:line 119 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnBlock(Block node) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\Impl\DepthFirstVisitor.cs:line 722 at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.OnBlock(Block node) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 497 at Boo.Lang.Compiler.Ast.Block.Accept(IAstVisitor visitor) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\Impl\BlockImpl.cs:line 69 at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.OnMethod(Method node) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 320 at Boo.Lang.Compiler.Ast.Method.Accept(IAstVisitor visitor) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\Impl\MethodImpl.cs:line 75 at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.WriteMembersOf(TypeDefinition node) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 1554 at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.OnClassDefinition(ClassDefinition node) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 175 at Boo.Lang.Compiler.Ast.ClassDefinition.Accept(IAstVisitor visitor) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\Impl\ClassDefinitionImpl.cs:line 67 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\DepthFirstVisitor.cs:line 51 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\DepthFirstVisitor.cs:line 112 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection1 collection) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\DepthFirstVisitor.cs:line 119
at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnModule(Module node) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\Impl\DepthFirstVisitor.cs:line 240
at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.OnModule(Module node) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 147
at Boo.Lang.Compiler.Ast.Module.Accept(IAstVisitor visitor) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\Impl\ModuleImpl.cs:line 75
at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\DepthFirstVisitor.cs:line 51
at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node[] array) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\DepthFirstVisitor.cs:line 112
at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit[T](NodeCollection1 collection) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\DepthFirstVisitor.cs:line 119 at Boo.Lang.Compiler.Ast.DepthFirstVisitor.OnCompileUnit(CompileUnit node) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\Impl\DepthFirstVisitor.cs:line 47 at Boo.Lang.Compiler.Ast.CompileUnit.Accept(IAstVisitor visitor) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\Impl\CompileUnitImpl.cs:line 69 at UnityScript2CSharp.UnityScript2CSharpConverter.Convert(IEnumerable1 inputs, IEnumerable1 definedSymbols, IEnumerable1 referencedAssemblies, Action3 onScriptConverted) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverter.cs:line 44 at UnityScript2CSharp.Tests.Tests.ConvertScripts(IList1 sourceFiles, String saveToFolder, Boolean verboseLog) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp.Tests\Tests.Utilities.cs:line 107
at UnityScript2CSharp.Tests.Tests.TestCrash() in G:\Work\repo\unityscript2csharp\UnityScript2CSharp.Tests\Tests.cs:line 19
--NullReferenceException
at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.<>c__DisplayClass64_0.b__0() in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 784
at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.WrapWith(Boolean needParensAround, String prefix, String sufix, Action action) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 1417
at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.OnBinaryExpression(BinaryExpression node) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 779
at Boo.Lang.Compiler.Ast.BinaryExpression.Accept(IAstVisitor visitor) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\Impl\BinaryExpressionImpl.cs:line 73
at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.<>c__DisplayClass65_0.b__0() in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 806
at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.WrapWith(Boolean needParensAround, String prefix, String sufix, Action action) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 1417
at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.OnConditionalExpression(ConditionalExpression node) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 804
at Boo.Lang.Compiler.Ast.ConditionalExpression.Accept(IAstVisitor visitor) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\Impl\ConditionalExpressionImpl.cs:line 73
at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.<>c__DisplayClass64_0.b__0() in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 788
at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.WrapWith(Boolean needParensAround, String prefix, String sufix, Action action) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 1417
at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.OnBinaryExpression(BinaryExpression node) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 779
at Boo.Lang.Compiler.Ast.BinaryExpression.Accept(IAstVisitor visitor) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\Impl\BinaryExpressionImpl.cs:line 73
at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.<>c__DisplayClass64_0.b__0() in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 788
at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.WrapWith(Boolean needParensAround, String prefix, String sufix, Action action) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 1417
at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.OnBinaryExpression(BinaryExpression node) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 779
at Boo.Lang.Compiler.Ast.BinaryExpression.Accept(IAstVisitor visitor) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\Impl\BinaryExpressionImpl.cs:line 73
at UnityScript2CSharp.UnityScript2CSharpConverterVisitor.OnReturnStatement(ReturnStatement node) in G:\Work\repo\unityscript2csharp\UnityScript2CSharp\UnityScript2CSharpConverterVisitor.cs:line 621
at Boo.Lang.Compiler.Ast.ReturnStatement.Accept(IAstVisitor visitor) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\Impl\ReturnStatementImpl.cs:line 69
at Boo.Lang.Compiler.Ast.DepthFirstVisitor.Visit(Node node) in m:\Work\Repo\boo\src\Boo.Lang.Compiler\Ast\DepthFirstVisitor.cs:line 42