Resolve function parameter types by checking calls to the function

This commit is contained in:
2018-11-15 20:48:52 +01:00
parent d5c8a959fb
commit da6e95bfac
7 changed files with 89 additions and 17 deletions

View File

@@ -52,17 +52,34 @@ testFunc(100)
{
const string input = @"
function testFunc (var1)
b = var1 == true
var1 == true
end
testFunc(100)
";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
script.Evaluate();
Assert.Empty(script.Diagnostics.Messages);
Assert.Single(script.Diagnostics.Messages);
Assert.True(script.Scope.TryGet("testFunc", out var func));
Assert.IsType<LuaFunction>(func);
}
[Fact]
public void BindUnusedFunctions()
{
const string input = @"
function testFunc (var1)
var1 == true
end
";
var script = new Script(input);
Assert.Empty(script.Diagnostics.Messages);
script.Evaluate();
Assert.Empty(script.Diagnostics.Messages);
Assert.True(script.Scope.TryGet("testFunc", out var func));
var castType = Assert.IsType<LuaFunction>(func);
Assert.NotNull(castType.Block);
}
}
}