Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove indexer filtering from lookup #69947

Merged
merged 3 commits into from
Sep 21, 2023

Conversation

jjonescz
Copy link
Member

@jjonescz jjonescz commented Sep 14, 2023

Fixes #69663.

@dotnet-issue-labeler dotnet-issue-labeler bot added Area-Compilers untriaged Issues and PRs which have not yet been triaged by a lead labels Sep 14, 2023
@jjonescz jjonescz marked this pull request as ready for review September 14, 2023 14:09
@jjonescz jjonescz requested a review from a team as a code owner September 14, 2023 14:09
@jjonescz
Copy link
Member Author

@AlekseyTs @dotnet/roslyn-compiler for reviews, thanks

@AlekseyTs
Copy link
Contributor

@jjonescz I am having a hard time linking the fix and the issue. The issue is about an unexpected diagnostics, the unit-test doesn't even check diagnostic. SemanticModel is not supposed to affect any diagnostic reported to a user. Could you please elaborate?

@jjonescz
Copy link
Member Author

jjonescz commented Sep 19, 2023

The unexpected diagnostic is because the indexer isn't found - and it's not found because it's filtered out. The test checks Assert.NotNull(info.Symbol); which is equivalent (it would fail without the fix because the indexer wouldn't be found).

@AlekseyTs
Copy link
Contributor

AlekseyTs commented Sep 19, 2023

The unexpected diagnostic is because the indexer isn't found - and it's not found because it's filtered out. The test checks Assert.NotNull(info.Symbol); which is equivalent (it would fail without the fix because the indexer wouldn't be found).

It is still not clear to me what component looks for an indexer, when, how it results in a diagnostics, etc. Could you provide a scenario with the diagnostics?

@jjonescz
Copy link
Member Author

Following #69663 (comment) reproduces the problem clearly and you can see the stack trace of the component - it's the IDE asking the compilation about the type info - similarly what I do in the unit test. I imagine the IDE then reports all diagnostics it gathers in design-time. But anyway, even without the IDE repro, the unit test I provide is still broken without the fix and it's something that should work, right?

Call stack:
>	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.Binder.BindIndexerAccess(Microsoft.CodeAnalysis.SyntaxNode node, Microsoft.CodeAnalysis.CSharp.BoundExpression expr, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments analyzedArguments, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics) Line 8899	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.Binder.BindElementAccessCore(Microsoft.CodeAnalysis.SyntaxNode node, Microsoft.CodeAnalysis.CSharp.BoundExpression expr, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments arguments, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics) Line 8608	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.Binder.BindElementOrIndexerAccess(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax node, Microsoft.CodeAnalysis.CSharp.BoundExpression expr, Microsoft.CodeAnalysis.CSharp.AnalyzedArguments analyzedArguments, bool allowInlineArrayElementAccess, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics) Line 8352	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.Binder.BindElementAccess(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax node, Microsoft.CodeAnalysis.CSharp.BoundExpression receiver, Microsoft.CodeAnalysis.CSharp.Syntax.BracketedArgumentListSyntax argumentList, bool allowInlineArrayElementAccess, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics) Line 8297	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.Binder.BindElementAccess(Microsoft.CodeAnalysis.CSharp.Syntax.ElementAccessExpressionSyntax node, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics) Line 8277	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.Binder.BindExpressionInternal(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax node, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics, bool invoked, bool indexed) Line 617	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.Binder.BindExpression(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax node, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics, bool invoked, bool indexed) Line 536	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.Binder.BindValue(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax node, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics, Microsoft.CodeAnalysis.CSharp.Binder.BindValueKind valueKind) Line 238	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.Binder.BindExpressionBodyAsBlock.__bindExpressionBodyAsBlockInternal|962_0(Microsoft.CodeAnalysis.CSharp.Syntax.ArrowExpressionClauseSyntax expressionBody, Microsoft.CodeAnalysis.CSharp.Binder bodyBinder, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics) Line 3490	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.Binder.BindExpressionBodyAsBlock(Microsoft.CodeAnalysis.CSharp.Syntax.ArrowExpressionClauseSyntax expressionBody, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics) Line 3482	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.Binder.BindMethodBody(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode declaration, Microsoft.CodeAnalysis.CSharp.Syntax.BlockSyntax blockBody, Microsoft.CodeAnalysis.CSharp.Syntax.ArrowExpressionClauseSyntax expressionBody, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics) Line 3949	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.Binder.BindMethodBody(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode syntax, Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag diagnostics) Line 3546	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 104	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.MemberSemanticModel.EnsureNullabilityAnalysisPerformedIfNecessary.__bind|130_0(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode root, out Microsoft.CodeAnalysis.CSharp.Binder binder, ref Microsoft.CodeAnalysis.CSharp.MemberSemanticModel.<>c__DisplayClass130_0 value) Line 1966	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.MemberSemanticModel.EnsureNullabilityAnalysisPerformedIfNecessary() Line 1941	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.MemberSemanticModel.GetBoundNodes(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node) Line 2052	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.MemberSemanticModel.GetLowerBoundNode(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node) Line 544	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.MemberSemanticModel.GetBoundNodes(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node, out Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode bindableNode, out Microsoft.CodeAnalysis.CSharp.BoundNode lowestBoundNode, out Microsoft.CodeAnalysis.CSharp.BoundNode highestBoundNode, out Microsoft.CodeAnalysis.CSharp.BoundNode boundParent) Line 1328	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.MemberSemanticModel.GetSymbolInfoWorker(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node, Microsoft.CodeAnalysis.CSharp.CSharpSemanticModel.SymbolInfoOptions options, System.Threading.CancellationToken cancellationToken) Line 1206	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel.GetSymbolInfoWorker(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node, Microsoft.CodeAnalysis.CSharp.CSharpSemanticModel.SymbolInfoOptions options, System.Threading.CancellationToken cancellationToken) Line 215	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.CSharpSemanticModel.GetSymbolInfo(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax expression, System.Threading.CancellationToken cancellationToken) Line 572	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.CSharpSemanticModel.GetSymbolInfoFromNode(Microsoft.CodeAnalysis.SyntaxNode node, System.Threading.CancellationToken cancellationToken) Line 4962	C#
 	Microsoft.CodeAnalysis.CSharp.dll!Microsoft.CodeAnalysis.CSharp.CSharpSemanticModel.GetSymbolInfoCore(Microsoft.CodeAnalysis.SyntaxNode node, System.Threading.CancellationToken cancellationToken) Line 5061	C#
 	Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.SemanticModel.GetSymbolInfo(Microsoft.CodeAnalysis.SyntaxNode node, System.Threading.CancellationToken cancellationToken) Line 99	C#
 	Microsoft.CodeAnalysis.dll!Microsoft.CodeAnalysis.ModelExtensions.GetSymbolInfo(Microsoft.CodeAnalysis.SemanticModel semanticModel, Microsoft.CodeAnalysis.SyntaxNode node, System.Threading.CancellationToken cancellationToken) Line 21	C#
 	Microsoft.CodeAnalysis.CSharp.Workspaces.dll!Microsoft.CodeAnalysis.CSharp.Extensions.ArgumentSyntaxExtensions.DetermineParameter(Microsoft.CodeAnalysis.CSharp.Syntax.ArgumentSyntax argument, Microsoft.CodeAnalysis.SemanticModel semanticModel, bool allowUncertainCandidates, bool allowParams, System.Threading.CancellationToken cancellationToken) Line 53	C#
 	Microsoft.CodeAnalysis.CSharp.Workspaces.dll!Microsoft.CodeAnalysis.CSharp.CSharpSemanticFacts.FindParameterForArgument(Microsoft.CodeAnalysis.SemanticModel semanticModel, Microsoft.CodeAnalysis.SyntaxNode argument, bool allowUncertainCandidates, bool allowParams, System.Threading.CancellationToken cancellationToken) Line 263	C#
 	Microsoft.CodeAnalysis.Workspaces.dll!Microsoft.CodeAnalysis.LanguageService.AbstractSemanticFactsService.FindParameterForArgument(Microsoft.CodeAnalysis.SemanticModel semanticModel, Microsoft.CodeAnalysis.SyntaxNode argumentNode, bool allowUncertainCandidates, bool allowParams, System.Threading.CancellationToken cancellationToken) Line 185	C#
 	Microsoft.CodeAnalysis.Features.dll!Microsoft.CodeAnalysis.EmbeddedLanguages.EmbeddedLanguageDetector.IsArgumentWithMatchingStringSyntaxAttribute(Microsoft.CodeAnalysis.SemanticModel semanticModel, Microsoft.CodeAnalysis.SyntaxNode argument, System.Threading.CancellationToken cancellationToken, out string identifier) Line 291	C#
 	Microsoft.CodeAnalysis.Features.dll!Microsoft.CodeAnalysis.EmbeddedLanguages.EmbeddedLanguageDetector.IsEmbeddedLanguageStringLiteralToken(Microsoft.CodeAnalysis.SyntaxToken token, Microsoft.CodeAnalysis.SemanticModel semanticModel, System.Threading.CancellationToken cancellationToken, out string identifier, out System.Collections.Generic.IEnumerable<string> options) Line 199	C#
 	Microsoft.CodeAnalysis.Features.dll!Microsoft.CodeAnalysis.EmbeddedLanguages.EmbeddedLanguageDetector.IsEmbeddedLanguageTokenWorker(Microsoft.CodeAnalysis.SyntaxToken token, Microsoft.CodeAnalysis.SemanticModel semanticModel, System.Threading.CancellationToken cancellationToken, out string identifier, out System.Collections.Generic.IEnumerable<string> options) Line 56	C#
 	Microsoft.CodeAnalysis.Features.dll!Microsoft.CodeAnalysis.EmbeddedLanguages.EmbeddedLanguageDetector.IsEmbeddedLanguageToken(Microsoft.CodeAnalysis.SyntaxToken token, Microsoft.CodeAnalysis.SemanticModel semanticModel, System.Threading.CancellationToken cancellationToken, out string identifier, out System.Collections.Generic.IEnumerable<string> options) Line 38	C#
 	Microsoft.CodeAnalysis.Features.dll!Microsoft.CodeAnalysis.EmbeddedLanguages.AbstractEmbeddedLanguageFeatureService<Microsoft.CodeAnalysis.Classification.IEmbeddedLanguageClassifier>.GetServices(Microsoft.CodeAnalysis.SemanticModel semanticModel, Microsoft.CodeAnalysis.SyntaxToken token, System.Threading.CancellationToken cancellationToken) Line 115	C#
 	Microsoft.CodeAnalysis.Features.dll!Microsoft.CodeAnalysis.Classification.AbstractEmbeddedLanguageClassificationService.Worker.ClassifyToken(Microsoft.CodeAnalysis.SyntaxToken token) Line 114	C#
 	Microsoft.CodeAnalysis.Features.dll!Microsoft.CodeAnalysis.Classification.AbstractEmbeddedLanguageClassificationService.Worker.ProcessToken(Microsoft.CodeAnalysis.SyntaxToken token) Line 103	C#
 	Microsoft.CodeAnalysis.Features.dll!Microsoft.CodeAnalysis.Classification.AbstractEmbeddedLanguageClassificationService.Worker.VisitTokens(Microsoft.CodeAnalysis.SyntaxNode node) Line 93	C#
 	Microsoft.CodeAnalysis.Features.dll!Microsoft.CodeAnalysis.Classification.AbstractEmbeddedLanguageClassificationService.AddEmbeddedLanguageClassifications(Microsoft.CodeAnalysis.Project project, Microsoft.CodeAnalysis.SemanticModel semanticModel, Microsoft.CodeAnalysis.Text.TextSpan textSpan, Microsoft.CodeAnalysis.Classification.ClassificationOptions options, Microsoft.CodeAnalysis.Collections.SegmentedList<Microsoft.CodeAnalysis.Classification.ClassifiedSpan> result, System.Threading.CancellationToken cancellationToken) Line 53	C#
 	Microsoft.CodeAnalysis.Features.dll!Microsoft.CodeAnalysis.Classification.AbstractEmbeddedLanguageClassificationService.AddEmbeddedLanguageClassificationsAsync(Microsoft.CodeAnalysis.Document document, Microsoft.CodeAnalysis.Text.TextSpan textSpan, Microsoft.CodeAnalysis.Classification.ClassificationOptions options, Microsoft.CodeAnalysis.Collections.SegmentedList<Microsoft.CodeAnalysis.Classification.ClassifiedSpan> result, System.Threading.CancellationToken cancellationToken) Line 42	C#
 	Microsoft.CodeAnalysis.Workspaces.dll!Microsoft.CodeAnalysis.Classification.AbstractClassificationService.AddClassificationsInCurrentProcessAsync(Microsoft.CodeAnalysis.Document document, Microsoft.CodeAnalysis.Text.TextSpan textSpan, Microsoft.CodeAnalysis.Classification.ClassificationType type, Microsoft.CodeAnalysis.Classification.ClassificationOptions options, Microsoft.CodeAnalysis.Collections.SegmentedList<Microsoft.CodeAnalysis.Classification.ClassifiedSpan> result, System.Threading.CancellationToken cancellationToken) Line 176	C#
 	Microsoft.CodeAnalysis.Workspaces.dll!Microsoft.CodeAnalysis.Classification.AbstractClassificationService.AddClassificationsAsync(Microsoft.CodeAnalysis.Document document, Microsoft.CodeAnalysis.Text.TextSpan textSpan, Microsoft.CodeAnalysis.Classification.ClassificationOptions options, Microsoft.CodeAnalysis.Classification.ClassificationType type, Microsoft.CodeAnalysis.Collections.SegmentedList<Microsoft.CodeAnalysis.Classification.ClassifiedSpan> result, System.Threading.CancellationToken cancellationToken) Line 93	C#
 	Microsoft.CodeAnalysis.Workspaces.dll!Microsoft.CodeAnalysis.Classification.AbstractClassificationService.AddEmbeddedLanguageClassificationsAsync(Microsoft.CodeAnalysis.Document document, Microsoft.CodeAnalysis.Text.TextSpan textSpan, Microsoft.CodeAnalysis.Classification.ClassificationOptions options, Microsoft.CodeAnalysis.Collections.SegmentedList<Microsoft.CodeAnalysis.Classification.ClassifiedSpan> result, System.Threading.CancellationToken cancellationToken) Line 36	C#
 	Microsoft.CodeAnalysis.EditorFeatures.dll!Microsoft.CodeAnalysis.Classification.ClassificationUtilities.AddClassificationsAsync(Microsoft.CodeAnalysis.Classification.IClassificationService classificationService, Microsoft.CodeAnalysis.Classification.ClassificationOptions options, Microsoft.CodeAnalysis.Document document, Microsoft.VisualStudio.Text.SnapshotSpan snapshotSpan, Microsoft.CodeAnalysis.Collections.SegmentedList<Microsoft.CodeAnalysis.Classification.ClassifiedSpan> classifiedSpans, Microsoft.CodeAnalysis.Classification.ClassificationType type, System.Threading.CancellationToken cancellationToken) Line 203	C#
 	Microsoft.CodeAnalysis.EditorFeatures.dll!Microsoft.CodeAnalysis.Classification.ClassificationUtilities.ClassifySpansAsync(Microsoft.CodeAnalysis.Editor.Tagging.TaggerContext<Microsoft.VisualStudio.Text.Tagging.IClassificationTag> context, Microsoft.CodeAnalysis.Document document, Microsoft.VisualStudio.Text.SnapshotSpan snapshotSpan, Microsoft.CodeAnalysis.Classification.IClassificationService classificationService, Microsoft.CodeAnalysis.Editor.Shared.Utilities.ClassificationTypeMap typeMap, Microsoft.CodeAnalysis.Classification.ClassificationOptions options, Microsoft.CodeAnalysis.Classification.ClassificationType type, System.Threading.CancellationToken cancellationToken) Line 168	C#
 	Microsoft.CodeAnalysis.EditorFeatures.dll!Microsoft.CodeAnalysis.Classification.ClassificationUtilities.ProduceTagsAsync(Microsoft.CodeAnalysis.Editor.Tagging.TaggerContext<Microsoft.VisualStudio.Text.Tagging.IClassificationTag> context, Microsoft.CodeAnalysis.Editor.DocumentSnapshotSpan spanToTag, Microsoft.CodeAnalysis.Classification.IClassificationService classificationService, Microsoft.CodeAnalysis.Editor.Shared.Utilities.ClassificationTypeMap typeMap, Microsoft.CodeAnalysis.Classification.ClassificationOptions options, Microsoft.CodeAnalysis.Classification.ClassificationType type, System.Threading.CancellationToken cancellationToken) Line 83	C#
 	Microsoft.CodeAnalysis.EditorFeatures.dll!Microsoft.CodeAnalysis.Classification.AbstractSemanticOrEmbeddedClassificationViewTaggerProvider.ProduceTagsAsync(Microsoft.CodeAnalysis.Editor.Tagging.TaggerContext<Microsoft.VisualStudio.Text.Tagging.IClassificationTag> context, Microsoft.CodeAnalysis.Editor.DocumentSnapshotSpan spanToTag, System.Threading.CancellationToken cancellationToken) Line 101	C#
 	Microsoft.CodeAnalysis.EditorFeatures.dll!Microsoft.CodeAnalysis.Editor.Tagging.AsynchronousViewportTaggerProvider<Microsoft.VisualStudio.Text.Tagging.IClassificationTag>.SingleViewportTaggerProvider.ProduceTagsAsync(Microsoft.CodeAnalysis.Editor.Tagging.TaggerContext<Microsoft.VisualStudio.Text.Tagging.IClassificationTag> context, System.Threading.CancellationToken cancellationToken) Line 115	C#
 	Microsoft.CodeAnalysis.EditorFeatures.dll!Microsoft.CodeAnalysis.Editor.Tagging.AbstractAsynchronousTaggerProvider<Microsoft.VisualStudio.Text.Tagging.IClassificationTag>.TagSource.ProduceTagsAsync(Microsoft.CodeAnalysis.Editor.Tagging.TaggerContext<Microsoft.VisualStudio.Text.Tagging.IClassificationTag> context, System.Threading.CancellationToken cancellationToken) Line 411	C#
 	Microsoft.CodeAnalysis.EditorFeatures.dll!Microsoft.CodeAnalysis.Editor.Tagging.AbstractAsynchronousTaggerProvider<Microsoft.VisualStudio.Text.Tagging.IClassificationTag>.TagSource.RecomputeTagsAsync(bool highPriority, System.Threading.CancellationToken cancellationToken) Line 240	C#

@AlekseyTs
Copy link
Contributor

AlekseyTs commented Sep 19, 2023

the unit test I provide is still broken without the fix and it's something that should work, right?

Probably. However, I see nothing that would guarantee that the problem reported by the user (the unexpected diagnostics) is fixed.

Copy link
Contributor

@AlekseyTs AlekseyTs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (commit 2)

Copy link
Member

@333fred 333fred left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly LGTM. One small testing comment.

var model = comp.GetSemanticModel(tree);
model.GetDiagnostics().Verify();
var info = model.GetSymbolInfo(indexer);
Assert.NotNull(info.Symbol);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rather than NotNull, I'd prefer if we did AssertEx.Equal("...", info.Symbol.ToTestDisplayString()), so we know exactly what is getting returned here.

@jjonescz jjonescz enabled auto-merge (squash) September 21, 2023 08:18
@jjonescz jjonescz merged commit 9f6f97d into dotnet:main Sep 21, 2023
25 checks passed
@jjonescz jjonescz deleted the 69663-DesignTimeIndexing branch September 21, 2023 09:43
@ghost ghost added this to the Next milestone Sep 21, 2023
@Cosifne Cosifne modified the milestones: Next, 17.8 P3 Sep 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Compilers Feature - Primary Constructors untriaged Issues and PRs which have not yet been triaged by a lead
Projects
None yet
4 participants