提交 452c3e2a 编写于 作者: D David Poeschl

Review feedback

上级 a929793b
...@@ -99,16 +99,20 @@ private bool IsTargetTypeCompletionFilterExperimentEnabled(Workspace workspace) ...@@ -99,16 +99,20 @@ private bool IsTargetTypeCompletionFilterExperimentEnabled(Workspace workspace)
return isConvertible; return isConvertible;
} }
foreach (var inferredType in inferredTypes) typeConvertibilityCache[type] = IsTypeImplicitlyConvertible(semanticModel.Compilation, type, inferredTypes);
return typeConvertibilityCache[type];
}
private bool IsTypeImplicitlyConvertible(Compilation compilation, ITypeSymbol sourceType, ImmutableArray<ITypeSymbol> targetTypes)
{
foreach (var targetType in targetTypes)
{ {
if (semanticModel.Compilation.ClassifyCommonConversion(type, inferredType).IsImplicit) if (compilation.ClassifyCommonConversion(sourceType, targetType).IsImplicit)
{ {
typeConvertibilityCache[type] = true;
return true; return true;
} }
} }
typeConvertibilityCache[type] = false;
return false; return false;
} }
...@@ -130,7 +134,7 @@ private bool IsTargetTypeCompletionFilterExperimentEnabled(Workspace workspace) ...@@ -130,7 +134,7 @@ private bool IsTargetTypeCompletionFilterExperimentEnabled(Workspace workspace)
select g; select g;
var itemListBuilder = ImmutableArray.CreateBuilder<CompletionItem>(); var itemListBuilder = ImmutableArray.CreateBuilder<CompletionItem>();
var typeConvertibilityCache = new Dictionary<ITypeSymbol, bool>(AllNullabilityIgnoringSymbolComparer.Instance); var typeConvertibilityCache = new Dictionary<ITypeSymbol, bool>();
foreach (var symbolGroup in symbolGroups) foreach (var symbolGroup in symbolGroups)
{ {
...@@ -141,7 +145,7 @@ private bool IsTargetTypeCompletionFilterExperimentEnabled(Workspace workspace) ...@@ -141,7 +145,7 @@ private bool IsTargetTypeCompletionFilterExperimentEnabled(Workspace workspace)
if (IsTargetTypeCompletionFilterExperimentEnabled(arbitraryFirstContext.Workspace)) if (IsTargetTypeCompletionFilterExperimentEnabled(arbitraryFirstContext.Workspace))
{ {
var inferredTypesWithoutNullability = inferredTypes.Select(t => t.WithoutNullability()).ToImmutableArray(); var inferredTypesWithoutNullability = inferredTypes.SelectAsArray(t => t.WithoutNullability());
foreach (var symbol in symbolGroup) foreach (var symbol in symbolGroup)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册