Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
13541fdb
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
13541fdb
编写于
8月 10, 2020
作者:
S
Sam Harwell
提交者:
GitHub
8月 10, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #46599 from sharwell/finish-convert
Finish 'Generate Equals' conversion to new test library
上级
305d89a6
e5ca8a1b
变更
7
展开全部
隐藏空白更改
内联
并排
Showing
7 changed file
with
1325 addition
and
722 deletion
+1325
-722
eng/Versions.props
eng/Versions.props
+3
-1
src/EditorFeatures/CSharpTest/GenerateComparisonOperators/GenerateComparisonOperatorsTests.cs
...teComparisonOperators/GenerateComparisonOperatorsTests.cs
+46
-87
src/EditorFeatures/CSharpTest/GenerateFromMembers/GenerateEqualsAndGetHashCodeFromMembers/GenerateEqualsAndGetHashCodeFromMembersTests.cs
...omMembers/GenerateEqualsAndGetHashCodeFromMembersTests.cs
+1264
-630
src/Features/Core/Portable/GenerateComparisonOperators/GenerateComparisonOperatorsCodeRefactoringProvider.cs
...ors/GenerateComparisonOperatorsCodeRefactoringProvider.cs
+6
-4
src/Features/Core/Portable/GenerateEqualsAndGetHashCodeFromMembers/GenerateEqualsAndGetHashCodeAction.cs
...HashCodeFromMembers/GenerateEqualsAndGetHashCodeAction.cs
+2
-0
src/Features/Core/Portable/GenerateEqualsAndGetHashCodeFromMembers/GenerateEqualsAndHashWithDialogCodeAction.cs
...eFromMembers/GenerateEqualsAndHashWithDialogCodeAction.cs
+2
-0
src/Workspaces/CoreTestUtilities/Roslyn.Services.UnitTests.Utilities.csproj
...eTestUtilities/Roslyn.Services.UnitTests.Utilities.csproj
+2
-0
未找到文件。
eng/Versions.props
浏览文件 @
13541fdb
...
...
@@ -30,7 +30,7 @@
<RoslynDiagnosticsNugetPackageVersion>
3.3.0-beta1.20352.4
</RoslynDiagnosticsNugetPackageVersion>
<MicrosoftCodeAnalysisNetAnalyzersVersion>
3.3.0-beta1.20352.4
</MicrosoftCodeAnalysisNetAnalyzersVersion>
<CodeStyleLayerCodeAnalysisVersion>
3.6.0-2.final
</CodeStyleLayerCodeAnalysisVersion>
<MicrosoftCodeAnalysisTestingVersion>
1.0.1-beta1.20
378.2
</MicrosoftCodeAnalysisTestingVersion>
<MicrosoftCodeAnalysisTestingVersion>
1.0.1-beta1.20
407.3
</MicrosoftCodeAnalysisTestingVersion>
<CodeStyleAnalyzerVersion>
3.7.0-3.20271.4
</CodeStyleAnalyzerVersion>
<VisualStudioEditorPackagesVersion>
16.4.248
</VisualStudioEditorPackagesVersion>
<ILToolsPackageVersion>
5.0.0-alpha1.19409.1
</ILToolsPackageVersion>
...
...
@@ -60,11 +60,13 @@
-->
<MicrosoftCodeAnalysisAnalyzersVersion>
3.0.0
</MicrosoftCodeAnalysisAnalyzersVersion>
<MicrosoftCodeAnalysisBuildTasksVersion>
2.0.0-rc2-61102-09
</MicrosoftCodeAnalysisBuildTasksVersion>
<MicrosoftCodeAnalysisCSharpAnalyzerTestingXUnitVersion>
$(MicrosoftCodeAnalysisTestingVersion)
</MicrosoftCodeAnalysisCSharpAnalyzerTestingXUnitVersion>
<MicrosoftCodeAnalysisCSharpCodeFixTestingXUnitVersion>
$(MicrosoftCodeAnalysisTestingVersion)
</MicrosoftCodeAnalysisCSharpCodeFixTestingXUnitVersion>
<MicrosoftCodeAnalysisCSharpCodeRefactoringTestingXUnitVersion>
$(MicrosoftCodeAnalysisTestingVersion)
</MicrosoftCodeAnalysisCSharpCodeRefactoringTestingXUnitVersion>
<MicrosoftCodeAnalysisCSharpCodeStyleVersion>
$(CodeStyleAnalyzerVersion)
</MicrosoftCodeAnalysisCSharpCodeStyleVersion>
<MicrosoftCodeAnalysisElfieVersion>
0.10.6
</MicrosoftCodeAnalysisElfieVersion>
<MicrosoftCodeAnalysisTestResourcesProprietaryVersion>
2.0.41
</MicrosoftCodeAnalysisTestResourcesProprietaryVersion>
<MicrosoftCodeAnalysisVisualBasicAnalyzerTestingXUnitVersion>
$(MicrosoftCodeAnalysisTestingVersion)
</MicrosoftCodeAnalysisVisualBasicAnalyzerTestingXUnitVersion>
<MicrosoftCodeAnalysisVisualBasicCodeFixTestingXUnitVersion>
$(MicrosoftCodeAnalysisTestingVersion)
</MicrosoftCodeAnalysisVisualBasicCodeFixTestingXUnitVersion>
<MicrosoftCodeAnalysisVisualBasicCodeRefactoringTestingXUnitVersion>
$(MicrosoftCodeAnalysisTestingVersion)
</MicrosoftCodeAnalysisVisualBasicCodeRefactoringTestingXUnitVersion>
<MicrosoftCodeAnalysisVisualBasicCodeStyleVersion>
$(CodeStyleAnalyzerVersion)
</MicrosoftCodeAnalysisVisualBasicCodeStyleVersion>
...
...
src/EditorFeatures/CSharpTest/GenerateComparisonOperators/GenerateComparisonOperatorsTests.cs
浏览文件 @
13541fdb
...
...
@@ -2,69 +2,23 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using
System.Collections.Generic
;
using
System.Threading.Tasks
;
using
Microsoft.CodeAnalysis.CSharp
;
using
Microsoft.CodeAnalysis.CSharp.CodeStyle
;
using
Microsoft.CodeAnalysis.Editor.UnitTests.CodeActions
;
using
Microsoft.CodeAnalysis.GenerateComparisonOperators
;
using
Microsoft.CodeAnalysis.Test.Utilities
;
using
Microsoft.CodeAnalysis.Testing
;
using
Xunit
;
using
VerifyCS
=
Microsoft
.
CodeAnalysis
.
Editor
.
UnitTests
.
CodeActions
.
CSharpCodeRefactoringVerifier
<
Microsoft
.
CodeAnalysis
.
GenerateComparisonOperators
.
GenerateComparisonOperatorsCodeRefactoringProvider
>;
namespace
Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.GenerateComparisonOperators
{
using
static
Microsoft
.
CodeAnalysis
.
Editor
.
UnitTests
.
CodeActions
.
AbstractCodeActionOrUserDiagnosticTest
;
using
VerifyCS
=
CSharpCodeRefactoringVerifier
<
GenerateComparisonOperatorsCodeRefactoringProvider
>;
[
UseExportProvider
]
public
class
GenerateComparisonOperatorsTests
{
private
static
Task
TestInRegularAndScript1Async
(
string
initialMarkup
,
string
expectedMarkup
,
int
index
=
0
,
TestParameters
?
parameters
=
null
,
List
<
DiagnosticResult
>
fixedExpectedDiagnostics
=
null
)
{
return
TestInRegularAndScript1Async
(
new
[]
{
initialMarkup
},
new
[]
{
expectedMarkup
},
index
,
parameters
,
fixedExpectedDiagnostics
);
}
private
static
async
Task
TestInRegularAndScript1Async
(
string
[]
initialMarkup
,
string
[]
expectedMarkup
,
int
index
=
0
,
TestParameters
?
parameters
=
null
,
List
<
DiagnosticResult
>
fixedExpectedDiagnostics
=
null
)
{
var
test
=
new
VerifyCS
.
Test
{
CodeActionIndex
=
index
,
};
foreach
(
var
source
in
initialMarkup
)
test
.
TestState
.
Sources
.
Add
(
source
);
foreach
(
var
source
in
expectedMarkup
)
test
.
FixedState
.
Sources
.
Add
(
source
);
if
(
parameters
?.
parseOptions
!=
null
)
test
.
LanguageVersion
=
((
CSharpParseOptions
)
parameters
.
Value
.
parseOptions
).
LanguageVersion
;
if
(
parameters
?.
options
!=
null
)
test
.
EditorConfig
=
CodeFixVerifierHelper
.
GetEditorConfigText
(
parameters
.
Value
.
options
);
foreach
(
var
diagnostic
in
fixedExpectedDiagnostics
??
new
List
<
DiagnosticResult
>())
test
.
FixedState
.
ExpectedDiagnostics
.
Add
(
diagnostic
);
await
test
.
RunAsync
();
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsGenerateComparisonOperators
)]
public
async
Task
TestClass
()
{
await
TestInRegularAndScript1
Async
(
await
VerifyCS
.
VerifyRefactoring
Async
(
@"
using System;
...
...
@@ -138,7 +92,7 @@ class C : IComparable<C>
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsGenerateComparisonOperators
)]
public
async
Task
TestExplicitImpl
()
{
await
TestInRegularAndScript1
Async
(
await
VerifyCS
.
VerifyRefactoring
Async
(
@"
using System;
...
...
@@ -178,7 +132,7 @@ class C : IComparable<C>
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsGenerateComparisonOperators
)]
public
async
Task
TestOnInterface
()
{
await
TestInRegularAndScript1
Async
(
await
VerifyCS
.
VerifyRefactoring
Async
(
@"
using System;
...
...
@@ -218,7 +172,7 @@ class C : IComparable<C>
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsGenerateComparisonOperators
)]
public
async
Task
TestAtEndOfInterface
()
{
await
TestInRegularAndScript1
Async
(
await
VerifyCS
.
VerifyRefactoring
Async
(
@"
using System;
...
...
@@ -258,7 +212,7 @@ class C : IComparable<C>
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsGenerateComparisonOperators
)]
public
async
Task
TestInBody
()
{
await
TestInRegularAndScript1
Async
(
await
VerifyCS
.
VerifyRefactoring
Async
(
@"
using System;
...
...
@@ -308,11 +262,7 @@ class C : {|CS0535:IComparable<C>|}
[||]
}"
;
await
new
VerifyCS
.
Test
{
TestCode
=
code
,
FixedCode
=
code
,
}.
RunAsync
();
await
VerifyCS
.
VerifyRefactoringAsync
(
code
,
code
);
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsGenerateComparisonOperators
)]
...
...
@@ -328,11 +278,7 @@ class C : IComparable<{|CS0246:Goo|}>
[||]
}"
;
await
new
VerifyCS
.
Test
{
TestCode
=
code
,
FixedCode
=
code
,
}.
RunAsync
();
await
VerifyCS
.
VerifyRefactoringAsync
(
code
,
code
);
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsGenerateComparisonOperators
)]
...
...
@@ -369,17 +315,13 @@ class C : IComparable<C>
[||]
}"
;
await
new
VerifyCS
.
Test
{
TestCode
=
code
,
FixedCode
=
code
,
}.
RunAsync
();
await
VerifyCS
.
VerifyRefactoringAsync
(
code
,
code
);
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsGenerateComparisonOperators
)]
public
async
Task
TestWithExistingOperator
()
{
await
TestInRegularAndScript1
Async
(
await
VerifyCS
.
VerifyRefactoring
Async
(
@"
using System;
...
...
@@ -426,7 +368,7 @@ class C : IComparable<C>
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsGenerateComparisonOperators
)]
public
async
Task
TestMultipleInterfaces
()
{
await
TestInRegularAndScript1Async
(
var
code
=
@"
using System;
...
...
@@ -436,41 +378,58 @@ class C : IComparable<C>, IComparable<int>
public int CompareTo(int c) => 0;
[||]
}"
,
@"
}"
;
string
GetFixedCode
(
string
type
)
=>
$@"
using System;
class C : IComparable<C>, IComparable<int>
{
{
{
public
int
CompareTo
(
C
c
)
=>
0
;
public
int
CompareTo
(
int
c
)
=>
0
;
public static bool operator <(C left,
int
right)
{
public
static
bool
operator
<(
C
left
,
{
type
}
right
)
{
{
return
left
.
CompareTo
(
right
)
<
0
;
}
}
}
public static bool operator >(C left,
int
right)
{
public
static
bool
operator
>(
C
left
,
{
type
}
right
)
{
{
return
left
.
CompareTo
(
right
)
>
0
;
}
}
}
public static bool operator <=(C left,
int
right)
{
public
static
bool
operator
<=(
C
left
,
{
type
}
right
)
{
{
return
left
.
CompareTo
(
right
)
<=
0
;
}
}
}
public static bool operator >=(C left,
int
right)
{
public
static
bool
operator
>=(
C
left
,
{
type
}
right
)
{
{
return
left
.
CompareTo
(
right
)
>=
0
;
}
}"
,
index
:
1
);
}}
}}
"
;
await
new
VerifyCS
.
Test
{
TestCode
=
code
,
FixedCode
=
GetFixedCode
(
"C"
),
CodeActionIndex
=
0
,
CodeActionEquivalenceKey
=
"Generate_for_0_C"
,
}.
RunAsync
();
await
new
VerifyCS
.
Test
{
TestCode
=
code
,
FixedCode
=
GetFixedCode
(
"int"
),
CodeActionIndex
=
1
,
CodeActionEquivalenceKey
=
"Generate_for_0_int"
,
}.
RunAsync
();
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsGenerateComparisonOperators
)]
public
async
Task
TestInInterfaceWithDefaultImpl
()
{
await
TestInRegularAndScript1
Async
(
await
VerifyCS
.
VerifyRefactoring
Async
(
@"
using System;
...
...
src/EditorFeatures/CSharpTest/GenerateFromMembers/GenerateEqualsAndGetHashCodeFromMembers/GenerateEqualsAndGetHashCodeFromMembersTests.cs
浏览文件 @
13541fdb
此差异已折叠。
点击以展开。
src/Features/Core/Portable/GenerateComparisonOperators/GenerateComparisonOperatorsCodeRefactoringProvider.cs
浏览文件 @
13541fdb
...
...
@@ -98,7 +98,8 @@ public override async Task ComputeRefactoringsAsync(CodeRefactoringContext conte
var
missingType
=
missingComparableTypes
[
0
];
context
.
RegisterRefactoring
(
new
MyCodeAction
(
FeaturesResources
.
Generate_comparison_operators
,
c
=>
GenerateComparisonOperatorsAsync
(
document
,
typeDeclaration
,
missingType
,
c
)));
c
=>
GenerateComparisonOperatorsAsync
(
document
,
typeDeclaration
,
missingType
,
c
),
nameof
(
FeaturesResources
.
Generate_comparison_operators
)));
return
;
}
...
...
@@ -110,7 +111,8 @@ public override async Task ComputeRefactoringsAsync(CodeRefactoringContext conte
var
displayString
=
typeArg
.
ToMinimalDisplayString
(
semanticModel
,
textSpan
.
Start
);
nestedActions
.
Add
(
new
MyCodeAction
(
string
.
Format
(
FeaturesResources
.
Generate_for_0
,
displayString
),
c
=>
GenerateComparisonOperatorsAsync
(
document
,
typeDeclaration
,
missingType
,
c
)));
c
=>
GenerateComparisonOperatorsAsync
(
document
,
typeDeclaration
,
missingType
,
c
),
nameof
(
FeaturesResources
.
Generate_for_0
)
+
"_"
+
displayString
));
}
context
.
RegisterRefactoring
(
new
CodeAction
.
CodeActionWithNestedActions
(
...
...
@@ -269,8 +271,8 @@ private static string GetOperatorName(CodeGenerationOperatorKind kind)
private
class
MyCodeAction
:
CodeAction
.
DocumentChangeAction
{
public
MyCodeAction
(
string
title
,
Func
<
CancellationToken
,
Task
<
Document
>>
createChangedDocument
)
:
base
(
title
,
createChangedDocument
)
public
MyCodeAction
(
string
title
,
Func
<
CancellationToken
,
Task
<
Document
>>
createChangedDocument
,
string
equivalenceKey
)
:
base
(
title
,
createChangedDocument
,
equivalenceKey
)
{
}
}
...
...
src/Features/Core/Portable/GenerateEqualsAndGetHashCodeFromMembers/GenerateEqualsAndGetHashCodeAction.cs
浏览文件 @
13541fdb
...
...
@@ -54,6 +54,8 @@ private partial class GenerateEqualsAndGetHashCodeAction : CodeAction
_generateOperators
=
generateOperators
;
}
public
override
string
EquivalenceKey
=>
Title
;
protected
override
async
Task
<
Document
>
GetChangedDocumentAsync
(
CancellationToken
cancellationToken
)
{
using
var
_
=
ArrayBuilder
<
IMethodSymbol
>.
GetInstance
(
out
var
methods
);
...
...
src/Features/Core/Portable/GenerateEqualsAndGetHashCodeFromMembers/GenerateEqualsAndHashWithDialogCodeAction.cs
浏览文件 @
13541fdb
...
...
@@ -51,6 +51,8 @@ private class GenerateEqualsAndGetHashCodeWithDialogCodeAction : CodeActionWithO
_generateGetHashCode
=
generateGetHashCode
;
}
public
override
string
EquivalenceKey
=>
Title
;
public
override
object
GetOptions
(
CancellationToken
cancellationToken
)
{
var
service
=
_service
.
_pickMembersService_forTestingPurposes
??
_document
.
Project
.
Solution
.
Workspace
.
Services
.
GetRequiredService
<
IPickMembersService
>();
...
...
src/Workspaces/CoreTestUtilities/Roslyn.Services.UnitTests.Utilities.csproj
浏览文件 @
13541fdb
...
...
@@ -23,8 +23,10 @@
</ItemGroup>
<ItemGroup>
<PackageReference
Include=
"Microsoft.CSharp"
Version=
"$(MicrosoftCSharpVersion)"
/>
<PackageReference
Include=
"Microsoft.CodeAnalysis.CSharp.Analyzer.Testing.XUnit"
Version=
"$(MicrosoftCodeAnalysisCSharpAnalyzerTestingXUnitVersion)"
/>
<PackageReference
Include=
"Microsoft.CodeAnalysis.CSharp.CodeFix.Testing.XUnit"
Version=
"$(MicrosoftCodeAnalysisCSharpCodeFixTestingXUnitVersion)"
/>
<PackageReference
Include=
"Microsoft.CodeAnalysis.CSharp.CodeRefactoring.Testing.XUnit"
Version=
"$(MicrosoftCodeAnalysisCSharpCodeRefactoringTestingXUnitVersion)"
/>
<PackageReference
Include=
"Microsoft.CodeAnalysis.VisualBasic.Analyzer.Testing.XUnit"
Version=
"$(MicrosoftCodeAnalysisVisualBasicAnalyzerTestingXUnitVersion)"
/>
<PackageReference
Include=
"Microsoft.CodeAnalysis.VisualBasic.CodeFix.Testing.XUnit"
Version=
"$(MicrosoftCodeAnalysisVisualBasicCodeFixTestingXUnitVersion)"
/>
<PackageReference
Include=
"Microsoft.CodeAnalysis.VisualBasic.CodeRefactoring.Testing.XUnit"
Version=
"$(MicrosoftCodeAnalysisVisualBasicCodeRefactoringTestingXUnitVersion)"
/>
<PackageReference
Include=
"Microsoft.VisualStudio.Composition"
Version=
"$(MicrosoftVisualStudioCompositionVersion)"
/>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录