提交 22969288 编写于 作者: A Andrew Casey

Make public options types top-level

上级 b2721255
......@@ -45,7 +45,7 @@ protected override string GetPrimitiveTypeName(SpecialType type)
}
}
public override string FormatTypeName(Type type, Options options)
public override string FormatTypeName(Type type, CommonTypeNameFormatterOptions options)
{
string stateMachineName;
if (GeneratedNames.TryParseSourceMethodNameFromGeneratedName(type.Name, GeneratedNameKind.StateMachineType, out stateMachineName))
......
......@@ -26,7 +26,7 @@ override Microsoft.CodeAnalysis.CSharp.Scripting.Hosting.CSharpPrimitiveFormatte
override Microsoft.CodeAnalysis.CSharp.Scripting.Hosting.CSharpPrimitiveFormatter.NullLiteral.get -> string
override Microsoft.CodeAnalysis.CSharp.Scripting.Hosting.CSharpTypeNameFormatter.ArrayClosing.get -> string
override Microsoft.CodeAnalysis.CSharp.Scripting.Hosting.CSharpTypeNameFormatter.ArrayOpening.get -> string
override Microsoft.CodeAnalysis.CSharp.Scripting.Hosting.CSharpTypeNameFormatter.FormatTypeName(System.Type type, Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.Options options) -> string
override Microsoft.CodeAnalysis.CSharp.Scripting.Hosting.CSharpTypeNameFormatter.FormatTypeName(System.Type type, Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatterOptions options) -> string
override Microsoft.CodeAnalysis.CSharp.Scripting.Hosting.CSharpTypeNameFormatter.GenericParameterClosing.get -> string
override Microsoft.CodeAnalysis.CSharp.Scripting.Hosting.CSharpTypeNameFormatter.GenericParameterOpening.get -> string
override Microsoft.CodeAnalysis.CSharp.Scripting.Hosting.CSharpTypeNameFormatter.GetPrimitiveTypeName(Microsoft.CodeAnalysis.SpecialType type) -> string
......
......@@ -21,8 +21,8 @@ private sealed partial class Visitor
private readonly CommonObjectFormatter _formatter;
private readonly BuilderOptions _builderOptions;
private CommonPrimitiveFormatter.Options _primitiveOptions;
private CommonTypeNameFormatter.Options _typeNameOptions;
private CommonPrimitiveFormatterOptions _primitiveOptions;
private CommonTypeNameFormatterOptions _typeNameOptions;
private MemberDisplayFormat _memberDisplayFormat;
private HashSet<object> _lazyVisitedObjects;
......@@ -43,8 +43,8 @@ private HashSet<object> VisitedObjects
public Visitor(
CommonObjectFormatter formatter,
BuilderOptions builderOptions,
CommonPrimitiveFormatter.Options primitiveOptions,
CommonTypeNameFormatter.Options typeNameOptions,
CommonPrimitiveFormatterOptions primitiveOptions,
CommonTypeNameFormatterOptions typeNameOptions,
MemberDisplayFormat memberDisplayFormat)
{
_formatter = formatter;
......@@ -787,10 +787,10 @@ private Builder FormatWithEmbeddedExpressions(Builder result, string format, obj
else
{
MemberDisplayFormat oldMemberDisplayFormat = _memberDisplayFormat;
CommonPrimitiveFormatter.Options oldPrimitiveOptions = _primitiveOptions;
CommonPrimitiveFormatterOptions oldPrimitiveOptions = _primitiveOptions;
_memberDisplayFormat = MemberDisplayFormat.Hidden;
_primitiveOptions = new CommonPrimitiveFormatter.Options(_primitiveOptions.UseHexadecimalNumbers, _primitiveOptions.IncludeCharacterCodePoints, omitStringQuotes: noQuotes);
_primitiveOptions = new CommonPrimitiveFormatterOptions(_primitiveOptions.UseHexadecimalNumbers, _primitiveOptions.IncludeCharacterCodePoints, omitStringQuotes: noQuotes);
string _;
FormatObjectRecursive(result, value, isRoot: false, debuggerDisplayName: out _);
......
......@@ -42,14 +42,14 @@ public override string FormatObject(object obj, PrintOptions options)
maximumLineLength: int.MaxValue,
maximumOutputLength: printOptions.MaximumOutputLength);
protected virtual CommonPrimitiveFormatter.Options GetPrimitiveOptions(PrintOptions printOptions) =>
new CommonPrimitiveFormatter.Options(
protected virtual CommonPrimitiveFormatterOptions GetPrimitiveOptions(PrintOptions printOptions) =>
new CommonPrimitiveFormatterOptions(
useHexadecimalNumbers: printOptions.NumberRadix == NumberRadix.Hexadecimal,
includeCodePoints: printOptions.EscapeNonPrintableCharacters, // TODO (acasey): not quite the same
omitStringQuotes: false);
protected virtual CommonTypeNameFormatter.Options GetTypeNameOptions(PrintOptions printOptions) =>
new CommonTypeNameFormatter.Options(
protected virtual CommonTypeNameFormatterOptions GetTypeNameOptions(PrintOptions printOptions) =>
new CommonTypeNameFormatterOptions(
useHexadecimalArrayBounds: printOptions.NumberRadix == NumberRadix.Hexadecimal,
showNamespaces: false);
......@@ -101,7 +101,7 @@ internal virtual string FormatMethodSignature(MethodBase method)
var builder = pooled.Builder;
var declaringType = method.DeclaringType;
var options = new CommonTypeNameFormatter.Options(useHexadecimalArrayBounds: false, showNamespaces: true);
var options = new CommonTypeNameFormatterOptions(useHexadecimalArrayBounds: false, showNamespaces: true);
builder.Append(TypeNameFormatter.FormatTypeName(declaringType, options));
builder.Append('.');
......
......@@ -35,7 +35,7 @@ public abstract partial class CommonPrimitiveFormatter
/// <summary>
/// Returns null if the type is not considered primitive in the target language.
/// </summary>
public string FormatPrimitive(object obj, Options options)
public string FormatPrimitive(object obj, CommonPrimitiveFormatterOptions options)
{
if (ReferenceEquals(obj, VoidValue))
{
......
......@@ -2,20 +2,17 @@
namespace Microsoft.CodeAnalysis.Scripting.Hosting
{
public abstract partial class CommonPrimitiveFormatter
public struct CommonPrimitiveFormatterOptions
{
public struct Options
{
public readonly bool UseHexadecimalNumbers;
public readonly bool IncludeCharacterCodePoints;
public readonly bool OmitStringQuotes;
public bool UseHexadecimalNumbers { get; }
public bool IncludeCharacterCodePoints { get; }
public bool OmitStringQuotes { get; }
public Options(bool useHexadecimalNumbers, bool includeCodePoints, bool omitStringQuotes)
{
UseHexadecimalNumbers = useHexadecimalNumbers;
IncludeCharacterCodePoints = includeCodePoints;
OmitStringQuotes = omitStringQuotes;
}
public CommonPrimitiveFormatterOptions(bool useHexadecimalNumbers, bool includeCodePoints, bool omitStringQuotes)
{
UseHexadecimalNumbers = useHexadecimalNumbers;
IncludeCharacterCodePoints = includeCodePoints;
OmitStringQuotes = omitStringQuotes;
}
}
}
......@@ -24,7 +24,7 @@ public abstract partial class CommonTypeNameFormatter
protected abstract CommonPrimitiveFormatter PrimitiveFormatter { get; }
// TODO (tomat): Use DebuggerDisplay.Type if specified?
public virtual string FormatTypeName(Type type, Options options)
public virtual string FormatTypeName(Type type, CommonTypeNameFormatterOptions options)
{
if (type == null)
{
......@@ -56,7 +56,7 @@ public virtual string FormatTypeName(Type type, Options options)
return FormatNonGenericTypeName(typeInfo, options);
}
private static string FormatNonGenericTypeName(TypeInfo typeInfo, Options options)
private static string FormatNonGenericTypeName(TypeInfo typeInfo, CommonTypeNameFormatterOptions options)
{
if (options.ShowNamespaces)
{
......@@ -83,7 +83,7 @@ private static string FormatNonGenericTypeName(TypeInfo typeInfo, Options option
return typeName;
}
public virtual string FormatTypeArguments(Type[] typeArguments, Options options)
public virtual string FormatTypeArguments(Type[] typeArguments, CommonTypeNameFormatterOptions options)
{
if (typeArguments == null)
{
......@@ -123,7 +123,7 @@ public virtual string FormatTypeArguments(Type[] typeArguments, Options options)
/// <summary>
/// Formats an array type name (vector or multidimensional).
/// </summary>
public virtual string FormatArrayTypeName(Type arrayType, Array arrayOpt, Options options)
public virtual string FormatArrayTypeName(Type arrayType, Array arrayOpt, CommonTypeNameFormatterOptions options)
{
if (arrayType == null)
{
......@@ -200,7 +200,7 @@ public virtual string FormatArrayTypeName(Type arrayType, Array arrayOpt, Option
private void AppendArrayBound(StringBuilder sb, long bound, bool useHexadecimalNumbers)
{
var options = new CommonPrimitiveFormatter.Options(useHexadecimalNumbers, includeCodePoints: false, omitStringQuotes: false);
var options = new CommonPrimitiveFormatterOptions(useHexadecimalNumbers, includeCodePoints: false, omitStringQuotes: false);
var formatted = int.MinValue <= bound && bound <= int.MaxValue
? PrimitiveFormatter.FormatPrimitive((int)bound, options)
: PrimitiveFormatter.FormatPrimitive(bound, options);
......@@ -218,7 +218,7 @@ private void AppendArrayRank(StringBuilder sb, Type arrayType)
sb.Append(']');
}
private string FormatGenericTypeName(TypeInfo typeInfo, Options options)
private string FormatGenericTypeName(TypeInfo typeInfo, CommonTypeNameFormatterOptions options)
{
var pooledBuilder = PooledStringBuilder.GetInstance();
var builder = pooledBuilder.Builder;
......@@ -272,7 +272,7 @@ private string FormatGenericTypeName(TypeInfo typeInfo, Options options)
TypeInfo typeInfo,
Type[] genericArguments,
ref int genericArgIndex,
Options options)
CommonTypeNameFormatterOptions options)
{
// generic arguments of all the outer types and the current type;
int currentArgCount = (typeInfo.IsGenericTypeDefinition ? typeInfo.GenericTypeParameters.Length : typeInfo.GenericTypeArguments.Length) - genericArgIndex;
......
......@@ -2,18 +2,15 @@
namespace Microsoft.CodeAnalysis.Scripting.Hosting
{
public abstract partial class CommonTypeNameFormatter
public struct CommonTypeNameFormatterOptions
{
public struct Options
{
public readonly bool UseHexadecimalArrayBounds;
public readonly bool ShowNamespaces;
public bool UseHexadecimalArrayBounds { get; }
public bool ShowNamespaces { get; }
public Options(bool useHexadecimalArrayBounds, bool showNamespaces)
{
UseHexadecimalArrayBounds = useHexadecimalArrayBounds;
ShowNamespaces = showNamespaces;
}
public CommonTypeNameFormatterOptions(bool useHexadecimalArrayBounds, bool showNamespaces)
{
UseHexadecimalArrayBounds = useHexadecimalArrayBounds;
ShowNamespaces = showNamespaces;
}
}
}
\ No newline at end of file
......@@ -8,13 +8,13 @@ Microsoft.CodeAnalysis.Scripting.Hosting.CommandLineScriptGlobals.Print(object v
Microsoft.CodeAnalysis.Scripting.Hosting.CommandLineScriptGlobals.PrintOptions.get -> Microsoft.CodeAnalysis.Scripting.Hosting.PrintOptions
Microsoft.CodeAnalysis.Scripting.Hosting.CommonObjectFormatter
Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatter
Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatter.FormatPrimitive(object obj, Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatter.Options options) -> string
Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatter.Options
Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatter.Options.Options(bool useHexadecimalNumbers, bool includeCodePoints, bool omitStringQuotes) -> void
Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatter.FormatPrimitive(object obj, Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatterOptions options) -> string
Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatterOptions
Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatterOptions.Options(bool useHexadecimalNumbers, bool includeCodePoints, bool omitStringQuotes) -> void
Microsoft.CodeAnalysis.Scripting.Hosting.CommonStackTraceRewriter
Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter
Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.Options
Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.Options.Options(bool useHexadecimalArrayBounds, bool showNamespaces) -> void
Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatterOptions
Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatterOptions.Options(bool useHexadecimalArrayBounds, bool showNamespaces) -> void
Microsoft.CodeAnalysis.Scripting.Hosting.FileShadowCopy
Microsoft.CodeAnalysis.Scripting.Hosting.FileShadowCopy.FullPath.get -> string
Microsoft.CodeAnalysis.Scripting.Hosting.FileShadowCopy.OriginalPath.get -> string
......@@ -179,18 +179,18 @@ override Microsoft.CodeAnalysis.Scripting.ScriptMetadataResolver.ResolveMissingA
override Microsoft.CodeAnalysis.Scripting.ScriptMetadataResolver.ResolveReference(string reference, string baseFilePath, Microsoft.CodeAnalysis.MetadataReferenceProperties properties) -> System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.PortableExecutableReference>
override Microsoft.CodeAnalysis.Scripting.ScriptSourceResolver.Equals(object obj) -> bool
override Microsoft.CodeAnalysis.Scripting.ScriptSourceResolver.GetHashCode() -> int
readonly Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatter.Options.IncludeCharacterCodePoints -> bool
readonly Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatter.Options.OmitStringQuotes -> bool
readonly Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatter.Options.UseHexadecimalNumbers -> bool
readonly Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.Options.ShowNamespaces -> bool
readonly Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.Options.UseHexadecimalArrayBounds -> bool
readonly Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatterOptions.IncludeCharacterCodePoints -> bool
readonly Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatterOptions.OmitStringQuotes -> bool
readonly Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatterOptions.UseHexadecimalNumbers -> bool
readonly Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatterOptions.ShowNamespaces -> bool
readonly Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatterOptions.UseHexadecimalArrayBounds -> bool
static Microsoft.CodeAnalysis.Scripting.ScriptMetadataResolver.Default.get -> Microsoft.CodeAnalysis.Scripting.ScriptMetadataResolver
static Microsoft.CodeAnalysis.Scripting.ScriptOptions.Default.get -> Microsoft.CodeAnalysis.Scripting.ScriptOptions
static Microsoft.CodeAnalysis.Scripting.ScriptSourceResolver.Default.get -> Microsoft.CodeAnalysis.Scripting.ScriptSourceResolver
virtual Microsoft.CodeAnalysis.Scripting.Hosting.CommonObjectFormatter.GetPrimitiveOptions(Microsoft.CodeAnalysis.Scripting.Hosting.PrintOptions printOptions) -> Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatter.Options
virtual Microsoft.CodeAnalysis.Scripting.Hosting.CommonObjectFormatter.GetTypeNameOptions(Microsoft.CodeAnalysis.Scripting.Hosting.PrintOptions printOptions) -> Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.Options
virtual Microsoft.CodeAnalysis.Scripting.Hosting.CommonObjectFormatter.GetPrimitiveOptions(Microsoft.CodeAnalysis.Scripting.Hosting.PrintOptions printOptions) -> Microsoft.CodeAnalysis.Scripting.Hosting.CommonPrimitiveFormatterOptions
virtual Microsoft.CodeAnalysis.Scripting.Hosting.CommonObjectFormatter.GetTypeNameOptions(Microsoft.CodeAnalysis.Scripting.Hosting.PrintOptions printOptions) -> Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatterOptions
virtual Microsoft.CodeAnalysis.Scripting.Hosting.CommonObjectFormatter.StackTraceRewriter.get -> Microsoft.CodeAnalysis.Scripting.Hosting.StackTraceRewriter
virtual Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.FormatArrayTypeName(System.Type arrayType, System.Array arrayOpt, Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.Options options) -> string
virtual Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.FormatTypeArguments(System.Type[] typeArguments, Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.Options options) -> string
virtual Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.FormatTypeName(System.Type type, Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.Options options) -> string
virtual Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.FormatArrayTypeName(System.Type arrayType, System.Array arrayOpt, Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatterOptions options) -> string
virtual Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.FormatTypeArguments(System.Type[] typeArguments, Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatterOptions options) -> string
virtual Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.FormatTypeName(System.Type type, Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatterOptions options) -> string
virtual Microsoft.CodeAnalysis.Scripting.Hosting.StackTraceRewriter.Rewrite(System.Collections.Generic.IEnumerable<Microsoft.CodeAnalysis.Scripting.Hosting.StackFrame> frames) -> System.Collections.Generic.IEnumerable<Microsoft.CodeAnalysis.Scripting.Hosting.StackFrame>
\ No newline at end of file
......@@ -79,9 +79,9 @@
<Compile Include="Hosting\CommandLine\NotImplementedAnalyzerLoader.cs" />
<Compile Include="Hosting\InteractiveScriptGlobals.cs" />
<Compile Include="Hosting\ObjectFormatter\CommonObjectFormatter.BuilderOptions.cs" />
<Compile Include="Hosting\ObjectFormatter\CommonPrimitiveFormatter.Options.cs" />
<Compile Include="Hosting\ObjectFormatter\CommonPrimitiveFormatterOptions.cs" />
<Compile Include="Hosting\ObjectFormatter\CommonPrimitiveFormatter.cs" />
<Compile Include="Hosting\ObjectFormatter\CommonTypeNameFormatter.Options.cs" />
<Compile Include="Hosting\ObjectFormatter\CommonTypeNameFormatterOptions.cs" />
<Compile Include="Hosting\ObjectFormatter\CommonTypeNameFormatter.cs" />
<Compile Include="Hosting\CommonObjectFilter.cs" />
<Compile Include="Hosting\ObjectFormatter\NumberRadix.cs" />
......
......@@ -24,7 +24,7 @@ public TestCSharpObjectFormatter(bool omitStringQuotes = false, int maximumLineL
maximumLineLength: _maximumLineLength,
maximumOutputLength: printOptions.MaximumOutputLength);
protected override CommonPrimitiveFormatter.Options GetPrimitiveOptions(PrintOptions printOptions) =>
new CommonPrimitiveFormatter.Options(printOptions.NumberRadix == NumberRadix.Hexadecimal, printOptions.EscapeNonPrintableCharacters, _omitStringQuotes);
protected override CommonPrimitiveFormatterOptions GetPrimitiveOptions(PrintOptions printOptions) =>
new CommonPrimitiveFormatterOptions(printOptions.NumberRadix == NumberRadix.Hexadecimal, printOptions.EscapeNonPrintableCharacters, _omitStringQuotes);
}
}
\ No newline at end of file
......@@ -26,7 +26,7 @@ public sealed class TestVisualBasicObjectFormatter : VisualBasicObjectFormatter
maximumLineLength: _maximumLineLength,
maximumOutputLength: printOptions.MaximumOutputLength);
protected override CommonPrimitiveFormatter.Options GetPrimitiveOptions(PrintOptions printOptions) =>
new CommonPrimitiveFormatter.Options(printOptions.NumberRadix == NumberRadix.Hexadecimal, printOptions.EscapeNonPrintableCharacters, _omitStringQuotes);
protected override CommonPrimitiveFormatterOptions GetPrimitiveOptions(PrintOptions printOptions) =>
new CommonPrimitiveFormatterOptions(printOptions.NumberRadix == NumberRadix.Hexadecimal, printOptions.EscapeNonPrintableCharacters, _omitStringQuotes);
}
}
\ No newline at end of file
......@@ -77,7 +77,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Scripting.Hosting
End Property
Public Overrides Function FormatTypeName(type As Type, options As Options) As String
Public Overrides Function FormatTypeName(type As Type, options As CommonTypeNameFormatterOptions) As String
' TODO (https://github.com/dotnet/roslyn/issues/3739): handle generated type names (e.g. state machines as in C#)
Return MyBase.FormatTypeName(type, options)
......
......@@ -24,7 +24,7 @@ Overrides Microsoft.CodeAnalysis.VisualBasic.Scripting.Hosting.VisualBasicPrimit
Overrides Microsoft.CodeAnalysis.VisualBasic.Scripting.Hosting.VisualBasicPrimitiveFormatter.NullLiteral() -> String
Overrides Microsoft.CodeAnalysis.VisualBasic.Scripting.Hosting.VisualBasicTypeNameFormatter.ArrayClosing() -> String
Overrides Microsoft.CodeAnalysis.VisualBasic.Scripting.Hosting.VisualBasicTypeNameFormatter.ArrayOpening() -> String
Overrides Microsoft.CodeAnalysis.VisualBasic.Scripting.Hosting.VisualBasicTypeNameFormatter.FormatTypeName(type As System.Type, options As Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatter.Options) -> String
Overrides Microsoft.CodeAnalysis.VisualBasic.Scripting.Hosting.VisualBasicTypeNameFormatter.FormatTypeName(type As System.Type, options As Microsoft.CodeAnalysis.Scripting.Hosting.CommonTypeNameFormatterOptions) -> String
Overrides Microsoft.CodeAnalysis.VisualBasic.Scripting.Hosting.VisualBasicTypeNameFormatter.GenericParameterClosing() -> String
Overrides Microsoft.CodeAnalysis.VisualBasic.Scripting.Hosting.VisualBasicTypeNameFormatter.GenericParameterOpening() -> String
Overrides Microsoft.CodeAnalysis.VisualBasic.Scripting.Hosting.VisualBasicTypeNameFormatter.GetPrimitiveTypeName(type As Microsoft.CodeAnalysis.SpecialType) -> String
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册