Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
83a550f2
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,发现更多精彩内容 >>
未验证
提交
83a550f2
编写于
5月 07, 2018
作者:
J
Julien Couvreur
提交者:
GitHub
5月 07, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
QuickInfo should display symbols with nullability information (#26652)
上级
5b24516b
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
64 addition
and
36 deletion
+64
-36
src/Compilers/CSharp/Portable/SymbolDisplay/SymbolDisplayVisitor.Types.cs
...harp/Portable/SymbolDisplay/SymbolDisplayVisitor.Types.cs
+2
-2
src/Compilers/CSharp/Portable/Symbols/Metadata/PE/ExternalAnnotations.cs
...Sharp/Portable/Symbols/Metadata/PE/ExternalAnnotations.cs
+2
-1
src/Compilers/CSharp/Portable/Symbols/Symbol.cs
src/Compilers/CSharp/Portable/Symbols/Symbol.cs
+2
-1
src/Compilers/CSharp/Portable/Symbols/SymbolWithAnnotations.cs
...ompilers/CSharp/Portable/Symbols/SymbolWithAnnotations.cs
+3
-3
src/Compilers/CSharp/Test/Semantic/Semantics/StaticNullChecking.cs
...lers/CSharp/Test/Semantic/Semantics/StaticNullChecking.cs
+2
-2
src/Compilers/CSharp/Test/Symbol/SymbolDisplay/SymbolDisplayTests.cs
...rs/CSharp/Test/Symbol/SymbolDisplay/SymbolDisplayTests.cs
+5
-6
src/Compilers/Core/Portable/PublicAPI.Unshipped.txt
src/Compilers/Core/Portable/PublicAPI.Unshipped.txt
+1
-0
src/Compilers/Core/Portable/SymbolDisplay/SymbolDisplayCompilerInternalOptions.cs
...ble/SymbolDisplay/SymbolDisplayCompilerInternalOptions.cs
+1
-7
src/Compilers/Core/Portable/SymbolDisplay/SymbolDisplayFormat.cs
...pilers/Core/Portable/SymbolDisplay/SymbolDisplayFormat.cs
+12
-12
src/Compilers/Core/Portable/SymbolDisplay/SymbolDisplayMiscellaneousOptions.cs
...rtable/SymbolDisplay/SymbolDisplayMiscellaneousOptions.cs
+6
-0
src/Compilers/Test/Utilities/CSharp/CSharpTestBase.cs
src/Compilers/Test/Utilities/CSharp/CSharpTestBase.cs
+2
-1
src/EditorFeatures/CSharpTest/QuickInfo/SemanticQuickInfoSourceTests.cs
...ures/CSharpTest/QuickInfo/SemanticQuickInfoSourceTests.cs
+24
-0
src/Features/Core/Portable/LanguageServices/SymbolDisplayService/AbstractSymbolDisplayService.AbstractSymbolDescriptionBuilder.cs
...tSymbolDisplayService.AbstractSymbolDescriptionBuilder.cs
+2
-1
未找到文件。
src/Compilers/CSharp/Portable/SymbolDisplay/SymbolDisplayVisitor.Types.cs
浏览文件 @
83a550f2
...
...
@@ -27,7 +27,7 @@ private void VisitTypeSymbolWithAnnotations(TypeSymbolWithAnnotations type, Abst
switch
(
isNullable
)
{
case
true
:
if
(!
typeSymbol
.
IsNullableType
()
&&
format
.
CompilerInternalOptions
.
IncludesOption
(
SymbolDisplayCompilerInternal
Options
.
IncludeNullableReferenceTypeModifier
))
if
(!
typeSymbol
.
IsNullableType
()
&&
format
.
MiscellaneousOptions
.
IncludesOption
(
SymbolDisplayMiscellaneous
Options
.
IncludeNullableReferenceTypeModifier
))
{
AddPunctuation
(
SyntaxKind
.
QuestionToken
);
}
...
...
@@ -102,7 +102,7 @@ private void VisitArrayType(IArrayTypeSymbol symbol, bool? isNullable)
switch
(
isNullable
)
{
case
true
:
if
(
format
.
CompilerInternalOptions
.
IncludesOption
(
SymbolDisplayCompilerInternal
Options
.
IncludeNullableReferenceTypeModifier
))
if
(
format
.
MiscellaneousOptions
.
IncludesOption
(
SymbolDisplayMiscellaneous
Options
.
IncludeNullableReferenceTypeModifier
))
{
AddPunctuation
(
SyntaxKind
.
QuestionToken
);
}
...
...
src/Compilers/CSharp/Portable/Symbols/Metadata/PE/ExternalAnnotations.cs
浏览文件 @
83a550f2
...
...
@@ -94,7 +94,8 @@ private static void Add(TypeSymbol type, StringBuilder builder)
type
.
ToDisplayString
(
SymbolDisplayFormat
.
CSharpErrorMessageFormat
.
RemoveMiscellaneousOptions
(
SymbolDisplayMiscellaneousOptions
.
UseSpecialTypes
)
.
AddMiscellaneousOptions
(
SymbolDisplayMiscellaneousOptions
.
IncludeNullableReferenceTypeModifier
)
// displaying tuple syntax causes to load the members of ValueTuple, which can cause a cycle, so we use long-hand format instead
.
WithCompilerInternalOptions
(
SymbolDisplayCompilerInternalOptions
.
IncludeNullableReferenceTypeModifier
|
SymbolDisplayCompilerInternalOptions
.
UseValueTuple
)));
.
WithCompilerInternalOptions
(
SymbolDisplayCompilerInternalOptions
.
UseValueTuple
)));
}
}
src/Compilers/CSharp/Portable/Symbols/Symbol.cs
浏览文件 @
83a550f2
...
...
@@ -752,7 +752,8 @@ public virtual string GetDocumentationCommentId()
}
private
static
readonly
SymbolDisplayFormat
s_debuggerDisplayFormat
=
SymbolDisplayFormat
.
TestFormat
.
WithCompilerInternalOptions
(
SymbolDisplayCompilerInternalOptions
.
IncludeNonNullableTypeModifier
|
SymbolDisplayCompilerInternalOptions
.
IncludeNullableReferenceTypeModifier
);
SymbolDisplayFormat
.
TestFormat
.
WithCompilerInternalOptions
(
SymbolDisplayCompilerInternalOptions
.
IncludeNonNullableTypeModifier
)
.
AddMiscellaneousOptions
(
SymbolDisplayMiscellaneousOptions
.
IncludeNullableReferenceTypeModifier
);
internal
string
GetDebuggerDisplay
()
{
...
...
src/Compilers/CSharp/Portable/Symbols/SymbolWithAnnotations.cs
浏览文件 @
83a550f2
...
...
@@ -176,8 +176,8 @@ internal abstract class TypeSymbolWithAnnotations : NamespaceOrTypeSymbolWithAnn
internal
static
readonly
SymbolDisplayFormat
DebuggerDisplayFormat
=
new
SymbolDisplayFormat
(
typeQualificationStyle
:
SymbolDisplayTypeQualificationStyle
.
NameAndContainingTypesAndNamespaces
,
genericsOptions
:
SymbolDisplayGenericsOptions
.
IncludeTypeParameters
,
miscellaneousOptions
:
SymbolDisplayMiscellaneousOptions
.
UseSpecialTypes
,
compilerInternalOptions
:
SymbolDisplayCompilerInternalOptions
.
IncludeNonNullableTypeModifier
|
SymbolDisplayCompilerInternalOptions
.
IncludeNullableReferenceTypeModifier
);
miscellaneousOptions
:
SymbolDisplayMiscellaneousOptions
.
UseSpecialTypes
|
SymbolDisplayMiscellaneousOptions
.
IncludeNullableReferenceTypeModifier
,
compilerInternalOptions
:
SymbolDisplayCompilerInternalOptions
.
IncludeNonNullableTypeModifier
);
internal
static
TypeSymbolWithAnnotations
Create
(
CSharpCompilation
compilation
,
TypeSymbol
typeSymbol
)
{
...
...
@@ -660,7 +660,7 @@ public override string ToDisplayString(SymbolDisplayFormat format)
switch
(
_isNullable
)
{
case
true
:
if
((
format
.
CompilerInternalOptions
&
SymbolDisplayCompilerInternal
Options
.
IncludeNullableReferenceTypeModifier
)
!=
0
)
if
((
format
.
MiscellaneousOptions
&
SymbolDisplayMiscellaneous
Options
.
IncludeNullableReferenceTypeModifier
)
!=
0
)
{
return
str
+
"?"
;
}
...
...
src/Compilers/CSharp/Test/Semantic/Semantics/StaticNullChecking.cs
浏览文件 @
83a550f2
...
...
@@ -12875,7 +12875,7 @@ class F : C<F?>, I1<C<B?>>, I2<C<B>?>
Assert.Equal("String? D1()", compilation.GetTypeByMetadataName("D1")
.ToDisplayString(new SymbolDisplayFormat(delegateStyle: SymbolDisplayDelegateStyle.NameAndSignature,
compilerInternalOptions: SymbolDisplayCompilerInternal
Options.IncludeNullableReferenceTypeModifier)));
miscellaneousOptions: SymbolDisplayMiscellaneous
Options.IncludeNullableReferenceTypeModifier)));
var f = compilation.GetTypeByMetadataName("F");
Assert.Equal("C<F?>", f.BaseType().ToTestDisplayString());
...
...
@@ -12963,7 +12963,7 @@ public class F : C<F?>, I1<C<B?>>, I2<C<B>?>
Assert.Equal("String? D1()", compilation.GetTypeByMetadataName("D1")
.ToDisplayString(new SymbolDisplayFormat(delegateStyle: SymbolDisplayDelegateStyle.NameAndSignature,
compilerInternalOptions: SymbolDisplayCompilerInternal
Options.IncludeNullableReferenceTypeModifier)));
miscellaneousOptions: SymbolDisplayMiscellaneous
Options.IncludeNullableReferenceTypeModifier)));
var f = ((PEModuleSymbol)m).GlobalNamespace.GetTypeMember("F");
Assert.Equal("C<F?>", f.BaseType().ToTestDisplayString());
...
...
src/Compilers/CSharp/Test/Symbol/SymbolDisplay/SymbolDisplayTests.cs
浏览文件 @
83a550f2
...
...
@@ -5841,11 +5841,11 @@ class B
memberOptions
:
SymbolDisplayMemberOptions
.
IncludeParameters
|
SymbolDisplayMemberOptions
.
IncludeType
|
SymbolDisplayMemberOptions
.
IncludeModifiers
,
parameterOptions
:
SymbolDisplayParameterOptions
.
IncludeType
|
SymbolDisplayParameterOptions
.
IncludeName
|
SymbolDisplayParameterOptions
.
IncludeParamsRefOut
,
genericsOptions
:
SymbolDisplayGenericsOptions
.
IncludeTypeParameters
,
compilerInternalOptions
:
SymbolDisplayCompilerInternalOptions
.
IncludeNullableReferenceTypeModifier
,
miscellaneousOptions
:
SymbolDisplayMiscellaneousOptions
.
UseSpecialTypes
);
miscellaneousOptions
:
SymbolDisplayMiscellaneousOptions
.
UseSpecialTypes
|
SymbolDisplayMiscellaneousOptions
.
IncludeNullableReferenceTypeModifier
);
var
formatWithNonNullableModifier
=
formatWithoutNonNullableModifier
.
WithCompilerInternalOptions
(
SymbolDisplayCompilerInternalOptions
.
IncludeNonNullableTypeModifier
|
SymbolDisplayCompilerInternalOptions
.
IncludeNullableReferenceTypeModifier
);
var
formatWithNonNullableModifier
=
formatWithoutNonNullableModifier
.
WithCompilerInternalOptions
(
SymbolDisplayCompilerInternalOptions
.
IncludeNonNullableTypeModifier
)
.
AddMiscellaneousOptions
(
SymbolDisplayMiscellaneousOptions
.
IncludeNullableReferenceTypeModifier
);
var
method
=
comp
.
GetMember
<
MethodSymbol
>(
"B.F1"
);
Verify
(
...
...
@@ -5916,8 +5916,7 @@ class B
miscellaneousOptions
:
SymbolDisplayMiscellaneousOptions
.
UseSpecialTypes
);
var
formatWithNullableModifier
=
formatWithoutNullableModifier
.
WithCompilerInternalOptions
(
SymbolDisplayCompilerInternalOptions
.
IncludeNullableReferenceTypeModifier
);
.
AddMiscellaneousOptions
(
SymbolDisplayMiscellaneousOptions
.
IncludeNullableReferenceTypeModifier
);
var
method
=
comp
.
GetMember
<
MethodSymbol
>(
"B.F1"
);
Verify
(
...
...
src/Compilers/Core/Portable/PublicAPI.Unshipped.txt
浏览文件 @
83a550f2
...
...
@@ -34,6 +34,7 @@ Microsoft.CodeAnalysis.Operations.ITupleBinaryOperation.OperatorKind.get -> Micr
Microsoft.CodeAnalysis.Operations.ITupleBinaryOperation.RightOperand.get -> Microsoft.CodeAnalysis.IOperation
Microsoft.CodeAnalysis.Operations.ITupleOperation.NaturalType.get -> Microsoft.CodeAnalysis.ITypeSymbol
Microsoft.CodeAnalysis.Platform.Arm64 = 6 -> Microsoft.CodeAnalysis.Platform
Microsoft.CodeAnalysis.SymbolDisplayMiscellaneousOptions.IncludeNullableReferenceTypeModifier = 64 -> Microsoft.CodeAnalysis.SymbolDisplayMiscellaneousOptions
abstract Microsoft.CodeAnalysis.DataFlowAnalysis.CapturedInside.get -> System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.ISymbol>
abstract Microsoft.CodeAnalysis.DataFlowAnalysis.CapturedOutside.get -> System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.ISymbol>
const Microsoft.CodeAnalysis.WellKnownMemberNames.DeconstructMethodName = "Deconstruct" -> string
...
...
src/Compilers/Core/Portable/SymbolDisplay/SymbolDisplayCompilerInternalOptions.cs
浏览文件 @
83a550f2
...
...
@@ -55,15 +55,9 @@ internal enum SymbolDisplayCompilerInternalOptions
/// </summary>
IncludeNonNullableTypeModifier
=
1
<<
6
,
/// <summary>
/// Append '?' to nullable reference types.
/// PROTOTYPE(NullableReferenceTypes): review design for this option before shipping. See https://github.com/dotnet/roslyn/issues/26198
/// </summary>
IncludeNullableReferenceTypeModifier
=
1
<<
7
,
/// <summary>
/// Display `System.ValueTuple` instead of tuple syntax `(...)`.
/// </summary>
UseValueTuple
=
1
<<
8
,
UseValueTuple
=
1
<<
7
,
}
}
src/Compilers/Core/Portable/SymbolDisplay/SymbolDisplayFormat.cs
浏览文件 @
83a550f2
...
...
@@ -25,14 +25,14 @@ public class SymbolDisplayFormat
parameterOptions
:
SymbolDisplayParameterOptions
.
IncludeParamsRefOut
|
SymbolDisplayParameterOptions
.
IncludeType
,
compilerInternalOptions
:
SymbolDisplayCompilerInternalOptions
.
IncludeNullableReferenceTypeModifier
,
// Not showing the name is important because we visit parameters to display their
// types. If we visited their types directly, we wouldn't get ref/out/params.
miscellaneousOptions
:
SymbolDisplayMiscellaneousOptions
.
EscapeKeywordIdentifiers
|
SymbolDisplayMiscellaneousOptions
.
UseSpecialTypes
|
SymbolDisplayMiscellaneousOptions
.
UseAsterisksInMultiDimensionalArrays
|
SymbolDisplayMiscellaneousOptions
.
UseErrorTypeSymbolName
);
SymbolDisplayMiscellaneousOptions
.
UseErrorTypeSymbolName
|
SymbolDisplayMiscellaneousOptions
.
IncludeNullableReferenceTypeModifier
);
/// <summary>
/// Formats a symbol description as in a C# compiler short error message.
...
...
@@ -50,14 +50,14 @@ public class SymbolDisplayFormat
parameterOptions
:
SymbolDisplayParameterOptions
.
IncludeParamsRefOut
|
SymbolDisplayParameterOptions
.
IncludeType
,
compilerInternalOptions
:
SymbolDisplayCompilerInternalOptions
.
IncludeNullableReferenceTypeModifier
,
// Not showing the name is important because we visit parameters to display their
// types. If we visited their types directly, we wouldn't get ref/out/params.
miscellaneousOptions
:
SymbolDisplayMiscellaneousOptions
.
EscapeKeywordIdentifiers
|
SymbolDisplayMiscellaneousOptions
.
UseSpecialTypes
|
SymbolDisplayMiscellaneousOptions
.
UseAsterisksInMultiDimensionalArrays
|
SymbolDisplayMiscellaneousOptions
.
UseErrorTypeSymbolName
);
SymbolDisplayMiscellaneousOptions
.
UseErrorTypeSymbolName
|
SymbolDisplayMiscellaneousOptions
.
IncludeNullableReferenceTypeModifier
);
/// <summary>
/// Formats a symbol description as in a Visual Basic compiler error message.
...
...
@@ -157,10 +157,10 @@ public class SymbolDisplayFormat
SymbolDisplayParameterOptions
.
IncludeParamsRefOut
|
SymbolDisplayParameterOptions
.
IncludeDefaultValue
,
localOptions
:
SymbolDisplayLocalOptions
.
IncludeType
,
compilerInternalOptions
:
SymbolDisplayCompilerInternalOptions
.
IncludeNullableReferenceTypeModifier
,
miscellaneousOptions
:
SymbolDisplayMiscellaneousOptions
.
EscapeKeywordIdentifiers
|
SymbolDisplayMiscellaneousOptions
.
UseSpecialTypes
);
SymbolDisplayMiscellaneousOptions
.
UseSpecialTypes
|
SymbolDisplayMiscellaneousOptions
.
IncludeNullableReferenceTypeModifier
);
/// <summary>
/// A verbose format for displaying symbols (useful for testing).
...
...
@@ -189,13 +189,13 @@ public class SymbolDisplayFormat
SymbolDisplayParameterOptions
.
IncludeName
,
miscellaneousOptions
:
SymbolDisplayMiscellaneousOptions
.
EscapeKeywordIdentifiers
|
SymbolDisplayMiscellaneousOptions
.
UseErrorTypeSymbolName
,
SymbolDisplayMiscellaneousOptions
.
UseErrorTypeSymbolName
|
SymbolDisplayMiscellaneousOptions
.
IncludeNullableReferenceTypeModifier
,
compilerInternalOptions
:
SymbolDisplayCompilerInternalOptions
.
IncludeScriptType
|
SymbolDisplayCompilerInternalOptions
.
UseMetadataMethodNames
|
SymbolDisplayCompilerInternalOptions
.
FlagMissingMetadataTypes
|
SymbolDisplayCompilerInternalOptions
.
IncludeCustomModifiers
|
SymbolDisplayCompilerInternalOptions
.
IncludeNullableReferenceTypeModifier
);
SymbolDisplayCompilerInternalOptions
.
IncludeCustomModifiers
);
/// <summary>
/// this.QualifiedNameOnly = containingSymbol.QualifiedNameOnly + "." + this.Name
...
...
@@ -223,10 +223,10 @@ public class SymbolDisplayFormat
typeQualificationStyle
:
SymbolDisplayTypeQualificationStyle
.
NameOnly
,
propertyStyle
:
SymbolDisplayPropertyStyle
.
NameOnly
,
parameterOptions
:
SymbolDisplayParameterOptions
.
IncludeName
,
compilerInternalOptions
:
SymbolDisplayCompilerInternalOptions
.
IncludeNullableReferenceTypeModifier
,
miscellaneousOptions
:
SymbolDisplayMiscellaneousOptions
.
EscapeKeywordIdentifiers
|
SymbolDisplayMiscellaneousOptions
.
UseSpecialTypes
);
SymbolDisplayMiscellaneousOptions
.
UseSpecialTypes
|
SymbolDisplayMiscellaneousOptions
.
IncludeNullableReferenceTypeModifier
);
/// <summary>
/// The format used for displaying symbols when visualizing IL.
...
...
@@ -398,7 +398,7 @@ public class SymbolDisplayFormat
SymbolDisplayMiscellaneousOptions
miscellaneousOptions
=
default
(
SymbolDisplayMiscellaneousOptions
))
{
// If we want to display `!`, then we surely also want to display `?`
Debug
.
Assert
(
compilerInternalOptions
.
IncludesOption
(
SymbolDisplayCompilerInternal
Options
.
IncludeNullableReferenceTypeModifier
)
Debug
.
Assert
(
miscellaneousOptions
.
IncludesOption
(
SymbolDisplayMiscellaneous
Options
.
IncludeNullableReferenceTypeModifier
)
||
!
compilerInternalOptions
.
IncludesOption
(
SymbolDisplayCompilerInternalOptions
.
IncludeNonNullableTypeModifier
));
this
.
GlobalNamespaceStyle
=
globalNamespaceStyle
;
...
...
src/Compilers/Core/Portable/SymbolDisplay/SymbolDisplayMiscellaneousOptions.cs
浏览文件 @
83a550f2
...
...
@@ -55,5 +55,11 @@ public enum SymbolDisplayMiscellaneousOptions
/// the special question mark syntax.
/// </summary>
ExpandNullable
=
1
<<
5
,
/// <summary>
/// Append '?' to nullable reference types.
/// PROTOTYPE(NullableReferenceTypes): review design for this option before shipping. See https://github.com/dotnet/roslyn/issues/26198
/// </summary>
IncludeNullableReferenceTypeModifier
=
1
<<
6
,
}
}
src/Compilers/Test/Utilities/CSharp/CSharpTestBase.cs
浏览文件 @
83a550f2
...
...
@@ -456,7 +456,8 @@ internal static void VerifyUsesOfNullability(Symbol symbol, ImmutableArray<strin
UsesIsNullableVisitor
.
GetUses
(
builder
,
symbol
);
var
format
=
SymbolDisplayFormat
.
TestFormat
.
WithCompilerInternalOptions
(
SymbolDisplayCompilerInternalOptions
.
IncludeNonNullableTypeModifier
|
SymbolDisplayCompilerInternalOptions
.
IncludeNullableReferenceTypeModifier
)
.
WithCompilerInternalOptions
(
SymbolDisplayCompilerInternalOptions
.
IncludeNonNullableTypeModifier
)
.
AddMiscellaneousOptions
(
SymbolDisplayMiscellaneousOptions
.
IncludeNullableReferenceTypeModifier
)
.
RemoveParameterOptions
(
SymbolDisplayParameterOptions
.
IncludeName
);
var
symbols
=
builder
.
SelectAsArray
(
s
=>
s
.
ToDisplayString
(
format
));
...
...
src/EditorFeatures/CSharpTest/QuickInfo/SemanticQuickInfoSourceTests.cs
浏览文件 @
83a550f2
...
...
@@ -2202,6 +2202,30 @@ static void M()
MainDescription
(
$"(
{
FeaturesResources
.
local_variable
}
) A<B?>? y"
));
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
QuickInfo
)]
[
WorkItem
(
26648
,
"https://github.com/dotnet/roslyn/issues/26648"
)]
public
async
Task
NullableReference_InMethod
()
{
var
code
=
@"
class G
{
void M()
{
C c;
c.Go$$o();
}
}
public class C
{
public string? Goo(IEnumerable<object?> arg)
{
}
}"
;
await
TestWithOptionsAsync
(
Options
.
Regular
.
WithLanguageVersion
(
LanguageVersion
.
CSharp8
),
code
,
MainDescription
(
"string? C.Goo(IEnumerable<object?> arg)"
));
}
[
Fact
,
Trait
(
Traits
.
Feature
,
Traits
.
Features
.
QuickInfo
)]
public
async
Task
NestedInGeneric
()
{
...
...
src/Features/Core/Portable/LanguageServices/SymbolDisplayService/AbstractSymbolDisplayService.AbstractSymbolDescriptionBuilder.cs
浏览文件 @
83a550f2
...
...
@@ -58,7 +58,8 @@ protected abstract partial class AbstractSymbolDescriptionBuilder
miscellaneousOptions
:
SymbolDisplayMiscellaneousOptions
.
EscapeKeywordIdentifiers
|
SymbolDisplayMiscellaneousOptions
.
UseSpecialTypes
|
SymbolDisplayMiscellaneousOptions
.
UseErrorTypeSymbolName
);
SymbolDisplayMiscellaneousOptions
.
UseErrorTypeSymbolName
|
SymbolDisplayMiscellaneousOptions
.
IncludeNullableReferenceTypeModifier
);
private
static
readonly
SymbolDisplayFormat
s_descriptionStyle
=
new
SymbolDisplayFormat
(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录