Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
31fa7894
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,发现更多精彩内容 >>
未验证
提交
31fa7894
编写于
4月 04, 2018
作者:
J
Julien Couvreur
提交者:
GitHub
4月 04, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
IntroduceLocal on simple names (#25856)
上级
3fd383e5
变更
15
显示空白变更内容
内联
并排
Showing
15 changed file
with
259 addition
and
17 deletion
+259
-17
src/EditorFeatures/CSharpTest/CodeActions/IntroduceVariable/IntroduceVariableTests.cs
...t/CodeActions/IntroduceVariable/IntroduceVariableTests.cs
+167
-0
src/EditorFeatures/VisualBasicTest/CodeActions/IntroduceVariable/IntroduceVariableTests.vb
...t/CodeActions/IntroduceVariable/IntroduceVariableTests.vb
+66
-0
src/Features/CSharp/Portable/IntroduceVariable/CSharpIntroduceVariableService.cs
...table/IntroduceVariable/CSharpIntroduceVariableService.cs
+1
-1
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.AbstractIntroduceVariableCodeAction.cs
...uceVariableService.AbstractIntroduceVariableCodeAction.cs
+1
-1
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.CodeAction.cs
...ceVariable/AbstractIntroduceVariableService.CodeAction.cs
+1
-1
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.IntroduceVariableAllOccurrenceCodeAction.cs
...riableService.IntroduceVariableAllOccurrenceCodeAction.cs
+1
-1
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.State.cs
...troduceVariable/AbstractIntroduceVariableService.State.cs
+11
-3
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.State_Attribute.cs
...iable/AbstractIntroduceVariableService.State_Attribute.cs
+1
-1
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.State_Block.cs
...eVariable/AbstractIntroduceVariableService.State_Block.cs
+1
-1
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.State_ConstructorInitializer.cs
...tIntroduceVariableService.State_ConstructorInitializer.cs
+1
-1
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.State_Field.cs
...eVariable/AbstractIntroduceVariableService.State_Field.cs
+1
-1
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.State_Parameter.cs
...iable/AbstractIntroduceVariableService.State_Parameter.cs
+1
-1
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.State_Query.cs
...eVariable/AbstractIntroduceVariableService.State_Query.cs
+1
-1
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.cs
...ble/IntroduceVariable/AbstractIntroduceVariableService.cs
+3
-2
src/Features/VisualBasic/Portable/IntroduceVariable/VisualBasicIntroduceVariableService.vb
.../IntroduceVariable/VisualBasicIntroduceVariableService.vb
+2
-2
未找到文件。
src/EditorFeatures/CSharpTest/CodeActions/IntroduceVariable/IntroduceVariableTests.cs
浏览文件 @
31fa7894
...
...
@@ -4616,6 +4616,173 @@ void M()
}"
);
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)]
[
WorkItem
(
10123
,
"https://github.com/dotnet/roslyn/issues/10123"
)]
public
async
Task
TestSimpleParameterName
()
{
await
TestInRegularAndScriptAsync
(
@"
class C
{
void M(int a)
{
System.Console.Write([|a|]);
}
}"
,
@"
class C
{
void M(int a)
{
int {|Rename:a1|} = a;
System.Console.Write(a1);
}
}"
);
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)]
[
WorkItem
(
10123
,
"https://github.com/dotnet/roslyn/issues/10123"
)]
public
async
Task
TestSimpleParamterName_EmptySelection
()
{
await
TestMissingAsync
(
@"class C
{
void M(int a)
{
System.Console.Write([||]a);
}
}"
);
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)]
[
WorkItem
(
10123
,
"https://github.com/dotnet/roslyn/issues/10123"
)]
public
async
Task
TestSimpleParamterName_SmallSelection
()
{
await
TestMissingAsync
(
@"class C
{
void M(int parameter)
{
System.Console.Write([|par|]ameter);
}
}"
);
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)]
[
WorkItem
(
10123
,
"https://github.com/dotnet/roslyn/issues/10123"
)]
public
async
Task
TestFieldName_QualifiedWithThis
()
{
await
TestInRegularAndScriptAsync
(
@"
class C
{
int a;
void M()
{
System.Console.Write([|this.a|]);
}
}"
,
@"
class C
{
int a;
void M()
{
int {|Rename:a1|} = this.a;
System.Console.Write(a1);
}
}"
);
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)]
[
WorkItem
(
10123
,
"https://github.com/dotnet/roslyn/issues/10123"
)]
public
async
Task
TestFieldName_QualifiedWithType
()
{
await
TestInRegularAndScriptAsync
(
@"
class C
{
static int a;
void M()
{
System.Console.Write([|C.a|]);
}
}"
,
@"
class C
{
static int a;
void M()
{
int {|Rename:a1|} = C.a;
System.Console.Write(a1);
}
}"
);
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)]
[
WorkItem
(
10123
,
"https://github.com/dotnet/roslyn/issues/10123"
)]
public
async
Task
TestFieldName_QualifiedWithType_TinySelection1
()
{
await
TestMissingAsync
(
@"
class C
{
static int a;
void M()
{
System.Console.Write(C[|.|]a);
}
}"
);
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)]
[
WorkItem
(
10123
,
"https://github.com/dotnet/roslyn/issues/10123"
)]
public
async
Task
TestFieldName_QualifiedWithType_TinySelection2
()
{
await
TestMissingAsync
(
@"
class C
{
static int a;
void M()
{
System.Console.Write([|C.|]a);
}
}"
);
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)]
[
WorkItem
(
10123
,
"https://github.com/dotnet/roslyn/issues/10123"
)]
public
async
Task
TestFieldName_QualifiedWithType_TinySelection3
()
{
await
TestMissingAsync
(
@"
class C
{
static int a;
void M()
{
System.Console.Write(C.[|a|]);
}
}"
);
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)]
[
WorkItem
(
10123
,
"https://github.com/dotnet/roslyn/issues/10123"
)]
public
async
Task
TestFieldName_QualifiedWithType_EmptySelection
()
{
await
TestMissingAsync
(
@"class C
{
static int a;
void M()
{
System.Console.Write(C.[||]a);
}
}"
);
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)]
public
async
Task
TestIntroduceLocalInCallRefExpression
()
{
...
...
src/EditorFeatures/VisualBasicTest/CodeActions/IntroduceVariable/IntroduceVariableTests.vb
浏览文件 @
31fa7894
...
...
@@ -2953,6 +2953,72 @@ structure TextSpan
end structure"
)
End
Function
<
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)
>
<
WorkItem
(
10123
,
"https://github.com/dotnet/roslyn/issues/10123"
)
>
Public
Async
Function
TestSimpleParameterName
()
As
Task
Dim
source
=
"Module Program
Sub Main(x As Integer)
Goo([|x|])
End Sub
End Module"
Dim
expected
=
"Module Program
Sub Main(x As Integer)
Dim {|Rename:x1|} As Integer = x
Goo(x1)
End Sub
End Module"
Await
TestInRegularAndScriptAsync
(
source
,
expected
)
End
Function
<
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)
>
<
WorkItem
(
10123
,
"https://github.com/dotnet/roslyn/issues/10123"
)
>
Public
Async
Function
TestSimpleParameterName_EmptySelection
()
As
Task
Dim
source
=
"Module Program
Sub Main(x As Integer)
Goo([||]x)
End Sub
End Module"
Await
TestMissingAsync
(
source
)
End
Function
<
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)
>
<
WorkItem
(
10123
,
"https://github.com/dotnet/roslyn/issues/10123"
)
>
Public
Async
Function
TestFieldName_QualifiedWithMe
()
As
Task
Dim
source
=
"Module Program
Dim x As Integer
Sub Main()
Goo([|x|])
End Sub
End Module"
Dim
expected
=
"Module Program
Dim x As Integer
Sub Main()
Dim {|Rename:x1|} As Integer = x
Goo(x1)
End Sub
End Module"
Await
TestInRegularAndScriptAsync
(
source
,
expected
)
End
Function
<
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)
>
<
WorkItem
(
10123
,
"https://github.com/dotnet/roslyn/issues/10123"
)
>
Public
Async
Function
TestFieldName_QualifiedWithType
()
As
Task
Dim
source
=
"Module Program
Shared Dim x As Integer
Sub Main()
Goo([|Program.x|])
End Sub
End Module"
Dim
expected
=
"Module Program
Shared Dim x As Integer
Sub Main()
Dim {|Rename:x1|} As Integer = Program.x
Goo(x1)
End Sub
End Module"
Await
TestInRegularAndScriptAsync
(
source
,
expected
)
End
Function
<
WorkItem
(
21373
,
"https://github.com/dotnet/roslyn/issues/21373"
)
>
<
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
CodeActionsIntroduceVariable
)
>
Public
Async
Function
TestInAttribute
()
As
Task
...
...
src/Features/CSharp/Portable/IntroduceVariable/CSharpIntroduceVariableService.cs
浏览文件 @
31fa7894
...
...
@@ -16,7 +16,7 @@ namespace Microsoft.CodeAnalysis.CSharp.IntroduceVariable
{
[
ExportLanguageService
(
typeof
(
IIntroduceVariableService
),
LanguageNames
.
CSharp
),
Shared
]
internal
partial
class
CSharpIntroduceVariableService
:
AbstractIntroduceVariableService
<
CSharpIntroduceVariableService
,
ExpressionSyntax
,
TypeSyntax
,
TypeDeclarationSyntax
,
QueryExpressionSyntax
>
AbstractIntroduceVariableService
<
CSharpIntroduceVariableService
,
ExpressionSyntax
,
TypeSyntax
,
TypeDeclarationSyntax
,
QueryExpressionSyntax
,
NameSyntax
>
{
protected
override
bool
IsInNonFirstQueryClause
(
ExpressionSyntax
expression
)
{
...
...
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.AbstractIntroduceVariableCodeAction.cs
浏览文件 @
31fa7894
...
...
@@ -9,7 +9,7 @@
namespace
Microsoft.CodeAnalysis.IntroduceVariable
{
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
>
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
,
TNameSyntax
>
{
internal
abstract
class
AbstractIntroduceVariableCodeAction
:
CodeAction
{
...
...
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.CodeAction.cs
浏览文件 @
31fa7894
...
...
@@ -3,7 +3,7 @@
namespace
Microsoft.CodeAnalysis.IntroduceVariable
{
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
>
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
,
TNameSyntax
>
{
private
class
IntroduceVariableCodeAction
:
AbstractIntroduceVariableCodeAction
{
...
...
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.IntroduceVariableAllOccurrenceCodeAction.cs
浏览文件 @
31fa7894
...
...
@@ -8,7 +8,7 @@
namespace
Microsoft.CodeAnalysis.IntroduceVariable
{
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
>
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
,
TNameSyntax
>
{
private
class
IntroduceVariableAllOccurrenceCodeAction
:
AbstractIntroduceVariableCodeAction
{
...
...
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.State.cs
浏览文件 @
31fa7894
...
...
@@ -10,7 +10,7 @@
namespace
Microsoft.CodeAnalysis.IntroduceVariable
{
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
>
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
,
TNameSyntax
>
{
private
partial
class
State
{
...
...
@@ -82,7 +82,7 @@ public State(TService service, SemanticDocument document)
return
false
;
}
if
(!
CanIntroduceVariable
(
cancellationToken
))
if
(!
CanIntroduceVariable
(
textSpan
.
IsEmpty
,
cancellationToken
))
{
return
false
;
}
...
...
@@ -229,6 +229,7 @@ private TExpressionSyntax GetExpressionUnderSpan(SyntaxTree tree, TextSpan textS
}
private
bool
CanIntroduceVariable
(
bool
isSpanEmpty
,
CancellationToken
cancellationToken
)
{
if
(!
_service
.
CanIntroduceVariableFor
(
this
.
Expression
))
...
...
@@ -236,8 +237,15 @@ private TExpressionSyntax GetExpressionUnderSpan(SyntaxTree tree, TextSpan textS
return
false
;
}
if
(
this
.
Expression
is
TTyp
eSyntax
)
if
(
isSpanEmpty
&&
this
.
Expression
is
TNam
eSyntax
)
{
// to extract a name, you must have a selection (this avoids making the refactoring too noisy)
return
false
;
}
if
(
this
.
Expression
is
TTypeSyntax
&&
!(
this
.
Expression
is
TNameSyntax
))
{
// name syntax can introduce variables, but not other type syntaxes
return
false
;
}
...
...
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.State_Attribute.cs
浏览文件 @
31fa7894
...
...
@@ -4,7 +4,7 @@
namespace
Microsoft.CodeAnalysis.IntroduceVariable
{
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
>
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
,
TNameSyntax
>
{
private
partial
class
State
{
...
...
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.State_Block.cs
浏览文件 @
31fa7894
...
...
@@ -6,7 +6,7 @@
namespace
Microsoft.CodeAnalysis.IntroduceVariable
{
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
>
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
,
TNameSyntax
>
{
private
partial
class
State
{
...
...
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.State_ConstructorInitializer.cs
浏览文件 @
31fa7894
...
...
@@ -7,7 +7,7 @@
namespace
Microsoft.CodeAnalysis.IntroduceVariable
{
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
>
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
,
TNameSyntax
>
{
private
partial
class
State
{
...
...
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.State_Field.cs
浏览文件 @
31fa7894
...
...
@@ -7,7 +7,7 @@
namespace
Microsoft.CodeAnalysis.IntroduceVariable
{
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
>
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
,
TNameSyntax
>
{
private
partial
class
State
{
...
...
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.State_Parameter.cs
浏览文件 @
31fa7894
...
...
@@ -6,7 +6,7 @@
namespace
Microsoft.CodeAnalysis.IntroduceVariable
{
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
>
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
,
TNameSyntax
>
{
private
partial
class
State
{
...
...
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.State_Query.cs
浏览文件 @
31fa7894
...
...
@@ -6,7 +6,7 @@
namespace
Microsoft.CodeAnalysis.IntroduceVariable
{
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
>
internal
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
,
TNameSyntax
>
{
private
partial
class
State
{
...
...
src/Features/Core/Portable/IntroduceVariable/AbstractIntroduceVariableService.cs
浏览文件 @
31fa7894
...
...
@@ -18,12 +18,13 @@
namespace
Microsoft.CodeAnalysis.IntroduceVariable
{
internal
abstract
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
>
:
IIntroduceVariableService
where
TService
:
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
>
internal
abstract
partial
class
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
,
TNameSyntax
>
:
IIntroduceVariableService
where
TService
:
AbstractIntroduceVariableService
<
TService
,
TExpressionSyntax
,
TTypeSyntax
,
TTypeDeclarationSyntax
,
TQueryExpressionSyntax
,
TNameSyntax
>
where
TExpressionSyntax
:
SyntaxNode
where
TTypeSyntax
:
TExpressionSyntax
where
TTypeDeclarationSyntax
:
SyntaxNode
where
TQueryExpressionSyntax
:
TExpressionSyntax
where
TNameSyntax
:
TTypeSyntax
{
protected
abstract
bool
IsInNonFirstQueryClause
(
TExpressionSyntax
expression
);
protected
abstract
bool
IsInFieldInitializer
(
TExpressionSyntax
expression
);
...
...
src/Features/VisualBasic/Portable/IntroduceVariable/VisualBasicIntroduceVariableService.vb
浏览文件 @
31fa7894
...
...
@@ -10,8 +10,8 @@ Imports System.Composition
Namespace
Microsoft.CodeAnalysis.VisualBasic.IntroduceVariable
<
ExportLanguageService
(
GetType
(
IIntroduceVariableService
),
LanguageNames
.
VisualBasic
),
[
Shared
]
>
Friend
Class
VisualBasicIntroduceVariableService
Inherits
AbstractIntroduceVariableService
(
Of
VisualBasicIntroduceVariableService
,
ExpressionSyntax
,
TypeSyntax
,
TypeBlockSyntax
,
QueryExpressionSyntax
)
Partial
Friend
Class
VisualBasicIntroduceVariableService
Inherits
AbstractIntroduceVariableService
(
Of
VisualBasicIntroduceVariableService
,
ExpressionSyntax
,
TypeSyntax
,
TypeBlockSyntax
,
QueryExpressionSyntax
,
NameSyntax
)
Protected
Overrides
Function
GetContainingExecutableBlocks
(
expression
As
ExpressionSyntax
)
As
IEnumerable
(
Of
SyntaxNode
)
Return
expression
.
GetContainingExecutableBlocks
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录