95 references to RefReadOnlyParameter
Microsoft.CodeAnalysis (3)
Symbols\RefKind.cs (3)
59case RefKind.RefReadOnlyParameter: return "ref readonly"; 82case RefKind.RefReadOnlyParameter: return "ref readonly "; 93internal const RefKind StrictIn = RefKind.RefReadOnlyParameter + 1;
Microsoft.CodeAnalysis.CodeStyle.Fixes (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
107=> symbol is { RefKind: RefKind.Ref or RefKind.In or RefKind.RefReadOnlyParameter, ScopedKind: ScopedKind.ScopedRef }
Microsoft.CodeAnalysis.CSharp (70)
Binder\Binder.ValueChecks.cs (2)
1149if (parameterSymbol.RefKind is RefKind.In or RefKind.RefReadOnlyParameter && RequiresAssignableVariable(valueKind)) 2442parameter?.RefKind is RefKind.In or RefKind.RefReadOnlyParameter)
Binder\Binder_Attributes.cs (1)
250if (attributeConstructor.Parameters.Any(static p => p.RefKind is RefKind.In or RefKind.RefReadOnlyParameter))
Binder\Binder_Crefs.cs (1)
939refKind = RefKind.RefReadOnlyParameter;
Binder\Binder_Expressions.cs (3)
3865argumentRefKindsBuilder.Add(refKind == RefKind.RefReadOnlyParameter ? RefKind.In : refKind); 3900if (argRefKind is RefKind.None or RefKind.In && parameter.RefKind == RefKind.RefReadOnlyParameter) 3924else if (argRefKind == RefKind.None && parameter.RefKind == RefKind.RefReadOnlyParameter)
Binder\ForEachLoopBinder.cs (1)
1228patternDisposeMethod.ParameterRefKinds.All(static refKind => refKind is RefKind.None or RefKind.In or RefKind.RefReadOnlyParameter));
Binder\Semantics\OverloadResolution\OverloadResolution.cs (5)
2689RefKind.In or RefKind.RefReadOnlyParameter => true, 3967else if (paramRefKind == RefKind.RefReadOnlyParameter && argRefKind is RefKind.None or RefKind.Ref or RefKind.In) 4002(RefKind.RefReadOnlyParameter, RefKind.Ref) or 4003(RefKind.RefReadOnlyParameter, RefKind.In) or 4004(RefKind.In, RefKind.RefReadOnlyParameter))
Binder\Semantics\OverloadResolution\OverloadResolutionResult.cs (2)
1257!(refParameter == RefKind.RefReadOnlyParameter && refArg is RefKind.None or RefKind.Ref or RefKind.In)) 1278else if (refParameter is RefKind.None or RefKind.In or RefKind.RefReadOnlyParameter)
BoundTree\Constructors.cs (3)
199RefKind.RefReadOnlyParameter => argumentRefKind is RefKind.In or RefKindExtensions.StrictIn, 234if (!result.IsDefaultOrEmpty && result.Contains(RefKind.RefReadOnlyParameter)) 240builder.Add(refKind == RefKind.RefReadOnlyParameter ? RefKind.In : refKind);
CodeGen\CodeGenerator_HasHome.cs (2)
88((BoundParameter)expression).ParameterSymbol.RefKind is not (RefKind.In or RefKind.RefReadOnlyParameter); 122(IsAnyReadOnly(addressKind) && lhsRefKind is RefKind.RefReadOnly or RefKind.RefReadOnlyParameter);
CodeGen\EmitExpression.cs (4)
981RefKind.RefReadOnlyParameter => argRefKind is RefKind.In or RefKindExtensions.StrictIn, 988Debug.Assert(parameters[i].RefKind != RefKind.RefReadOnlyParameter, 994RefKind.RefReadOnlyParameter => RefKind.In, // should not happen, asserted above 2994LocalDefinition temp = EmitAddress(assignmentOperator.Right, lhs.GetRefKind() is RefKind.RefReadOnly or RefKindExtensions.StrictIn or RefKind.RefReadOnlyParameter ? AddressKind.ReadOnlyStrict : AddressKind.Writeable);
FlowAnalysis\AbstractFlowPass.cs (1)
1553case RefKind.RefReadOnlyParameter:
FlowAnalysis\NullableWalker.cs (1)
2470if (refKind is RefKind.None or RefKind.In or RefKind.RefReadOnlyParameter)
Lowering\LocalRewriter\LocalRewriter_Call.cs (4)
884local = _factory.StoreToTemp(visitedArgument, out var store, refKind: paramRefKind is RefKind.In or RefKind.RefReadOnlyParameter ? RefKind.In : argRefKind); 1163if (paramRefKind is RefKind.In or RefKind.RefReadOnlyParameter) 1379if (paramRefKind is RefKind.In or RefKind.RefReadOnlyParameter) 1403refKind: paramRefKind is RefKind.In or RefKind.RefReadOnlyParameter
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (1)
186.All(p => p.RefKind is RefKind.None or RefKind.In or RefKind.RefReadOnlyParameter));
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (2)
500Debug.Assert(method.Parameters.AsSpan()[1..].All(static (p) => (p.IsOptional || p.IsParams) && p.RefKind is RefKind.None or RefKind.In or RefKind.RefReadOnlyParameter)); 507Debug.Assert(method.ParameterRefKinds.IsDefaultOrEmpty || method.ParameterRefKinds.All(static refKind => refKind is RefKind.In or RefKind.RefReadOnlyParameter or RefKind.None));
Lowering\LocalRewriter\LoweredDynamicOperationFactory.cs (1)
793Debug.Assert(refKind != RefKind.RefReadOnlyParameter);
Lowering\SyntheticBoundNodeFactory.cs (3)
876if (!result.IsDefaultOrEmpty && (result.Contains(RefKind.RefReadOnlyParameter) || 896RefKind.In or RefKind.RefReadOnlyParameter when useStrictArgumentRefKinds => RefKindExtensions.StrictIn, 897RefKind.RefReadOnlyParameter => RefKind.In,
SymbolDisplay\SymbolDisplayVisitor.Members.cs (1)
1150case RefKind.RefReadOnlyParameter:
Symbols\Extensions\SynthesizedExtensionMarker.cs (1)
96else if (parameterRefKind is RefKind.In or RefKind.RefReadOnlyParameter && parameterType.TypeKind != TypeKind.Struct)
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (1)
588true when requiresLocationAllowed && CustomModifierUtils.HasRequiresLocationAttributeModifier(paramRefCustomMods) => RefKind.RefReadOnlyParameter,
Symbols\FunctionPointers\FunctionPointerParameterSymbol.cs (1)
79internal override bool IsMetadataIn => RefKind is RefKind.In or RefKind.RefReadOnlyParameter;
Symbols\MemberSignatureComparer.cs (2)
841return (refKind1, refKind2) is (RefKind.RefReadOnlyParameter, RefKind.In) or (RefKind.In, RefKind.RefReadOnlyParameter);
Symbols\Metadata\PE\PEMethodSymbol.cs (2)
1130case RefKind.RefReadOnlyParameter: 1158case RefKind.RefReadOnlyParameter:
Symbols\Metadata\PE\PEParameterSymbol.cs (4)
296refKind = RefKind.RefReadOnlyParameter; 401Debug.Assert(parameter.RefKind != RefKind.RefReadOnlyParameter); 404else if (parameter.RefKind is RefKind.In or RefKind.RefReadOnlyParameter) 1085bool filterRequiresLocationAttribute = this.RefKind == RefKind.RefReadOnlyParameter;
Symbols\NamedTypeSymbol.cs (1)
360(thisParam.RefKind is RefKind.In or RefKind.RefReadOnlyParameter && thisParam.Type.TypeKind != TypeKind.Struct))
Symbols\ParameterSymbol.cs (1)
168(refKind is RefKind.In or RefKind.RefReadOnlyParameter) ||
Symbols\ReducedExtensionMethodSymbol.cs (1)
539internal override bool IsEffectivelyReadOnly => _reducedFrom.Parameters[0].RefKind is RefKind.In or RefKind.RefReadOnlyParameter;
Symbols\RefKindExtensions.cs (1)
47case RefKind.RefReadOnlyParameter:
Symbols\Source\ParameterHelpers.cs (5)
145RefKind.RefReadOnlyParameter => CreateRefReadonlyParameterModifiers(binder, diagnostics, syntax), 359else if (parameter.RefKind == RefKind.RefReadOnlyParameter) 985if (refKind == RefKind.RefReadOnlyParameter) 1101refKind = RefKind.RefReadOnlyParameter; 1121if (addRefReadOnlyModifier && refKind is RefKind.In or RefKind.RefReadOnlyParameter)
Symbols\Source\SourceComplexParameterSymbol.cs (2)
902if (this.RefKind == RefKind.RefReadOnlyParameter && this.IsOptional && this.ParameterSyntax.Default is null) 1419case RefKind.RefReadOnlyParameter:
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (1)
1419int nRefParameters = parameters.Count(p => p.RefKind is RefKind.Ref or RefKind.In or RefKind.RefReadOnlyParameter or RefKind.Out);
Symbols\Source\SourceOrdinaryMethodSymbol.cs (1)
223else if (parameter0RefKind is RefKind.In or RefKind.RefReadOnlyParameter && parameter0Type.TypeKind != TypeKind.Struct)
Symbols\Source\SourceParameterSymbol.cs (1)
295internal override bool IsMetadataIn => RefKind is RefKind.In or RefKind.RefReadOnlyParameter;
Symbols\Source\SourceParameterSymbolBase.cs (1)
121case RefKind.RefReadOnlyParameter:
Symbols\Synthesized\RefKindVector.cs (2)
50(true, false, false) => RefKind.RefReadOnlyParameter, 63RefKind.RefReadOnlyParameter => (true, false, false),
Symbols\Synthesized\SynthesizedIntrinsicOperatorSymbol.cs (1)
472internal override bool IsMetadataIn => RefKind is RefKind.In or RefKind.RefReadOnlyParameter;
Symbols\Synthesized\SynthesizedParameterSymbol.cs (3)
189case RefKind.RefReadOnlyParameter: 251internal sealed override bool IsMetadataIn => RefKind is RefKind.In or RefKind.RefReadOnlyParameter; 408internal override bool IsMetadataIn => RefKind is RefKind.In or RefKind.RefReadOnlyParameter || _baseParameterForAttributes?.GetDecodedWellKnownAttributeData()?.HasInAttribute == true;
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSyntaxGeneratorInternal.cs (1)
170case RefKind.RefReadOnlyParameter:
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (4)
RefReadonlyParameterTests.cs (3)
64Assert.Equal(refKind, RefKind.RefReadOnlyParameter == parameter.RefKind); 7131Assert.Equal(RefKind.RefReadOnlyParameter, methodFromCref!.Parameters.Single().RefKind); 7132var methodFromClass = comp.GetMembers("C.M").Cast<MethodSymbol>().Single(m => m.Parameters.Single().RefKind == RefKind.RefReadOnlyParameter);
Semantics\ExtensionTests.cs (1)
2917Assert.Equal(RefKind.RefReadOnlyParameter, m.GlobalNamespace.GetMember<MethodSymbol>("Extensions.<>E__0.<Extension>$").Parameters[0].RefKind);
Microsoft.CodeAnalysis.CSharp.Features (1)
Completion\CompletionProviders\CrefCompletionProvider.cs (1)
316RefKind.RefReadOnlyParameter => "ref readonly ",
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (3)
Semantics\SimpleLambdaParametersWithModifiersTests.cs (3)
1362Assert.Equal(RefKind.RefReadOnlyParameter, symbol.Parameters.Single().RefKind); 1389Assert.Equal(RefKind.RefReadOnlyParameter, symbol.Parameters.Single().RefKind); 1422Assert.Equal(RefKind.RefReadOnlyParameter, symbol.Parameters.Single().RefKind);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (1)
DocumentationComments\CrefTests.cs (1)
6752Assert.Equal(RefKind.RefReadOnlyParameter, parameterSymbol.RefKind);
Microsoft.CodeAnalysis.CSharp.Workspaces (2)
CodeGeneration\CSharpSyntaxGenerator.cs (1)
218case RefKind.RefReadOnlyParameter:
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSyntaxGeneratorInternal.cs (1)
170case RefKind.RefReadOnlyParameter:
Microsoft.CodeAnalysis.Workspaces (1)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\LanguageServices\SyntaxGeneratorInternalExtensions\SyntaxGeneratorInternal.cs (1)
107=> symbol is { RefKind: RefKind.Ref or RefKind.In or RefKind.RefReadOnlyParameter, ScopedKind: ScopedKind.ScopedRef }
Microsoft.Interop.SourceGeneration (6)
Marshalling\BreakingChangeDetector.cs (1)
26if (info is { RefKind: RefKind.In or RefKind.RefReadOnlyParameter, MarshallingAttributeInfo: NativeMarshallingAttributeInfo(ManagedTypeInfo { DiagnosticFormattedName: TypeNames.ComVariantMarshaller }, _) }
Marshalling\MarshallerHelpers.cs (5)
107return context.SingleFrameSpansNativeContext && (!info.IsByRef || info.RefKind == RefKind.In || info.RefKind == RefKind.RefReadOnlyParameter); 291case RefKind.RefReadOnlyParameter: 313case RefKind.RefReadOnlyParameter: 409case RefKind.RefReadOnlyParameter: 434RefKind.RefReadOnlyParameter => Token(SyntaxKind.InKeyword),
Microsoft.VisualStudio.LanguageServices (1)
ChangeSignature\ChangeSignatureDialogViewModel.ParameterViewModels.cs (1)
198case RefKind.RefReadOnlyParameter:
Microsoft.VisualStudio.LanguageServices.UnitTests (1)
ChangeSignature\ChangeSignatureViewModelTests.vb (1)
298Dim includedInTest = {RefKind.None, RefKind.Ref, RefKind.Out, RefKind.In, RefKind.RefReadOnly, RefKind.RefReadOnlyParameter}