File: ExtractMethod\VariableStyle.cs
Web Access
Project: src\src\Features\Core\Portable\Microsoft.CodeAnalysis.Features.csproj (Microsoft.CodeAnalysis.Features)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
#nullable disable
 
namespace Microsoft.CodeAnalysis.ExtractMethod;
 
internal class VariableStyle
{
    public ParameterStyle ParameterStyle { get; private set; }
    public ReturnStyle ReturnStyle { get; private set; }
 
    public static readonly VariableStyle None =
        new VariableStyle() { ParameterStyle = ParameterStyle.None, ReturnStyle = ReturnStyle.None };
 
    public static readonly VariableStyle InputOnly =
        new VariableStyle() { ParameterStyle = ParameterStyle.InputOnly, ReturnStyle = ReturnStyle.None };
 
    public static readonly VariableStyle Delete =
        new VariableStyle() { ParameterStyle = ParameterStyle.Delete, ReturnStyle = ReturnStyle.None };
 
    public static readonly VariableStyle MoveOut =
        new VariableStyle() { ParameterStyle = ParameterStyle.MoveOut, ReturnStyle = ReturnStyle.None };
 
    public static readonly VariableStyle SplitOut =
        new VariableStyle() { ParameterStyle = ParameterStyle.SplitOut, ReturnStyle = ReturnStyle.None };
 
    public static readonly VariableStyle MoveIn =
        new VariableStyle() { ParameterStyle = ParameterStyle.MoveIn, ReturnStyle = ReturnStyle.None };
 
    public static readonly VariableStyle SplitIn =
        new VariableStyle() { ParameterStyle = ParameterStyle.SplitIn, ReturnStyle = ReturnStyle.None };
 
    public static readonly VariableStyle NotUsed =
        new VariableStyle() { ParameterStyle = ParameterStyle.MoveOut, ReturnStyle = ReturnStyle.Initialization };
 
    public static readonly VariableStyle Ref =
        new VariableStyle() { ParameterStyle = ParameterStyle.Ref, ReturnStyle = ReturnStyle.AssignmentWithInput };
 
    public static readonly VariableStyle OnlyAsRefParam =
        new VariableStyle() { ParameterStyle = ParameterStyle.Ref, ReturnStyle = ReturnStyle.None };
 
    public static readonly VariableStyle Out =
        new VariableStyle() { ParameterStyle = ParameterStyle.Out, ReturnStyle = ReturnStyle.AssignmentWithNoInput };
 
    public static readonly VariableStyle OutWithErrorInput =
        new VariableStyle() { ParameterStyle = ParameterStyle.Out, ReturnStyle = ReturnStyle.AssignmentWithInput };
 
    public static readonly VariableStyle OutWithMoveOut =
        new VariableStyle() { ParameterStyle = ParameterStyle.OutWithMoveOut, ReturnStyle = ReturnStyle.Initialization };
}