9 overrides of RefKind
Microsoft.CodeAnalysis.CSharp (9)
Binder\Binder.ValueChecks.cs (1)
3202public override RefKind RefKind
Symbols\FunctionPointers\FunctionPointerParameterSymbol.cs (1)
27public override RefKind RefKind { get; }
Symbols\Metadata\PE\PEParameterSymbol.cs (1)
451public override RefKind RefKind
Symbols\SignatureOnlyParameterSymbol.cs (1)
50public override RefKind RefKind { get { return _refKind; } }
Symbols\Source\SourceClonedParameterSymbol.cs (1)
95public override RefKind RefKind
Symbols\Source\SourceParameterSymbol.cs (1)
215public sealed override RefKind RefKind
Symbols\Source\ThisParameterSymbol.cs (1)
148public override RefKind RefKind
Symbols\Synthesized\SynthesizedParameterSymbol.cs (1)
47public override RefKind RefKind => _refKind;
Symbols\Wrapped\WrappedParameterSymbol.cs (1)
44public sealed override RefKind RefKind
378 references to RefKind
Microsoft.CodeAnalysis.CSharp (222)
Binder\Binder.ValueChecks.cs (22)
357Debug.Assert(parameter.RefKind.IsWritableReference() && parameter.Type.IsRefLikeOrAllowsRefLikeType()); 1356if (parameterSymbol.RefKind is RefKind.In or RefKind.RefReadOnlyParameter && RequiresAssignableVariable(valueKind)) 1361else if (parameterSymbol.RefKind == RefKind.None && RequiresRefAssignableVariable(valueKind)) 1367Debug.Assert(parameterSymbol.RefKind != RefKind.None || !RequiresRefAssignableVariable(valueKind)); 1371if (parameterSymbol.RefKind == RefKind.None && 1470{ RefKind: RefKind.Out, UseUpdatedEscapeRules: true } => SafeContext.ReturnOnly, 1482{ RefKind: RefKind.None } => SafeContext.CurrentMethod, 1484{ HasUnscopedRefAttribute: true, UseUpdatedEscapeRules: true, RefKind: RefKind.Out } => SafeContext.ReturnOnly, 1517Debug.Assert(parameterSymbol.RefKind == RefKind.None || isRefScoped || refSafeToEscape.IsReturnOnly); 2309(param is { RefKind: not RefKind.None, Type: { } type } && type.IsRefLikeOrAllowsRefLikeType())) && 2511(param is { RefKind: not RefKind.None, Type: { } type } && type.IsRefLikeOrAllowsRefLikeType())) && 2611var refKind = parameter?.RefKind ?? RefKind.None; 2617parameter?.RefKind is RefKind.In or RefKind.RefReadOnlyParameter) 2619refKind = parameter.RefKind; 2629parameter.RefKind.IsWritableReference(); 2689refKind = thisParameter.RefKind; 2854if (parameter.Type.IsRefLikeOrAllowsRefLikeType() && parameter.RefKind != RefKind.Out && GetParameterValEscapeLevel(parameter) is { } valEscapeLevel) 2861if (parameter.RefKind != RefKind.None && GetParameterRefEscapeLevel(parameter) is { } refEscapeLevel) 2919if (parameter.RefKind != RefKind.None) 3192Debug.Assert(underlyingParameter.RefKind != RefKind.Out); // Shouldn't get here for a constructor 3206if (_underlyingParameter.RefKind is not RefKind.None and var underlyingRefKind) 4615if (constructMethod is not { Parameters: [{ RefKind: RefKind.None } parameter] })
Binder\Binder_Attributes.cs (1)
250if (attributeConstructor.Parameters.Any(static p => p.RefKind is RefKind.In or RefKind.RefReadOnlyParameter))
Binder\Binder_Conversions.cs (3)
1893if (method.Parameters is not [{ RefKind: RefKind.None, Type: var parameterType }] 2879sourceRefKind: delegateParameter.RefKind, 2880destinationRefKind: methodParameter.RefKind,
Binder\Binder_Deconstruct.cs (1)
688if (parameters[i].RefKind != RefKind.Out)
Binder\Binder_Expressions.cs (15)
2142if (IsBadLocalOrParameterCapture(parameter, parameter.Type, parameter.RefKind)) 2146if (parameter.RefKind != RefKind.None) 2166(parameter.RefKind != RefKind.None || parameter.Type.IsRestrictedType()) && 2169if (parameter.RefKind != RefKind.None) 2183else if (primaryCtor is { ThisParameter.RefKind: not RefKind.None } && 2544if (thisSymbol is not null && thisSymbol.ContainingSymbol != ContainingMemberOrLambda && thisSymbol.RefKind != RefKind.None) 3797refKind = receiverParameter.RefKind; 3818refKind = parameter.RefKind; 3837refKind = parameter.RefKind; 3911if (argRefKind is RefKind.None or RefKind.In && parameter.RefKind == RefKind.RefReadOnlyParameter) 3925if (parameter.RefKind == RefKind.In) 3935else if (argRefKind == RefKind.None && parameter.RefKind == RefKind.RefReadOnlyParameter) 10380original.Parameters[0] is { Type.SpecialType: SpecialType.System_Int32, RefKind: RefKind.None }) 10481original.Parameters[0] is { Type.SpecialType: SpecialType.System_Int32, RefKind: RefKind.None } && 10482original.Parameters[1] is { Type.SpecialType: SpecialType.System_Int32, RefKind: RefKind.None };
Binder\Binder_Invocation.cs (3)
1265if (receiverParameter.RefKind == RefKind.Ref) 1281else if (receiverParameter.RefKind == RefKind.In) 1368if (extensionParameter.RefKind == RefKind.Ref)
Binder\Binder_Operators.cs (4)
3677(parameterCount == 0 || method.Parameters[0].RefKind is RefKind.None or RefKind.In); 3734!((extensionParameter.Type.IsValueType && extensionParameter.RefKind == RefKind.Ref) || 3735(extensionParameter.Type.IsReferenceType && extensionParameter.RefKind == RefKind.None))) 4071if (parameterSymbol.RefKind != RefKind.None)
Binder\Binder_Statements.cs (2)
2178var delegateRefKind = delegateParameters[i].RefKind; 2238var delegateRefKind = delegateParameters[i].RefKind;
Binder\ExecutableCodeBinder.cs (1)
115if (parameter.RefKind != RefKind.None)
Binder\ForEachLoopBinder.cs (1)
252else if (getEnumeratorMethod.GetIsNewExtensionMember() && getEnumeratorMethod.ContainingType.ExtensionParameter.RefKind == RefKind.Ref)
Binder\RefSafetyAnalysis.cs (1)
971!parameter.RefKind.IsWritableReference())
Binder\Semantics\Conversions\Conversions.cs (2)
438isParamsArray: parameter.IsParamsArray, isParamsCollection: parameter.IsParamsCollection, parameter.RefKind); 442analyzedArguments.RefKinds.Add(parameter.RefKind);
Binder\Semantics\Conversions\ConversionsBase.cs (5)
1514delegateParameterRefKind: delegateParameters[p].RefKind, 1569if (delegateParameters[p].RefKind == RefKind.Out) 3399if (sourceParam.RefKind != destinationParam.RefKind) 3404if (!hasConversion(sourceParam.RefKind, destinationSig.Parameters[i].TypeWithAnnotations, sourceSig.Parameters[i].TypeWithAnnotations, ref useSiteInfo))
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (3)
2449if ((sourceParam.Type.IsReferenceType || sourceParam.Type.IsFunctionPointer()) && sourceParam.RefKind == RefKind.None) 2799if ((sourceParam.Type.IsReferenceType || sourceParam.Type.IsFunctionPointer()) && sourceParam.RefKind == RefKind.None) 3207[extension.ExtensionParameter.RefKind],
Binder\Semantics\OverloadResolution\OverloadResolution.cs (9)
2573parameter1RefKind = parameter.RefKind; 2634if (p1.RefKind == RefKind.None && isAcceptableRefMismatch(p2.RefKind, isInterpolatedStringHandlerConversion)) 2645else if (p2.RefKind == RefKind.None && isAcceptableRefMismatch(p1.RefKind, isInterpolatedStringHandlerConversion)) 3774if (param1.RefKind != param2.RefKind) 3894hasSomeRefKinds |= member.ContainingType.ExtensionParameter.RefKind != RefKind.None; 3947var paramRefKind = parameter.RefKind;
Binder\Semantics\OverloadResolution\OverloadResolutionResult.cs (2)
1122if (parameters[i].RefKind != RefKind.None) 1192RefKind refParameter = parameter.RefKind;
BoundTree\BoundExpressionExtensions.cs (1)
28return ((BoundParameter)node).ParameterSymbol.RefKind;
BoundTree\UnboundLambda.cs (1)
1132refKindsBuilder.Add(p.RefKind);
CodeGen\CodeGenerator_HasHome.cs (1)
88((BoundParameter)expression).ParameterSymbol.RefKind is not (RefKind.In or RefKind.RefReadOnlyParameter);
CodeGen\CodeGenerator_RefSafety.cs (2)
100if (parameter.RefKind.IsWritableReference()) 105else if (parameter.RefKind != RefKind.None && parameter.EffectiveScope == ScopedKind.None)
CodeGen\EmitAddress.cs (1)
480if (parameterSymbol.RefKind == RefKind.None)
CodeGen\EmitExpression.cs (12)
962Debug.Assert(parameters.All(p => p.RefKind == RefKind.None) || !argRefKindsOpt.IsDefault, "there are nontrivial parameters, so we must have argRefKinds"); 988Debug.Assert(argRefKind == parameters[i].RefKind || 989parameters[i].RefKind switch 999Debug.Assert(parameters[i].RefKind != RefKind.RefReadOnlyParameter, 1003argRefKind = parameters[i].RefKind switch 1299return ((BoundParameter)receiver).ParameterSymbol.RefKind != RefKind.None; 1435if (parameter.ParameterSymbol.RefKind != RefKind.None) 2244return ((BoundParameter)receiver).ParameterSymbol.RefKind != RefKind.None; 2665if (System.Linq.ImmutableArrayExtensions.All(ctor.Parameters, p => p.RefKind == RefKind.None) && 2796return ((BoundParameter)left).ParameterSymbol.RefKind == RefKind.None; 2839if (left.ParameterSymbol.RefKind != RefKind.None && 3336if (parameter.ParameterSymbol.RefKind != RefKind.None && !refAssign)
CodeGen\EmitStatement.cs (1)
1292if (parameter.ParameterSymbol.RefKind == RefKind.None)
CodeGen\Optimizer.cs (1)
1050if (((BoundParameter)lhs).ParameterSymbol.RefKind != RefKind.None)
DocumentationComments\DocumentationCommentIDVisitor.PartVisitor.cs (1)
252if (symbol.RefKind != RefKind.None)
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (6)
664return parameter.RefKind is RefKind.None == other.RefKind is RefKind.None && 694ValidateFunctionPointerParamOrReturn(param.TypeWithAnnotations, param.RefKind, param.RefCustomModifiers, allowOut: true); 695ValidateFunctionPointerParamOrReturn(otherParam.TypeWithAnnotations, otherParam.RefKind, otherParam.RefCustomModifiers, allowOut: true); 697return param.RefKind == otherParam.RefKind && AreTypesEqual(param.TypeWithAnnotations, otherParam.TypeWithAnnotations);
Emitter\Model\ParameterSymbolAdapter.cs (1)
41return AdaptedParameterSymbol.RefKind != RefKind.None;
Emitter\Model\ParameterTypeInformation.cs (1)
39return _underlyingParameter.RefKind != RefKind.None;
FlowAnalysis\AbstractFlowPass.cs (2)
1441var thisRefKind = thisParameter.RefKind; 1556if (method is null || Binder.GetCorrespondingParameter(i, method.Parameters, argsToParamsOpt, expanded)?.RefKind.IsWritableReference() != false)
FlowAnalysis\DataFlowsOutWalker.cs (1)
233((param.RefKind != RefKind.None && !param.IsImplicitlyDeclared && !RegionContains(param.GetFirstLocation().SourceSpan)) ||
FlowAnalysis\DefiniteAssignment.cs (11)
350NoteWrite(parameter, value: null, read: true, isRef: parameter.RefKind != RefKind.None); 1235((ParameterSymbol)symbol).RefKind == RefKind.Out) 1623if (isRef && param.RefKind == RefKind.Out) 1815if (parameter.RefKind != RefKind.Out) 1827if (thisParameter.RefKind != RefKind.Out) 1839if (extensionParameter.RefKind != RefKind.Out) 1862if (current is not MethodSymbol && parameter.RefKind == RefKind.Out) 1892if (parameter.RefKind == RefKind.Out && !(this.CurrentSymbol is MethodSymbol currentMethod && currentMethod.IsAsync)) // out parameters not allowed in async 1900NoteWrite(parameter, value: null, read: true, isRef: parameter.RefKind != RefKind.None); 1958if (!parameter.IsThis && parameter.RefKind != RefKind.Out && parameter.ContainingSymbol is SynthesizedPrimaryConstructor primaryCtor) 1970if (parameter.RefKind != RefKind.None)
FlowAnalysis\NullableWalker.cs (8)
1348var refKind = parameter.RefKind; 2985if (parameter.RefKind != RefKind.Out) 6703return extensionParameter.RefKind == RefKind.Ref ? RefKind.Ref : RefKind.None; 10621case BoundParameter { ParameterSymbol: { RefKind: RefKind.None } parameter } when 10757VisitArgumentConversionAndInboundAssignmentsAndPreConditions(conversionOpt: null, variable.Expression, underlyingConversion, parameter.RefKind, 10771variable.Expression, parameter.RefKind, parameter, parameter.TypeWithAnnotations, GetRValueAnnotations(parameter), 11346ImmutableArray<RefKind> refKindsOpt = extensionParameter.RefKind == RefKind.Ref ? [RefKind.Ref] : default; 12660parameter.RefKind,
FlowAnalysis\ReadWriteWalker.cs (3)
87if (p.RefKind != RefKind.None) _readOutside.Add(p); 90if (_symbol.TryGetInstanceExtensionParameter(out ParameterSymbol extensionParameter) && extensionParameter.RefKind != RefKind.None) 100if ((object)thisParameter != null && thisParameter.RefKind != RefKind.None)
Lowering\DiagnosticsPass_ExpressionTrees.cs (1)
619if (p.RefKind != RefKind.None && p.TryGetFirstLocation() is Location location)
Lowering\DiagnosticsPass_Warnings.cs (1)
244if (method.Parameters[i].RefKind != RefKind.None && (argumentRefKindsOpt.IsDefault || argumentRefKindsOpt[i] == RefKind.None)) return true;
Lowering\ExtensionMethodReferenceRewriter.cs (1)
105var receiverRefKind = method.Parameters[0].RefKind;
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (2)
307if (parameter.RefKind == RefKind.Out || parameter.IsDiscard) 453Debug.Assert(parameter.RefKind == RefKind.None);
Lowering\Instrumentation\ModuleCancellationInstrumenter.cs (1)
186member is MethodSymbol { Parameters: [.., { RefKind: RefKind.None, Type: { } lastParamType }] parametersWithCancellationToken } overload &&
Lowering\LocalRewriter\LocalRewriter.cs (1)
1128symbol.Parameters.Any(static p => p.RefKind == RefKind.In))
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (1)
190Debug.Assert(parameter.RefKind == RefKind.Out);
Lowering\LocalRewriter\LocalRewriter_Call.cs (9)
254|| methodThisParameter.RefKind != interceptorThisParameterForCompare.RefKind: 300var thisRefKind = methodThisParameter.RefKind; 322argumentRefKindsOpt = method.Parameters.SelectAsArray(static param => param.RefKind); 899RefKind paramRefKind = parameters[paramIndex].RefKind; 954RefKind receiverRefKind = methodOrIndexer.ContainingType.ExtensionParameter.RefKind; 1221var paramRefKind = parameters[i].RefKind; 1397RefKind paramRefKind = parameters[p].RefKind; 1690RefKind paramRefKind = parameters[argIndex].RefKind;
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (2)
258return symbol.GetIsNewExtensionMember() && !symbol.IsStatic && symbol.ContainingType.ExtensionParameter is { RefKind: RefKind.None, Type.IsReferenceType: false }; 985((BoundParameter)expression).ParameterSymbol.RefKind != RefKind.None ||
Lowering\LocalRewriter\LocalRewriter_DeconstructionAssignmentOperator.cs (1)
171case BoundParameter { ParameterSymbol: { RefKind: RefKind.None } parameterSymbol }:
Lowering\LocalRewriter\LocalRewriter_IndexerAccess.cs (1)
312possiblyRefCapturedReceiver = _factory.StoreToTemp(possiblyRefCapturedReceiver, out var refCapture, createSpan.Parameters[0].RefKind == RefKind.In ? RefKindExtensions.StrictIn : RefKind.Ref);
Lowering\LocalRewriter\LocalRewriter_NullCoalescingOperator.cs (1)
146if (unwrappedRight is { ConstantValueOpt: not null } or BoundLocal { LocalSymbol.IsRef: false } or BoundParameter { ParameterSymbol.RefKind: RefKind.None } &&
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (2)
186.All(p => p.RefKind is RefKind.None or RefKind.In or RefKind.RefReadOnlyParameter)); 203if (initializer.InvokedAsExtensionMethod && addMethod.Parameters[0].RefKind == RefKind.Ref)
Lowering\LocalRewriter\LocalRewriter_StringConcat.cs (3)
443readOnlySpanCtorRefParamGeneric.Parameters[0].RefKind != RefKind.Out) 481Debug.Assert(readOnlySpanCtorRefParamChar.Parameters[0].RefKind != RefKind.Out); 488argumentRefKindsOpt: [readOnlySpanCtorRefParamChar.Parameters[0].RefKind == RefKind.Ref ? RefKind.Ref : RefKindExtensions.StrictIn],
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (1)
641return ((BoundParameter)expression).ParameterSymbol.RefKind != RefKind.None;
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (1)
500Debug.Assert(method.Parameters.AsSpan()[1..].All(static (p) => (p.IsOptional || p.IsParams) && p.RefKind is RefKind.None or RefKind.In or RefKind.RefReadOnlyParameter));
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (1)
251Debug.Assert(parameter.IsThis || parameter.RefKind == RefKind.None);
Lowering\SynthesizedMethodBaseSymbol.cs (1)
126p.RefKind,
Symbols\Compilation_WellKnownMembers.cs (2)
1021handle(param.RefKind, param.RefCustomModifiers, param.TypeWithAnnotations); 1186return parameter.RefKind != RefKind.None;
Symbols\Extensions\SynthesizedExtensionMarker.cs (1)
91RefKind parameterRefKind = parameter.RefKind;
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (1)
469originalParam.RefKind,
Symbols\MemberSignatureComparer.cs (2)
771var refKind1 = param1.RefKind; 772var refKind2 = param2.RefKind;
Symbols\Metadata\PE\DynamicTypeDecoder.cs (1)
369var (transformedParamType, paramTransformed) = handle(ref this, param.RefKind, param.RefCustomModifiers, param.TypeWithAnnotations);
Symbols\Metadata\PE\MemberRefMetadataDecoder.cs (1)
254if ((candidateParam.RefKind != RefKind.None) != targetParam.IsByRef)
Symbols\Metadata\PE\PEMethodSymbol.cs (1)
1128switch (parameter.RefKind)
Symbols\NamedTypeSymbol.cs (2)
363if ((thisParam.RefKind == RefKind.Ref && !thisParam.Type.IsValueType) || 364(thisParam.RefKind is RefKind.In or RefKind.RefReadOnlyParameter && thisParam.Type.TypeKind != TypeKind.Struct))
Symbols\ParameterSignature.cs (1)
46var refKind = parameter.RefKind;
Symbols\ParameterSymbol.cs (2)
167((refKind = RefKind) == RefKind.None || 462RefKind IParameterSymbolInternal.RefKind => RefKind;
Symbols\PropertySymbolExtensions.cs (2)
73if (param.RefKind == RefKind.Ref || param.RefKind == RefKind.Out)
Symbols\PublicModel\ParameterSymbol.cs (1)
59RefKind IParameterSymbol.RefKind => _underlying.RefKind;
Symbols\ReducedExtensionMethodSymbol.cs (1)
541internal override bool IsEffectivelyReadOnly => _reducedFrom.Parameters[0].RefKind is RefKind.In or RefKind.RefReadOnlyParameter;
Symbols\Retargeting\RetargetingSymbolTranslator.cs (2)
1008param.RefKind), 1082param.RefKind),
Symbols\Source\CustomModifierUtils.cs (1)
146destinationParameter.RefKind != RefKind.None ? sourceParameter.RefCustomModifiers : ImmutableArray<CustomModifier>.Empty,
Symbols\Source\ExplicitInterfaceHelpers.cs (2)
402if (implementedMemberParameters[i].RefKind != collisionCandidateParameters[i].RefKind)
Symbols\Source\ParameterHelpers.cs (4)
323refKind: parameter.RefKind, containingSymbol: parameter.ContainingSymbol, thisKeyword: thisKeyword, paramsKeyword: paramsKeyword, firstDefault: firstDefault, diagnostics: diagnostics); 348if (parameter.RefKind == RefKind.In) 359else if (parameter.RefKind == RefKind.RefReadOnlyParameter) 441return IsRefScopedByDefault(parameter.UseUpdatedEscapeRules, parameter.RefKind);
Symbols\Source\SourceMemberContainerSymbol.cs (4)
2236var refKind1 = method1.Parameters[i].RefKind; 2237var refKind2 = method2.Parameters[i].RefKind; 4466if (methodParam.RefKind != RefKind.None) 4489methodParams[0].RefKind == RefKind.None &&
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (10)
1306overrideParameter.RefKind, 1315overrideParameter.RefKind, 1396p is { EffectiveScope: ScopedKind.None, RefKind: RefKind.Ref } or { EffectiveScope: ScopedKind.ScopedRef, RefKind: RefKind.Out } && 1407if ((overrideThisParameter is { RefKind: RefKind.Ref or RefKind.Out } && overrideThisParameter.Type.IsRefLikeOrAllowsRefLikeType()) || 1413else if (parameters.Any(p => (p.RefKind is RefKind.Ref or RefKind.Out) && p.Type.IsRefLikeOrAllowsRefLikeType())) 1424int nRefParameters = parameters.Count(p => p.RefKind is RefKind.Ref or RefKind.In or RefKind.RefReadOnlyParameter or RefKind.Out); 1429else if (parameters.Any(p => p.RefKind == RefKind.None && p.Type.IsRefLikeOrAllowsRefLikeType())) 1527if (baseParameter.RefKind != overrideParameter.RefKind)
Symbols\Source\SourceMethodSymbol.cs (1)
71if (parameter.RefKind != RefKind.None)
Symbols\Source\SourceMethodSymbolWithAttributes.cs (2)
769if (param.RefKind == RefKind.Out) 1400checkAndReportManagedTypes(param.Type, param.RefKind, param.GetNonNullSyntaxNode(), isParam: true, diagnostics);
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (3)
334if (parameter.RefKind != RefKind.None) 402appendRefKind(extensionParameter.RefKind, builder, forParameter: true); 732appendRefKind(parameter.RefKind, builder, forParameter: true);
Symbols\Source\SourceOrdinaryMethodSymbol.cs (2)
211var parameter0RefKind = this.Parameters[0].RefKind; 846else if (IsPartial && !HasExplicitAccessModifier && Parameters.Any(static p => p.RefKind == RefKind.Out))
Symbols\Source\SourceParameterSymbolBase.cs (2)
102AddSynthesizedAttribute(ref attributes, compilation.SynthesizeDynamicAttribute(type.Type, type.CustomModifiers.Length + parameter.RefCustomModifiers.Length, parameter.RefKind)); 121switch (parameter.RefKind)
Symbols\Source\SourceUserDefinedOperatorSymbolBase.cs (4)
399switch (extensionParameter.RefKind) 430throw ExceptionUtilities.UnexpectedValue(extensionParameter.RefKind); 473if (p.RefKind != RefKind.None && p.RefKind != RefKind.In)
Symbols\SymbolExtensions.cs (1)
511refKind = parameter.RefKind;
Symbols\Synthesized\Records\SynthesizedRecordClone.cs (1)
124if (ctor.ParameterCount == 1 && ctor.Parameters[0].RefKind == RefKind.None &&
Symbols\Synthesized\Records\SynthesizedRecordCopyCtor.cs (1)
148method.Parameters[0].RefKind == RefKind.None;
Symbols\Synthesized\Records\SynthesizedRecordEqualityOperator.cs (1)
45if (member is MethodSymbol candidate && candidate.ParameterCount == 1 && candidate.Parameters[0].RefKind == RefKind.None &&
Symbols\Synthesized\SynthesizedParameterSymbol.cs (1)
315oldParam.RefKind,
Symbols\VarianceSafety.cs (1)
245requireOutputSafety: param.RefKind != RefKind.None,
Symbols\Wrapped\WrappedParameterSymbol.cs (1)
46get { return _underlyingParameter.RefKind; }
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (56)
CodeGen\CodeGenReadonlyStructTests.cs (44)
829Assert.Equal(RefKind.Out, namedType.Constructors[0].ThisParameter.RefKind); 830Assert.Equal(RefKind.In, namedType.GetMethod("M1").ThisParameter.RefKind); 831Assert.Equal(RefKind.In, namedType.GetMethod("ToString").ThisParameter.RefKind); 846Assert.Equal(RefKind.Out, namedType.Constructors[0].ThisParameter.RefKind); 847Assert.Equal(RefKind.In, namedType.GetMethod("M1").ThisParameter.RefKind); 848Assert.Equal(RefKind.In, namedType.GetMethod("ToString").ThisParameter.RefKind); 853Assert.Equal(RefKind.Out, namedType.Constructors[0].ThisParameter.RefKind); 854Assert.Equal(RefKind.In, namedType.GetMethod("M1").ThisParameter.RefKind); 855Assert.Equal(RefKind.In, namedType.GetMethod("ToString").ThisParameter.RefKind); 860Assert.Equal(RefKind.Out, namedType.Constructors[0].ThisParameter.RefKind); 861Assert.Equal(RefKind.In, namedType.GetMethod("M1").ThisParameter.RefKind); 862Assert.Equal(RefKind.In, namedType.GetMethod("ToString").ThisParameter.RefKind); 867Assert.Equal(RefKind.Out, namedType.Constructors[0].ThisParameter.RefKind); 868Assert.Equal(RefKind.Ref, namedType.GetMethod("M1").ThisParameter.RefKind); 869Assert.Equal(RefKind.Ref, namedType.GetMethod("ToString").ThisParameter.RefKind); 874Assert.Equal(RefKind.None, namedType.Constructors[0].ThisParameter.RefKind); 875Assert.Equal(RefKind.None, namedType.GetMethod("M1").ThisParameter.RefKind); 876Assert.Equal(RefKind.None, namedType.GetMethod("ToString").ThisParameter.RefKind); 881Assert.Equal(RefKind.None, namedType.Constructors[0].ThisParameter.RefKind); 882Assert.Equal(RefKind.None, namedType.GetMethod("Invoke").ThisParameter.RefKind); 913Assert.Equal(RefKind.Out, s1.Constructors[0].ThisParameter.RefKind); 914Assert.Equal(RefKind.In, s1.GetMethod("M1").ThisParameter.RefKind); 915Assert.Equal(RefKind.In, s1.GetMethod("ToString").ThisParameter.RefKind); 1003Assert.Equal(RefKind.Out, namedType.Constructors[0].ThisParameter.RefKind); 1004Assert.Equal(RefKind.In, namedType.GetMethod("M1").ThisParameter.RefKind); 1005Assert.Equal(RefKind.In, namedType.GetMethod("ToString").ThisParameter.RefKind); 1010Assert.Equal(RefKind.Out, namedType.Constructors[0].ThisParameter.RefKind); 1011Assert.Equal(RefKind.In, namedType.GetMethod("M1").ThisParameter.RefKind); 1012Assert.Equal(RefKind.In, namedType.GetMethod("ToString").ThisParameter.RefKind); 1017Assert.Equal(RefKind.Out, namedType.Constructors[0].ThisParameter.RefKind); 1018Assert.Equal(RefKind.In, namedType.GetMethod("M1").ThisParameter.RefKind); 1019Assert.Equal(RefKind.In, namedType.GetMethod("ToString").ThisParameter.RefKind); 1024Assert.Equal(RefKind.Out, namedType.Constructors[0].ThisParameter.RefKind); 1025Assert.Equal(RefKind.In, namedType.GetMethod("M1").ThisParameter.RefKind); 1026Assert.Equal(RefKind.In, namedType.GetMethod("ToString").ThisParameter.RefKind); 1031Assert.Equal(RefKind.Out, namedType.Constructors[0].ThisParameter.RefKind); 1032Assert.Equal(RefKind.Ref, namedType.GetMethod("M1").ThisParameter.RefKind); 1033Assert.Equal(RefKind.Ref, namedType.GetMethod("ToString").ThisParameter.RefKind); 1038Assert.Equal(RefKind.None, namedType.Constructors[0].ThisParameter.RefKind); 1039Assert.Equal(RefKind.None, namedType.GetMethod("M1").ThisParameter.RefKind); 1040Assert.Equal(RefKind.None, namedType.GetMethod("ToString").ThisParameter.RefKind); 1045Assert.Equal(RefKind.None, namedType.Constructors[0].ThisParameter.RefKind); 1046Assert.Equal(RefKind.None, namedType.GetMethod("Invoke").ThisParameter.RefKind); 1608Assert.Equal(refKind, method.ThisParameter?.RefKind);
Emit\EmitCustomModifiers.cs (3)
606Assert.Equal(RefKind.Ref, parameter.RefKind); 662Assert.Equal(RefKind.Ref, baseParameter.RefKind); 670Assert.Equal(RefKind.Ref, derivedParameter.RefKind);
Emit\EmitMetadataTests.cs (9)
449Assert.Equal(RefKind.Ref, parameter1.RefKind); 2027Assert.Equal(RefKind.None, m.Parameters[0].RefKind); 2028Assert.Equal(RefKind.Ref, m.Parameters[1].RefKind); 2029Assert.Equal(RefKind.Out, m.Parameters[2].RefKind); 2081Assert.Equal(invoke.Parameters[i].RefKind, beginInvoke.Parameters[i].RefKind); 2093if (invoke.Parameters[i].RefKind != RefKind.None) 2096Assert.Equal(invoke.Parameters[i].RefKind, endInvoke.Parameters[k++].RefKind);
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (37)
Attributes\AttributeTests_RefReadOnly.cs (24)
42Assert.Equal(RefKind.In, parameter.RefKind); 68Assert.Equal(RefKind.In, parameter.RefKind); 124Assert.Equal(RefKind.In, parameter.RefKind); 154Assert.Equal(RefKind.In, parameter.RefKind); 206Assert.Equal(RefKind.In, parameter.RefKind); 233Assert.Equal(RefKind.In, parameter.RefKind); 277Assert.Equal(RefKind.In, parameter.RefKind); 406Assert.Equal(RefKind.In, parameter.RefKind); 426Assert.Equal(RefKind.In, parameter.RefKind); 478Assert.Equal(RefKind.In, parameter.RefKind); 505Assert.Equal(RefKind.In, parameter.RefKind); 522Assert.Equal(RefKind.In, parameter.RefKind); 565Assert.Equal(RefKind.In, parameter.RefKind); 602Assert.Equal(RefKind.In, parameter.RefKind); 626Assert.Equal(RefKind.In, parameter.RefKind); 690Assert.Equal(RefKind.In, parameter.RefKind); 729Assert.Equal(RefKind.In, parameter.RefKind); 757Assert.Equal(RefKind.In, parameter.RefKind); 823Assert.Equal(RefKind.In, parameter.RefKind); 1161Assert.Equal(RefKind.In, parameter.RefKind); 2370Assert.Equal(RefKind.RefReadOnly, method.Parameters[0].RefKind); 2371Assert.Equal(RefKind.Ref, method.Parameters[1].RefKind); 2417Assert.Equal(RefKind.Ref, method.Parameters[0].RefKind); 2418Assert.Equal(RefKind.RefReadOnly, method.Parameters[1].RefKind);
RefReadonlyParameterTests.cs (10)
64Assert.Equal(refKind, RefKind.RefReadOnlyParameter == parameter.RefKind); 975Assert.Equal(RefKind.In, p.RefKind); 1072Assert.Equal(RefKind.Ref, p.RefKind); 1124Assert.Equal(RefKind.In, p.RefKind); 1226Assert.Equal(RefKind.Ref, p.RefKind); 1666Assert.Equal(RefKind.Ref, p.RefKind); 1685Assert.Equal(RefKind.In, p.RefKind); 7104var methodFromClass = comp.GetMembers("C.M").Cast<MethodSymbol>().Single(m => m.Parameters.Single().RefKind == refKind); 7132var methodFromClass = comp.GetMembers("C.M").Cast<MethodSymbol>().Single(m => m.Parameters.Single().RefKind == RefKind.RefReadOnlyParameter); 7175Assert.Equal(RefKind.Ref, parameter.RefKind);
Semantics\ExtensionTests.cs (1)
3875Assert.Equal(RefKind.RefReadOnlyParameter, m.GlobalNamespace.GetTypeMember("Extensions").GetTypeMembers().Single().ExtensionParameter.RefKind);
Semantics\RecordTests.cs (2)
14226Assert.Equal(RefKind.Out, deconstruct.Parameters[0].RefKind); 14229Assert.Equal(RefKind.Out, deconstruct.Parameters[1].RefKind);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (6)
Semantics\LambdaTests.cs (3)
6895Assert.Equal(RefKind.Ref, lambdas[0].Parameters[0].RefKind); 6896Assert.Equal(RefKind.In, lambdas[1].Parameters[0].RefKind); 6897Assert.Equal(RefKind.Out, lambdas[2].Parameters[0].RefKind);
Semantics\RecordStructTests.cs (2)
3513Assert.Equal(RefKind.Out, deconstruct.Parameters[0].RefKind); 3516Assert.Equal(RefKind.Out, deconstruct.Parameters[1].RefKind);
Semantics\RefFieldTests.cs (1)
12062Assert.Equal(expectedRefKind, parameter.RefKind);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (51)
Symbols\CompilationCreationTests.cs (2)
2357Assert.Equal(RefKind.Ref, x1.RefKind); 2362Assert.Equal(RefKind.Out, x2.RefKind);
Symbols\DefaultInterfaceImplementationTests.cs (1)
69335Assert.Equal(RefKind.In, p.RefKind);
Symbols\ExtensionMethodTests.cs (4)
4035Assert.Equal(RefKind.In, parameter.RefKind); 4041Assert.Equal(RefKind.In, parameter.RefKind); 4065Assert.Equal(RefKind.Ref, parameter.RefKind); 4071Assert.Equal(RefKind.Ref, parameter.RefKind);
Symbols\FunctionPointerTypeSymbolTests.cs (13)
472Assert.Equal(RefKind.Ref, firstParam.Parameters.Single().RefKind); 475Assert.Equal(RefKind.In, secondParam.Parameters.Single().RefKind); 478Assert.Equal(RefKind.Out, thirdParam.Parameters.Single().RefKind); 481Assert.Equal(RefKind.None, fourthParam.Parameters.Single().RefKind); 574Assert.Equal(RefKind.None, firstParam.Parameters.Single().RefKind); 577Assert.Equal(RefKind.None, secondParam.Parameters.Single().RefKind); 580Assert.Equal(RefKind.Ref, thirdParam.Parameters.Single().RefKind); 583Assert.Equal(RefKind.In, fourthParam.Parameters.Single().RefKind); 586Assert.Equal(RefKind.Out, fifthParam.Parameters.Single().RefKind); 589Assert.Equal(RefKind.In, sixthParam.Parameters.Single().RefKind); 592Assert.Equal(RefKind.Ref, seventhParam.Parameters.Single().RefKind); 595Assert.Equal(RefKind.Out, eightParam.Parameters.Single().RefKind); 598Assert.Equal(RefKind.Ref, ninthParam.Parameters.Single().RefKind);
Symbols\Metadata\MetadataMemberTests.cs (2)
286Assert.Equal(RefKind.Ref, p5.RefKind); 289Assert.Equal(RefKind.Out, p6.RefKind);
Symbols\Metadata\PE\DynamicTransformsTests.cs (3)
276Assert.Equal(RefKind.Ref, f2.Parameters[0].RefKind); 283Assert.Equal(RefKind.None, f3.Parameters[0].RefKind); 307Assert.Equal(RefKind.None, f4.Parameters[0].RefKind);
Symbols\Metadata\PE\LoadingIndexers.cs (1)
605Assert.Equal(RefKind.Ref, indexer.Parameters.Single().RefKind);
Symbols\PEParameterSymbolTests.cs (5)
112Assert.Equal(RefKind.Out, x.RefKind); 116Assert.Equal(RefKind.Ref, y.RefKind); 120Assert.Equal(RefKind.None, z.RefKind); 127Assert.Equal(RefKind.Out, x1.RefKind); 134Assert.Equal(RefKind.Ref, y2.RefKind);
Symbols\Source\DelegateTests.cs (6)
167Assert.Equal(invoke.Parameters[i].RefKind, beginInvoke.Parameters[i].RefKind); 179if (invoke.Parameters[i].RefKind != RefKind.None) 182Assert.Equal(invoke.Parameters[i].RefKind, endInvoke.Parameters[k++].RefKind); 803Assert.Equal(RefKind.In, d.DelegateInvokeMethod.Parameters[0].RefKind);
Symbols\Source\ExpressionBodiedPropertyTests.cs (2)
562Assert.Equal(RefKind.In, p.GetMethod.Parameters[0].RefKind); 590Assert.Equal(RefKind.In, p.GetMethod.Parameters[0].RefKind);
Symbols\Source\MethodTests.cs (6)
364Assert.Equal(RefKind.Ref, p1.RefKind); 365Assert.Equal(RefKind.Out, p2.RefKind); 411Assert.Equal(RefKind.Ref, p1.RefKind); 455Assert.Equal(RefKind.Ref, p1.RefKind); 456Assert.Equal(RefKind.Out, p2.RefKind); 534Assert.Equal(RefKind.Ref, param.RefKind);
Symbols\SymbolErrorTests.cs (1)
3375Assert.Equal(RefKind.Ref, param.RefKind);
Symbols\TypeTests.cs (5)
514Assert.Equal(RefKind.Ref, p1.RefKind); 516Assert.Equal(RefKind.Out, p2.RefKind); 518Assert.Equal(RefKind.None, p3.RefKind); 1558Assert.Equal(RefKind.Ref, paras[0].RefKind); 1559Assert.Equal(RefKind.Out, paras[1].RefKind);
Microsoft.CodeAnalysis.CSharp.Test.Utilities (6)
Extensions.cs (3)
602Assert.Equal(propertyParam.RefKind, accessorParam.RefKind); 610Assert.Equal(RefKind.None, valueParameter.RefKind);
FunctionPointerUtilities.cs (3)
305Assert.Equal(argumentVerifiers[i].RefKind, parameter.RefKind); 307switch (parameter.RefKind) 326Assert.True(false, $"Cannot have a return ref kind of {parameter.RefKind}");