PrimitiveIndex causes unhandled exception from BindFunctionInvocationExpression
ngcg opened this issue · 6 comments
VS 2019 (16.7.2), HlslTools 1.1.302
This looks similar to #203, but the stack trace is a bit different. It happens in a very large HLSL file, so I don't know what code exactly triggered it. Other files in the same project are ok.
This extension looks great otherwise - makes VS an actual IDE for HLSL, instead of a glorified notepad. Thanks for your work!
VS xml log event with some newlines added for readability:
<type>Error</type>
<source>Editor or Editor Extension</source>
<description>System.AggregateException: One or more errors occurred.
---> System.AggregateException: One or more errors occurred.
---> System.InvalidOperationException: Sequence contains no elements

at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)

at System.Linq.ImmutableArrayExtensions.First[T](ImmutableArray`1 immutableArray, Func`2 predicate)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindFunctionInvocationExpression(FunctionInvocationExpressionSyntax syntax)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindExpression(ExpressionSyntax node)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindEqualsValue(EqualsValueClauseSyntax syntax)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindInitializer(InitializerSyntax syntax)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindVariableDeclarator(VariableDeclaratorSyntax syntax, TypeSymbol variableType, Func`3 createSymbol)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass24_0.<BindVariableDeclaration>b__1(VariableDeclaratorSyntax x)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindVariableDeclaration(VariableDeclarationSyntax syntax, Symbol parent, Func`3 createSymbol)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindVariableDeclaration(VariableDeclarationSyntax syntax, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindVariableDeclarationStatement(VariableDeclarationStatementSyntax syntax, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindStatement(StatementSyntax syntax, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass95_0.<BindBlock>b__1(StatementSyntax y)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass95_0.<BindBlock>b__0(StatementSyntax x)

at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()

at System.Linq.Buffer`1..ctor(IEnumerable`1 source)

at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)

at System.Collections.Immutable.ImmutableArray.CreateRange[T](IEnumerable`1 items)

at System.Collections.Immutable.ImmutableArray.ToImmutableArray[TSource](IEnumerable`1 items)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindBlock(BlockSyntax syntax, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass29_0.<BindFunctionDefinition>b__3(BlockSyntax x)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindFunctionDefinition(FunctionDefinitionSyntax declaration, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindGlobalDeclaration(SyntaxNode declaration, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass16_0.<BindTopLevelDeclarations>b__1(SyntaxNode y)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass16_0.<BindTopLevelDeclarations>b__0(SyntaxNode x)

at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()

at System.Linq.Buffer`1..ctor(IEnumerable`1 source)

at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)

at System.Collections.Immutable.ImmutableArray.CreateRange[T](IEnumerable`1 items)

at System.Collections.Immutable.ImmutableArray.ToImmutableArray[TSource](IEnumerable`1 items)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindTopLevelDeclarations(List`1 declarations, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindCompilationUnit(CompilationUnitSyntax compilationUnit)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindRoot(SyntaxNode syntax)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind(SyntaxNode syntaxRoot, CancellationToken cancellationToken)

at ShaderTools.CodeAnalysis.Hlsl.Compilation.Compilation.GetSemanticModel(Nullable`1 cancellationToken)

at ShaderTools.CodeAnalysis.Hlsl.Compilation.Compilation.GetSemanticModelBase(CancellationToken cancellationToken)

at ShaderTools.CodeAnalysis.Document.<>c__DisplayClass20_2.<<-ctor>b__3>d.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)

--- End of inner exception stack trace
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at ShaderTools.CodeAnalysis.Document.<GetSemanticModelAsync>d__28.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at ShaderTools.CodeAnalysis.QuickInfo.AbstractSemanticQuickInfoProvider.<BindTokenAsync>d__3.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at ShaderTools.CodeAnalysis.QuickInfo.AbstractSemanticQuickInfoProvider.<BuildContentAsync>d__0.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at ShaderTools.CodeAnalysis.QuickInfo.AbstractQuickInfoProvider.<GetQuickInfoItemAsync>d__2.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at ShaderTools.CodeAnalysis.QuickInfo.AbstractQuickInfoProvider.<GetItemAsync>d__0.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at ShaderTools.CodeAnalysis.QuickInfo.QuickInfoService.<GetQuickInfoAsync>d__6.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at ShaderTools.CodeAnalysis.Editor.Implementation.QuickInfo.QuickInfoSource.<GetQuickInfoItemAsync>d__3.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at Microsoft.VisualStudio.Language.Intellisense.Implementation.AsyncQuickInfoSession.<ComputeSourceContentAsync>d__39.MoveNext()

--- End of inner exception stack trace
---

at Microsoft.VisualStudio.Language.Intellisense.Implementation.AsyncQuickInfoSession.<UpdateAsync>d__32.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at Microsoft.VisualStudio.Language.Intellisense.Implementation.AsyncQuickInfoPresentationSession.<UpdateAsync>d__5.MoveNext()

---> (Inner Exception #0) System.AggregateException: One or more errors occurred.
---> System.InvalidOperationException: Sequence contains no elements

at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)

at System.Linq.ImmutableArrayExtensions.First[T](ImmutableArray`1 immutableArray, Func`2 predicate)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindFunctionInvocationExpression(FunctionInvocationExpressionSyntax syntax)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindExpression(ExpressionSyntax node)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindEqualsValue(EqualsValueClauseSyntax syntax)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindInitializer(InitializerSyntax syntax)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindVariableDeclarator(VariableDeclaratorSyntax syntax, TypeSymbol variableType, Func`3 createSymbol)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass24_0.<BindVariableDeclaration>b__1(VariableDeclaratorSyntax x)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindVariableDeclaration(VariableDeclarationSyntax syntax, Symbol parent, Func`3 createSymbol)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindVariableDeclaration(VariableDeclarationSyntax syntax, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindVariableDeclarationStatement(VariableDeclarationStatementSyntax syntax, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindStatement(StatementSyntax syntax, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass95_0.<BindBlock>b__1(StatementSyntax y)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass95_0.<BindBlock>b__0(StatementSyntax x)

at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()

at System.Linq.Buffer`1..ctor(IEnumerable`1 source)

at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)

at System.Collections.Immutable.ImmutableArray.CreateRange[T](IEnumerable`1 items)

at System.Collections.Immutable.ImmutableArray.ToImmutableArray[TSource](IEnumerable`1 items)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindBlock(BlockSyntax syntax, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass29_0.<BindFunctionDefinition>b__3(BlockSyntax x)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindFunctionDefinition(FunctionDefinitionSyntax declaration, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindGlobalDeclaration(SyntaxNode declaration, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass16_0.<BindTopLevelDeclarations>b__1(SyntaxNode y)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass16_0.<BindTopLevelDeclarations>b__0(SyntaxNode x)

at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()

at System.Linq.Buffer`1..ctor(IEnumerable`1 source)

at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)

at System.Collections.Immutable.ImmutableArray.CreateRange[T](IEnumerable`1 items)

at System.Collections.Immutable.ImmutableArray.ToImmutableArray[TSource](IEnumerable`1 items)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindTopLevelDeclarations(List`1 declarations, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindCompilationUnit(CompilationUnitSyntax compilationUnit)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindRoot(SyntaxNode syntax)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind(SyntaxNode syntaxRoot, CancellationToken cancellationToken)

at ShaderTools.CodeAnalysis.Hlsl.Compilation.Compilation.GetSemanticModel(Nullable`1 cancellationToken)

at ShaderTools.CodeAnalysis.Hlsl.Compilation.Compilation.GetSemanticModelBase(CancellationToken cancellationToken)

at ShaderTools.CodeAnalysis.Document.<>c__DisplayClass20_2.<<-ctor>b__3>d.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)

--- End of inner exception stack trace
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at ShaderTools.CodeAnalysis.Document.<GetSemanticModelAsync>d__28.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at ShaderTools.CodeAnalysis.QuickInfo.AbstractSemanticQuickInfoProvider.<BindTokenAsync>d__3.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at ShaderTools.CodeAnalysis.QuickInfo.AbstractSemanticQuickInfoProvider.<BuildContentAsync>d__0.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at ShaderTools.CodeAnalysis.QuickInfo.AbstractQuickInfoProvider.<GetQuickInfoItemAsync>d__2.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at ShaderTools.CodeAnalysis.QuickInfo.AbstractQuickInfoProvider.<GetItemAsync>d__0.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at ShaderTools.CodeAnalysis.QuickInfo.QuickInfoService.<GetQuickInfoAsync>d__6.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at ShaderTools.CodeAnalysis.Editor.Implementation.QuickInfo.QuickInfoSource.<GetQuickInfoItemAsync>d__3.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

at Microsoft.VisualStudio.Language.Intellisense.Implementation.AsyncQuickInfoSession.<ComputeSourceContentAsync>d__39.MoveNext()

---> (Inner Exception #0) System.InvalidOperationException: Sequence contains no elements

at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)

at System.Linq.ImmutableArrayExtensions.First[T](ImmutableArray`1 immutableArray, Func`2 predicate)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindFunctionInvocationExpression(FunctionInvocationExpressionSyntax syntax)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindExpression(ExpressionSyntax node)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindEqualsValue(EqualsValueClauseSyntax syntax)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindInitializer(InitializerSyntax syntax)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindVariableDeclarator(VariableDeclaratorSyntax syntax, TypeSymbol variableType, Func`3 createSymbol)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass24_0.<BindVariableDeclaration>b__1(VariableDeclaratorSyntax x)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindVariableDeclaration(VariableDeclarationSyntax syntax, Symbol parent, Func`3 createSymbol)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindVariableDeclaration(VariableDeclarationSyntax syntax, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindVariableDeclarationStatement(VariableDeclarationStatementSyntax syntax, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindStatement(StatementSyntax syntax, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass95_0.<BindBlock>b__1(StatementSyntax y)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass95_0.<BindBlock>b__0(StatementSyntax x)

at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()

at System.Linq.Buffer`1..ctor(IEnumerable`1 source)

at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)

at System.Collections.Immutable.ImmutableArray.CreateRange[T](IEnumerable`1 items)

at System.Collections.Immutable.ImmutableArray.ToImmutableArray[TSource](IEnumerable`1 items)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindBlock(BlockSyntax syntax, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass29_0.<BindFunctionDefinition>b__3(BlockSyntax x)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindFunctionDefinition(FunctionDefinitionSyntax declaration, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindGlobalDeclaration(SyntaxNode declaration, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass16_0.<BindTopLevelDeclarations>b__1(SyntaxNode y)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.<>c__DisplayClass16_0.<BindTopLevelDeclarations>b__0(SyntaxNode x)

at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()

at System.Linq.Buffer`1..ctor(IEnumerable`1 source)

at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)

at System.Collections.Immutable.ImmutableArray.CreateRange[T](IEnumerable`1 items)

at System.Collections.Immutable.ImmutableArray.ToImmutableArray[TSource](IEnumerable`1 items)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindTopLevelDeclarations(List`1 declarations, Symbol parent)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindCompilationUnit(CompilationUnitSyntax compilationUnit)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.BindRoot(SyntaxNode syntax)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind[TInput,TResult](TInput node, Func`2 bindMethod)

at ShaderTools.CodeAnalysis.Hlsl.Binding.Binder.Bind(SyntaxNode syntaxRoot, CancellationToken cancellationToken)

at ShaderTools.CodeAnalysis.Hlsl.Compilation.Compilation.GetSemanticModel(Nullable`1 cancellationToken)

at ShaderTools.CodeAnalysis.Hlsl.Compilation.Compilation.GetSemanticModelBase(CancellationToken cancellationToken)

at ShaderTools.CodeAnalysis.Document.<>c__DisplayClass20_2.<<-ctor>b__3>d.MoveNext()

--- End of stack trace from previous location where exception was thrown
---

at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)<
---
<
---
</description>```
Pfew, I was actually able to bisect it down to code in another included file:
// inside function, inside while loop
if (condition) {
int local = (g_constants.foo >= 0 ? g_constants.foo : g_variables[PrimitiveIndex()]);
// do stuff
}
where g_constants is ConstantBuffer<SomeStruct>
('b' register, CBV) and g_variables is Buffer<int>
('t' register, SRV).
Replacing PrimitiveIndex() with plain 0 avoids the exception. Extracting the index to a separate local (const) variable doesn't help.
Restructuring the code to this equivalent also doesn't help:
int local = g_constants.foo;
if (local < 0)
local = g_variables[PrimitiveIndex()]);
We have one other file that uses PrimitiveIndex similarly (stored in a local variable and then used with an array) - it too raises this exception. When I replace PrimitiveIndex() with 0 the extension parses all sources without raising exceptions, even though the total code length is way over 10K lines when accounting for includes. Interestingly other raytracing intrinsics like InstanceID() don't cause issues.
The cause of the error seems to be that "PrimitiveIndex"
appears in IntrinsicFunctions.SM6.cs twice:
Removing the extra "PrimitiveIndex"
block from IntrinsicFunctions.SM6.cs fixes the bug:
-->
When you re-build you'll find the .vsix
here:
HlslTools-master\src\ShaderTools.Editor.VisualStudio\bin\Release