fix(scripts): memoize missing-assembly resolution on the design-time compile gate
This commit is contained in:
@@ -65,6 +65,7 @@ public static class RoslynScriptCompiler
|
|||||||
|
|
||||||
var options = ScriptOptions.Default
|
var options = ScriptOptions.Default
|
||||||
.WithReferences(references)
|
.WithReferences(references)
|
||||||
|
.WithMetadataResolver(CachingScriptMetadataResolver.Instance)
|
||||||
.WithImports(imports);
|
.WithImports(imports);
|
||||||
|
|
||||||
var script = CSharpScript.Create<object?>(code, options, globalsType);
|
var script = CSharpScript.Create<object?>(code, options, globalsType);
|
||||||
|
|||||||
@@ -138,4 +138,11 @@ public class RoslynScriptCompilerTests
|
|||||||
var diagnostics = RoslynScriptCompiler.Compile(code, typeof(ScriptCompileSurface));
|
var diagnostics = RoslynScriptCompiler.Compile(code, typeof(ScriptCompileSurface));
|
||||||
Assert.Empty(diagnostics);
|
Assert.Empty(diagnostics);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Compile_TwiceWithSharedResolver_StillCompilesCleanly()
|
||||||
|
{
|
||||||
|
Assert.Empty(RoslynScriptCompiler.Compile("return 1 + 1;"));
|
||||||
|
Assert.Empty(RoslynScriptCompiler.Compile("return 2 + 2;"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user