8 overrides of RefKind
Microsoft.CodeAnalysis.CSharp (8)
Symbols\FunctionPointers\FunctionPointerParameterSymbol.cs (1)
27public override RefKind RefKind { get; }
Symbols\Metadata\PE\PEParameterSymbol.cs (1)
434public override RefKind RefKind
Symbols\SignatureOnlyParameterSymbol.cs (1)
43public override RefKind RefKind { get { return _refKind; } }
Symbols\Source\SourceClonedParameterSymbol.cs (1)
88public override RefKind RefKind
Symbols\Source\SourceParameterSymbol.cs (1)
217public sealed override RefKind RefKind
Symbols\Source\ThisParameterSymbol.cs (1)
35public override RefKind RefKind
Symbols\Synthesized\SynthesizedParameterSymbol.cs (1)
47public override RefKind RefKind => _refKind;
Symbols\Wrapped\WrappedParameterSymbol.cs (1)
44public sealed override RefKind RefKind
315 references to RefKind
Microsoft.CodeAnalysis.CSharp (167)
Binder\Binder.ValueChecks.cs (18)
53Debug.Assert(parameter.RefKind.IsWritableReference() && parameter.Type.IsRefLikeType); 923if (parameterSymbol.RefKind == RefKind.In && RequiresAssignableVariable(valueKind)) 928else if (parameterSymbol.RefKind == RefKind.None && RequiresRefAssignableVariable(valueKind)) 934Debug.Assert(parameterSymbol.RefKind != RefKind.None || !RequiresRefAssignableVariable(valueKind)); 938if (parameterSymbol.RefKind == RefKind.None && 1037{ RefKind: RefKind.Out, UseUpdatedEscapeRules: true } => ReturnOnlyScope, 1049{ RefKind: RefKind.None } => CurrentMethodScope, 1051{ HasUnscopedRefAttribute: true, RefKind: RefKind.Out } => ReturnOnlyScope, 1085Debug.Assert(parameterSymbol.RefKind == RefKind.None || isRefScoped || refSafeToEscape == ReturnOnlyScope); 1863|| (param is null or { RefKind: not RefKind.None, Type.IsRefLikeType: true } && isArgumentRefEscape == isRefEscape)) 2025|| (param is null or { RefKind: not RefKind.None, Type.IsRefLikeType: true } && isArgumentRefEscape == isRefEscape)) 2133var refKind = parameter?.RefKind ?? RefKind.None; 2139parameter?.RefKind == RefKind.In) 2151parameter.RefKind.IsWritableReference(); 2179refKind = thisParameter.RefKind; 2334if (parameter.Type.IsRefLikeType && parameter.RefKind != RefKind.Out && GetParameterValEscapeLevel(parameter) is { } valEscapeLevel) 2341if (parameter.RefKind != RefKind.None && GetParameterRefEscapeLevel(parameter) is { } refEscapeLevel) 4630((BoundParameter)expression).ParameterSymbol.RefKind != RefKind.In;
Binder\Binder_Attributes.cs (1)
239if (attributeConstructor.Parameters.Any(static p => p.RefKind == RefKind.In))
Binder\Binder_Conversions.cs (2)
1328if (!hasConversion(delegateType.TypeKind, Conversions, delegateParameter.Type, methodParameter.Type, delegateParameter.RefKind, methodParameter.RefKind, ref useSiteInfo))
Binder\Binder_Deconstruct.cs (1)
687if (parameters[i].RefKind != RefKind.Out)
Binder\Binder_Expressions.cs (7)
1931if (IsBadLocalOrParameterCapture(parameter, parameter.Type, parameter.RefKind)) 1942(parameter.RefKind != RefKind.None || parameter.Type.IsRefLikeType) && 1947else if (primaryCtor is { ThisParameter.RefKind: not RefKind.None } && 2284if ((object)thisSymbol != null && thisSymbol.ContainingSymbol != ContainingMemberOrLambda && thisSymbol.RefKind != RefKind.None) 8675original.Parameters[0] is { Type.SpecialType: SpecialType.System_Int32, RefKind: RefKind.None }) 8732original.Parameters[0] is { Type.SpecialType: SpecialType.System_Int32, RefKind: RefKind.None } && 8733original.Parameters[1] is { Type.SpecialType: SpecialType.System_Int32, RefKind: RefKind.None })
Binder\Binder_InterpolatedString.cs (2)
981refKind = parameter.RefKind; 1000refKind = parameter.RefKind;
Binder\Binder_Invocation.cs (2)
1054if (receiverParameter.RefKind == RefKind.Ref) 1070else if (receiverParameter.RefKind == RefKind.In)
Binder\Binder_Operators.cs (1)
2601if (parameterSymbol.RefKind != RefKind.None)
Binder\Binder_Statements.cs (2)
2110var delegateRefKind = delegateParameters[i].RefKind; 2153var delegateRefKind = delegateParameters[i].RefKind;
Binder\ExecutableCodeBinder.cs (1)
112if (parameter.RefKind != RefKind.None)
Binder\Semantics\Conversions\Conversions.cs (2)
320TypeWithAnnotations.Create(compilation.GetSpecialType(SpecialType.System_Object), customModifiers: parameter.TypeWithAnnotations.CustomModifiers), parameter.RefCustomModifiers, parameter.IsParams, parameter.RefKind); 324analyzedArguments.RefKinds.Add(parameter.RefKind);
Binder\Semantics\Conversions\ConversionsBase.cs (6)
1440if (delegateParameters[p].RefKind != anonymousFunction.RefKind(p) || 1451if (delegateParameters[p].RefKind != RefKind.None) 1493if (delegateParameters[p].RefKind == RefKind.Out) 3172if (sourceParam.RefKind != destinationParam.RefKind) 3177if (!hasConversion(sourceParam.RefKind, destinationSig.Parameters[i].TypeWithAnnotations, sourceSig.Parameters[i].TypeWithAnnotations, ref useSiteInfo))
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (2)
2227if ((sourceParam.Type.IsReferenceType || sourceParam.Type.IsFunctionPointer()) && sourceParam.RefKind == RefKind.None) 2577if ((sourceParam.Type.IsReferenceType || sourceParam.Type.IsFunctionPointer()) && sourceParam.RefKind == RefKind.None)
Binder\Semantics\OverloadResolution\OverloadResolution.cs (9)
1770parameter1.RefKind, 1773parameter2.RefKind, 2165if (p1.RefKind == RefKind.None && isAcceptableRefMismatch(p2.RefKind, isInterpolatedStringHandlerConversion)) 2176else if (p2.RefKind == RefKind.None && isAcceptableRefMismatch(p1.RefKind, isInterpolatedStringHandlerConversion)) 3017if (param1.RefKind != param2.RefKind) 3189var paramRefKind = parameter.RefKind;
Binder\Semantics\OverloadResolution\OverloadResolutionResult.cs (2)
1094if (parameter.RefKind != RefKind.None) 1155RefKind refParameter = parameter.RefKind;
BoundTree\BoundExpressionExtensions.cs (1)
28return ((BoundParameter)node).ParameterSymbol.RefKind;
BoundTree\UnboundLambda.cs (1)
1071refKindsBuilder.Add(p.RefKind);
CodeGen\EmitAddress.cs (1)
477if (parameterSymbol.RefKind == RefKind.None)
CodeGen\EmitExpression.cs (11)
936Debug.Assert(parameters.All(p => p.RefKind == RefKind.None) || !argRefKindsOpt.IsDefault, "there are nontrivial parameters, so we must have argRefKinds"); 960Debug.Assert(argRefKind == parameters[i].RefKind || 961argRefKind == RefKindExtensions.StrictIn && parameters[i].RefKind == RefKind.In, 967argRefKind = parameters[i].RefKind; 1248return ((BoundParameter)receiver).ParameterSymbol.RefKind != RefKind.None; 1384if (parameter.ParameterSymbol.RefKind != RefKind.None) 1997return ((BoundParameter)receiver).ParameterSymbol.RefKind != RefKind.None; 2416if (System.Linq.ImmutableArrayExtensions.All(ctor.Parameters, p => p.RefKind == RefKind.None) && 2540return ((BoundParameter)left).ParameterSymbol.RefKind == RefKind.None; 2582if (left.ParameterSymbol.RefKind != RefKind.None && 3079if (parameter.ParameterSymbol.RefKind != RefKind.None && !refAssign)
CodeGen\EmitStatement.cs (1)
1267if (parameter.ParameterSymbol.RefKind == RefKind.None)
CodeGen\Optimizer.cs (1)
1040if (((BoundParameter)lhs).ParameterSymbol.RefKind != RefKind.None)
DocumentationComments\DocumentationCommentIDVisitor.PartVisitor.cs (1)
248if (symbol.RefKind != RefKind.None)
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (6)
861return (parameter.RefKind == other.RefKind) && 891ValidateFunctionPointerParamOrReturn(param.TypeWithAnnotations, param.RefKind, param.RefCustomModifiers, allowOut: true); 892ValidateFunctionPointerParamOrReturn(otherParam.TypeWithAnnotations, otherParam.RefKind, otherParam.RefCustomModifiers, allowOut: true); 894return param.RefKind == otherParam.RefKind && AreTypesEqual(param.TypeWithAnnotations, otherParam.TypeWithAnnotations);
Emitter\Model\ParameterSymbolAdapter.cs (1)
38return AdaptedParameterSymbol.RefKind != RefKind.None;
Emitter\Model\ParameterTypeInformation.cs (1)
39return _underlyingParameter.RefKind != RefKind.None;
FlowAnalysis\AbstractFlowPass.cs (1)
1355var thisRefKind = thisParameter.RefKind;
FlowAnalysis\DataFlowsOutWalker.cs (1)
233((param.RefKind != RefKind.None && !param.IsImplicitlyDeclared && !RegionContains(param.Locations[0].SourceSpan)) ||
FlowAnalysis\DefiniteAssignment.cs (6)
1190((ParameterSymbol)symbol).RefKind == RefKind.Out) 1521if (isRef && param.RefKind == RefKind.Out) 1723if (current is not MethodSymbol && parameter.RefKind == RefKind.Out) 1753if (parameter.RefKind == RefKind.Out && !(this.CurrentSymbol is MethodSymbol currentMethod && currentMethod.IsAsync)) // out parameters not allowed in async 1819if (!parameter.IsThis && parameter.RefKind != RefKind.Out && parameter.ContainingSymbol is SynthesizedPrimaryConstructor primaryCtor) 1831if (parameter.RefKind != RefKind.None)
FlowAnalysis\NullableWalker.cs (6)
1207var refKind = parameter.RefKind; 2744if (parameter.RefKind != RefKind.Out) 9205RefKind kind = ((BoundParameter)expr).ParameterSymbol.RefKind; 9337VisitArgumentConversionAndInboundAssignmentsAndPreConditions(conversionOpt: null, variable.Expression, underlyingConversion, parameter.RefKind, 9351variable.Expression, parameter.RefKind, parameter, parameter.TypeWithAnnotations, GetRValueAnnotations(parameter), 10924parameter.RefKind,
FlowAnalysis\ReadWriteWalker.cs (2)
87if (p.RefKind != RefKind.None) _readOutside.Add(p); 95if ((object)thisParameter != null && thisParameter.RefKind != RefKind.None)
Lowering\DiagnosticsPass_ExpressionTrees.cs (1)
532if (p.RefKind != RefKind.None && p.Locations.Length != 0)
Lowering\DiagnosticsPass_Warnings.cs (1)
244if (method.Parameters[i].RefKind != RefKind.None && (argumentRefKindsOpt.IsDefault || argumentRefKindsOpt[i] == RefKind.None)) return true;
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (2)
302if (parameter.RefKind == RefKind.Out || parameter.IsDiscard) 450Debug.Assert(parameter.RefKind == RefKind.None);
Lowering\LocalRewriter\LocalRewriter.cs (1)
998symbol.Parameters.Any(static p => p.RefKind == RefKind.In))
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (1)
188Debug.Assert(parameter.RefKind == RefKind.Out);
Lowering\LocalRewriter\LocalRewriter_Call.cs (4)
638RefKind paramRefKind = parameters[paramIndex].RefKind; 898var paramRefKind = parameters[i].RefKind; 1073RefKind paramRefKind = parameters[p].RefKind; 1488RefKind paramRefKind = parameters[argIndex].RefKind;
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
839return localsMayBeAssignedOrCaptured || ((BoundParameter)expression).ParameterSymbol.RefKind != RefKind.None;
Lowering\LocalRewriter\LocalRewriter_DeconstructionAssignmentOperator.cs (1)
171case BoundParameter { ParameterSymbol: { RefKind: RefKind.None } parameterSymbol }:
Lowering\LocalRewriter\LocalRewriter_ObjectOrCollectionInitializerExpression.cs (3)
148.All(p => p.RefKind == RefKind.None || p.RefKind == RefKind.In)); 165if (addMethod.Parameters[0].RefKind == RefKind.Ref)
Lowering\LocalRewriter\LocalRewriter_UnaryOperator.cs (1)
489return ((BoundParameter)expression).ParameterSymbol.RefKind != RefKind.None;
Lowering\LocalRewriter\LocalRewriter_UsingStatement.cs (1)
500Debug.Assert(method.Parameters.AsSpan()[1..].All(assertParametersAreOptional, (p, assertOptional) => (p.IsOptional || p.IsParams || !assertOptional) && p.RefKind == RefKind.None));
Lowering\StateMachineRewriter\IteratorAndAsyncCaptureWalker.cs (1)
225Debug.Assert(parameter.IsThis || parameter.RefKind == RefKind.None);
Lowering\SynthesizedMethodBaseSymbol.cs (1)
137p.RefKind,
Symbols\Compilation_WellKnownMembers.cs (2)
979handle(param.RefKind, param.RefCustomModifiers, param.TypeWithAnnotations); 1144return parameter.RefKind != RefKind.None;
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (1)
467originalParam.RefKind,
Symbols\MemberSignatureComparer.cs (2)
738var refKind1 = param1.RefKind; 739var 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)
1082switch (parameter.RefKind)
Symbols\NamedTypeSymbol.cs (2)
366if ((thisParam.RefKind == RefKind.Ref && !thisParam.Type.IsValueType) || 367(thisParam.RefKind == RefKind.In && thisParam.Type.TypeKind != TypeKind.Struct))
Symbols\ParameterSignature.cs (1)
46var refKind = parameter.RefKind;
Symbols\ParameterSymbol.cs (1)
153((refKind = RefKind) == RefKind.None ||
Symbols\PropertySymbolExtensions.cs (2)
68if (param.RefKind == RefKind.Ref || param.RefKind == RefKind.Out)
Symbols\PublicModel\ParameterSymbol.cs (1)
59RefKind IParameterSymbol.RefKind => _underlying.RefKind;
Symbols\ReducedExtensionMethodSymbol.cs (1)
531internal override bool IsEffectivelyReadOnly => _reducedFrom.Parameters[0].RefKind == RefKind.In;
Symbols\Retargeting\RetargetingSymbolTranslator.cs (2)
1031param.RefKind)); 1109param.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 (3)
193parameter.RefKind, declaredScope, parameter.ContainingSymbol, thisKeyword, paramsKeyword, firstDefault, diagnostics); 240if (parameter.RefKind == RefKind.In) 314return IsRefScopedByDefault(parameter.UseUpdatedEscapeRules, parameter.RefKind);
Symbols\Source\SourceMemberContainerSymbol.cs (4)
2055var refKind1 = method1.Parameters[i].RefKind; 2056var refKind2 = method2.Parameters[i].RefKind; 3683if (methodParam.RefKind != RefKind.None) 3706methodParams[0].RefKind == RefKind.None &&
Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs (5)
1302overrideParameter.RefKind, 1311overrideParameter.RefKind, 1396else if (parameters.Any(p => (p.RefKind is RefKind.Ref or RefKind.Out) && p.Type.IsRefLikeType)) 1407int nRefParameters = parameters.Count(p => p.RefKind is RefKind.Ref or RefKind.In or RefKind.Out); 1412else if (parameters.Any(p => p.RefKind == RefKind.None && p.Type.IsRefLikeType))
Symbols\Source\SourceMethodSymbol.cs (1)
65if (parameter.RefKind != RefKind.None)
Symbols\Source\SourceMethodSymbolWithAttributes.cs (2)
710if (param.RefKind == RefKind.Out) 957checkAndReportManagedTypes(param.Type, param.RefKind, param.GetNonNullSyntaxNode(), isParam: true, diagnostics);
Symbols\Source\SourceOrdinaryMethodSymbol.cs (1)
222var parameter0RefKind = this.Parameters[0].RefKind;
Symbols\Source\SourceOrdinaryMethodSymbolBase.cs (1)
343else if (IsPartial && !HasExplicitAccessModifier && Parameters.Any(static p => p.RefKind == RefKind.Out))
Symbols\Source\SourceParameterSymbolBase.cs (2)
93AddSynthesizedAttribute(ref attributes, compilation.SynthesizeDynamicAttribute(type.Type, type.CustomModifiers.Length + this.RefCustomModifiers.Length, this.RefKind)); 112if (this.RefKind == RefKind.RefReadOnly)
Symbols\Source\SourceUserDefinedOperatorSymbolBase.cs (2)
331if (p.RefKind != RefKind.None && p.RefKind != RefKind.In)
Symbols\SymbolExtensions.cs (1)
518refKind = parameter.RefKind;
Symbols\Synthesized\Records\SynthesizedRecordClone.cs (1)
129if (ctor.ParameterCount == 1 && ctor.Parameters[0].RefKind == RefKind.None &&
Symbols\Synthesized\Records\SynthesizedRecordCopyCtor.cs (1)
133method.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)
290oldParam.RefKind,
Symbols\VarianceSafety.cs (1)
242requireOutputSafety: 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)
605Assert.Equal(RefKind.Ref, parameter.RefKind); 661Assert.Equal(RefKind.Ref, baseParameter.RefKind); 669Assert.Equal(RefKind.Ref, derivedParameter.RefKind);
Emit\EmitMetadataTests.cs (9)
448Assert.Equal(RefKind.Ref, parameter1.RefKind); 2025Assert.Equal(RefKind.None, m.Parameters[0].RefKind); 2026Assert.Equal(RefKind.Ref, m.Parameters[1].RefKind); 2027Assert.Equal(RefKind.Out, m.Parameters[2].RefKind); 2079Assert.Equal(invoke.Parameters[i].RefKind, beginInvoke.Parameters[i].RefKind); 2091if (invoke.Parameters[i].RefKind != RefKind.None) 2094Assert.Equal(invoke.Parameters[i].RefKind, endInvoke.Parameters[k++].RefKind);
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (24)
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);
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (2)
Symbols\EEMethodSymbol.cs (1)
215return SynthesizedParameterSymbol.Create(this, sourceParameter.TypeWithAnnotations, ordinal, sourceParameter.RefKind, name, ScopedKind.None, refCustomModifiers: sourceParameter.RefCustomModifiers);
Symbols\ObjectIdLocalSymbol.cs (1)
80m => method.Parameters.SelectAsArray(p => SynthesizedParameterSymbol.Create(m, p.TypeWithAnnotations, p.Ordinal, p.RefKind, p.Name, p.EffectiveScope, refCustomModifiers: p.RefCustomModifiers)));
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler.UnitTests (2)
ExpressionCompilerTests.cs (2)
786Assert.Equal(RefKind.Ref, parameter.RefKind); 1034Assert.Equal(RefKind.Out, parameter.RefKind);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (8)
Semantics\LambdaTests.cs (3)
6865Assert.Equal(RefKind.Ref, lambdas[0].Parameters[0].RefKind); 6866Assert.Equal(RefKind.In, lambdas[1].Parameters[0].RefKind); 6867Assert.Equal(RefKind.Out, lambdas[2].Parameters[0].RefKind);
Semantics\RecordStructTests.cs (2)
3411Assert.Equal(RefKind.Out, deconstruct.Parameters[0].RefKind); 3414Assert.Equal(RefKind.Out, deconstruct.Parameters[1].RefKind);
Semantics\RecordTests.cs (2)
14123Assert.Equal(RefKind.Out, deconstruct.Parameters[0].RefKind); 14126Assert.Equal(RefKind.Out, deconstruct.Parameters[1].RefKind);
Semantics\RefFieldTests.cs (1)
11502Assert.Equal(expectedRefKind, parameter.RefKind);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (50)
Symbols\CompilationCreationTests.cs (2)
2356Assert.Equal(RefKind.Ref, x1.RefKind); 2361Assert.Equal(RefKind.Out, x2.RefKind);
Symbols\ExtensionMethodTests.cs (4)
4041Assert.Equal(RefKind.In, parameter.RefKind); 4047Assert.Equal(RefKind.In, parameter.RefKind); 4071Assert.Equal(RefKind.Ref, parameter.RefKind); 4077Assert.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)
284Assert.Equal(RefKind.Ref, p5.RefKind); 287Assert.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); 804Assert.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)
363Assert.Equal(RefKind.Ref, p1.RefKind); 364Assert.Equal(RefKind.Out, p2.RefKind); 410Assert.Equal(RefKind.Ref, p1.RefKind); 454Assert.Equal(RefKind.Ref, p1.RefKind); 455Assert.Equal(RefKind.Out, p2.RefKind); 533Assert.Equal(RefKind.Ref, param.RefKind);
Symbols\SymbolErrorTests.cs (1)
3360Assert.Equal(RefKind.Ref, param.RefKind);
Symbols\TypeTests.cs (5)
513Assert.Equal(RefKind.Ref, p1.RefKind); 515Assert.Equal(RefKind.Out, p2.RefKind); 517Assert.Equal(RefKind.None, p3.RefKind); 1557Assert.Equal(RefKind.Ref, paras[0].RefKind); 1558Assert.Equal(RefKind.Out, paras[1].RefKind);
Microsoft.CodeAnalysis.CSharp.Test.Utilities (6)
Extensions.cs (3)
562Assert.Equal(propertyParam.RefKind, accessorParam.RefKind); 570Assert.Equal(RefKind.None, valueParameter.RefKind);
FunctionPointerUtilities.cs (3)
303Assert.Equal(argumentVerifiers[i].RefKind, parameter.RefKind); 305switch (parameter.RefKind) 324Assert.True(false, $"Cannot have a return ref kind of {parameter.RefKind}");