Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
3f64d24b
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,发现更多精彩内容 >>
提交
3f64d24b
编写于
6月 28, 2019
作者:
C
Cyrus Najmabadi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use switch expression
上级
cf37a695
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
42 addition
and
75 deletion
+42
-75
src/Features/CSharp/Portable/ExtractMethod/CSharpSelectionResult.StatementResult.cs
...le/ExtractMethod/CSharpSelectionResult.StatementResult.cs
+8
-9
src/VisualStudio/Core/Impl/CodeModel/MethodXml/AbstractMethodXmlBuilder.cs
...Core/Impl/CodeModel/MethodXml/AbstractMethodXmlBuilder.cs
+5
-10
src/Workspaces/CSharp/Portable/CodeGeneration/CSharpSyntaxGenerator.cs
...s/CSharp/Portable/CodeGeneration/CSharpSyntaxGenerator.cs
+19
-37
src/Workspaces/CSharp/Portable/Indentation/CSharpIndentationService.Indenter.cs
...Portable/Indentation/CSharpIndentationService.Indenter.cs
+10
-19
未找到文件。
src/Features/CSharp/Portable/ExtractMethod/CSharpSelectionResult.StatementResult.cs
浏览文件 @
3f64d24b
...
...
@@ -30,17 +30,16 @@ private class StatementResult : CSharpSelectionResult
public
override
bool
ContainingScopeHasAsyncKeyword
()
{
var
node
=
this
.
GetContainingScope
();
var
semanticModel
=
this
.
SemanticDocument
.
SemanticModel
;
switch
(
node
)
return
node
switch
{
case
AccessorDeclarationSyntax
access
:
return
false
;
case
MethodDeclarationSyntax
method
:
return
method
.
Modifiers
.
Any
(
SyntaxKind
.
AsyncKeyword
);
case
ParenthesizedLambdaExpressionSyntax
lambda
:
return
lambda
.
AsyncKeyword
.
Kind
()
==
SyntaxKind
.
AsyncKeyword
;
case
SimpleLambdaExpressionSyntax
lambda
:
return
lambda
.
AsyncKeyword
.
Kind
()
==
SyntaxKind
.
AsyncKeyword
;
case
AnonymousMethodExpressionSyntax
anonymous
:
return
anonymous
.
AsyncKeyword
.
Kind
()
==
SyntaxKind
.
AsyncKeyword
;
default
:
return
false
;
}
AccessorDeclarationSyntax
access
=>
false
,
MethodDeclarationSyntax
method
=>
method
.
Modifiers
.
Any
(
SyntaxKind
.
AsyncKeyword
),
ParenthesizedLambdaExpressionSyntax
lambda
=>
lambda
.
AsyncKeyword
.
Kind
()
==
SyntaxKind
.
AsyncKeyword
,
SimpleLambdaExpressionSyntax
lambda
=>
lambda
.
AsyncKeyword
.
Kind
()
==
SyntaxKind
.
AsyncKeyword
,
AnonymousMethodExpressionSyntax
anonymous
=>
anonymous
.
AsyncKeyword
.
Kind
()
==
SyntaxKind
.
AsyncKeyword
,
_
=>
false
,
}
;
}
public
override
SyntaxNode
GetContainingScope
()
...
...
src/VisualStudio/Core/Impl/CodeModel/MethodXml/AbstractMethodXmlBuilder.cs
浏览文件 @
3f64d24b
...
...
@@ -221,17 +221,12 @@ private AttributeInfo RankAttribute(int rank)
}
private
AttributeInfo
SpecialCastKindAttribute
(
SpecialCastKind
?
specialCastKind
=
null
)
{
switch
(
specialCastKind
)
=>
specialCastKind
switch
{
case
SpecialCastKind
.
DirectCast
:
return
new
AttributeInfo
(
DirectCastAttributeName
,
"yes"
);
case
SpecialCastKind
.
TryCast
:
return
new
AttributeInfo
(
TryCastAttributeName
,
"yes"
);
default
:
return
AttributeInfo
.
Empty
;
}
}
SpecialCastKind
.
DirectCast
=>
new
AttributeInfo
(
DirectCastAttributeName
,
"yes"
),
SpecialCastKind
.
TryCast
=>
new
AttributeInfo
(
TryCastAttributeName
,
"yes"
),
_
=>
AttributeInfo
.
Empty
,
};
private
AttributeInfo
TypeAttribute
(
string
typeName
)
{
...
...
src/Workspaces/CSharp/Portable/CodeGeneration/CSharpSyntaxGenerator.cs
浏览文件 @
3f64d24b
...
...
@@ -3741,43 +3741,25 @@ public override SyntaxNode TypeExpression(ITypeSymbol typeSymbol)
}
public
override
SyntaxNode
TypeExpression
(
SpecialType
specialType
)
{
switch
(
specialType
)
{
case
SpecialType
.
System_Boolean
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
BoolKeyword
));
case
SpecialType
.
System_Byte
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
ByteKeyword
));
case
SpecialType
.
System_Char
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
CharKeyword
));
case
SpecialType
.
System_Decimal
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
DecimalKeyword
));
case
SpecialType
.
System_Double
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
DoubleKeyword
));
case
SpecialType
.
System_Int16
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
ShortKeyword
));
case
SpecialType
.
System_Int32
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
IntKeyword
));
case
SpecialType
.
System_Int64
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
LongKeyword
));
case
SpecialType
.
System_Object
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
ObjectKeyword
));
case
SpecialType
.
System_SByte
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
SByteKeyword
));
case
SpecialType
.
System_Single
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
FloatKeyword
));
case
SpecialType
.
System_String
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
StringKeyword
));
case
SpecialType
.
System_UInt16
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
UShortKeyword
));
case
SpecialType
.
System_UInt32
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
UIntKeyword
));
case
SpecialType
.
System_UInt64
:
return
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
ULongKeyword
));
default
:
throw
new
NotSupportedException
(
"Unsupported SpecialType"
);
}
}
=>
specialType
switch
{
SpecialType
.
System_Boolean
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
BoolKeyword
)),
SpecialType
.
System_Byte
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
ByteKeyword
)),
SpecialType
.
System_Char
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
CharKeyword
)),
SpecialType
.
System_Decimal
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
DecimalKeyword
)),
SpecialType
.
System_Double
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
DoubleKeyword
)),
SpecialType
.
System_Int16
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
ShortKeyword
)),
SpecialType
.
System_Int32
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
IntKeyword
)),
SpecialType
.
System_Int64
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
LongKeyword
)),
SpecialType
.
System_Object
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
ObjectKeyword
)),
SpecialType
.
System_SByte
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
SByteKeyword
)),
SpecialType
.
System_Single
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
FloatKeyword
)),
SpecialType
.
System_String
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
StringKeyword
)),
SpecialType
.
System_UInt16
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
UShortKeyword
)),
SpecialType
.
System_UInt32
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
UIntKeyword
)),
SpecialType
.
System_UInt64
=>
SyntaxFactory
.
PredefinedType
(
SyntaxFactory
.
Token
(
SyntaxKind
.
ULongKeyword
)),
_
=>
throw
new
NotSupportedException
(
"Unsupported SpecialType"
),
};
public
override
SyntaxNode
ArrayTypeExpression
(
SyntaxNode
type
)
{
...
...
src/Workspaces/CSharp/Portable/Indentation/CSharpIndentationService.Indenter.cs
浏览文件 @
3f64d24b
...
...
@@ -265,26 +265,17 @@ private IndentationResult GetIndentationBasedOnToken(SyntaxToken token)
}
private
IndentationResult
GetIndentationFromCommaSeparatedList
(
SyntaxToken
token
)
{
var
node
=
token
.
Parent
;
switch
(
node
)
=>
token
.
Parent
switch
{
case
BaseArgumentListSyntax
argument
:
return
GetIndentationFromCommaSeparatedList
(
argument
.
Arguments
,
token
);
case
BaseParameterListSyntax
parameter
:
return
GetIndentationFromCommaSeparatedList
(
parameter
.
Parameters
,
token
);
case
TypeArgumentListSyntax
typeArgument
:
return
GetIndentationFromCommaSeparatedList
(
typeArgument
.
Arguments
,
token
);
case
TypeParameterListSyntax
typeParameter
:
return
GetIndentationFromCommaSeparatedList
(
typeParameter
.
Parameters
,
token
);
case
EnumDeclarationSyntax
enumDeclaration
:
return
GetIndentationFromCommaSeparatedList
(
enumDeclaration
.
Members
,
token
);
case
InitializerExpressionSyntax
initializerSyntax
:
return
GetIndentationFromCommaSeparatedList
(
initializerSyntax
.
Expressions
,
token
);
}
return
GetDefaultIndentationFromToken
(
token
);
}
BaseArgumentListSyntax
argument
=>
GetIndentationFromCommaSeparatedList
(
argument
.
Arguments
,
token
),
BaseParameterListSyntax
parameter
=>
GetIndentationFromCommaSeparatedList
(
parameter
.
Parameters
,
token
),
TypeArgumentListSyntax
typeArgument
=>
GetIndentationFromCommaSeparatedList
(
typeArgument
.
Arguments
,
token
),
TypeParameterListSyntax
typeParameter
=>
GetIndentationFromCommaSeparatedList
(
typeParameter
.
Parameters
,
token
),
EnumDeclarationSyntax
enumDeclaration
=>
GetIndentationFromCommaSeparatedList
(
enumDeclaration
.
Members
,
token
),
InitializerExpressionSyntax
initializerSyntax
=>
GetIndentationFromCommaSeparatedList
(
initializerSyntax
.
Expressions
,
token
),
_
=>
GetDefaultIndentationFromToken
(
token
),
};
private
IndentationResult
GetIndentationFromCommaSeparatedList
<
T
>(
SeparatedSyntaxList
<
T
>
list
,
SyntaxToken
token
)
where
T
:
SyntaxNode
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录