[Fact]
public void Test()
{
var source = @"
void F<T>(T t)
{
var f = (ref T x) => 0;
}
";
var compilation = CreateCompilation(source, options: TestOptions.DebugDll);
var tree = compilation.SyntaxTrees[0];
var identifier = tree.GetRoot().DescendantNodes().OfType<IdentifierNameSyntax>().First(id => id.Identifier.Text == "var");
var model = compilation.GetSemanticModel(tree);
var anonymousType = model.GetSymbolInfo(identifier).Symbol.GetSymbol<TypeSymbol>();
model.GetOperation(identifier);
}
Observed: System.InvalidCastException: Unable to cast object of type 'Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionSymbol' to type 'Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol'.
Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.Binder.BindSimpleProgram(Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax compilationUnit, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics) Line 3436 C#
Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.Binder.BindMethodBody(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode syntax, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics, bool includesFieldInitializers) Line 3427 C#
Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.MemberSemanticModel.IncrementalBinder.BindMethodBody(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics, bool includeInitializersInBody) Line 2474 C#
Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.MethodBodySemanticModel.Bind(Microsoft.CodeAnalysis.CSharp.Binder binder, Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics) Line 106 C#
Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.MemberSemanticModel.GetBoundNodes(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node) Line 2113 C#
Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.MemberSemanticModel.GetUpperBoundNode(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node, bool promoteToBindable) Line 519 C#
Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.MemberSemanticModel.GetBoundRoot() Line 501 C#
Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.MemberSemanticModel.GetRootOperation() Line 1215 C#
Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.MemberSemanticModel.GetOperationWorker(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node, System.Threading.CancellationToken cancellationToken) Line 1153 C#
Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel.GetOperationWorker(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node, System.Threading.CancellationToken cancellationToken) Line 194 C#
Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.CSharpSemanticModel.GetOperationCore(Microsoft.CodeAnalysis.SyntaxNode node, System.Threading.CancellationToken cancellationToken) Line 478 C#
Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.SemanticModel.GetOperation(Microsoft.CodeAnalysis.SyntaxNode node, System.Threading.CancellationToken cancellationToken) Line 80 C#
> Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests.dll!Microsoft.CodeAnalysis.CSharp.UnitTests.Symbols.SymbolExtensionTests.Test() Line 113 C#
Observed: System.InvalidCastException: Unable to cast object of type 'Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionSymbol' to type 'Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedSimpleProgramEntryPointSymbol'.