提交 498172dc 编写于 作者: D David Poeschl

Rename IsCallsiteError to IsCallsiteTodo and document Parameter properties

上级 911749b5
......@@ -333,7 +333,7 @@ void M()
var updatedSignature = new[] {
new AddedParameterOrExistingIndex(0),
new AddedParameterOrExistingIndex(2),
new AddedParameterOrExistingIndex(new AddedParameter(null, "int", "newIntegerParameter", callSiteValue:"123", true, isCallsiteOmitted:false, isCallsiteError: false), "int") };
new AddedParameterOrExistingIndex(new AddedParameter(null, "int", "newIntegerParameter", callSiteValue:"123", true, isCallsiteOmitted:false, isCallsiteTodo: false), "int") };
using var testState = ChangeSignatureTestState.Create(XElement.Parse(workspaceXml));
testState.TestChangeSignatureOptionsService.UpdatedSignature = updatedSignature;
......
......@@ -44,7 +44,7 @@ public AddedParameterOrExistingIndex(AddedParameter addedParameterWithoutTypeSym
string defaultValue = "",
bool useNamedArguments = false,
bool isCallsiteOmitted = false,
bool isCallsiteError = false,
bool isCallsiteTodo = false,
bool typeBinds = true)
{
var parameter = new AddedParameter(
......@@ -56,7 +56,7 @@ public AddedParameterOrExistingIndex(AddedParameter addedParameterWithoutTypeSym
defaultValue,
useNamedArguments,
isCallsiteOmitted,
isCallsiteError,
isCallsiteTodo,
typeBinds);
return new AddedParameterOrExistingIndex(parameter, fullTypeName);
......@@ -90,7 +90,7 @@ internal AddedParameter GetAddedParameter(Document document)
_addedParameterWithoutTypeSymbol.DefaultValue,
_addedParameterWithoutTypeSymbol.UseNamedArguments,
_addedParameterWithoutTypeSymbol.IsCallsiteOmitted,
_addedParameterWithoutTypeSymbol.IsCallsiteError);
_addedParameterWithoutTypeSymbol.IsCallsiteTodo);
}
}
}
......@@ -789,7 +789,7 @@ protected static int GetParameterIndex<TNode>(SeparatedSyntaxList<TNode> paramet
!SupportsOptionalAndParamsArrayParametersSimultaneously();
var isCallsiteActuallyOmitted = addedParameter.IsCallsiteOmitted && !forcedCallsiteErrorDueToParamsArray;
var isCallsiteActuallyErrored = addedParameter.IsCallsiteError || forcedCallsiteErrorDueToParamsArray;
var isCallsiteActuallyErrored = addedParameter.IsCallsiteTodo || forcedCallsiteErrorDueToParamsArray;
if (isCallsiteActuallyOmitted)
{
......
......@@ -40,7 +40,7 @@ internal sealed class AddedParameter : Parameter
string defaultValue = "",
bool useNamedArguments = false,
bool isCallsiteOmitted = false,
bool isCallsiteError = false,
bool isCallsiteTodo = false,
bool typeBinds = true)
{
Type = type;
......@@ -51,11 +51,11 @@ internal sealed class AddedParameter : Parameter
IsRequired = isRequired;
DefaultValue = defaultValue;
IsCallsiteError = isCallsiteError;
IsCallsiteTodo = isCallsiteTodo;
IsCallsiteOmitted = isCallsiteOmitted;
UseNamedArguments = useNamedArguments;
if (IsCallsiteError)
if (IsCallsiteTodo)
{
CallSiteValue = FeaturesResources.ChangeSignature_NewParameterIntroduceTODOVariable;
}
......@@ -77,11 +77,37 @@ internal sealed class AddedParameter : Parameter
public bool TypeBinds { get; }
public string CallSiteValue { get; }
/// <summary>
/// True if required, false if optional with a default value.
/// </summary>
public bool IsRequired { get; }
/// <summary>
/// Value to use in the declaration of an optional parameter.
/// E.g. the "3" in M(int x = 3);
/// </summary>
public string DefaultValue { get; }
/// <summary>
/// When introducing an argument, this indicates whether it
/// should be named even if not required to be named. Often
/// useful for literal callsite values like "true" or "null".
/// </summary>
public bool UseNamedArguments { get; }
/// <summary>
/// When an optional parameter is added, passing an argument for
/// it is not required. This indicates that the corresponding argument
/// should be omitted. This often results in subsequent arguments needing
/// to become named arguments
/// </summary>
public bool IsCallsiteOmitted { get; }
public bool IsCallsiteError { get; }
/// <summary>
/// Indicates whether a "TODO" should be introduced at callsites
/// to cause errors that the user can then go visit and fix up.
/// </summary>
public bool IsCallsiteTodo { get; }
// For test purposes: to display assert failure details in tests.
public override string ToString() => $"{Type.ToDisplayString(new SymbolDisplayFormat(genericsOptions: SymbolDisplayGenericsOptions.IncludeTypeParameters))} {Name} ({CallSiteValue})";
......
......@@ -115,7 +115,7 @@
Grid.Column="0"
GroupName="CallsiteKind"
VerticalContentAlignment="Center"
IsChecked="{Binding IsCallsiteError, Mode=TwoWay}"
IsChecked="{Binding IsCallsiteTodo, Mode=TwoWay}"
Content="{Binding ElementName=dialog, Path=IntroduceUndefinedTodoVariables}"/>
<RadioButton x:Name="OmitArgumentRadioButton"
Grid.Row="11"
......
......@@ -110,7 +110,7 @@ public bool IsOptional
}
public string DefaultValue { get; set; }
public bool IsCallsiteError { get; set; }
public bool IsCallsiteTodo { get; set; }
public bool IsCallsiteOmitted { get; set; }
public bool IsCallsiteRegularValue { get; set; } = true;
......
......@@ -144,7 +144,7 @@ private void Add_Click(object sender, RoutedEventArgs e)
addParameterViewModel.DefaultValue,
addParameterViewModel.UseNamedArguments,
addParameterViewModel.IsCallsiteOmitted,
addParameterViewModel.IsCallsiteError,
addParameterViewModel.IsCallsiteTodo,
addParameterViewModel.TypeBinds);
_viewModel.AddParameter(addedParameter);
......
......@@ -273,7 +273,7 @@ class MyClass
Assert.True(viewModel.IsCallsiteRegularValue)
Assert.Equal(String.Empty, viewModel.CallSiteValue)
Assert.False(viewModel.UseNamedArguments)
Assert.False(viewModel.IsCallsiteError)
Assert.False(viewModel.IsCallsiteTodo)
Assert.False(viewModel.IsCallsiteOmitted)
Assert.False(viewModel.TrySubmit)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册