Skip to content

Commit 0204e7c

Browse files
committed
Fix: Repeat until scope
Chg: Version
1 parent 455d11c commit 0204e7c

File tree

5 files changed

+22
-2
lines changed

5 files changed

+22
-2
lines changed

NeoLua.NuGet/common.targets

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<AssemblyVersion>5.3.0.0</AssemblyVersion>
1515
<FileVersion>1.3.11.0</FileVersion>
1616

17-
<VersionAdd>beta.0</VersionAdd>
17+
<!--<VersionAdd>beta.0</VersionAdd>-->
1818
<SimpleVersionPattern>^(\d+)\.(\d+)\.(\d+)</SimpleVersionPattern>
1919
<SimpleVersion>$([System.Text.RegularExpressions.Regex]::Match($(FileVersion), $(SimpleVersionPattern)))</SimpleVersion>
2020

NeoLua.Test/ControlStructures.cs

+6
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,12 @@ public void Control18()
356356
);
357357
}
358358

359+
[TestMethod]
360+
public void Control19()
361+
{
362+
TestCode(GetLines("Lua.Control19.lua"), 4);
363+
}
364+
359365
[TestMethod]
360366
public void TestVariableAssign01()
361367
{

NeoLua.Test/Lua/Control19.lua

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
local i : int = 0;
2+
repeat
3+
local l : string;
4+
if i < 3 then
5+
l = "test " .. i;
6+
else
7+
l = nil;
8+
end;
9+
print(l);
10+
i = i + 1;
11+
until l == nil;
12+
return i;

NeoLua.Test/NeoLua.Test.csproj

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
<None Remove="Lua\Control10.lua" />
2525
<None Remove="Lua\Control11.lua" />
2626
<None Remove="Lua\Control12.lua" />
27+
<None Remove="Lua\Control19.lua" />
2728
<None Remove="Lua\Coroutines01.lua" />
2829
<None Remove="Lua\EnvDynamicCall01.lua" />
2930
<None Remove="Lua\Function08.lua" />
@@ -49,6 +50,7 @@
4950
<EmbeddedResource Include="Lua\Control10.lua" />
5051
<EmbeddedResource Include="Lua\Control11.lua" />
5152
<EmbeddedResource Include="Lua\Control12.lua" />
53+
<EmbeddedResource Include="Lua\Control19.lua" />
5254
<EmbeddedResource Include="Lua\Coroutines01.lua" />
5355
<EmbeddedResource Include="Lua\EnvDynamicCall01.lua" />
5456
<EmbeddedResource Include="Lua\Function08.lua" />

NeoLua/Parser.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1938,7 +1938,7 @@ private static void ParseRepeatLoop(Scope scope, ILuaLexer code)
19381938
FetchToken(LuaToken.KwUntil, code);
19391939
loopScope.AddExpression(
19401940
Expression.IfThenElse(
1941-
ConvertExpression(scope.Runtime, code.Current, ParseExpression(scope, code, InvokeResult.Object, scope.EmitExpressionDebug), typeof(bool)),
1941+
ConvertExpression(scope.Runtime, code.Current, ParseExpression(loopScope, code, InvokeResult.Object, loopScope.EmitExpressionDebug), typeof(bool)),
19421942
Expression.Empty(),
19431943
Expression.Goto(loopScope.ContinueLabel)
19441944
)

0 commit comments

Comments
 (0)