Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
bb9ac8a7
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,发现更多精彩内容 >>
提交
bb9ac8a7
编写于
10月 14, 2016
作者:
C
CyrusNajmabadi
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'upstream/master' into addPackageRollback
上级
2c297680
aa79b751
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
64 addition
and
12 deletion
+64
-12
src/Compilers/VisualBasic/Test/Emit/CodeGen/CodeGenTuples.vb
src/Compilers/VisualBasic/Test/Emit/CodeGen/CodeGenTuples.vb
+2
-4
src/VisualStudio/Core/Next/Remote/JsonRpcSession.cs
src/VisualStudio/Core/Next/Remote/JsonRpcSession.cs
+62
-8
未找到文件。
src/Compilers/VisualBasic/Test/Emit/CodeGen/CodeGenTuples.vb
浏览文件 @
bb9ac8a7
...
...
@@ -6689,7 +6689,7 @@ fourth]]>)
End Sub
<Fact(
Skip:="https://github.com/dotnet/roslyn/issues/13277"
)>
<Fact()>
<WorkItem(13277, "https://github.com/dotnet/roslyn/issues/13277")>
Public Sub CreateTupleTypeSymbol_UnderlyingTypeIsError()
...
...
@@ -6698,9 +6698,7 @@ fourth]]>)
Dim intType As TypeSymbol = comp.GetSpecialType(SpecialType.System_Int32)
Dim vt2 = comp.CreateErrorTypeSymbol(Nothing, "ValueTuple", 2).Construct(intType, intType)
Dim tuple = comp.CreateTupleTypeSymbol(vt2, Nothing)
' Crashes in IsTupleCompatible
Assert.Throws(Of ArgumentException)(Function() comp.CreateTupleTypeSymbol(underlyingType:=vt2))
End Sub
<Fact>
...
...
src/VisualStudio/Core/Next/Remote/JsonRpcSession.cs
浏览文件 @
bb9ac8a7
...
...
@@ -41,32 +41,86 @@ internal class JsonRpcSession : RemoteHostClient.Session
_cancellationRegistration
=
CancellationToken
.
Register
(
Dispose
);
}
public
override
Task
InvokeAsync
(
string
targetName
,
params
object
[]
arguments
)
public
override
async
Task
InvokeAsync
(
string
targetName
,
params
object
[]
arguments
)
{
CancellationToken
.
ThrowIfCancellationRequested
();
return
_serviceClient
.
InvokeAsync
(
targetName
,
arguments
.
Concat
(
PinnedScope
.
SolutionChecksum
.
ToArray
()).
ToArray
());
try
{
await
_serviceClient
.
InvokeAsync
(
targetName
,
arguments
.
Concat
(
PinnedScope
.
SolutionChecksum
.
ToArray
()).
ToArray
()).
ConfigureAwait
(
false
);
}
catch
(
ObjectDisposedException
)
{
// object disposed exception can be thrown from StreamJsonRpc if JsonRpc is disposed in the middle of read/write.
// the way we added cancellation support to the JsonRpc which doesn't support cancellation natively
// can cause this exception to happen. newer version supports cancellation token natively, but
// we can't use it now, so we will catch object disposed exception and check cancellation token
CancellationToken
.
ThrowIfCancellationRequested
();
throw
;
}
}
public
override
Task
<
T
>
InvokeAsync
<
T
>(
string
targetName
,
params
object
[]
arguments
)
public
override
async
Task
<
T
>
InvokeAsync
<
T
>(
string
targetName
,
params
object
[]
arguments
)
{
CancellationToken
.
ThrowIfCancellationRequested
();
return
_serviceClient
.
InvokeAsync
<
T
>(
targetName
,
arguments
.
Concat
(
PinnedScope
.
SolutionChecksum
.
ToArray
()).
ToArray
());
try
{
return
await
_serviceClient
.
InvokeAsync
<
T
>(
targetName
,
arguments
.
Concat
(
PinnedScope
.
SolutionChecksum
.
ToArray
()).
ToArray
()).
ConfigureAwait
(
false
);
}
catch
(
ObjectDisposedException
)
{
// object disposed exception can be thrown from StreamJsonRpc if JsonRpc is disposed in the middle of read/write.
// the way we added cancellation support to the JsonRpc which doesn't support cancellation natively
// can cause this exception to happen. newer version supports cancellation token natively, but
// we can't use it now, so we will catch object disposed exception and check cancellation token
CancellationToken
.
ThrowIfCancellationRequested
();
throw
;
}
}
public
override
Task
InvokeAsync
(
string
targetName
,
IEnumerable
<
object
>
arguments
,
Func
<
Stream
,
CancellationToken
,
Task
>
funcWithDirectStreamAsync
)
public
override
async
Task
InvokeAsync
(
string
targetName
,
IEnumerable
<
object
>
arguments
,
Func
<
Stream
,
CancellationToken
,
Task
>
funcWithDirectStreamAsync
)
{
CancellationToken
.
ThrowIfCancellationRequested
();
return
_serviceClient
.
InvokeAsync
(
targetName
,
arguments
.
Concat
(
PinnedScope
.
SolutionChecksum
.
ToArray
()).
ToArray
(),
funcWithDirectStreamAsync
,
CancellationToken
);
try
{
await
_serviceClient
.
InvokeAsync
(
targetName
,
arguments
.
Concat
(
PinnedScope
.
SolutionChecksum
.
ToArray
()).
ToArray
(),
funcWithDirectStreamAsync
,
CancellationToken
).
ConfigureAwait
(
false
);
}
catch
(
ObjectDisposedException
)
{
// object disposed exception can be thrown from StreamJsonRpc if JsonRpc is disposed in the middle of read/write.
// the way we added cancellation support to the JsonRpc which doesn't support cancellation natively
// can cause this exception to happen. newer version supports cancellation token natively, but
// we can't use it now, so we will catch object disposed exception and check cancellation token
CancellationToken
.
ThrowIfCancellationRequested
();
throw
;
}
}
public
override
Task
<
T
>
InvokeAsync
<
T
>(
string
targetName
,
IEnumerable
<
object
>
arguments
,
Func
<
Stream
,
CancellationToken
,
Task
<
T
>>
funcWithDirectStreamAsync
)
public
override
async
Task
<
T
>
InvokeAsync
<
T
>(
string
targetName
,
IEnumerable
<
object
>
arguments
,
Func
<
Stream
,
CancellationToken
,
Task
<
T
>>
funcWithDirectStreamAsync
)
{
CancellationToken
.
ThrowIfCancellationRequested
();
return
_serviceClient
.
InvokeAsync
<
T
>(
targetName
,
arguments
.
Concat
(
PinnedScope
.
SolutionChecksum
.
ToArray
()).
ToArray
(),
funcWithDirectStreamAsync
,
CancellationToken
);
try
{
return
await
_serviceClient
.
InvokeAsync
<
T
>(
targetName
,
arguments
.
Concat
(
PinnedScope
.
SolutionChecksum
.
ToArray
()).
ToArray
(),
funcWithDirectStreamAsync
,
CancellationToken
).
ConfigureAwait
(
false
);
}
catch
(
ObjectDisposedException
)
{
// object disposed exception can be thrown from StreamJsonRpc if JsonRpc is disposed in the middle of read/write.
// the way we added cancellation support to the JsonRpc which doesn't support cancellation natively
// can cause this exception to happen. newer version supports cancellation token natively, but
// we can't use it now, so we will catch object disposed exception and check cancellation token
CancellationToken
.
ThrowIfCancellationRequested
();
throw
;
}
}
protected
override
void
OnDisposed
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录