提交 67d16465 编写于 作者: M Manish Vasani

Merge remote-tracking branch 'upstream/master' into EnforceUnnecessaryUsings

......@@ -3,16 +3,11 @@
<configuration>
<packageSources>
<clear />
<add key="dotnet-core" value="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json" />
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
<add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" />
<add key="dotnet5" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json" />
<add key="system-commandline" value="https://dotnet.myget.org/F/system-commandline/api/v3/index.json" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="myget-dotnet-coreclr" value="https://dotnet.myget.org/F/dotnet-coreclr/api/v3/index.json" />
<add key="myget-dotnet-core" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
<add key="dotnet-corefxtestdata" value="https://dotnet.myget.org/F/dotnet-corefxtestdata/api/v3/index.json" />
<add key="dotnet-buildtools" value="https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json" />
<add key="experimental-vs-packages" value="https://dotnet.myget.org/F/experimental-vs-packages/api/v3/index.json" />
<add key="symreader-native" value="https://dotnet.myget.org/F/symreader-native/api/v3/index.json" />
<add key="interactive-window" value="https://dotnet.myget.org/F/interactive-window/api/v3/index.json" />
......@@ -25,9 +20,6 @@
<add key="roslyn_concord" value="https://myget.org/F/roslyn_concord/api/v3/index.json" />
<add key="vssdk" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/vssdk/nuget/v3/index.json" />
<add key="vs-impl" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/vs-impl/nuget/v3/index.json" />
<add key="system-commandline" value="https://dotnet.myget.org/F/system-commandline/api/v3/index.json" />
<add key="dotnet-coreclr" value="https://dotnetfeed.blob.core.windows.net/dotnet-coreclr/index.json" />
<add key="dotnet-format" value="https://dotnet.myget.org/F/format/api/v3/index.json" />
</packageSources>
<disabledPackageSources>
<clear />
......
......@@ -6,9 +6,9 @@
-->
<PropertyGroup>
<MajorVersion>3</MajorVersion>
<MinorVersion>6</MinorVersion>
<MinorVersion>7</MinorVersion>
<PatchVersion>0</PatchVersion>
<PreReleaseVersionLabel>3</PreReleaseVersionLabel>
<PreReleaseVersionLabel>1</PreReleaseVersionLabel>
<VersionPrefix>$(MajorVersion).$(MinorVersion).$(PatchVersion)</VersionPrefix>
<!--
By default the assembly version in official builds is "$(MajorVersion).$(MinorVersion).0.0".
......
......@@ -63,21 +63,21 @@
"vsBranch": "rel/d16.5",
"vsMajorVersion": 16
},
"release/dev16.6-preview2-vs-deps": {
"release/dev16.6-vs-deps": {
"nugetKind": ["Shipping", "NonShipping"],
"version": "3.6.*",
"nuget": [ "https://dotnet.myget.org/F/roslyn/api/v2/package" ],
"vsix": [ "https://dotnet.myget.org/F/roslyn/vsix/upload" ],
"channels": [ "dev16.6", "dev16.6p2" ],
"vsBranch": "master",
"channels": [ "dev16.6", "dev16.6p3" ],
"vsBranch": "rel/d16.6",
"vsMajorVersion": 16
},
"master-vs-deps": {
"nugetKind": ["Shipping", "NonShipping"],
"version": "3.6.*",
"version": "3.7.*",
"nuget": [ "https://dotnet.myget.org/F/roslyn/api/v2/package" ],
"vsix": [ "https://dotnet.myget.org/F/roslyn/vsix/upload" ],
"channels": [ "dev16.6", "dev16.6p2" ],
"channels": [ "dev16.7", "dev16.7p1" ],
"vsBranch": "master",
"vsMajorVersion": 16
},
......
......@@ -25,6 +25,7 @@
<Compile Include="$(MSBuildThisFileDirectory)FileHeaders\CSharpFileHeaderDiagnosticAnalyzer.cs" />
<Compile Include="$(MSBuildThisFileDirectory)FileHeaders\CSharpFileHeaderHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)InlineDeclaration\CSharpInlineDeclarationDiagnosticAnalyzer.cs" />
<Compile Include="$(MSBuildThisFileDirectory)InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessAnalyzer.cs" />
<Compile Include="$(MSBuildThisFileDirectory)MakeLocalFunctionStatic\MakeLocalFunctionStaticDiagnosticAnalyzer.cs" />
<Compile Include="$(MSBuildThisFileDirectory)MakeLocalFunctionStatic\MakeLocalFunctionStaticHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)MakeStructFieldsWritable\CSharpMakeStructFieldsWritableDiagnosticAnalyzer.cs" />
......@@ -76,6 +77,7 @@
<Compile Include="$(MSBuildThisFileDirectory)UseIndexOrRangeOperator\CSharpUseRangeOperatorDiagnosticAnalyzer.Result.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIndexOrRangeOperator\Helpers.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIndexOrRangeOperator\MemberInfo.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseInferredMemberName\CSharpUseInferredMemberNameDiagnosticAnalyzer.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIsNullCheck\CSharpUseIsNullCheckForCastAndEqualityOperatorDiagnosticAnalyzer.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIsNullCheck\CSharpUseIsNullCheckForReferenceEqualsDiagnosticAnalyzer.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseNullPropagation\CSharpUseNullPropagationDiagnosticAnalyzer.cs" />
......
......@@ -262,6 +262,9 @@
<data name="Use_range_operator" xml:space="preserve">
<value>Use range operator</value>
</data>
<data name="Delegate_invocation_can_be_simplified" xml:space="preserve">
<value>Delegate invocation can be simplified.</value>
</data>
<data name="Inline_variable_declaration" xml:space="preserve">
<value>Inline variable declaration</value>
</data>
......
......@@ -28,7 +28,7 @@ public InvokeDelegateWithConditionalAccessAnalyzer()
: base(IDEDiagnosticIds.InvokeDelegateWithConditionalAccessId,
CSharpCodeStyleOptions.PreferConditionalDelegateCall,
LanguageNames.CSharp,
new LocalizableResourceString(nameof(CSharpFeaturesResources.Delegate_invocation_can_be_simplified), CSharpFeaturesResources.ResourceManager, typeof(CSharpFeaturesResources)))
new LocalizableResourceString(nameof(CSharpAnalyzersResources.Delegate_invocation_can_be_simplified), CSharpAnalyzersResources.ResourceManager, typeof(CSharpAnalyzersResources)))
{
}
......
......@@ -48,7 +48,7 @@ private void ReportDiagnosticsIfNeeded(NameColonSyntax nameColon, SyntaxNodeAnal
var preference = options.GetOption(
CodeStyleOptions2.PreferInferredTupleNames, context.Compilation.Language, syntaxTree, cancellationToken);
if (!preference.Value ||
!CSharpInferredMemberNameReducer.CanSimplifyTupleElementName(argument, parseOptions))
!CSharpInferredMemberNameSimplifier.CanSimplifyTupleElementName(argument, parseOptions))
{
return;
}
......@@ -82,7 +82,7 @@ private void ReportDiagnosticsIfNeeded(NameEqualsSyntax nameEquals, SyntaxNodeAn
var preference = options.GetOption(
CodeStyleOptions2.PreferInferredAnonymousTypeMemberNames, context.Compilation.Language, syntaxTree, cancellationToken);
if (!preference.Value ||
!CSharpInferredMemberNameReducer.CanSimplifyAnonymousTypeMemberName(anonCtor))
!CSharpInferredMemberNameSimplifier.CanSimplifyAnonymousTypeMemberName(anonCtor))
{
return;
}
......
......@@ -22,6 +22,11 @@
<target state="new">Deconstruct variable declaration</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="new">Delegate invocation can be simplified.</target>
<note />
</trans-unit>
<trans-unit id="Indexing_can_be_simplified">
<source>Indexing can be simplified</source>
<target state="new">Indexing can be simplified</target>
......
......@@ -22,6 +22,11 @@
<target state="new">Deconstruct variable declaration</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="new">Delegate invocation can be simplified.</target>
<note />
</trans-unit>
<trans-unit id="Indexing_can_be_simplified">
<source>Indexing can be simplified</source>
<target state="new">Indexing can be simplified</target>
......
......@@ -22,6 +22,11 @@
<target state="new">Deconstruct variable declaration</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="new">Delegate invocation can be simplified.</target>
<note />
</trans-unit>
<trans-unit id="Indexing_can_be_simplified">
<source>Indexing can be simplified</source>
<target state="new">Indexing can be simplified</target>
......
......@@ -22,6 +22,11 @@
<target state="new">Deconstruct variable declaration</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="new">Delegate invocation can be simplified.</target>
<note />
</trans-unit>
<trans-unit id="Indexing_can_be_simplified">
<source>Indexing can be simplified</source>
<target state="new">Indexing can be simplified</target>
......
......@@ -22,6 +22,11 @@
<target state="new">Deconstruct variable declaration</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="new">Delegate invocation can be simplified.</target>
<note />
</trans-unit>
<trans-unit id="Indexing_can_be_simplified">
<source>Indexing can be simplified</source>
<target state="new">Indexing can be simplified</target>
......
......@@ -22,6 +22,11 @@
<target state="new">Deconstruct variable declaration</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="new">Delegate invocation can be simplified.</target>
<note />
</trans-unit>
<trans-unit id="Indexing_can_be_simplified">
<source>Indexing can be simplified</source>
<target state="new">Indexing can be simplified</target>
......
......@@ -22,6 +22,11 @@
<target state="new">Deconstruct variable declaration</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="new">Delegate invocation can be simplified.</target>
<note />
</trans-unit>
<trans-unit id="Indexing_can_be_simplified">
<source>Indexing can be simplified</source>
<target state="new">Indexing can be simplified</target>
......
......@@ -22,6 +22,11 @@
<target state="new">Deconstruct variable declaration</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="new">Delegate invocation can be simplified.</target>
<note />
</trans-unit>
<trans-unit id="Indexing_can_be_simplified">
<source>Indexing can be simplified</source>
<target state="new">Indexing can be simplified</target>
......
......@@ -22,6 +22,11 @@
<target state="new">Deconstruct variable declaration</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="new">Delegate invocation can be simplified.</target>
<note />
</trans-unit>
<trans-unit id="Indexing_can_be_simplified">
<source>Indexing can be simplified</source>
<target state="new">Indexing can be simplified</target>
......
......@@ -22,6 +22,11 @@
<target state="new">Deconstruct variable declaration</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="new">Delegate invocation can be simplified.</target>
<note />
</trans-unit>
<trans-unit id="Indexing_can_be_simplified">
<source>Indexing can be simplified</source>
<target state="new">Indexing can be simplified</target>
......
......@@ -22,6 +22,11 @@
<target state="new">Deconstruct variable declaration</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="new">Delegate invocation can be simplified.</target>
<note />
</trans-unit>
<trans-unit id="Indexing_can_be_simplified">
<source>Indexing can be simplified</source>
<target state="new">Indexing can be simplified</target>
......
......@@ -22,6 +22,11 @@
<target state="new">Deconstruct variable declaration</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="new">Delegate invocation can be simplified.</target>
<note />
</trans-unit>
<trans-unit id="Indexing_can_be_simplified">
<source>Indexing can be simplified</source>
<target state="new">Indexing can be simplified</target>
......
......@@ -22,6 +22,11 @@
<target state="new">Deconstruct variable declaration</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="new">Delegate invocation can be simplified.</target>
<note />
</trans-unit>
<trans-unit id="Indexing_can_be_simplified">
<source>Indexing can be simplified</source>
<target state="new">Indexing can be simplified</target>
......
......@@ -20,6 +20,7 @@
<Compile Include="$(MSBuildThisFileDirectory)ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionCodeFixProvider.Rewriter.cs" />
<Compile Include="$(MSBuildThisFileDirectory)FileHeaders\CSharpFileHeaderCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)InlineDeclaration\CSharpInlineDeclarationCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)MakeFieldReadonly\CSharpMakeFieldReadonlyCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)MakeStructFieldsWritable\CSharpMakeStructFieldsWritableCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)MisplacedUsingDirectives\MisplacedUsingDirectivesCodeFixProvider.cs" />
......@@ -48,6 +49,7 @@
<Compile Include="$(MSBuildThisFileDirectory)UseIndexOrRangeOperator\CSharpUseIndexOperatorCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIndexOrRangeOperator\CSharpUseRangeOperatorCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIndexOrRangeOperator\Helpers.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseInferredMemberName\CSharpUseInferredMemberNameCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIsNullCheck\CSharpUseIsNullCheckForCastAndEqualityOperatorCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIsNullCheck\CSharpUseIsNullCheckForReferenceEqualsCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseNullPropagation\CSharpUseNullPropagationCodeFixProvider.cs" />
......
......@@ -147,10 +147,10 @@ public override Task RegisterCodeFixesAsync(CodeFixContext context)
cancellationToken.ThrowIfCancellationRequested();
}
private class MyCodeAction : CodeAction.DocumentChangeAction
private class MyCodeAction : CustomCodeActions.DocumentChangeAction
{
public MyCodeAction(Func<CancellationToken, Task<Document>> createChangedDocument)
: base(CSharpFeaturesResources.Delegate_invocation_can_be_simplified, createChangedDocument)
: base(CSharpAnalyzersResources.Delegate_invocation_can_be_simplified, createChangedDocument)
{
}
}
......
......@@ -16,6 +16,8 @@
<Compile Include="$(MSBuildThisFileDirectory)ConvertAnonymousTypeToTuple\ConvertAnonymousTypeToTupleTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)InlineDeclaration\CSharpInlineDeclarationTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)InlineDeclaration\CSharpInlineDeclarationTests_FixAllTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)InvokeDelegateWithConditionalAccess\InvokeDelegateWithConditionalAccessTests_FixAllTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)MakeFieldReadonly\MakeFieldReadonlyTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)MakeLocalFunctionStatic\MakeLocalFunctionStaticTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)MakeStructFieldsWritable\MakeStructFieldsWritableTests.cs" />
......@@ -69,6 +71,7 @@
<Compile Include="$(MSBuildThisFileDirectory)UseImplicitOrExplicitType\UseImplicitTypeTests_FixAllTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIndexOrRangeOperator\UseIndexOperatorTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIndexOrRangeOperator\UseRangeOperatorTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseInferredMemberName\UseInferredMemberNameTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIsNullCheck\UseIsNullCheckForCastAndEqualityOperatorTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIsNullCheck\UseIsNullCheckForReferenceEqualsTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseExplicitTupleName\UseExplicitTupleNameTests.cs" />
......
......@@ -66,6 +66,7 @@
<Compile Include="$(MSBuildThisFileDirectory)UseConditionalExpression\ForReturn\UseConditionalExpressionForReturnHelpers.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseConditionalExpression\UseConditionalExpressionHelpers.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseConditionalExpression\UseConditionalExpressionOptions.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseInferredMemberName\AbstractUseInferredMemberNameDiagnosticAnalyzer.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIsNullCheck\AbstractUseIsNullForReferenceEqualsDiagnosticAnalyzer.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIsNullCheck\UseIsNullConstants.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseExplicitTupleName\UseExplicitTupleNameDiagnosticAnalyzer.cs" />
......
......@@ -277,6 +277,12 @@
<data name="Use_null_propagation" xml:space="preserve">
<value>Use null propagation</value>
</data>
<data name="Use_inferred_member_name" xml:space="preserve">
<value>Use inferred member name</value>
</data>
<data name="Member_name_can_be_simplified" xml:space="preserve">
<value>Member name can be simplified</value>
</data>
<data name="Interpolation_can_be_simplified" xml:space="preserve">
<value>Interpolation can be simplified</value>
</data>
......
......@@ -17,8 +17,8 @@ internal abstract class AbstractUseInferredMemberNameDiagnosticAnalyzer : Abstra
public AbstractUseInferredMemberNameDiagnosticAnalyzer()
: base(IDEDiagnosticIds.UseInferredMemberNameDiagnosticId,
options: ImmutableHashSet.Create<IPerLanguageOption>(CodeStyleOptions2.PreferInferredAnonymousTypeMemberNames, CodeStyleOptions2.PreferInferredTupleNames),
new LocalizableResourceString(nameof(FeaturesResources.Use_inferred_member_name), FeaturesResources.ResourceManager, typeof(FeaturesResources)),
new LocalizableResourceString(nameof(FeaturesResources.Member_name_can_be_simplified), FeaturesResources.ResourceManager, typeof(FeaturesResources)))
new LocalizableResourceString(nameof(AnalyzersResources.Use_inferred_member_name), AnalyzersResources.ResourceManager, typeof(AnalyzersResources)),
new LocalizableResourceString(nameof(AnalyzersResources.Member_name_can_be_simplified), AnalyzersResources.ResourceManager, typeof(AnalyzersResources)))
{
}
......
......@@ -112,6 +112,11 @@
<target state="new">Add missing cases</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="new">Member name can be simplified</target>
<note />
</trans-unit>
<trans-unit id="Modifiers_are_not_ordered">
<source>Modifiers are not ordered</source>
<target state="new">Modifiers are not ordered</target>
......@@ -297,6 +302,11 @@
<target state="new">Use explicitly provided tuple name</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="new">Use inferred member name</target>
<note />
</trans-unit>
<trans-unit id="Use_null_propagation">
<source>Use null propagation</source>
<target state="new">Use null propagation</target>
......
......@@ -112,6 +112,11 @@
<target state="new">Add missing cases</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="new">Member name can be simplified</target>
<note />
</trans-unit>
<trans-unit id="Modifiers_are_not_ordered">
<source>Modifiers are not ordered</source>
<target state="new">Modifiers are not ordered</target>
......@@ -297,6 +302,11 @@
<target state="new">Use explicitly provided tuple name</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="new">Use inferred member name</target>
<note />
</trans-unit>
<trans-unit id="Use_null_propagation">
<source>Use null propagation</source>
<target state="new">Use null propagation</target>
......
......@@ -112,6 +112,11 @@
<target state="new">Add missing cases</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="new">Member name can be simplified</target>
<note />
</trans-unit>
<trans-unit id="Modifiers_are_not_ordered">
<source>Modifiers are not ordered</source>
<target state="new">Modifiers are not ordered</target>
......@@ -297,6 +302,11 @@
<target state="new">Use explicitly provided tuple name</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="new">Use inferred member name</target>
<note />
</trans-unit>
<trans-unit id="Use_null_propagation">
<source>Use null propagation</source>
<target state="new">Use null propagation</target>
......
......@@ -112,6 +112,11 @@
<target state="new">Add missing cases</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="new">Member name can be simplified</target>
<note />
</trans-unit>
<trans-unit id="Modifiers_are_not_ordered">
<source>Modifiers are not ordered</source>
<target state="new">Modifiers are not ordered</target>
......@@ -297,6 +302,11 @@
<target state="new">Use explicitly provided tuple name</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="new">Use inferred member name</target>
<note />
</trans-unit>
<trans-unit id="Use_null_propagation">
<source>Use null propagation</source>
<target state="new">Use null propagation</target>
......
......@@ -112,6 +112,11 @@
<target state="new">Add missing cases</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="new">Member name can be simplified</target>
<note />
</trans-unit>
<trans-unit id="Modifiers_are_not_ordered">
<source>Modifiers are not ordered</source>
<target state="new">Modifiers are not ordered</target>
......@@ -297,6 +302,11 @@
<target state="new">Use explicitly provided tuple name</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="new">Use inferred member name</target>
<note />
</trans-unit>
<trans-unit id="Use_null_propagation">
<source>Use null propagation</source>
<target state="new">Use null propagation</target>
......
......@@ -112,6 +112,11 @@
<target state="new">Add missing cases</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="new">Member name can be simplified</target>
<note />
</trans-unit>
<trans-unit id="Modifiers_are_not_ordered">
<source>Modifiers are not ordered</source>
<target state="new">Modifiers are not ordered</target>
......@@ -297,6 +302,11 @@
<target state="new">Use explicitly provided tuple name</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="new">Use inferred member name</target>
<note />
</trans-unit>
<trans-unit id="Use_null_propagation">
<source>Use null propagation</source>
<target state="new">Use null propagation</target>
......
......@@ -112,6 +112,11 @@
<target state="new">Add missing cases</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="new">Member name can be simplified</target>
<note />
</trans-unit>
<trans-unit id="Modifiers_are_not_ordered">
<source>Modifiers are not ordered</source>
<target state="new">Modifiers are not ordered</target>
......@@ -297,6 +302,11 @@
<target state="new">Use explicitly provided tuple name</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="new">Use inferred member name</target>
<note />
</trans-unit>
<trans-unit id="Use_null_propagation">
<source>Use null propagation</source>
<target state="new">Use null propagation</target>
......
......@@ -112,6 +112,11 @@
<target state="new">Add missing cases</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="new">Member name can be simplified</target>
<note />
</trans-unit>
<trans-unit id="Modifiers_are_not_ordered">
<source>Modifiers are not ordered</source>
<target state="new">Modifiers are not ordered</target>
......@@ -297,6 +302,11 @@
<target state="new">Use explicitly provided tuple name</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="new">Use inferred member name</target>
<note />
</trans-unit>
<trans-unit id="Use_null_propagation">
<source>Use null propagation</source>
<target state="new">Use null propagation</target>
......
......@@ -112,6 +112,11 @@
<target state="new">Add missing cases</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="new">Member name can be simplified</target>
<note />
</trans-unit>
<trans-unit id="Modifiers_are_not_ordered">
<source>Modifiers are not ordered</source>
<target state="new">Modifiers are not ordered</target>
......@@ -297,6 +302,11 @@
<target state="new">Use explicitly provided tuple name</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="new">Use inferred member name</target>
<note />
</trans-unit>
<trans-unit id="Use_null_propagation">
<source>Use null propagation</source>
<target state="new">Use null propagation</target>
......
......@@ -112,6 +112,11 @@
<target state="new">Add missing cases</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="new">Member name can be simplified</target>
<note />
</trans-unit>
<trans-unit id="Modifiers_are_not_ordered">
<source>Modifiers are not ordered</source>
<target state="new">Modifiers are not ordered</target>
......@@ -297,6 +302,11 @@
<target state="new">Use explicitly provided tuple name</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="new">Use inferred member name</target>
<note />
</trans-unit>
<trans-unit id="Use_null_propagation">
<source>Use null propagation</source>
<target state="new">Use null propagation</target>
......
......@@ -112,6 +112,11 @@
<target state="new">Add missing cases</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="new">Member name can be simplified</target>
<note />
</trans-unit>
<trans-unit id="Modifiers_are_not_ordered">
<source>Modifiers are not ordered</source>
<target state="new">Modifiers are not ordered</target>
......@@ -297,6 +302,11 @@
<target state="new">Use explicitly provided tuple name</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="new">Use inferred member name</target>
<note />
</trans-unit>
<trans-unit id="Use_null_propagation">
<source>Use null propagation</source>
<target state="new">Use null propagation</target>
......
......@@ -112,6 +112,11 @@
<target state="new">Add missing cases</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="new">Member name can be simplified</target>
<note />
</trans-unit>
<trans-unit id="Modifiers_are_not_ordered">
<source>Modifiers are not ordered</source>
<target state="new">Modifiers are not ordered</target>
......@@ -297,6 +302,11 @@
<target state="new">Use explicitly provided tuple name</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="new">Use inferred member name</target>
<note />
</trans-unit>
<trans-unit id="Use_null_propagation">
<source>Use null propagation</source>
<target state="new">Use null propagation</target>
......
......@@ -112,6 +112,11 @@
<target state="new">Add missing cases</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="new">Member name can be simplified</target>
<note />
</trans-unit>
<trans-unit id="Modifiers_are_not_ordered">
<source>Modifiers are not ordered</source>
<target state="new">Modifiers are not ordered</target>
......@@ -297,6 +302,11 @@
<target state="new">Use explicitly provided tuple name</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="new">Use inferred member name</target>
<note />
</trans-unit>
<trans-unit id="Use_null_propagation">
<source>Use null propagation</source>
<target state="new">Use null propagation</target>
......
......@@ -39,6 +39,7 @@
<Compile Include="$(MSBuildThisFileDirectory)UseConditionalExpression\ForAssignment\AbstractUseConditionalExpressionForAssignmentCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseConditionalExpression\ForReturn\AbstractUseConditionalExpressionForReturnCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseConditionalExpression\UseConditionalExpressionHelpers.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseInferredMemberName\AbstractUseInferredMemberNameCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseIsNullCheck\AbstractUseIsNullForReferenceEqualsCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseExplicitTupleName\UseExplicitTupleNameCodeFixProvider.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UseNullPropagation\AbstractUseNullPropagationCodeFixProvider.cs" />
......
......@@ -49,10 +49,10 @@ public override Task RegisterCodeFixesAsync(CodeFixContext context)
}
private class MyCodeAction : CodeAction.DocumentChangeAction
private class MyCodeAction : CustomCodeActions.DocumentChangeAction
{
public MyCodeAction(Func<CancellationToken, Task<Document>> createChangedDocument)
: base(FeaturesResources.Use_inferred_member_name, createChangedDocument, FeaturesResources.Use_inferred_member_name)
: base(AnalyzersResources.Use_inferred_member_name, createChangedDocument, AnalyzersResources.Use_inferred_member_name)
{
}
}
......
......@@ -53,7 +53,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.UseInferredMemberName
Dim preference = options.GetOption(
CodeStyleOptions2.PreferInferredTupleNames, context.Compilation.Language, syntaxTree, cancellationToken)
If Not preference.Value OrElse
Not VisualBasicInferredMemberNameReducer.CanSimplifyTupleName(argument, parseOptions) Then
Not CanSimplifyTupleName(argument, parseOptions) Then
Return
End If
......@@ -87,7 +87,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.UseInferredMemberName
Dim preference = options.GetOption(
CodeStyleOptions2.PreferInferredAnonymousTypeMemberNames, context.Compilation.Language, syntaxTree, cancellationToken)
If Not preference.Value OrElse
Not VisualBasicInferredMemberNameReducer.CanSimplifyNamedFieldInitializer(fieldInitializer) Then
Not CanSimplifyNamedFieldInitializer(fieldInitializer) Then
Return
End If
......
......@@ -39,6 +39,7 @@
<Compile Include="$(MSBuildThisFileDirectory)UseCompoundAssignment\VisualBasicUseCompoundAssignmentDiagnosticAnalyzer.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseConditionalExpression\VisualBasicUseConditionalExpressionForAssignmentDiagnosticAnalyzer.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseConditionalExpression\VisualBasicUseConditionalExpressionForReturnDiagnosticAnalyzer.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseInferredMemberName\VisualBasicUseInferredMemberNameDiagnosticAnalyzer.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseIsNullCheck\VisualBasicUseIsNullCheckForReferenceEqualsDiagnosticAnalyzer.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseNullPropagation\VisualBasicUseNullPropagationDiagnosticAnalyzer.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseObjectInitializer\VisualBasicUseObjectInitializerDiagnosticAnalyzer.vb" />
......
......@@ -31,6 +31,7 @@
<Compile Include="$(MSBuildThisFileDirectory)UseConditionalExpression\MultiLineConditionalExpressionFormattingRule.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseConditionalExpression\VisualBasicUseConditionalExpressionForAssignmentCodeFixProvider.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseConditionalExpression\VisualBasicUseConditionalExpressionForReturnCodeFixProvider.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseInferredMemberName\VisualBasicUseInferredMemberNameCodeFixProvider.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseIsNullCheck\VisualBasicUseIsNullCheckForReferenceEqualsCodeFixProvider.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseNullPropagation\VisualBasicUseNullPropagationCodeFixProvider.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseObjectInitializer\UseInitializerHelpers.vb" />
......
......@@ -39,6 +39,7 @@
<Compile Include="$(MSBuildThisFileDirectory)UseCompoundAssignment\UseCompoundAssignmentTests.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseConditionalExpression\UseConditionalExpressionForAssignmentTests.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseConditionalExpression\UseConditionalExpressionForReturnTests.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseInferredMemberName\UseInferredMemberNameTests.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseIsNullCheck\UseIsNullCheckForReferenceEqualsTests.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseExplicitTupleName\UseExplicitTupleNameTests.vb" />
<Compile Include="$(MSBuildThisFileDirectory)UseNullPropagation\UseNullPropagationTests.vb" />
......
......@@ -439,9 +439,6 @@
<data name="Hide_base_member" xml:space="preserve">
<value>Hide base member</value>
</data>
<data name="Delegate_invocation_can_be_simplified" xml:space="preserve">
<value>Delegate invocation can be simplified.</value>
</data>
<data name="Properties" xml:space="preserve">
<value>Properties</value>
</data>
......
......@@ -632,11 +632,6 @@
<target state="translated">Skrýt základního člena</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="translated">Volání delegáta se dá zjednodušit.</target>
<note />
</trans-unit>
<trans-unit id="Properties">
<source>Properties</source>
<target state="translated">Vlastnosti</target>
......
......@@ -632,11 +632,6 @@
<target state="translated">Basismember ausblenden</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="translated">Der Delegataufruf kann vereinfacht werden.</target>
<note />
</trans-unit>
<trans-unit id="Properties">
<source>Properties</source>
<target state="translated">Eigenschaften</target>
......
......@@ -632,11 +632,6 @@
<target state="translated">Ocultar miembro base</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="translated">La invocación del delegado se puede simplificar.</target>
<note />
</trans-unit>
<trans-unit id="Properties">
<source>Properties</source>
<target state="translated">Propiedades</target>
......
......@@ -632,11 +632,6 @@
<target state="translated">Masquer le membre de base</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="translated">L'appel de délégué peut être simplifié.</target>
<note />
</trans-unit>
<trans-unit id="Properties">
<source>Properties</source>
<target state="translated">Propriétés</target>
......
......@@ -632,11 +632,6 @@
<target state="translated">Nascondi il membro di base</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="translated">La chiamata del delegato può essere semplificata.</target>
<note />
</trans-unit>
<trans-unit id="Properties">
<source>Properties</source>
<target state="translated">Proprietà</target>
......
......@@ -632,11 +632,6 @@
<target state="translated">基本メンバーを非表示にします</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="translated">デリゲート呼び出しを簡略化できます。</target>
<note />
</trans-unit>
<trans-unit id="Properties">
<source>Properties</source>
<target state="translated">プロパティ</target>
......
......@@ -632,11 +632,6 @@
<target state="translated">기본 멤버 숨기기</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="translated">대리자 호출을 간단하게 만들 수 있습니다.</target>
<note />
</trans-unit>
<trans-unit id="Properties">
<source>Properties</source>
<target state="translated">속성</target>
......
......@@ -632,11 +632,6 @@
<target state="translated">Ukryj składową bazową</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="translated">Wywołanie delegata można uprościć.</target>
<note />
</trans-unit>
<trans-unit id="Properties">
<source>Properties</source>
<target state="translated">Właściwości</target>
......
......@@ -632,11 +632,6 @@
<target state="translated">Ocultar o membro base</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="translated">A invocação de delegado pode ser simplificada.</target>
<note />
</trans-unit>
<trans-unit id="Properties">
<source>Properties</source>
<target state="translated">Propriedades</target>
......
......@@ -632,11 +632,6 @@
<target state="translated">Скрыть базовый член</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="translated">Вызов делегата можно упростить.</target>
<note />
</trans-unit>
<trans-unit id="Properties">
<source>Properties</source>
<target state="translated">Свойства</target>
......
......@@ -632,11 +632,6 @@
<target state="translated">Temel üyeyi gizle</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="translated">Temsilci çağrısı basitleştirilebilir.</target>
<note />
</trans-unit>
<trans-unit id="Properties">
<source>Properties</source>
<target state="translated">Özellikler</target>
......
......@@ -632,11 +632,6 @@
<target state="translated">隐藏基成员</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="translated">可简化委托调用。</target>
<note />
</trans-unit>
<trans-unit id="Properties">
<source>Properties</source>
<target state="translated">属性</target>
......
......@@ -632,11 +632,6 @@
<target state="translated">隱藏基底成員</target>
<note />
</trans-unit>
<trans-unit id="Delegate_invocation_can_be_simplified">
<source>Delegate invocation can be simplified.</source>
<target state="translated">可以簡化委派引動的過程。</target>
<note />
</trans-unit>
<trans-unit id="Properties">
<source>Properties</source>
<target state="translated">屬性</target>
......
......@@ -1114,12 +1114,6 @@ This version used in: {2}</value>
<data name="Implement_0" xml:space="preserve">
<value>Implement {0}</value>
</data>
<data name="Use_inferred_member_name" xml:space="preserve">
<value>Use inferred member name</value>
</data>
<data name="Member_name_can_be_simplified" xml:space="preserve">
<value>Member name can be simplified</value>
</data>
<data name="Reported_diagnostic_0_has_a_source_location_in_file_1_which_is_not_part_of_the_compilation_being_analyzed" xml:space="preserve">
<value>Reported diagnostic '{0}' has a source location in file '{1}', which is not part of the compilation being analyzed.</value>
</data>
......
......@@ -2790,16 +2790,6 @@ Tato verze se používá zde: {2}.</target>
<target state="translated">Implementovat {0}</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="translated">Použít odvozený název člena</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="translated">Název člena lze zjednodušit.</target>
<note />
</trans-unit>
<trans-unit id="Reported_diagnostic_0_has_a_source_location_in_file_1_which_is_not_part_of_the_compilation_being_analyzed">
<source>Reported diagnostic '{0}' has a source location in file '{1}', which is not part of the compilation being analyzed.</source>
<target state="translated">Zdroj vykazované diagnostiky {0} je umístěný v souboru {1}, který není součástí analyzované kompilace.</target>
......
......@@ -2790,16 +2790,6 @@ Diese Version wird verwendet in: {2}</target>
<target state="translated">{0} implementieren</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="translated">Abgeleiteten Membernamen verwenden</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="translated">Der Membername kann vereinfacht werden.</target>
<note />
</trans-unit>
<trans-unit id="Reported_diagnostic_0_has_a_source_location_in_file_1_which_is_not_part_of_the_compilation_being_analyzed">
<source>Reported diagnostic '{0}' has a source location in file '{1}', which is not part of the compilation being analyzed.</source>
<target state="translated">Die gemeldete Diagnose "{0}" weist einen Quellspeicherort in der Datei "{1}" auf, die nicht Teil der Kompilierung ist, die analysiert wird.</target>
......
......@@ -2790,16 +2790,6 @@ Esta versión se utiliza en: {2}</target>
<target state="translated">Implementar {0}</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="translated">Usar nombre de miembro inferido</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="translated">El nombre del miembro se puede simplificar.</target>
<note />
</trans-unit>
<trans-unit id="Reported_diagnostic_0_has_a_source_location_in_file_1_which_is_not_part_of_the_compilation_being_analyzed">
<source>Reported diagnostic '{0}' has a source location in file '{1}', which is not part of the compilation being analyzed.</source>
<target state="translated">El diagnóstico notificado "{0}" tiene una ubicación de origen en el archivo "{1}", que no forma parte de la compilación que se está analizando.</target>
......
......@@ -2790,16 +2790,6 @@ Version utilisée dans : {2}</target>
<target state="translated">Implémenter {0}</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="translated">Utiliser un nom de membre déduit</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="translated">Le nom de membre peut être simplifié</target>
<note />
</trans-unit>
<trans-unit id="Reported_diagnostic_0_has_a_source_location_in_file_1_which_is_not_part_of_the_compilation_being_analyzed">
<source>Reported diagnostic '{0}' has a source location in file '{1}', which is not part of the compilation being analyzed.</source>
<target state="translated">Le diagnostic signalé '{0}' a un emplacement source dans le fichier '{1}', qui ne fait pas partie de la compilation en cours d'analyse.</target>
......
......@@ -2790,16 +2790,6 @@ Questa versione è usata {2}</target>
<target state="translated">Implementa {0}</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="translated">Usa il nome di membro dedotto</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="translated">Il nome del membro può essere semplificato</target>
<note />
</trans-unit>
<trans-unit id="Reported_diagnostic_0_has_a_source_location_in_file_1_which_is_not_part_of_the_compilation_being_analyzed">
<source>Reported diagnostic '{0}' has a source location in file '{1}', which is not part of the compilation being analyzed.</source>
<target state="translated">Il percorso di origine della diagnostica restituita '{0}' è incluso nel file '{1}', che non fa parte della compilazione da analizzare.</target>
......
......@@ -2790,16 +2790,6 @@ This version used in: {2}</source>
<target state="translated">{0} を実装する</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="translated">推定メンバーの名前を使用します</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="translated">メンバーの名前を単純化できます</target>
<note />
</trans-unit>
<trans-unit id="Reported_diagnostic_0_has_a_source_location_in_file_1_which_is_not_part_of_the_compilation_being_analyzed">
<source>Reported diagnostic '{0}' has a source location in file '{1}', which is not part of the compilation being analyzed.</source>
<target state="translated">報告された診断 '{0}' のソースの場所がファイル '{1}' にありますが、これは、分析対象のコンパイルの一部ではありません。</target>
......
......@@ -2790,16 +2790,6 @@ This version used in: {2}</source>
<target state="translated">{0} 구현</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="translated">유추 멤버 이름 사용</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="translated">멤버 이름을 간단하게 줄일 수 있음</target>
<note />
</trans-unit>
<trans-unit id="Reported_diagnostic_0_has_a_source_location_in_file_1_which_is_not_part_of_the_compilation_being_analyzed">
<source>Reported diagnostic '{0}' has a source location in file '{1}', which is not part of the compilation being analyzed.</source>
<target state="translated">보고된 진단 '{0}'의 소스 위치가 분석되는 컴파일의 일부가 아닌 '{1}' 파일에 있습니다.</target>
......
......@@ -2790,16 +2790,6 @@ Ta wersja jest używana wersja: {2}</target>
<target state="translated">Implementuj {0}</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="translated">Użyj nazwy wywnioskowanego elementu członkowskiego</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="translated">Nazwę składowej można uprościć</target>
<note />
</trans-unit>
<trans-unit id="Reported_diagnostic_0_has_a_source_location_in_file_1_which_is_not_part_of_the_compilation_being_analyzed">
<source>Reported diagnostic '{0}' has a source location in file '{1}', which is not part of the compilation being analyzed.</source>
<target state="translated">Lokalizacja źródłowa zgłoszonych danych diagnostycznych „{0}” znajduje się w pliku „{1}”, który nie jest częścią analizowanej kompilacji.</target>
......
......@@ -2790,16 +2790,6 @@ Essa versão é usada no: {2}</target>
<target state="translated">Implementar {0}</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="translated">Usar o nome do membro inferido</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="translated">O nome do membro pode ser simplificado</target>
<note />
</trans-unit>
<trans-unit id="Reported_diagnostic_0_has_a_source_location_in_file_1_which_is_not_part_of_the_compilation_being_analyzed">
<source>Reported diagnostic '{0}' has a source location in file '{1}', which is not part of the compilation being analyzed.</source>
<target state="translated">O diagnóstico relatado '{0}' tem um local de origem no arquivo '{1}', que não faz parte da compilação sendo analisada.</target>
......
......@@ -2790,16 +2790,6 @@ This version used in: {2}</source>
<target state="translated">Реализация {0}</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="translated">Использовать имя выводимого элемента</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="translated">Имя члена можно упростить</target>
<note />
</trans-unit>
<trans-unit id="Reported_diagnostic_0_has_a_source_location_in_file_1_which_is_not_part_of_the_compilation_being_analyzed">
<source>Reported diagnostic '{0}' has a source location in file '{1}', which is not part of the compilation being analyzed.</source>
<target state="translated">В отчете о диагностике "{0}" используется исходное расположение "{1}", которое не входит в анализируемую компиляцию.</target>
......
......@@ -2790,16 +2790,6 @@ Bu sürüm şurada kullanılır: {2}</target>
<target state="translated">{0} uygula</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="translated">Gösterilen üye adı kullan</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="translated">Üye adı basitleştirilebilir</target>
<note />
</trans-unit>
<trans-unit id="Reported_diagnostic_0_has_a_source_location_in_file_1_which_is_not_part_of_the_compilation_being_analyzed">
<source>Reported diagnostic '{0}' has a source location in file '{1}', which is not part of the compilation being analyzed.</source>
<target state="translated">Raporlanan '{0}' tanılamasının kaynak konumu, çözümlenen derlemenin bir parçası olmayan '{1}' dosyası içinde.</target>
......
......@@ -2790,16 +2790,6 @@ This version used in: {2}</source>
<target state="translated">实现 {0}</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="translated">使用推断的成员名称</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="translated">可简化成员名称</target>
<note />
</trans-unit>
<trans-unit id="Reported_diagnostic_0_has_a_source_location_in_file_1_which_is_not_part_of_the_compilation_being_analyzed">
<source>Reported diagnostic '{0}' has a source location in file '{1}', which is not part of the compilation being analyzed.</source>
<target state="translated">报告的诊断“{0}”的源位置位于文件“{1}”中,后者不是要分析的编译的一部分。</target>
......
......@@ -2790,16 +2790,6 @@ This version used in: {2}</source>
<target state="translated">實作 {0}</target>
<note />
</trans-unit>
<trans-unit id="Use_inferred_member_name">
<source>Use inferred member name</source>
<target state="translated">使用推斷的成員名稱</target>
<note />
</trans-unit>
<trans-unit id="Member_name_can_be_simplified">
<source>Member name can be simplified</source>
<target state="translated">成員名稱可簡化</target>
<note />
</trans-unit>
<trans-unit id="Reported_diagnostic_0_has_a_source_location_in_file_1_which_is_not_part_of_the_compilation_being_analyzed">
<source>Reported diagnostic '{0}' has a source location in file '{1}', which is not part of the compilation being analyzed.</source>
<target state="translated">回報的診斷 '{0}' 在檔案 '{1}' 中具有來源位置,其不屬於正在進行分析的編譯。</target>
......
......@@ -10,6 +10,8 @@
namespace Microsoft.CodeAnalysis.CSharp.Simplification
{
using static CSharpInferredMemberNameSimplifier;
internal partial class CSharpInferredMemberNameReducer
{
private class Rewriter : AbstractReductionRewriter
......
......@@ -21,93 +21,5 @@ internal partial class CSharpInferredMemberNameReducer : AbstractCSharpReducer
public CSharpInferredMemberNameReducer() : base(s_pool)
{
}
internal static bool CanSimplifyTupleElementName(ArgumentSyntax node, CSharpParseOptions parseOptions)
{
// Tuple elements are arguments in a tuple expression
if (node.NameColon == null || !node.IsParentKind(SyntaxKind.TupleExpression))
{
return false;
}
if (parseOptions.LanguageVersion < LanguageVersion.CSharp7_1)
{
return false;
}
if (RemovalCausesAmbiguity(((TupleExpressionSyntax)node.Parent).Arguments, node))
{
return false;
}
var inferredName = node.Expression.TryGetInferredMemberName();
if (inferredName == null || inferredName != node.NameColon.Name.Identifier.ValueText)
{
return false;
}
return true;
}
internal static bool CanSimplifyAnonymousTypeMemberName(AnonymousObjectMemberDeclaratorSyntax node)
{
if (node.NameEquals == null)
{
return false;
}
if (RemovalCausesAmbiguity(((AnonymousObjectCreationExpressionSyntax)node.Parent).Initializers, node))
{
return false;
}
var inferredName = node.Expression.TryGetInferredMemberName();
if (inferredName == null || inferredName != node.NameEquals.Name.Identifier.ValueText)
{
return false;
}
return true;
}
// An explicit name cannot be removed if some other position would produce it as inferred name
private static bool RemovalCausesAmbiguity(SeparatedSyntaxList<ArgumentSyntax> arguments, ArgumentSyntax toRemove)
{
var name = toRemove.NameColon.Name.Identifier.ValueText;
foreach (var argument in arguments)
{
if (argument == toRemove)
{
continue;
}
if (argument.NameColon is null && argument.Expression.TryGetInferredMemberName()?.Equals(name) == true)
{
return true;
}
}
return false;
}
// An explicit name cannot be removed if some other position would produce it as inferred name
private static bool RemovalCausesAmbiguity(SeparatedSyntaxList<AnonymousObjectMemberDeclaratorSyntax> initializers, AnonymousObjectMemberDeclaratorSyntax toRemove)
{
var name = toRemove.NameEquals.Name.Identifier.ValueText;
foreach (var initializer in initializers)
{
if (initializer == toRemove)
{
continue;
}
if (initializer.NameEquals is null && initializer.Expression.TryGetInferredMemberName()?.Equals(name) == true)
{
return true;
}
}
return false;
}
}
}
......@@ -85,6 +85,7 @@
<Compile Include="$(MSBuildThisFileDirectory)Services\SyntaxFacts\CSharpSyntaxKinds.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Services\SyntaxFacts\CSharpDocumentationCommentService.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Services\SyntaxFacts\CSharpSyntaxFacts.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Simplification\CSharpInferredMemberNameSimplifier.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Simplification\Simplifiers\CastSimplifier.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Utilities\FormattingRangeHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Utilities\NameSyntaxComparer.cs" />
......
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using Microsoft.CodeAnalysis.CSharp.Extensions;
using Microsoft.CodeAnalysis.CSharp.Syntax;
namespace Microsoft.CodeAnalysis.CSharp.Simplification
{
internal static class CSharpInferredMemberNameSimplifier
{
internal static bool CanSimplifyTupleElementName(ArgumentSyntax node, CSharpParseOptions parseOptions)
{
// Tuple elements are arguments in a tuple expression
if (node.NameColon == null || !node.IsParentKind(SyntaxKind.TupleExpression))
{
return false;
}
if (parseOptions.LanguageVersion < LanguageVersion.CSharp7_1)
{
return false;
}
if (RemovalCausesAmbiguity(((TupleExpressionSyntax)node.Parent).Arguments, node))
{
return false;
}
var inferredName = node.Expression.TryGetInferredMemberName();
if (inferredName == null || inferredName != node.NameColon.Name.Identifier.ValueText)
{
return false;
}
return true;
}
internal static bool CanSimplifyAnonymousTypeMemberName(AnonymousObjectMemberDeclaratorSyntax node)
{
if (node.NameEquals == null)
{
return false;
}
if (RemovalCausesAmbiguity(((AnonymousObjectCreationExpressionSyntax)node.Parent).Initializers, node))
{
return false;
}
var inferredName = node.Expression.TryGetInferredMemberName();
if (inferredName == null || inferredName != node.NameEquals.Name.Identifier.ValueText)
{
return false;
}
return true;
}
// An explicit name cannot be removed if some other position would produce it as inferred name
private static bool RemovalCausesAmbiguity(SeparatedSyntaxList<ArgumentSyntax> arguments, ArgumentSyntax toRemove)
{
var name = toRemove.NameColon.Name.Identifier.ValueText;
foreach (var argument in arguments)
{
if (argument == toRemove)
{
continue;
}
if (argument.NameColon is null && argument.Expression.TryGetInferredMemberName()?.Equals(name) == true)
{
return true;
}
}
return false;
}
// An explicit name cannot be removed if some other position would produce it as inferred name
private static bool RemovalCausesAmbiguity(SeparatedSyntaxList<AnonymousObjectMemberDeclaratorSyntax> initializers, AnonymousObjectMemberDeclaratorSyntax toRemove)
{
var name = toRemove.NameEquals.Name.Identifier.ValueText;
foreach (var initializer in initializers)
{
if (initializer == toRemove)
{
continue;
}
if (initializer.NameEquals is null && initializer.Expression.TryGetInferredMemberName()?.Equals(name) == true)
{
return true;
}
}
return false;
}
}
}
' Licensed to the .NET Foundation under one or more agreements.
' The .NET Foundation licenses this file to you under the MIT license.
' See the LICENSE file in the project root for more information.
Imports Microsoft.CodeAnalysis.VisualBasic.Syntax
Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Friend Module VisualBasicInferredMemberNameSimplifier
Friend Function CanSimplifyTupleName(node As SimpleArgumentSyntax, parseOptions As VisualBasicParseOptions) As Boolean
' Tuple elements are arguments in a tuple expression
If node.NameColonEquals Is Nothing OrElse Not node.IsParentKind(SyntaxKind.TupleExpression) Then
Return False
End If
If parseOptions.LanguageVersion < LanguageVersion.VisualBasic15_3 Then
Return False
End If
If RemovalCausesAmbiguity(DirectCast(node.Parent, TupleExpressionSyntax).Arguments, node) Then
Return False
End If
Dim inferredName = node.Expression.TryGetInferredMemberName()
If inferredName Is Nothing OrElse
Not CaseInsensitiveComparison.Equals(inferredName, node.NameColonEquals.Name.Identifier.ValueText) Then
Return False
End If
Return True
End Function
Friend Function CanSimplifyNamedFieldInitializer(node As NamedFieldInitializerSyntax) As Boolean
If RemovalCausesAmbiguity(DirectCast(node.Parent, ObjectMemberInitializerSyntax).Initializers, node) Then
Return False
End If
Dim inferredName = node.Expression.TryGetInferredMemberName()
If inferredName Is Nothing OrElse
Not CaseInsensitiveComparison.Equals(inferredName, node.Name.Identifier.ValueText) Then
Return False
End If
Return True
End Function
' An explicit name cannot be removed if some other position would produce it as inferred name
Private Function RemovalCausesAmbiguity(arguments As SeparatedSyntaxList(Of SimpleArgumentSyntax), toRemove As SimpleArgumentSyntax) As Boolean
Dim name = toRemove.NameColonEquals.Name.Identifier.ValueText
For Each argument In arguments
If argument Is toRemove Then
Continue For
End If
If argument.NameColonEquals Is Nothing AndAlso CaseInsensitiveComparison.Equals(argument.Expression.TryGetInferredMemberName(), name) Then
Return True
End If
Next
Return False
End Function
' An explicit name cannot be removed if some other position would produce it as inferred name
Private Function RemovalCausesAmbiguity(initializers As SeparatedSyntaxList(Of FieldInitializerSyntax), toRemove As NamedFieldInitializerSyntax) As Boolean
Dim name = toRemove.Name.Identifier.ValueText
For Each initializer In initializers
If initializer Is toRemove Then
Continue For
End If
Dim inferredInitializer = TryCast(initializer, InferredFieldInitializerSyntax)
If inferredInitializer IsNot Nothing AndAlso CaseInsensitiveComparison.Equals(inferredInitializer.Expression.TryGetInferredMemberName(), name) Then
Return True
End If
Next
Return False
End Function
End Module
End Namespace
......@@ -30,6 +30,7 @@
<Compile Include="$(MSBuildThisFileDirectory)Services\SelectedMembers\VisualBasicSelectedMembers.vb" />
<Compile Include="$(MSBuildThisFileDirectory)Services\SyntaxFacts\VisualBasicDocumentationCommentService.vb" />
<Compile Include="$(MSBuildThisFileDirectory)Services\SyntaxFacts\VisualBasicSyntaxFacts.vb" />
<Compile Include="$(MSBuildThisFileDirectory)Simplification\VisualBasicInferredMemberNameSimplifier.vb" />
<Compile Include="$(MSBuildThisFileDirectory)Utilities\CastAnalyzer.vb" />
<Compile Include="$(MSBuildThisFileDirectory)Utilities\DirectiveSyntaxEqualityComparer.vb" />
<Compile Include="$(MSBuildThisFileDirectory)Utilities\DirectiveWalker.vb" />
......
......@@ -18,6 +18,15 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
End Sub
Private ReadOnly s_simplifyTupleName As Func(Of SimpleArgumentSyntax, SemanticModel, OptionSet, CancellationToken, SimpleArgumentSyntax) = AddressOf SimplifyTupleName
Private ReadOnly s_simplifyNamedFieldInitializer As Func(Of NamedFieldInitializerSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode) = AddressOf SimplifyNamedFieldInitializer
Private Function SimplifyNamedFieldInitializer(node As NamedFieldInitializerSyntax, arg2 As SemanticModel, optionSet As OptionSet, arg4 As CancellationToken) As SyntaxNode
If CanSimplifyNamedFieldInitializer(node) Then
Return SyntaxFactory.InferredFieldInitializer(node.Expression).WithTriviaFrom(node)
End If
Return node
End Function
Private Function SimplifyTupleName(
node As SimpleArgumentSyntax,
......
......@@ -2,11 +2,7 @@
' The .NET Foundation licenses this file to you under the MIT license.
' See the LICENSE file in the project root for more information.
Imports System.Threading
Imports Microsoft.CodeAnalysis
Imports Microsoft.CodeAnalysis.Options
Imports Microsoft.CodeAnalysis.PooledObjects
Imports Microsoft.CodeAnalysis.VisualBasic.Syntax
Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
''' <summary>
......@@ -23,88 +19,5 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Public Sub New()
MyBase.New(s_pool)
End Sub
Friend Shared Function CanSimplifyTupleName(node As SimpleArgumentSyntax, parseOptions As VisualBasicParseOptions) As Boolean
' Tuple elements are arguments in a tuple expression
If node.NameColonEquals Is Nothing OrElse Not node.IsParentKind(SyntaxKind.TupleExpression) Then
Return False
End If
If parseOptions.LanguageVersion < LanguageVersion.VisualBasic15_3 Then
Return False
End If
If RemovalCausesAmbiguity(DirectCast(node.Parent, TupleExpressionSyntax).Arguments, node) Then
Return False
End If
Dim inferredName = node.Expression.TryGetInferredMemberName()
If inferredName Is Nothing OrElse
Not CaseInsensitiveComparison.Equals(inferredName, node.NameColonEquals.Name.Identifier.ValueText) Then
Return False
End If
Return True
End Function
Private Shared ReadOnly s_simplifyNamedFieldInitializer As Func(Of NamedFieldInitializerSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode) = AddressOf SimplifyNamedFieldInitializer
Private Shared Function SimplifyNamedFieldInitializer(node As NamedFieldInitializerSyntax, arg2 As SemanticModel, optionSet As OptionSet, arg4 As CancellationToken) As SyntaxNode
If CanSimplifyNamedFieldInitializer(node) Then
Return SyntaxFactory.InferredFieldInitializer(node.Expression).WithTriviaFrom(node)
End If
Return node
End Function
Friend Shared Function CanSimplifyNamedFieldInitializer(node As NamedFieldInitializerSyntax) As Boolean
If RemovalCausesAmbiguity(DirectCast(node.Parent, ObjectMemberInitializerSyntax).Initializers, node) Then
Return False
End If
Dim inferredName = node.Expression.TryGetInferredMemberName()
If inferredName Is Nothing OrElse
Not CaseInsensitiveComparison.Equals(inferredName, node.Name.Identifier.ValueText) Then
Return False
End If
Return True
End Function
' An explicit name cannot be removed if some other position would produce it as inferred name
Private Shared Function RemovalCausesAmbiguity(arguments As SeparatedSyntaxList(Of SimpleArgumentSyntax), toRemove As SimpleArgumentSyntax) As Boolean
Dim name = toRemove.NameColonEquals.Name.Identifier.ValueText
For Each argument In arguments
If argument Is toRemove Then
Continue For
End If
If argument.NameColonEquals Is Nothing AndAlso CaseInsensitiveComparison.Equals(argument.Expression.TryGetInferredMemberName(), name) Then
Return True
End If
Next
Return False
End Function
' An explicit name cannot be removed if some other position would produce it as inferred name
Private Shared Function RemovalCausesAmbiguity(initializers As SeparatedSyntaxList(Of FieldInitializerSyntax), toRemove As NamedFieldInitializerSyntax) As Boolean
Dim name = toRemove.Name.Identifier.ValueText
For Each initializer In initializers
If initializer Is toRemove Then
Continue For
End If
Dim inferredInitializer = TryCast(initializer, InferredFieldInitializerSyntax)
If inferredInitializer IsNot Nothing AndAlso CaseInsensitiveComparison.Equals(inferredInitializer.Expression.TryGetInferredMemberName(), name) Then
Return True
End If
Next
Return False
End Function
End Class
End Namespace
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册