public void Test(string input, bool isValid) { var temp1 = Path.GetTempFileName(); var fn1 = Path.ChangeExtension(temp1, ".fsx"); File.WriteAllText(fn1, input); var fn2 = Path.ChangeExtension(temp1, ".dll"); FSharpChecker checker = FSharpChecker.Create(FSharpOption <int> .None, FSharpOption <bool> .None, FSharpOption <bool> .None, FSharpOption <ReferenceResolver.Resolver> .None, FSharpOption <FSharpFunc <Tuple <string, DateTime>, FSharpOption <Tuple <object, IntPtr, int> > > > .None, FSharpOption <bool> .None); var result = checker.CompileToDynamicAssembly(new[] { "-o", fn2, "-a", fn1 }, FSharpOption <Tuple <TextWriter, TextWriter> > .None, FSharpOption <string> .None); var t = Microsoft.FSharp.Control.FSharpAsync.RunSynchronously(result, FSharpOption <int> .None, FSharpOption <CancellationToken> .None); if (isValid) { t.Item1.Should().BeNullOrEmpty(); } else { t.Item1.Should().NotBeNullOrEmpty(); } }
internal FSharpAssembly(FSharpCompilerOptionsBuilder builder, FSharpChecker checker) { var args = builder.ToArray(); var task = checker.CompileToDynamicAssembly( args, FSharpOption <Tuple <TextWriter, TextWriter> > .None, FSharpOption <string> .None); var result = FSharpAsync.RunSynchronously(task, default, default);