When using a virtual method that can return, using more than one return will cause a error.
Sample code to reproduce:
class Parent
{
public virtual Number get_value()
{
return 1;
}
}
class Child : Parent
{
public override Number get_value()
{
return 2;
}
}
rule: "Test"
{
Parent p = new Child();
Number n = p.get_value();
}
Result:
An exception was thrown while translating to workshop.
System.Exception: _multiplePaths is set as false and 2 expressions were returned.
at Deltin.Deltinteger.Parse.ReturnHandler.ReturnValue(IWorkshopTree value) in /home/runner/work/Overwatch-Script-To-Workshop/Overwatch-Script-To-Workshop/Deltinteger/Deltinteger/Parse/Functions/ReturnHandler.cs:line 36
at Deltin.Deltinteger.Parse.ReturnAction.Translate(ActionSet actionSet) in /home/runner/work/Overwatch-Script-To-Workshop/Overwatch-Script-To-Workshop/Deltinteger/Deltinteger/Parse/Statement.cs:line 73
at Deltin.Deltinteger.Parse.BlockAction.Translate(ActionSet actionSet) in /home/runner/work/Overwatch-Script-To-Workshop/Overwatch-Script-To-Workshop/Deltinteger/Deltinteger/Parse/Block.cs:line 36
at Deltin.Deltinteger.Parse.Functions.Builder.Virtual.AbstractVirtualContentBuilder1.Build() in /home/runner/work/Overwatch-Script-To-Workshop/Overwatch-Script-To-Workshop/Deltinteger/Deltinteger/Parse/Functions/Builder/Virtual/AbstractVirtualContentBuilder.cs:line 63 at Deltin.Deltinteger.Parse.Functions.Builder.User.UserFunctionController.Build(ActionSet actionSet) in /home/runner/work/Overwatch-Script-To-Workshop/Overwatch-Script-To-Workshop/Deltinteger/Deltinteger/Parse/Functions/Builder/User/UserFunctionController.cs:line 100 at Deltin.Deltinteger.Parse.Functions.Builder.WorkshopFunctionBuilder.BuildInline(ICallInfo call) in /home/runner/work/Overwatch-Script-To-Workshop/Overwatch-Script-To-Workshop/Deltinteger/Deltinteger/Parse/Functions/Builder/Builder.cs:line 110 at Deltin.Deltinteger.Parse.ExpressionTree.ParseTree(ActionSet actionSet, Boolean expectingValue) in /home/runner/work/Overwatch-Script-To-Workshop/Overwatch-Script-To-Workshop/Deltinteger/Deltinteger/Parse/ExpressionTree.cs:line 211 at Deltin.Deltinteger.Parse.ExpressionTree.Parse(ActionSet actionSet) in /home/runner/work/Overwatch-Script-To-Workshop/Overwatch-Script-To-Workshop/Deltinteger/Deltinteger/Parse/ExpressionTree.cs:line 165 at Deltin.Deltinteger.Parse.DataTypeAssigner.GetResult(GettableAssignerValueInfo info) in /home/runner/work/Overwatch-Script-To-Workshop/Overwatch-Script-To-Workshop/Deltinteger/Deltinteger/Parse/Variables/GettableAssigners/DataTypeAssigner.cs:line 54 at Deltin.Deltinteger.Parse.IGettableAssigner.GetValue(GettableAssignerValueInfo info) in /home/runner/work/Overwatch-Script-To-Workshop/Overwatch-Script-To-Workshop/Deltinteger/Deltinteger/Parse/Variables/GettableAssigners/IGettableAssigner.cs:line 64 at Deltin.Deltinteger.Parse.DefineAction.Translate(ActionSet actionSet) in /home/runner/work/Overwatch-Script-To-Workshop/Overwatch-Script-To-Workshop/Deltinteger/Deltinteger/Parse/Variables/Semantics/DefineAction.cs:line 23 at Deltin.Deltinteger.Parse.BlockAction.Translate(ActionSet actionSet) in /home/runner/work/Overwatch-Script-To-Workshop/Overwatch-Script-To-Workshop/Deltinteger/Deltinteger/Parse/Block.cs:line 36 at Deltin.Deltinteger.Parse.DeltinScript.ToWorkshop(Func2 addRules) in /home/runner/work/Overwatch-Script-To-Workshop/Overwatch-Script-To-Workshop/Deltinteger/Deltinteger/Parse/Translate.cs:line 259
at Deltin.Deltinteger.Parse.DeltinScript..ctor(TranslateSettings translateSettings) in /home/runner/work/Overwatch-Script-To-Workshop/Overwatch-Script-To-Workshop/Deltinteger/Deltinteger/Parse/Translate.cs:line 57
When using a virtual method that can return, using more than one return will cause a error.
Sample code to reproduce:
Result:
Version: "[:] Overwatch Script To Workshop v2.6"