diff --git a/Upsilon/Evaluator/Evaluator.cs b/Upsilon/Evaluator/Evaluator.cs index 87bcf55..d9ccd71 100644 --- a/Upsilon/Evaluator/Evaluator.cs +++ b/Upsilon/Evaluator/Evaluator.cs @@ -705,7 +705,14 @@ namespace Upsilon.Evaluator innerEvaluator.Scope.CreateLocal(e.Variables[1], table[1]); innerEvaluator.EvaluateBoundBlockStatement((BoundBlockStatement) e.Block); if (innerEvaluator.HasBroken || innerEvaluator.HasReturned) + { + if (innerEvaluator.HasReturned) + { + HasReturned = innerEvaluator.HasReturned; + _returnValue = innerEvaluator._returnValue; + } break; + } } } } @@ -719,7 +726,14 @@ namespace Upsilon.Evaluator { innerEvaluator.EvaluateBoundBlockStatement(block); if (innerEvaluator.HasBroken || innerEvaluator.HasReturned) + { + if (innerEvaluator.HasReturned) + { + HasReturned = innerEvaluator.HasReturned; + _returnValue = innerEvaluator._returnValue; + } break; + } } } } diff --git a/Upsilon/Parser/Parser.cs b/Upsilon/Parser/Parser.cs index 5e14b97..4c725ef 100644 --- a/Upsilon/Parser/Parser.cs +++ b/Upsilon/Parser/Parser.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; -using Upsilon.Text; namespace Upsilon.Parser {