-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Description
Version Used: Can be reproduced on the latest VS main.
Steps to Reproduce:
- Create a console app and paste the following code into program.cs
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
await TestFunctionAsync((int a = 3, int b = 0) => a + b, 4, 5);
async Task TestFunctionAsync(Delegate func, params object[] args)
{
while (true)
{
await Task.Delay(1000);
// invoke delegate if the first two arguments are integers
if (args.Length >= 2 && args[0] is int && args[1] is int)
{
Console.WriteLine("Invoking function with integer arguments.");
var res = func.DynamicInvoke(args);
Console.WriteLine($"Result: {res}");
}
else
{
Console.WriteLine("Skipping invocation due to non-integer arguments.");
}
}
}- change the default value for
bfrom 0 to 10 and apply hotreload (first attempt and hotreload applies successfully) - then change the default value for
bfrom 10 to 20 and apply hotreload (second attempt and hotreload fails)
Error log from hotreload panel
Project summary for 'C:\Users\xiaoyuz\source\repos\ConsoleApp8\ConsoleApp8\ConsoleApp8.csproj': ValidChanges
11:06:58.56 Emitting update of 'C:\Users\xiaoyuz\source\repos\ConsoleApp8\ConsoleApp8\ConsoleApp8.csproj'
11:06:58.56 Error Exception while emitting update: System.InvalidOperationException: Unexpected value '<>f__AnonymousDelegate1<T1, T2, TResult>' of type 'Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeManager+AnonymousDelegateTemplateSymbol'
at Microsoft.CodeAnalysis.Emit.SymbolMatcher.<MapAnonymousDelegatesWithIndexedNames>b__9_0(AnonymousTypeValue value)
at System.Collections.Immutable.ImmutableArray.CreateRange[TSource,TResult](ImmutableArray`1 items, Func`2 selector)
at Microsoft.CodeAnalysis.Emit.SymbolMatcher.MapAnonymousDelegatesWithIndexedNames(IReadOnlyDictionary`2 anonymousDelegates)
at Microsoft.CodeAnalysis.Emit.SymbolMatcher.MapBaselineToCompilation(EmitBaseline baseline, Compilation targetCompilation, CommonPEModuleBuilder targetModuleBuilder, IReadOnlyDictionary`2 mappedSynthesizedMembers, IReadOnlyDictionary`2 mappedDeletedMembers)
at Microsoft.CodeAnalysis.CSharp.Emit.EmitHelpers.MapToCompilation(CSharpCompilation compilation, PEDeltaAssemblyBuilder moduleBeingBuilt)
at Microsoft.CodeAnalysis.Compilation.SerializeToDeltaStreams(CommonPEModuleBuilder moduleBeingBuilt, DefinitionMap definitionMap, Stream metadataStream, Stream ilStream, Stream pdbStream, ArrayBuilder`1 updatedMethods, ArrayBuilder`1 changedTypes, DiagnosticBag diagnostics, Func`2 testSymWriterFactory, String pdbFilePath, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.CSharp.Emit.EmitHelpers.EmitDifference(CSharpCompilation compilation, EmitBaseline baseline, IEnumerable`1 edits, Func`2 isAddedSymbol, Stream metadataStream, Stream ilStream, Stream pdbStream, EmitDifferenceOptions options, CompilationTestData testData, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.Compilation.EmitDifference(EmitBaseline baseline, IEnumerable`1 edits, Func`2 isAddedSymbol, Stream metadataStream, Stream ilStream, Stream pdbStream, EmitDifferenceOptions options, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.EditAndContinue.EditSession.EmitSolutionUpdateAsync(Solution solution, ActiveStatementSpanProvider solutionActiveStatementSpanProvider, UpdateId updateId, ImmutableDictionary`2 runningProjects, CancellationToken cancellationToken)
11:07:00.01 Error C:\Users\xiaoyuz\source\repos\ConsoleApp8\ConsoleApp8\ConsoleApp8.csproj (line 1): error ENC1002: Cannot apply changes -- unexpected error: 'Cannot apply changes -- unexpected error: '''
11:07:00.01 ConsoleApp8 14: Error C:\Users\xiaoyuz\source\repos\ConsoleApp8\ConsoleApp8\ConsoleApp8.csproj(0,0,0,0): Cannot apply changes -- unexpected error: 'Cannot apply changes -- unexpected error: '''
11:07:00.01 ConsoleApp8 14: Error Errors found in application:
Diagnostic Id: