Base:
property
RefKind
Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol.RefKind
4 writes to RefKind
Microsoft.CodeAnalysis.CSharp (4)
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (4)
453RefKind = refKind; 498RefKind = refKind; 528RefKind = refKind; 551RefKind = getRefKind(retInfo, RefCustomModifiers, RefKind.RefReadOnly, RefKind.Ref);
43 references to RefKind
Microsoft.CodeAnalysis.CSharp (32)
Binder\Binder.ValueChecks.cs (2)
3035if (methodSymbol.RefKind == RefKind.None) 3367if (signature.RefKind == RefKind.None)
Binder\Binder_Invocation.cs (1)
2040returnRefKind: funcPtr.Signature.RefKind);
Binder\Semantics\Conversions\ConversionsBase.cs (3)
3183return sourceSig.RefKind == destinationSig.RefKind 3184&& hasConversion(sourceSig.RefKind, sourceSig.ReturnTypeWithAnnotations, destinationSig.ReturnTypeWithAnnotations, ref useSiteInfo);
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (4)
1754return sourceSignature.RefKind == targetSignature.RefKind 2237if ((sourceSignature.ReturnType.IsReferenceType || sourceSignature.ReturnType.IsFunctionPointer()) && sourceSignature.RefKind == RefKind.None) 2587if ((sourceSignature.ReturnType.IsReferenceType || sourceSignature.ReturnType.IsFunctionPointer()) && sourceSignature.RefKind == RefKind.None)
CodeGen\EmitAddress.cs (1)
127var funcPtrRefKind = funcPtrInvocation.FunctionPointer.Signature.RefKind;
CodeGen\EmitExpression.cs (3)
2003return ((BoundFunctionPointerInvocation)receiver).FunctionPointer.Signature.RefKind != RefKind.None; 2724Debug.Assert(left.FunctionPointer.Signature.RefKind != RefKind.None); 2920Debug.Assert(((BoundFunctionPointerInvocation)expression).FunctionPointer.Signature.RefKind != RefKind.None);
CodeGen\Optimizer.cs (1)
1060Debug.Assert(((BoundFunctionPointerInvocation)lhs).FunctionPointer.Signature.RefKind == RefKind.Ref, "only ref returning function pointers are assignable");
Emitter\EditAndContinue\CSharpSymbolMatcher.cs (4)
879ValidateFunctionPointerParamOrReturn(sig.ReturnTypeWithAnnotations, sig.RefKind, sig.RefCustomModifiers, allowOut: false); 880ValidateFunctionPointerParamOrReturn(otherSig.ReturnTypeWithAnnotations, otherSig.RefKind, otherSig.RefCustomModifiers, allowOut: false); 881if (sig.RefKind != otherSig.RefKind || !AreTypesEqual(sig.ReturnTypeWithAnnotations, otherSig.ReturnTypeWithAnnotations))
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (1)
691Debug.Assert(((BoundFunctionPointerInvocation)originalLHS).FunctionPointer.Signature.RefKind != RefKind.None);
Symbols\Compilation_WellKnownMembers.cs (1)
975handle(sig.RefKind, sig.RefCustomModifiers, sig.ReturnTypeWithAnnotations);
Symbols\FunctionPointers\FunctionPointerMethodSymbol.cs (10)
338this.RefKind, 348Debug.Assert(RefKind == signature.RefKind); 349var returnVariance = RefKind == RefKind.None ? variance : VarianceKind.None; 552Debug.Assert(RefKind != RefKind.Out); 645var modifiersToSearch = RefKind != RefKind.None ? RefCustomModifiers : ReturnTypeWithAnnotations.CustomModifiers; 668var modifiersToSearch = RefKind != RefKind.None ? RefCustomModifiers : ReturnTypeWithAnnotations.CustomModifiers; 721|| !FunctionPointerTypeSymbol.RefKindEquals(compareKind, RefKind, other.RefKind) 758=> Hash.Combine(ReturnType, Hash.Combine(((int)CallingConvention).GetHashCode(), ((int)FunctionPointerTypeSymbol.GetRefKindForHashCode(RefKind)).GetHashCode()));
Symbols\Metadata\PE\DynamicTypeDecoder.cs (1)
354var (transformedReturnWithAnnotations, madeChanges) = handle(ref this, sig.RefKind, sig.RefCustomModifiers, sig.ReturnTypeWithAnnotations);
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (8)
Symbols\FunctionPointerTypeSymbolTests.cs (8)
45Assert.Equal(expectedKind, pointerType.Signature.RefKind); 173=> Assert.Equal(expected, ((FunctionPointerTypeSymbol)actual.Type).Signature.RefKind); 199Assert.Equal(RefKind.Ref, firstSignature.RefKind); 200Assert.Equal(RefKind.RefReadOnly, secondSignature.RefKind); 913if (p1.Signature.RefKind == p2.Signature.RefKind) 921Assert.Equal(p1.Signature.RefKind, p2.Signature.RefKind);
Microsoft.CodeAnalysis.CSharp.Test.Utilities (3)
FunctionPointerUtilities.cs (3)
278Assert.Equal(returnVerifier.RefKind, signature.RefKind); 279switch (signature.RefKind) 294Assert.True(false, $"Cannot have a return ref kind of {signature.RefKind}");