4 implementations of RefKind
Microsoft.CodeAnalysis.CodeStyle.Fixes (1)
CodeGenerationParameterSymbol.cs (1)
19public RefKind RefKind { get; }
Microsoft.CodeAnalysis.CSharp (1)
Symbols\PublicModel\ParameterSymbol.cs (1)
59RefKind IParameterSymbol.RefKind => _underlying.RefKind;
Microsoft.CodeAnalysis.VisualBasic (1)
Symbols\ParameterSymbol.vb (1)
298Private ReadOnly Property IParameterSymbol_RefKind As RefKind Implements IParameterSymbol.RefKind
Microsoft.CodeAnalysis.Workspaces (1)
CodeGenerationParameterSymbol.cs (1)
19public RefKind RefKind { get; }
148 references to RefKind
Microsoft.CodeAnalysis (4)
DiagnosticAnalyzer\SuppressMessageAttributeState.TargetSymbolResolver.cs (1)
796if ((symbol.RefKind == RefKind.None) == parameterInfo.IsRefOrOut)
DocumentationCommentId.cs (2)
458if (p.RefKind != RefKind.None) 1358if ((symbol.RefKind == RefKind.None) == parameterInfo.IsRefOrOut)
Operations\ControlFlowGraphBuilder.cs (1)
6587Debug.Assert(outParameterArgument is { Parameter: { RefKind: RefKind.Out, Type.SpecialType: SpecialType.System_Boolean } });
Microsoft.CodeAnalysis.CodeStyle (12)
AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (1)
505switch (unusedParameter.RefKind)
IParameterSymbolExtensions.cs (1)
13switch (symbol.RefKind)
ISymbolExtensions.cs (1)
434if (symbol is IMethodSymbol method && method.Parameters.All(p => p.RefKind == RefKind.None))
OperationExtensions.cs (1)
155switch (argumentOperation.Parameter?.RefKind)
SuppressMessageAttributeState.TargetSymbolResolver.cs (1)
796if ((symbol.RefKind == RefKind.None) == parameterInfo.IsRefOrOut)
SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
56AreRefKindsEquivalent(x.RefKind, y.RefKind, _distinguishRefFromOut) &&
SymbolKey.cs (3)
38/// equal <see cref="IParameterSymbol.RefKind"/>s.</item> 62/// the "same" <see cref="IParameterSymbol.RefKind"/>s.</item> 290refKinds[i], parameters[i].RefKind, distinguishRefFromOut: false))
SymbolKey.SymbolKeyWriter.cs (1)
81_writeRefKind = p => WriteRefKind(p.RefKind);
SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
441if (parameter.RefKind is RefKind.Ref or RefKind.Out)
Microsoft.CodeAnalysis.CodeStyle.Fixes (2)
CodeGenerationSymbolFactory.cs (1)
303refKind ?? parameter.RefKind,
SyntaxGeneratorExtensions.cs (1)
55return factory.Argument(parameter.RefKind, factory.IdentifierName(parameter.Name));
Microsoft.CodeAnalysis.CSharp (4)
SymbolDisplay\SymbolDisplayVisitor.Members.cs (4)
643AddParameterRefKind(param.RefKind); 820symbol.RefKind != RefKind.Out && 827AddParameterRefKind(symbol.RefKind); 834if (symbol.ScopedKind == ScopedKind.ScopedValue && symbol.RefKind == RefKind.None)
Microsoft.CodeAnalysis.CSharp.CodeStyle (6)
ArgumentSyntaxExtensions.cs (2)
83parameter.RefKind != RefKind.Out) 89parameter.RefKind != RefKind.Ref)
CastSimplifier.cs (1)
560if (castedSymbol is not IFieldSymbol and not ILocalSymbol and not IParameterSymbol and not IParameterSymbol { RefKind: RefKind.Ref })
CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (2)
167if (lambdaParameter.RefKind != invokedParameter.RefKind)
ExpressionSyntaxExtensions.cs (1)
373ReducedFrom.Parameters: [{ RefKind: RefKind.Ref }, ..],
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (5)
AbstractAssignOutParametersCodeFixProvider.cs (1)
115.Where(p => p.RefKind == RefKind.Out)
CSharpTypeInferenceService.TypeInferrer.cs (1)
793if (parameter.RefKind == refKind)
ITypeSymbolExtensions.TypeSyntaxGeneratorVisitor.cs (1)
159var parameters = symbol.Signature.Parameters.Select(p => (p.Type, RefKindModifiers: CSharpSyntaxGeneratorInternal.GetParameterModifiers(p.RefKind)))
MakeLocalFunctionStaticCodeFixHelper.cs (1)
108symbolAndCapture.symbol.RefKind,
ParameterGenerator.cs (1)
77var list = CSharpSyntaxGeneratorInternal.GetParameterModifiers(parameter.RefKind);
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (11)
CodeGen\CodeGenLocalFunctionTests.cs (11)
3136Assert.Equal(RefKind.Ref, goo.Parameters[0].RefKind); 3161Assert.Equal(RefKind.Ref, goo.Parameters[0].RefKind); 3162Assert.Equal(RefKind.Ref, bar.Parameters[0].RefKind); 3163Assert.Equal(RefKind.Ref, bar.Parameters[1].RefKind); 3214Assert.Equal(RefKind.Ref, inner.Parameters[0].RefKind); 3215Assert.Equal(RefKind.Ref, inner.Parameters[1].RefKind); 3216Assert.Equal(RefKind.Ref, middle.Parameters[0].RefKind); 3279Assert.Equal(RefKind.Ref, goo.Parameters[0].RefKind); 3318Assert.Equal(RefKind.Ref, goo.Parameters[1].RefKind); 3319Assert.Equal(RefKind.Ref, bar.Parameters[1].RefKind); 3320Assert.Equal(RefKind.Ref, bar.Parameters[2].RefKind);
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (1)
CSharpInstructionDecoder.cs (1)
104switch (parameter.RefKind)
Microsoft.CodeAnalysis.CSharp.Features (11)
AbstractAssignOutParametersCodeFixProvider.cs (1)
115.Where(p => p.RefKind == RefKind.Out)
CodeRefactorings\ConvertLocalFunctionToMethod\CSharpConvertLocalFunctionToMethodCodeRefactoringProvider.cs (2)
267=> CSharpSyntaxGenerator.Instance.Argument(shouldUseNamedArguments ? name : null, p.RefKind, name.ToIdentifierName()); 278.WithModifiers(CSharpSyntaxGeneratorInternal.GetParameterModifiers(p.RefKind))
Completion\CompletionProviders\CrefCompletionProvider.cs (1)
317builder.Append(p.RefKind switch
Completion\CompletionProviders\ExplicitInterfaceMemberCompletionProvider.CompletionSymbolDisplay.cs (1)
91builder.Append(parameter.RefKind switch
Completion\Providers\ContextVariableArgumentProvider.cs (1)
36switch (context.Parameter.RefKind)
Completion\Providers\OutVariableArgumentProvider.cs (1)
32if (context.Parameter.RefKind != RefKind.Out)
CSharpRemoveUnnecessaryLambdaExpressionDiagnosticAnalyzer.cs (2)
167if (lambdaParameter.RefKind != invokedParameter.RefKind)
MakeLocalFunctionStaticCodeFixHelper.cs (1)
108symbolAndCapture.symbol.RefKind,
SignatureHelp\AbstractCSharpSignatureHelpProvider.LightweightOverloadResolution.cs (1)
151var parameterRefKind = parameter.RefKind;
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (7)
Semantics\LambdaTests.cs (2)
7079Assert.Equal(RefKind.None, lambdaParameter1.RefKind); 7084Assert.Equal(RefKind.None, lambdaParameter2.RefKind);
Semantics\RefExtensionMethodsTests.cs (4)
2148Assert.Equal(RefKind.Ref, symbol.RefKind); 2167Assert.Equal(RefKind.In, symbol.RefKind); 2186Assert.Equal(RefKind.Ref, symbol.RefKind); 2205Assert.Equal(RefKind.In, symbol.RefKind);
Semantics\RefFieldTests.cs (1)
11514Assert.Equal(expectedRefKind, parameter.RefKind);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (4)
DocumentationComments\CrefTests.cs (1)
6708Assert.Equal(RefKind.In, parameterSymbol.RefKind);
Symbols\Source\DelegateTests.cs (3)
743Assert.Equal(RefKind.Ref, parameter.RefKind); 833Assert.Equal(RefKind.In, lambda.Parameters[0].RefKind); 840Assert.Equal(RefKind.In, lambda.Parameters[0].RefKind);
Microsoft.CodeAnalysis.CSharp.Workspaces (7)
ArgumentSyntaxExtensions.cs (2)
83parameter.RefKind != RefKind.Out) 89parameter.RefKind != RefKind.Ref)
CastSimplifier.cs (1)
560if (castedSymbol is not IFieldSymbol and not ILocalSymbol and not IParameterSymbol and not IParameterSymbol { RefKind: RefKind.Ref })
CSharpTypeInferenceService.TypeInferrer.cs (1)
793if (parameter.RefKind == refKind)
ITypeSymbolExtensions.TypeSyntaxGeneratorVisitor.cs (1)
159var parameters = symbol.Signature.Parameters.Select(p => (p.Type, RefKindModifiers: CSharpSyntaxGeneratorInternal.GetParameterModifiers(p.RefKind)))
J\s\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ExpressionSyntaxExtensions.cs\ExpressionSyntaxExtensions.cs (1)
373ReducedFrom.Parameters: [{ RefKind: RefKind.Ref }, ..],
ParameterGenerator.cs (1)
77var list = CSharpSyntaxGeneratorInternal.GetParameterModifiers(parameter.RefKind);
Microsoft.CodeAnalysis.Features (18)
AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (1)
505switch (unusedParameter.RefKind)
AddConstructorParametersFromMembers\AddConstructorParametersFromMembersCodeRefactoringProvider.cs (1)
153refKind: p.RefKind,
AddConstructorParametersFromMembers\AddConstructorParametersFromMembersCodeRefactoringProvider.State.cs (1)
112return constructorParams.All(parameter => parameter.RefKind == RefKind.None) &&
Completion\Providers\AbstractContextVariableArgumentProvider.cs (1)
31|| context.Parameter.RefKind != RefKind.None;
Completion\Providers\AbstractPartialMethodCompletionProvider.cs (1)
78parameters: method.Parameters.SelectAsArray(p => CodeGenerationSymbolFactory.CreateParameterSymbol(p.GetAttributes(), p.RefKind, p.IsParams, p.Type, p.Name)),
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (2)
3935if (oldParameter.RefKind != newParameter.RefKind ||
GenerateConstructorFromMembers\AbstractGenerateConstructorFromMembersCodeRefactoringProvider.State.cs (1)
107where c.Parameters.All(p => p.RefKind == RefKind.None) && !c.Parameters.Any(static p => p.IsParams)
GenerateMember\GenerateConstructor\AbstractGenerateConstructorService.State.cs (1)
255ctorParameter.RefKind == _parameterRefKinds[i];
GenerateMember\GenerateConstructor\GenerateConstructorHelpers.cs (2)
37constructor.Parameters.SequenceEqual(parameters, (p1, p2) => p1.RefKind == p2.RefKind) &&
GenerateMember\GenerateParameterizedMember\AbstractGenerateParameterizedMemberService.MethodSignatureInfo.cs (1)
41=> _methodSymbol.Parameters.SelectAsArray(p => p.RefKind);
GenerateMember\GenerateVariable\AbstractGenerateVariableService.cs (1)
231parameter.RefKind is RefKind.Out ||
InitializeParameter\AbstractAddParameterCheckCodeRefactoringProvider.cs (1)
259if (parameter.RefKind == RefKind.Out)
ReplaceMethodWithProperty\ReplaceMethodWithPropertyCodeRefactoringProvider.cs (1)
144setMethod.Parameters is [{ RefKind: RefKind.None } parameter] &&
RQName\RQNodeBuilder.cs (2)
152if (parameter.RefKind == RefKind.Out) 156else if (parameter.RefKind == RefKind.Ref)
SuppressMessageAttributeState.TargetSymbolResolver.cs (1)
796if ((symbol.RefKind == RefKind.None) == parameterInfo.IsRefOrOut)
Microsoft.CodeAnalysis.Test.Utilities (6)
Diagnostics\CouldHaveMoreSpecificTypeAnalyzer.cs (2)
90if (argument.Parameter.RefKind == RefKind.Out || argument.Parameter.RefKind == RefKind.Ref)
Diagnostics\FieldCouldBeReadOnlyAnalyzer.cs (2)
78if (argument.Parameter.RefKind == RefKind.Out || argument.Parameter.RefKind == RefKind.Ref)
Diagnostics\LocalCouldBeConstAnalyzer.cs (2)
71if (argument.Parameter.RefKind == RefKind.Out || argument.Parameter.RefKind == RefKind.Ref)
Microsoft.CodeAnalysis.VisualBasic (2)
SymbolDisplay\SymbolDisplayVisitor.Members.vb (1)
527If symbol.RefKind <> RefKind.None AndAlso IsExplicitByRefParameter(symbol) Then
Symbols\ParameterSymbol.vb (1)
298Private ReadOnly Property IParameterSymbol_RefKind As RefKind Implements IParameterSymbol.RefKind
Microsoft.CodeAnalysis.VisualBasic.CodeStyle (5)
ExpressionSyntaxExtensions.vb (4)
287Return parameter IsNot Nothing AndAlso parameter.RefKind <> RefKind.None 302Return method.Parameters(index).RefKind <> RefKind.None 307Return prop.Parameters(index).RefKind <> RefKind.None 399method.ReducedFrom.Parameters.First().RefKind = RefKind.Ref Then
ParenthesizedExpressionSyntaxExtensions.vb (1)
288parameter.RefKind <> RefKind.None Then
Microsoft.CodeAnalysis.VisualBasic.Features (3)
CodeRefactorings\InlineTemporary\VisualBasicInlineTemporaryCodeRefactoringProvider.vb (1)
108Return parameter.RefKind <> RefKind.None
Completion\CompletionProviders\CrefCompletionProvider.vb (1)
233If parameter.RefKind = RefKind.Ref Then
ExtractMethod\Extensions.vb (1)
149If parameter.RefKind <> RefKind.None Then
Microsoft.CodeAnalysis.VisualBasic.Test.Utilities (1)
Extensions.vb (1)
342Return DirectCast(this, IParameterSymbol).RefKind
Microsoft.CodeAnalysis.VisualBasic.Workspaces (7)
CodeGeneration\EventGenerator.vb (1)
192Return CodeGenerationSymbolFactory.CreateParameterSymbol(parameter.GetAttributes(), parameter.RefKind, isParams:=False, type:=parameter.Type, name:=parameter.Name, hasDefaultValue:=False)
J\s\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\VisualBasic\Extensions\ExpressionSyntaxExtensions.vb\ExpressionSyntaxExtensions.vb (4)
287Return parameter IsNot Nothing AndAlso parameter.RefKind <> RefKind.None 302Return method.Parameters(index).RefKind <> RefKind.None 307Return prop.Parameters(index).RefKind <> RefKind.None 399method.ReducedFrom.Parameters.First().RefKind = RefKind.Ref Then
ParenthesizedExpressionSyntaxExtensions.vb (1)
288parameter.RefKind <> RefKind.None Then
Simplification\VisualBasicSimplificationService.Expander.vb (1)
325parameter.RefKind <> RefKind.None Then
Microsoft.CodeAnalysis.Workspaces (22)
CodeGenerationSymbolFactory.cs (1)
303refKind ?? parameter.RefKind,
Editing\SyntaxGenerator.cs (1)
341symbol.RefKind,
IParameterSymbolExtensions.cs (1)
13switch (symbol.RefKind)
J\s\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ISymbolExtensions.cs\ISymbolExtensions.cs (1)
434if (symbol is IMethodSymbol method && method.Parameters.All(p => p.RefKind == RefKind.None))
OperationExtensions.cs (1)
155switch (argumentOperation.Parameter?.RefKind)
ReassignedVariable\AbstractReassignedVariableService.cs (1)
176symbolIsDefinitelyAssigned: parameter.RefKind != RefKind.Out,
Shared\Extensions\IMethodSymbolExtensions.cs (2)
86CodeGenerationSymbolFactory.CreateParameterSymbol(p.GetAttributes(), p.RefKind, p.IsParams, p.Type.SubstituteTypes(mapping, typeGenerator), p.Name, p.IsOptional, 207p.RefKind, p.IsParams, p.Type, p.Name, p.IsOptional,
Shared\Extensions\IParameterSymbolExtensions.cs (2)
22parameter.RefKind, 37parameter.RefKind,
Shared\Extensions\IPropertySymbolExtensions.cs (1)
63p.RefKind, p.IsParams, p.Type, p.Name, p.IsOptional,
Shared\Extensions\SyntaxGeneratorExtensions.cs (3)
108if (parameter.RefKind != RefKind.Out && 130if (parameter.RefKind != RefKind.Out && 226var refKind = parameter.RefKind;
SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (2)
56AreRefKindsEquivalent(x.RefKind, y.RefKind, _distinguishRefFromOut) &&
SymbolKey.cs (3)
38/// equal <see cref="IParameterSymbol.RefKind"/>s.</item> 62/// the "same" <see cref="IParameterSymbol.RefKind"/>s.</item> 290refKinds[i], parameters[i].RefKind, distinguishRefFromOut: false))
SymbolKey.SymbolKeyWriter.cs (1)
81_writeRefKind = p => WriteRefKind(p.RefKind);
SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
441if (parameter.RefKind is RefKind.Ref or RefKind.Out)
SyntaxGeneratorExtensions.cs (1)
55return factory.Argument(parameter.RefKind, factory.IdentifierName(parameter.Name));
Microsoft.VisualStudio.LanguageServices (3)
ChangeSignature\ChangeSignatureDialogViewModel.ParameterViewModels.cs (1)
190switch (ParameterSymbol.RefKind)
Progression\GraphBuilder.cs (2)
302node.SetValue<bool>(Properties.IsByReference, parameterSymbol.RefKind == RefKind.Ref); 303node.SetValue<bool>(Properties.IsOut, parameterSymbol.RefKind == RefKind.Out);
Microsoft.VisualStudio.LanguageServices.CSharp (4)
CodeModel\CSharpCodeModelService_Prototype.cs (2)
527if (parameter.RefKind == RefKind.Ref) 531else if (parameter.RefKind == RefKind.Out)
ObjectBrowser\DescriptionBuilder.cs (2)
424if (current.RefKind == RefKind.Ref) 428else if (current.RefKind == RefKind.Out)
Microsoft.VisualStudio.LanguageServices.Implementation (2)
CodeModel\ExternalElements\ExternalCodeParameter.cs (2)
90if (ParameterSymbol.RefKind == RefKind.Ref) 94else if (ParameterSymbol.RefKind == RefKind.Out)
Microsoft.VisualStudio.LanguageServices.VisualBasic (1)
ObjectBrowser\DescriptionBuilder.vb (1)
389If current.RefKind = RefKind.Ref Then